XML schema
|
An XML schema is a description of a type of XML document, typically expressed in terms of constraints on the structure and content of documents of that type, above and beyond the basic syntax constraints imposed by XML itself. An XML schema provides a view of the document type at a relatively high level of abstraction.
There are languages developed specifically to express XML schemas. XML's built-in Document Type Definition (DTD) language can be considered as a schema language, although it is inadequate for many purposes. Two other very popular XML schema languages are XML Schema and RELAX NG.
The mechanism for associating an XML document with a schema varies according to the schema language. The association may be achieved via markup within the XML document itself, or via some external means.
The process of checking to see if an XML document conforms to a schema is called validation, not to be confused with XML's core concept of syntactic well-formedness. All XML documents must be well-formed, but it is not required that a document be valid unless the XML parser is "validating", in which case the document is also checked for conformance with its associated schema. DTD-validating parsers are most common, but some support W3C XML Schema or RELAX NG as well.
Documents are only considered valid if they satisfy the requirements of the schema with which they have been associated. These requirements typically include such constraints as:
- Elements and attributes that must/may be included, and their permitted structure
- How character data is to be interpreted, e.g. as a number, a date, a URL, a Boolean, etc
XML schema languages
- Document Type Definition (DTD)
- W3C XML Schema (WXS)
- RELAX NG and its predecessors RELAX and TREX
- Document Schema Definition Languages (DSDL)
- Namespace Routing Language (NRL)
- Simple Outline XML (SOX)
- XML-Data
- XML-Data Reduced (XDR)
- Document Structure Description (DSD)