[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] nodes order in union
Hi, Thanks to David Carlisle, Jeni Tennison, and Michael Kay for their responses to match + default namespace. I have now another little problem. I want to write a recursive copy, following the example of the W3C REC XSLT1.0 : <xsl:template match="child::node()" mode="copie"> <xsl:copy> <xsl:apply-templates select="@*" mode="copie"/> <xsl:apply-templates select="node()" mode="copie" /> </xsl:copy> </xsl:template> That works fine. And as expected, the following rule throws a runtime error, because we try to bind attributes to an element which already owns some children : <xsl:template match="child::node() | attribute::*" mode="copie"> <xsl:copy> <xsl:apply-templates select="node()" mode="copie" /> <xsl:apply-templates select="@*" mode="copie"/> </xsl:copy> </xsl:template> But if I transform the rule like this : <xsl:template match="child::node() | attribute::*" mode="copie"> <xsl:copy> <xsl:apply-templates select="node()|@*" mode="copie"/> </xsl:copy> </xsl:template> or like this : <xsl:template match="child::node() | attribute::*" mode="copie"> <xsl:copy> <xsl:apply-templates select="@*|node()" mode="copie"/> </xsl:copy> </xsl:template> no error happens, and the copy is quite correct. Is the XSLT processor (Saxon, actually) cleaver enougth to process the nodes in right order ? Or is there somewhere in Xpath or XSLT a rule which says that in this particulary case, union must yield a node-set where attributes are located before other nodes (I can't find it)? Best regards, Philippe Drix XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
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
|