OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: XQuery & XSLT was RE: Verboseness - XML Syntax for XQuery 1.0(XQueryX)

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
>          <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:

    # $h/title #
    <xs:if test="$h/@type = 'journal'">
      <xs:then># $h/@editor #</xs:then>
      <xs:else># $h/@author #</xs:else>

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:if test="$h/@type = 'journal'">

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