SchemaComposition

From W3C Wiki

In W3C XML Schema, a schema is a set of components. Components, in turn, are abstract objects with properties as described in the XML Schema spec. Schema components may be described using the XML transfer syntax defined in the spec, or using other means; components may be constructed through a GUI or an API, or constructed on the basis of a written description like the XML transfer syntax.

Schema assembly is the process of collecting components for use in a particular validation episode.

In normal discussion, the term schema composition is sometimes used to mean "schema assembly" (think: the composition of a symphony), and sometimes to denote operations which take two schemas as input and produce a schema as output (think: composition of two functions). The section on "Schema composition" in XML Schema 1.0 can be (and has been) read as involving either or both of these usages.

The details of the process are intentionally left unspecified in the XML Schema spec (in much the same way that a programming language spec does not typically say anything about where a compiler is supposed to get the source code it's compiling). In practice, processors frequently make components by reading schema documents, which they find by dereferencing namespace names, or by receiving information from the user at invocation time, or by following the schemaLocation hints in the document instance or in schema documents they read. Other processors may have a local cache or repository of components (this is the case for some database management systems which support XML Schema). Still others may have hard-coded components.

In the interests of improving interoperability here, XML Schema 1.1 is expected to provide some standard terminolgy for describing common strategies for collecting schema components.

[Further development needed.]

References

Henry Thompson et al., ed. "XML Schema 1.1 Part 1: Structures", section D.2 "Terminology of schema construction" http://www.w3.org/TR/xmlschema11-1/#var_schema_con

C. M. Sperberg-McQueen, "Notes on schema resolution", December 2001.

http://www.w3.org/People/cmsmcq/2001/schema-resolution.html