Extensible Markup Language (XML) uses notation inherited from the Standard Generalized Markup Language (SGML) to represent document structures and inclusions in its Document Type Definitions (DTDs). While this achieves considerable compatibility with SGML, it makes it impossible to extend the capacities of a DTD beyond those provided in SGML, requires developers to understand two different syntaxes for documents and DTDs, and forces tool builders to create a separate set of tools for managing DTDs.
This XSchema specification describes an XML document representation for the structural information currently represented by DTDs, and a transformation from XSchema documents to DTDs. This specification also suggests mechanisms and processing models for connecting documents to XSchemas.
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 focused more 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).
may - XSchemas are permitted but not required to behave as described.
must - XSchemas must behave as described. Failure to behave as described constitutes an error.
error - A breach of the rules set forth in this specification. Software should report this error to the user.
[to be filled in as the specification develops.]