In order to leverage XML's power as a self-describing and extensible language, we need a way to define and describe the allowable content of any type of XML document. In the past, this has been achieved with DTDs, but these have in many ways fallen short of the requirements for working with data. XML Schemas were created to provide a more powerful and flexible mechanism for describing permissible document structures using XML syntax. They provide a set of built-in datatypes, which can mimic the object-oriented mechanisms of many languages, offer support for namespaces, and facilities for automated documentation.
Professional XML Schemas exhaustively details the W3C XML Schema language, and teaches the new syntax in an intuitive and logical way. From declaring elements and attributes, creating complex content models, and working with multiple namespaces, you'll move on to see how XML Schemas are used in real-world situations. A number of practical case studies will illustrate the design and creation of schemas in the diverse worlds of relational databases, document management, and e-commerce applications.
This book covers:
A complete guide to XML Schema Syntax
Using XML Schema built-in types, and deriving new types
Working with XML Schemas and namespaces
Creating identity and uniqueness constraints
Good XML Schema design, illustrated in a number of different areas
Working with XML Schemas and XSLT
Writing XML Schemas for working with SOAP
Integrating Schematron and XML Schemas
Suitable for virtually any XML designer or developer, Professional XML Schemas provides a challenging, in-depth guide to state-of-the-art XML Schema tools and techniques. This title will likely be a virtual must-have for anyone working with XML for databases or document management.
The range of topics presented here helps make this title a success. While there is some leading-edge (and somewhat obscure) material on emerging topics in XML Schemas, much of the book avoids XML "language lawyering" and concentrates on delivering a solid tour of the basics. The authors walk before they run, taking the reader along with basic XML Schema constructs to define simple data types in XML. They show off elements, attributes, and simple data types. (There's coverage of the full complement of over two dozen built-in XML Schema data types for numerical, string, date, and IDREFs.) The earlier sections include the author's own sample classes for a handful of common data types for such common entities as people's names, countries, IP addresses and URIs, plus geographical locations. Fully internationalized, these samples can serve as a basis for entities in your custom projects.
The second half of the book digs into design strategies at a higher level, dealing more with XML Schemas. The authors cover several reusable design strategies for creating workable XML Schemas (like the Russian Doll, the Slice, and finally the Venetian Blind model, which blends the first two). There's discussion of the best ways to express required and optional elements, along with choice values and ordering of required elements. Integration with XML namespaces and a discussion of the issues surrounding reuse in XML Schemas (like combining and extending existing datatypes) show how powerful this standard really is.
Valuable chapters on using XML Schemas with databases (including expressing relational integrity and normalization), plus the differences between XML Schemas used for document management will help you make the right design choices in each setting. The book closes with a discussion and tour of late-breaking tools like Schematron (and its competitors) as well as the possibilities for functional programming with XML Schema in schema-based programming (SBP).
Whether you are an XML novice or expert, this text will extend the range of what you can accomplish with XML Schemas, from creating more reusable datatypes to reusing existing schemas. While XML Schemas will perhaps never be as simple as using DTDs, this book succeeds at putting this new standard into reach for any working developer or designer. --Richard Dragan