xsl-list
[Top] [All Lists]

Re: [xsl] Root node with attributes

2007-10-18 12:29:06
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(_at_)saxonica(_dot_)com> 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(_at_)gmail(_dot_)com]
Sent: 18 October 2007 08:53
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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="{(_at_)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>

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>