I'll firstly qualify that I'm not particularly good at XSLT. But what I'm trying to do is to copy 3 XML documents into one parent document.
The XSLT works fine, except that the parent nodes are being printed with xmlns="" attribute which is causing my validations to fail.
So my question is how do I copy these elements out from the separate documents without it adding that xmlns attribute?
This is sample of the output to the destination - note I want it to not print the xmlns="".
<Feed xmlns="http://www.bazaarvoice.com/xs/PRR/ProductFeed/5.6"
name="Officeworks" incremental="false"
extractDate="2014-01-28T14:42:12+11:00">
<Brands xmlns="">
<Brand>
<Name>Panasonic</Name>
<ExternalId>12345</ExternalId>
</Brand>
This is the XSLT:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ex="http://exslt.org/dates-and-times" extension-element-prefixes="ex">
<xsl:template match="/">
<xsl:variable name="dateNow" select="ex:date-time()"/>
<Feed xmlns="http://www.bazaarvoice.com/xs/PRR/ProductFeed/5.6" name='Officeworks' incremental='false'>
<xsl:attribute name="extractDate"><xsl:value-of select="$dateNow" /></xsl:attribute>
<xsl:copy-of select="document('@dataload.bv.xml.out.tmp@/bv_brands_xml.001.xml')/Brands"/>
<xsl:copy-of select="document('@dataload.bv.xml.out.tmp@/bv_categories_xml.001.xml')/Categories"/>
<xsl:copy-of select="document('@dataload.bv.xml.out.tmp@/bv_products_xml.001.xml')/Products"/>
</Feed>
</xsl:template>
</xsl:stylesheet>