[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: XML with Default Namespace
On 8/2/07, Karl Stubsjoen <kstubs@xxxxxxxxx> wrote: > Ok, some progress, but I can't seem to get rid of the attribute, xmlns:o. > In my identity copy, I am trying match on attribute o, like this: > > <xsl:template match="@o" mode="transform"/> > > My node match looks like this: > > <xsl:template match="@* | node()" mode="transform"> > <xsl:copy> > <xsl:apply-templates select="@*" mode="transform"/> > <xsl:apply-templates select="node()" mode="transform"/> > </xsl:copy> > </xsl:template> > > My XSL decleration includes the exclude prefix for "o", but thinking > that that is out of context, this just excludes prefixes that the xsl > document would produce, correct? Not prefixes associated with the > source xml. When you copy a node you copy it's namespace too - the two are bound in stone and cannot be separated :) exclude-result-prefixes will only exclude namespaces that aren't used in the output (think about the "xs" namespace in 2.0) - it cannot change the names of nodes that are copied to the output.... so if you want to a have a node in the output with the same local-name as the current node, then you need to create it: <xsl:template match="*"> <xsl:element name="{local-name()}"> <xsl:apply-templates select="@*|node()"/> </xsl:element> </xsl:template> and for attributes: <xsl:template match="@*"> <xsl:attribute name="{local-name()}"> <xsl:value-of select="."/> </xsl:attribute> </xsl:template> > Wow! I feel like such a beginner when it comes to namespaces! You're not alone, I think everyone struggles with them. The Excel worksheet XML doesn't exactly use them well either.... -- http://andrewjwelch.com
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|