[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Root node with attributes


Subject: Re: [xsl] Root node with attributes
From: "Matteo Valdina" <zanfire@xxxxxxxxx>
Date: Thu, 18 Oct 2007 21:28:29 +0200

Thanks for your answers,
the first is more helpful for understand my problem and second has
resolved it. ^_^

I have resolved with in this way:

New version:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	xpath-default-namespace="http://nxtassembler.sourceforge.net/NXT/AsXML.xsd"
	xmlns="http://nxtassembler.sourceforge.net/NXT/AsXML.xsd"
	version="2.0">

Old Version
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	version="2.0">

Thanks ^_^
Matteo Valdina
http://nxtassembler.sf.net
http://www.matteozan.it

On 10/18/07, Michael Kay <mike@xxxxxxxxxxxx> wrote:
>
> 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
Keywords