O'Reilly logo

XQuery, 2nd Edition by Priscilla Walmsley

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 14. Using Schemas with XQuery

Using schemas can result in queries that are better optimized and tested. This chapter first provides a brief overview of XML Schema. It then explains how schemas are used with queries by importing schema definitions and taking advantage of schema-defined types.

Full coverage of XML Schema is outside the scope of this book. For detailed coverage, please see Definitive XML Schema, 2nd Edition by Priscilla Walmsley (Prentice Hall).

What Is a Schema?

A schema is used to describe the structure and data content of XML documents. Example 14-1 shows a schema that might describe our catalog.xml sample document. This schema can be used to validate the catalog document, assuring that:

  • Only approved elements and attributes are used.

  • The elements appear in the correct order.

  • All required elements are present.

  • All elements and attributes have valid values.

In addition, it can provide information to the query processor about the types of the values in the document—for example, that product numbers are integers.

Example 14-1. Schema for the product catalog (prod_nons.xsd)
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="catalog" type="CatalogType"/>
  <xs:complexType name="CatalogType">
    <xs:sequence>
      <xs:element ref="product" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="product" type="ProductType"/>
  <xs:complexType name="ProductType">
    <xs:sequence>
      <xs:element name="number" type="xs:integer"/>
      <xs:element name="name" ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required