Subject: RE: [xsl] Root node with attributes From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Thu, 18 Oct 2007 09:47:41 +0100 |
match="String" matches an element whose local name is "String" and whose namespace URI is "". By adding xmlns="http://nxtassembler.sourceforge.net/NXT/AsXML.xsd" to your outermost element (not the root node!) you have placed all your elements in namespace "http://nxtassembler.sourceforge.net/NXT/AsXML.xsd", so match="String" will no longer match. In XSLT 2.0 you can add xpath-default-namespace="http://nxtassembler.sourceforge.net/NXT/AsXML.xsd" to your xsl:stylesheet element so that unprefixed names like String are interpreted as being in that namespace. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Matteo Valdina [mailto:zanfire@xxxxxxxxx] > Sent: 18 October 2007 08:53 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Root node with attributes > > Hello, > > I'm tring to understand where is my error and a solution for > this problem: > When the root node conatins attributes the templates are not > applied, If the root node don't contain the attributes the > templates are applied. > I didn't understand wath is the right way to apply a template > in a root node with attributes. > > Any suggestion are welcome. > > Thanks and sorry for my english > > Matteo Valdina > > Program used: saxon 8 > > Stylesheet > > <?xml version="1.0" encoding="UTF-8"?> > <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > version="2.0"> > > <xsl:output method="xml" /> > > <xsl:template match="*|/"> > <xsl:copy> > <xsl:copy-of select="@*"/> > <xsl:apply-templates /> > </xsl:copy> > </xsl:template> > > > <!-- Transform a string to a Array --> > <xsl:template match="String"> > <xsl:message>Convert String</xsl:message> > <Array name="{@name}"> > <xsl:for-each > select="string-to-codepoints(@value)"> > <ArrayData type="UBYTE" value="{.}"/> > </xsl:for-each> > <ArrayData type="UBYTE" value="0"/> > </Array> > </xsl:template> > </xsl:stylesheet> > > Input file: > > <?xml version="1.0" encoding="UTF-8"?> > <Assembly xmlns="http://nxtassembler.sourceforge.net/NXT/AsXML.xsd"> > <Dataspace> > <Data name="a" type="ULONG" value="1"/> > <String name="ciao" value="Hello!" /> > </Dataspace> > </Assembly> > > Te aspected result is: > > <?xml version="1.0" encoding="UTF-8"?> > <Assembly xmlns="http://nxtassembler.sourceforge.net/NXT/AsXML.xsd"> > <Dataspace> > <Data name="a" type="ULONG" value="1"/> > <Array name="ciao"><ArrayData type="UBYTE" > value="72"/><ArrayData type="UBYTE" value="101"/><ArrayData > type="UBYTE" > value="108"/><ArrayData type="UBYTE" value="108"/><ArrayData > type="UBYTE" value="111"/><ArrayData type="UBYTE" > value="33"/><ArrayData type="UBYTE" value="0"/></Array> > </Dataspace> > </Assembly>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Root node with attributes, Joe Fawcett | Thread | Re: [xsl] Root node with attributes, Matteo Valdina |
Re: [xsl] Comparing Integers, Aaron Johnson | Date | [xsl] Only selectingn first occuran, Dan Vint |
Month |