Design requirements
- how should a schema language be designed?
From the W3C Note "XML Schema Requirements" (Feb. 1999):
Design principles: The XML schema language shall be
- more expressive than XML DTDs;
- expressed in XML;
- self-describing;
- usable by a wide variety of applications that employ XML;
- straightforwardly usable on the Internet;
- optimized for interoperability;
- simple enough to be implemented with modest design and runtime resources;
- coordinated with relevant W3C specs.
Structural requirements: The XML schema language must define:
- mechanisms for constraining document structure (namespaces,
elements, attributes) and content (datatypes, entities, notations);
- mechanisms to enable inheritance for element, attribute, and datatype definitions;
- mechanism for URI reference to standard semantic understanding of a construct;
- mechanism for embedded documentation;
- mechanism for application-specific constraints and descriptions;
- mechanisms for addressing the evolution of schemata;
- mechanisms to enable integration of structural schemas with primitive data types.
W3C's schema language, XML Schema, has been defined with these criteria in
mind. In our opinion, XML Schema
- is not expressive enough,
- is not self-describing,
- definitely not simple,
- does not properly address schema evolution.
The DSD language provides an alternative, which (we believe) satisfies the requirements.