Subject: RE: Chapter 14 of the XML Bible now online From: Kay Michael <Michael.Kay@xxxxxxx> Date: Wed, 21 Jul 1999 09:35:08 +0100 |
>The select attribute uses the same kind of patterns as the match attribute of the xsl:template element. I'd be inclined to be clear that this point that expressions and patterns are not the same thing though they look very similar. >If no select attribute is present, all child elements are selected. No, all child nodes. >The xsl:value-of element copies the value of a node in the input document into the output document. Only if what you give it is a nodeset expression. If you give it, say, a count() function, it outputs that instead. >The value of this element is shown below: Hydrogen H You're making the assumption here that whitespace nodes aren't being stripped. ><xsl:template match="//ATOMIC_NUMBER"> "//" at the beginning of a pattern is noise, it doesn't alter the value of the pattern. (The same isn't true of an expression, however). >The test brackets can contain more than simply a child element name. In fact, they can contain any select expression. Actually, any expression. There's no such thing as a select expression any more, the nearest thing is a nodeset expression. But the predicate is actually evaluated as either a boolean or an integer. >One type of pattern testing that proves especially useful is string equality. An equals sign (=) can test whether the value of a node identically matches a given string. It was limited to that a couple of drafts ago but is now much more powerful. >A node set is a list of nodes from the input document Well actually it's a set of nodes! It becomes a list (in document order) when you process it using xsl:for-each or xsl:apply-templates. Operations like union treat it as a set, eliminating duplicates. >The same template rule could be written using the not equal operator != instead: Yes in this case. But when nodesets are involved, x!=y doesn't mean the same as not(x=y). It means (exists x1 in x, y1 in y : x1 != y1). Also note that the meaning of "=" has changed in the latest draft: if an attribute ATT is absent, then @ATT="" was true in the last draft, but is false now; and @ATT!="" is also false; but not(@ATT="") is true. (Personally, I wish they'd gone for SQL-style 3-valued logic) >XSL provides the standard four arithmetic operators: + for addition - for subtraction remember that the - may need a space before it to avoid it being swallowed into a name, e.g. a-b is a single hyphenated name, not a subtraction! >Node sets are converted by concatenating the values of the nodes in the set. No, it takes the value of the first node (in document order) and ignores the others. >. This is accomplished by using of xsl:element, xsl:attribute, xsl:pi, xsl:comment, and xsl:text elements xsl:pi has been renamed. >you can use any of the string expressions discussed earlier in an attribute value template Actually, any expression, not just a string expression. ><xsl:attribute name="HREF"> <xsl:value-of select="SYMBOL"/>.html </xsl:attribute> I'd encourage people to avoid leading and trailing whitespace in attribute values, it can cause confusion. >A style sheet in which multiple attribute sets of the same importance define the same attribute is in error. I don't think so. Not my reading of the spec anyway. >Generating Processing Instructions with xsl:pi xsl:processing-instruction And it's probably worth mentioning that the xml declaration isn't a PI, even though Microsoft think otherwise. >The xsl:number element inserts a formatted integer into the output document Or a list of integers (level=multiple) >For example, to start numbering at 5, set format="5". An interesting reading of the spec. I read it differently, but I can't disagree. It basically says the implementation can do what it likes! >Standard XSL contains no means to insert raw, unescaped < characters that are not part of a tag into the output. Inserting ampersands can also be a problem, e.g. to create URLs. >The xsl:variable element defines a named string Not just a string. Named node-sets can be very useful and are often overlooked. (By the way, your font has gone wrong at this point. And I get the impression you were getting a bit tired by the time you wrote the tail end of this chapter - can't blame you!). Do give SAXON a mention! Mike Kay I first sent this to Elliotte off-list but it bounced. XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: Chapter 14 of the XML Bible now, David Story | Thread | Embedding HTML tags into XML, Hugh Speirs |
RE: Building a nodeset by recursion, Kay Michael | Date | Re: Building a nodeset by recursion, David Carlisle |
Month |