[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
David,
Even if it worked (the code is syntactically broken), this approach constitutes "tag-writing", and won't work in XSLT for reasons others will explain (or have done so). XSLT doesn't work with tags; it works on a tree of nodes derived from the tagging of the input: elements, attributes and text arranged in a hierarchy, and it builds the same kind of tree.
Your problem is properly approached, in XSLT, as a grouping problem. The nodes between the 'e' elements must be grouped together.
As such, it infers a structure that is only implicit in the original data, and thus qualifies as an "upconversion" (a transformation that adds information). Accordingly, it isn't going to be easy without using features designed for this purpose. Most of these make an appearance only in XSLT 2.0, although techniques have been devised in XSLT 1.0 to accomplish it (such as sibling recursion or structural induction using keys to associate the groups).
If you really want to use a tag-writing approach to transformation, even in XSLT, that can be done, but (a) experience has shown that past trivial cases it's generally much more work than the orthodox method (indeed, much of this experience was won in the 1990s and earlier, before XSLT even existed), and (b) it introduces an architectural dependency. Specifically, the output must be written as a file, something that is not necessary in many XML processing architectures for which XSLT is well suited.
Re: [xsl] Need to output an opening or closing tag by itself
Subject: Re: [xsl] Need to output an opening or closing tag by itself From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx> Date: Wed, 25 Jun 2008 10:08:32 -0400 |
David,
<xsl:template match="e"> <xsl:choose> <xsl:when test="@t ='a'"> <e> </xsl:when> <xsl:when test="@t ='b'"> </e> </xsl:when> <xsl:otherwise> <xsl:message terminate="yes"> Unexpected data in attribute t. </xsl:message> </xsl:otherwise> </xsl:choose> </xsl:template>
Even if it worked (the code is syntactically broken), this approach constitutes "tag-writing", and won't work in XSLT for reasons others will explain (or have done so). XSLT doesn't work with tags; it works on a tree of nodes derived from the tagging of the input: elements, attributes and text arranged in a hierarchy, and it builds the same kind of tree.
Your problem is properly approached, in XSLT, as a grouping problem. The nodes between the 'e' elements must be grouped together.
As such, it infers a structure that is only implicit in the original data, and thus qualifies as an "upconversion" (a transformation that adds information). Accordingly, it isn't going to be easy without using features designed for this purpose. Most of these make an appearance only in XSLT 2.0, although techniques have been devised in XSLT 1.0 to accomplish it (such as sibling recursion or structural induction using keys to associate the groups).
If you really want to use a tag-writing approach to transformation, even in XSLT, that can be done, but (a) experience has shown that past trivial cases it's generally much more work than the orthodox method (indeed, much of this experience was won in the 1990s and earlier, before XSLT even existed), and (b) it introduces an architectural dependency. Specifically, the output must be written as a file, something that is not necessary in many XML processing architectures for which XSLT is well suited.
Cheers, Wendell
====================================================================== Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx Mulberry Technologies, Inc. http://www.mulberrytech.com 17 West Jefferson Street Direct Phone: 301/315-9635 Suite 207 Phone: 301/315-9631 Rockville, MD 20850 Fax: 301/315-8285 ---------------------------------------------------------------------- Mulberry Technologies: A Consultancy Specializing in SGML and XML ======================================================================
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Need to output an opening, Pankaj Chaturvedi | Thread | RE: [xsl] Need to output an opening, Hofman, Peter |
Re: AW: [xsl] XML to PDF (XSL:FO), Wendell Piez | Date | [xsl] XSL 2.0 Requirements, survey , Tony Graham |
Month |