Home arrow XML arrow Page 8 - Understanding XML Schema

Dealing With The Ref - XML

Imagine a technology that offered you all the power of a DTD without the associated unpleasantness of those strange symbols and arcane commands. Sounds too good to be true? Say hello to XML Schema.

  1. Understanding XML Schema
  2. The Next Generation
  3. An Evening At The Moulin Rouge
  4. Simple Simon
  5. A Complex Web
  6. Nesting Season
  7. Battle Of The Sexes
  8. Dealing With The Ref
  9. Different Flavours
  10. When In Rome...
  11. Test Drive
  12. The Next Step
By: Harish Kamath, (c) Melonfire
Rating: starstarstarstarstar / 3
October 15, 2001

print this article


Now, while it's certainly possible to build a schema in the manner just described, with the schema definition following the structure of the document instance, such a schema can prove difficult to maintain and read with long and complex documents. Consequently, the XML Schema specification allows for an alternative method of schema construction, whereby elements and attributes can be defined separately and then referenced wherever required.

An example might help to make this clearer - consider the following revision of the previous example:

<?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="title" type="xsd:string"/> <xsd:element name="release_date" type="xsd:date"/> <xsd:element name="rating" type="xsd:integer"/> <xsd:attribute name="genre" type="xsd:string"/> <xsd:attribute name="sex" type="xsd:string"/> <xsd:element name="person"> <xsd:complexType> <xsd:simpleContent> <xsd:restriction base="xsd:string"> <xsd:attribute ref="sex" /> </xsd:restriction> </xsd:simpleContent> </xsd:complexType> </xsd:element> <xsd:element name="cast"> <xsd:complexType> <xsd:sequence> <xsd:element ref="person" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> <!-- it all comes together here --> <xsd:element name="movie"> <xsd:complexType> <xsd:sequence> <xsd:element ref="title"/> <xsd:element ref="cast"/> <xsd:element ref="release_date" maxOccurs="1" minOccurs="0"/> <xsd:element ref="rating"/> </xsd:sequence> <xsd:attribute ref="genre"/> </xsd:complexType> </xsd:element> </xsd:schema>
In this form of construction, each element and attribute is defined separately and can be referenced by any other element definition via the "ref" attribute. This type of schema definition is much easier to read than the previous one.

>>> More XML Articles          >>> More By Harish Kamath, (c) Melonfire

blog comments powered by Disqus
escort Bursa Bursa escort Antalya eskort


- Google Docs and Xpath Data Functions
- Flex Array Collection Sort and Filtering
- The Flex Tree Control
- Flex List Controls
- Working with Flex and Datagrids
- How to Set Up Podcasting and Vodcasting
- Creating an RSS Reader Application
- Building an RSS File
- An Introduction to XUL Part 6
- An Introduction to XUL Part 5
- An Introduction to XUL Part 4
- An Introduction to XUL Part 3
- An Introduction to XUL Part 2
- An Introduction to XUL Part 1
- XML Matters: Practical XML Data Design and M...

Developer Shed Affiliates


Dev Shed Tutorial Topics: