[Previous] [Contents] [Next]


XSchema


While XML-Data, RDF, and DCD have some big names behind them (Microsoft, Netscape, and IBM), XSchema is the result of extended discussions on the XML-DEV Internet mailing list. Although its contributor list sounds a bit like the roll call for the XML Hall of Fame, XSchema has had no major commercial development support and is simply the result of the hard work of a few dedicated individuals; not least among them Simon St. Laurent, who acts as coordinator, motivator, contributor, and editor.

The XML-Data, RDF, and DCD proposals all require you to include the schema information in the DTD. XSchema is different. It has a DTD, which in a sense is a good way of formalizing its syntax, but it uses a schema document that is in standard XML syntax rather than a separate DTD syntax. The first software that can be used to convert an XML DTD into an XSchema document is already becoming available. Other tools-including one to do the reverse conversion-should follow in due course.



As with the other proposals, the heart of XSchema is an element declaration. XSchema uses an element declaration whose own declaration (from the XSchema DTD) looks like this:

<!ELEMENT ElementDecl (Doc?, More?, Model, AttGroup?)>
<!ATTLIST ElementDecl
          Name    NMTOKEN  #REQUIRED
          id      ID       #REQUIRED
          prefix  NMTOKEN  #REQUIRED
          ns      CDATA    #IMPLIED
          Root    (Recommended | Possible | Unlikely) "Possible">
Most of these child elements and attributes speak for themselves, but one isn't quite so obvious and deserves special attention. The More element allows anyone to extend XSchema by adding their own supplements. You could, for example, add to XSchema to more tightly control the possible content of element models.

The latest draft of XSchema is, at the time of writing, less than a week old. As a result, there's not too much more to be said about it other than to go into more technical detail, which is outside the scope of this book. Although XSchema is very definitely still in the experimental stage, the skill, knowledge, and enthusiasm of the people involved in it has ensured that XSchema has a lot of potential and holds a lot of promise.

[Previous] [Contents] [Next]