In order for document processing to be reliable, it is necessary to be able to describe classes of documents and to verify individual documents' membership in these classes -- in other words, to be able to express constraints on documents and thus define 'document types'. XML inherits a mechanism for doing this from SGML: the Document Type Definition. XML DTDs can perform a subset of the functions of SGML DTDs.
DTDs have limited expressiveness and it is necessary to experiment with new ideas in schema design. These ideas include a syntax that is more like that of XML document content, certain kinds of extensibility and a cleaner separation between parsing and verifying. XSchema is an experimental schema language designed to provide a starting point for these experiments.
So that XSchemas will be immediately useful with existing software, the XSchema specification will describe a conversion from XSchema documents to DTDs. This initial version of the XSchema specification is deliberately simple, providing an initial base for implementations while introducing as few complicating factors as possible. Authors accustomed to DTD creation will find their toolset constricted; it is hoped that supporting software and tools available from other standards will make up for this reduced toolset.
The XSchema specification is the product of discussions on the xml-dev mailing list. This document has no official status. The editors have no affiliation with the World Wide Web Consortium (W3C), the organization developing and maintaining the XML standard, nor any affiliation with any W3C member organizations. While it is hoped that this document may eventually be submitted to the W3C as a Note, it is not an official specification and should be considered experimental.
Proposals for describing SGML document type definitions using document syntax rather than the separate declaration syntax have been under development for a number of years, and used by several tools for documentation. The current proposal arose from a number of concerns surrounding XML's usability and consistency. Originally conceived of as a mapping of DTD syntax to document syntax, the project has developed into an effort focused on creating schemas describing element and attribute structures rather than preserving every function provided by XML 1.0 DTDs.
The list of goals developed by the xml-dev discussion follows:
XSchemas use XML 1.0 document instance syntax and may be applied to XML 1.0 documents. XSchemas are also designed to make use of XML namespaces. It is hoped that XSchemas and RDF Schemas may be mapped to each other. This specification has also been influenced by the discussion of the XML-Data proposal made to the W3C on 5 January, 1998. XSchema also refers to several IETF standards, notably Multipurpose Internet Mail Extensions (MIME).
The requirement levels used throughout this document reflect the approach of RFC 2119 (http://www.isi.edu/in-notes/rfc2119.txt), though keywords (like may and must) are not capitalized. Other terms used are defined in the XML 1.0 Recommendation, available at http://www.w3.org/TR/1998/REC-xml-19980210.
The XSchema specification is the result of contributions from a large number of people on the XML-Dev list, coordinated by a smaller group of authors.
|
Ron Bourret |
John Cowan |
|
Paul Prescod |
Peter Murray-Rust |
Alain Deseine |
|
Chris Maden |
Rick Jelliffe |
Toby Speight |
|
Jeni Tennison |
Marcus Carr |
Michael Kay |
|
James Anderson |
David Megginson |
Don Park |
|
James K. Tauber |
Tim Bray |
John Simpson |
|
Steven Champeon |
Andrew Layman |
Arjun Ray |
|
Curt Arnold |
Bill la Forge |
Bryan Gilbert |
|
Carl Hage |
Dan Brickley |
David Brownell |
|
David G. Durand |
David Ornstein |
David Rosenborg |
|
Eric Albright |
Francis Norton |
Frank Boumphrey |
|
Gisli Olafsson |
Dirk Gouders |
Guy Huard |
|
Jacek Ambroziak |
Jack Bolles |
Jarle Stabell |
|
Jeremy H. Griffith |
Jon Bosak |
Lars Marius Garshol |
|
Liam Quin |
Lisa Rein |
Mark D. Anderson |
|
Matt Mower |
Matthew Gertner |
Mark Tucker |
|
Kenneth J. Meltsner |
Murata Makoto |
Murray Maloney |
|
Parameshwor Karki |
Paul Haahr |
Paul Rabin |
|
Robin Cover |
Scott Vanderbilt |
Sean McGrath |
|
Simon North |
Stefan Wagner |
Steve Withall |
|
Steven R. Newcomb |
Thuy-Lin Nguyen |
Todd Ross |
|
W.E. Perry |
Will Hunt |
|