I keep hearing about alternatives to DTDs. What's a Schema?
Answer:
The W3C XML Schema recommendation provides a means of specifying formal data
typing and validation of element content in terms of data types, so that document type
designers can provide criteria for checking the data content of elements as well as the
markup itself. Schemas are written in XML Document Syntax, like XML documents are,
avoiding the need for processing software to be able to read XML Declaration Syntax
(used for DTDs).
There is a separate Schema FAQ at http://www.schemavalid.comFAQ. The term
‘vocabulary’ is sometimes used to refer to DTDs and Schemas together. Schemas are
aimed at e-commerce, data control, and database-style applications where character data
content requires validation and where stricter data control is needed than is possible with
DTDs; or where strong data typing is required. They are usually unnecessary for
traditional text document publishing applications.
Unlike DTDs, Schemas cannot be specified in an XML Document Type Declaration.
They can be specified in a Namespace, where Schema-aware software should pick it up,
but this is optional:
<invoice id="abc123"
xmlns="http://example.org/ns/books/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://acme.wilycoyote.org/xsd/invoice.xsd">
...
</invoice>
More commonly, you specify the Schema in your processing software, which should
record separately which Schema is used by which XML document instance.
In contrast to the complexity of the W3C Schema model, Relax NG is a lightweight,
easy-to-use XML schema language devised by James Clark (see http://relaxng.org/) with
development hosted by OASIS. It allows similar richness of expression and the use of
XML as its syntax, but it provides an additional, simplified, syntax which is easier to use
for those accustomed to DTDs.
typing and validation of element content in terms of data types, so that document type
designers can provide criteria for checking the data content of elements as well as the
markup itself. Schemas are written in XML Document Syntax, like XML documents are,
avoiding the need for processing software to be able to read XML Declaration Syntax
(used for DTDs).
There is a separate Schema FAQ at http://www.schemavalid.comFAQ. The term
‘vocabulary’ is sometimes used to refer to DTDs and Schemas together. Schemas are
aimed at e-commerce, data control, and database-style applications where character data
content requires validation and where stricter data control is needed than is possible with
DTDs; or where strong data typing is required. They are usually unnecessary for
traditional text document publishing applications.
Unlike DTDs, Schemas cannot be specified in an XML Document Type Declaration.
They can be specified in a Namespace, where Schema-aware software should pick it up,
but this is optional:
<invoice id="abc123"
xmlns="http://example.org/ns/books/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://acme.wilycoyote.org/xsd/invoice.xsd">
...
</invoice>
More commonly, you specify the Schema in your processing software, which should
record separately which Schema is used by which XML document instance.
In contrast to the complexity of the W3C Schema model, Relax NG is a lightweight,
easy-to-use XML schema language devised by James Clark (see http://relaxng.org/) with
development hosted by OASIS. It allows similar richness of expression and the use of
XML as its syntax, but it provides an additional, simplified, syntax which is easier to use
for those accustomed to DTDs.
No comments:
Post a Comment