 | |
XML
saves the world
<?> | | |
Extensibility challenges
XML has (several) mechanisms for describing constraints for a document to be "valid" for a
given application. (Initially, DTDs, and more recently XML Schema,
Relax NG, Schematron.)
This notion of validity is almost entirely syntactic. These are pretty much based on formal syntax description
techniques, or regular expressions.
The various syntactic constraint mechanisms present varying degrees of challenge for extensibility of
data formats. DTDs are notoriously infexible in this respect.
XML Schemas are better, provided that the desired extension points have been correctly identified in
the original schema design.
XML is still weak in the area of "language mixing". The introduction of XML namespaces
goes some way to addressing these issues by providing a framework for
avoiding element and attribute name clashes. The limitations of XML are particularly noticeable
when one tries to embedd XML data from an application into
another application's XML document format. Surprisingly, XML does not provide a reliable way to
encapsulate one XML document inside another: there are scoped
mechanisms (e.g. language tagging and namespace declarations) that can change an application's interpretation
of an XML document when it is nested in another.
This means that XML-based languages that are to be combined in a single XML document should be designed
each with some knowledge of the others.
|