[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: XQuery & XSLT was RE: Verboseness - XML Syntax for XQuery 1.0(XQuery
On Tue, 19 Jun 2001, Jonathan Robie wrote: > I need more detail on this to understand what you want. Let me ask you a > few questions based on one of Evan's examples > (http://xmlportfolio.com/xsltuk/slides/Q18b.html). > > In the new XQuery syntax, it looks like this: > > FOR $h IN //holding > RETURN > <holding> > { $h/title } > { > IF ($h/@type = "Journal") > THEN $h/editor > ELSE $h/author > } > </holding> > SORTBY(title) > > Note that the curly braces indicate expressions to be evaluated, as opposed > to literal content. This is actually incredibly similar to the syntax for "interpolations" in XML Script 2 (see http://www.xmlscript.org/), where the above would probably be something like: <xs:output> <holding> # $h/title # <xs:if test="$h/@type = 'journal'"> <xs:then># $h/@editor #</xs:then> <xs:else># $h/@author #</xs:else> </xs:if> </holding> </xs:output> The text between '#' signs is an interpolation (the interpolation delimiters don't have to be '#' signs, that's just the default). If you don't like the 'non-XMLness' you can write <xs:output> <holding> <xs:eval>$h/title</xs:eval> <xs:if test="$h/@type = 'journal'"> <xs:then><xs:eval>$h/@editor</xs:eval></xs:then> <xs:else><xs:eval>$h/@author</xs:eval></xs:else> </xs:if> </holding> </xs:output> though you obviously can't use an <xs:eval> inside attribute values, whereas you can put interpolations inside attribute values. -- Richard Lanyon, Software Engineer DecisionSoft Ltd. Telephone: +44-1865-203192 http://www.decisionsoft.com "The medium is the message" -- Marshall McLuhan
|
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
|