[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Identity Transform
Hi, this is a question for my own understanding. Browsing through posts on this list, I can find two forms of what's called "identity transform": ** Form 1 ** <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> ** Form 2 ** <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="node()|@*"/> </xsl:copy> </xsl:template> (The difference is in the apply-templates' 'select' attribute.) Both seem to work when testing locally, both with Xalan and Saxon, seemingly no warnings, omissions or errors. However, XSLT specifies that first, one has to add attributes to a node before appending any children. Doesn't Form 2 first append child nodes and then attributes, which should either result in an error or silently discard the attributes? Has this something to do with document traversal order, i.e. while building the list of selected items using "node()|@*", the attribute nodes (satisfying the expression) are found first and are therefore added first to the list of items to be copied, in consequence satisfying the "attribute-before-children" requirement? Regards, Christian.
|
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
|