The Cover PagesThe OASIS Cover Pages: The Online Resource for Markup Language Technologies
Advanced Search
Site Map
CP RSS Channel
Contact Us
Sponsoring CP
About Our Sponsors

Cover Stories
Articles & Papers
Press Releases

XML Query

XML Applications
General Apps
Government Apps
Academic Apps

Technology and Society
Tech Topics
Related Standards
Created: August 20, 2002.
News: Cover StoriesPrevious News ItemNext News Item

W3C Working Groups Update Specifications for XSLT, XML Query, and XPath.

Seven revised working draft specifications have been published by the W3C Working Groups for XML Query, XSL, and XML Schema. Several working drafts represent collaborative work by the XSL and XML Query Working Groups, which are jointly responsible for XPath 2.0, a language derived from both XPath 1.0 and XQuery; the XPath 2.0 and XQuery 1.0 Working Drafts are generated from a common source. The updated working drafts include: XSL Transformations (XSLT) Version 2.0; XML Path Language (XPath) 2.0; XML Query Use Cases; XQuery 1.0: An XML Query Language; XQuery 1.0 and XPath 2.0 Formal Semantics; XQuery 1.0 and XPath 2.0 Data Model; XQuery 1.0 and XPath 2.0 Functions and Operators. Comments on these drafts may be send to the W3C Query and Transform mailing list ('public-qt-comments') set up for public feedback on W3C specifications published by the XML Query and XSL Working Groups.

Summaries from the Working Drafts:

XSL Transformations (XSLT) Version 2.0. "This specification defines the syntax and semantics of XSLT 2.0, which is a language for transforming XML documents into other XML documents. XSLT 2.0 is designed to be used in conjunction with XPath 2.0... The most significant change is the addition of an instruction, xsl:analyze-string, to match text against a regular expression. This is designed to facilitate applications of XSLT that add XML markup to documents whose structure is implicit in the text, using conventions such as comma-separated values... A transformation in the XSLT language is expressed in the form of a stylesheet, whose syntax is well-formed XML conforming to the Namespaces in XML Recommendation. A stylesheet generally includes elements that are defined by XSLT as well as elements that are not defined by XSLT. XSLT-defined elements are distinguished by use of the XML namespace, which is referred to in this specification as the XSLT namespace. Thus this specification is a definition of the syntax and semantics of the XSLT namespace. The term stylesheet reflects the fact that one of the important roles of XSLT is to add styling information to an XML source document, by transforming it into a document consisting of XSL formatting objects, or into another presentation-oriented format such as HTML, XHTML, or SVG. However, XSLT is used for a wide range of XML-to-XML transformation tasks, not exclusively for formatting and presentation applications. A transformation expressed in XSLT describes rules for transforming one or more source trees into one or more result trees. The transformation is achieved by a set of template rules. A template rule associates a pattern, which matches nodes in the source document, with a content constructor, which can be evaluated to produce part of a result tree. The structure of the result trees can be completely different from the structure of the source trees. In constructing a result tree, nodes from the source trees can be filtered and reordered, and arbitrary structure can be added. This mechanism allows a stylesheet to be applicable to a wide class of documents that have similar source tree structures..."

XML Path Language (XPath) 2.0. "XPath is a language for addressing parts of an XML document... XPath uses a compact, non-XML syntax to facilitate use of XPath within URIs and XML attribute values. XPath operates on the abstract, logical structure of an XML document, rather than its surface syntax. This logical structure is known as the data model, and is described in the [XQuery 1.0 and XPath 2.0 Data Model] document. XPath gets its name from its use of a path notation as in URLs for navigating through the hierarchical structure of an XML document. XPath is designed to be embedded in a host language such as XSLT 2.0 or XQuery...This document is the result of joint work by the XSL and XML Query Working Groups, which are jointly responsible for XPath 2.0, a language derived from both XPath 1.0 and XQuery. The XPath 2.0 and XQuery 1.0 Working Drafts are generated from a common source. These languages are closely related, sharing much of the same expression syntax and semantics, and much of the text found in the two Working Drafts is identical. This version of the document contains new details about error handling and conformance. It contains a new grammar in which the precedence of operators is explicitly represented. It introduces two new operators (unordered and idiv), and deletes four operators (assert, precedes, follows, and =>). It also describes changes to the detailed semantics of cast expressions and other operators, as summarized in the Revision Log...

XML Query Use Cases. "This document specifies usage scenarios for the W3C XML Query data model, algebra, and query language... The use cases were created by the XML Query Working Group to illustrate important applications for an XML query language. Each use case is focused on a specific application area, and contains a Document Type Definition (DTD) and example input data. Each use case specifies a set of queries that might be applied to the input data, and the expected results for each query. Since the English description of each query is concise, the expected results form an important part of the definition of each query, specifying the expected output format. These use cases were originally published as part of the W3C XML Query Requirements document, without solutions in concrete query languages. Now it is being republished with solutions for XQuery. Several implementors have asked that we make the queries from these use cases available in a separate file to make it easier for them to test their parsers. These queries may be found in Use Case Sample Queries. Also, the queries from the XQuery specification itself have been made available in XQuery Sample Queries..."

XQuery 1.0: An XML Query Language. "XML is a versatile markup language, capable of labeling the information content of diverse data sources including structured and semi-structured documents, relational databases, and object repositories. A query language that uses the structure of XML intelligently can express queries across all these kinds of data, whether physically stored in XML or viewed as XML via middleware. This specification describes a query language called XQuery, which is designed to be broadly applicable across many types of XML data sources... XQuery is designed to be a language in which queries are concise and easily understood. It is also flexible enough to query a broad spectrum of XML information sources, including both databases and documents. The Query Working Group has identified a requirement for both a human-readable query syntax and an XML-based query syntax. XQuery is designed to meet the first of these requirements. XQuery is derived from an XML query language called Quilt [Quilt], which in turn borrowed features from several other languages... Much of this document is the result of joint work by the XML Query and XSL Working Groups, which are jointly responsible for XPath 2.0, a language derived from both XPath 1.0 and XQuery. The XPath 2.0 and XQuery 1.0 Working Drafts are generated from a common source. These languages are closely related, sharing much of the same expression syntax and semantics, and much of the text found in the two Working Drafts is identical..."

XQuery 1.0 and XPath 2.0 Formal Semantics. This document defines the formal semantics of XQuery 1.0: A Query Language for XML XML Path Language (XPath) 2.0... Among the most important changes from the previous version of this document are: (1) The addition of the semantics of XPath 2.0, notably changes in Section 5.2 'Path Expressions'; (2) A new type system aligned with XML Schema; (3) The semantics of constructors; (4) An improved presentation... Two important design aspects of XPath/XQuery are that it is functional and that it is typed. These two aspects play an important role in the XPath/XQuery Formal Semantics. XPath/XQuery is a functional language. It is built from expressions, rather than statements. Every construct in the language (except for the query prolog) is an expression and expressions can be composed arbitrarily. The result of one expression can be used as the input to any other expression, as long as the type of the result of the former expression is compatible with the input type of the latter expression with which it is composed. Another aspect of the functional approach is that variables are always passed by value and their value cannot be modified through side-effects. XPath/XQuery is a typed language. Types can be imported from one or more XML Schemas describing the documents that will be processed, and the XPath/XQuery language can then perform operations based on these types (e.g., using a treat as operation). In addition, XPath/XQuery also supports a level of static type analysis. This means that the system can perform infer the type of an expression/query, based on the type of its inputs. Static typing allows early error detection, and can be used as the basis for certain forms of optimization. The type system of XPath/XQuery is based on XML Schema..."

XQuery 1.0 and XPath 2.0 Data Model. This document defines the XQuery 1.0 and XPath 2.0 Data Model, which is the data model of XSLT 2.0 and XQuery 1.0: A Query Language for XML 1.0. The XQuery 1.0 and XPath 2.0 Data Model serves two purposes. First, it defines precisely the information contained in the input to an XSLT or XQuery processor. Second, it defines all permissible values of expressions in the XSLT, XQuery, and XPath languages. A language is closed with respect to a data model if the value of every expression in a language is guaranteed to be in the data model. XSLT 2.0, XQuery 1.0, and XPath 2.0 are all closed with respect to the data model. The data model is based on the XML Information Set, but it requires the following new features to meet the XPath Requirements Version 2.0 and XML Query Requirements: (1) Support for XML Schema types. (2) Representation of collections of documents and of complex values... As with the Infoset, the XQuery 1.0 and XPath 2.0 Data Model specifies what information in the documents is accessible, but it does not specify the programming-language interfaces or bindings used to represent or access the data... The most significant changes since the previous version are the following. The subsections on Nodes (4.1-4.7) have been reorganized to 'sandbox' the mapping from the PSVI, i.e., make the definition of the accessors depend not on the PSVI properties, but on the arguments passed to the constructor. In particular the definition of the dm:typed-value() accessor has been updated and made more precise. We have defined the mapping from the data model to the XML Information Set in the sections 4.X.5. The section on Errors and all references to the error value have been removed. The constructors dm:element-node-atomic and dm:attribute-node-atomic have been removed..."

XQuery 1.0 and XPath 2.0 Functions and Operators. This document defines basic operators and functions on the datatypes defined in XML Schema Part 2: Datatypes for use in XQuery, XPath, XSLT and other related XML standards. It also discusses operators and functions on nodes and node sequences as defined in the XQuery 1.0 and XPath 2.0 Data Model for use in XQuery, XPath, XSLT and other related XML standards... The document is generally unconcerned with the specific syntax with which these constructor functions, operators, and functions will be used, and focuses instead on defining the semantics of them as precisely as feasible. Among the more important changes from the previous version of this document are [1] a new algorithm for selecting the collation to be used when certain character string operations are performed, [2] simplifications of the rules for casting, and [3] a more complete specification of functions that implement regular expression capabilities..."

Bibliographic information for 2002-08-16 working drafts:

Principal references:

Hosted By
OASIS - Organization for the Advancement of Structured Information Standards

Sponsored By

IBM Corporation
ISIS Papyrus
Microsoft Corporation
Oracle Corporation


XML Daily Newslink
Receive daily news updates from Managing Editor, Robin Cover.

 Newsletter Subscription
 Newsletter Archives
Bottom Globe Image

Document URI:  —  Legal stuff
Robin Cover, Editor: