We need to differentiate between several uses of the term schema, ranging from general to specific.
Schema, in computer lingo, generally refers to an information model of some application domain. This information model defines the logical relationships among the various entities, elements, and fields within that application domain. In directory services environments, for example, schemas refer to the information model applicable to various directory entities, as expressed through fields, attributes, and rows in the directory.
Specifically, an XML schema primarily addresses the information model instantiated in a particular XML document-type. In other words, the schema defines the relation of entities, elements, and fields within XML documents of that type. This is the primary sense in which BizTalk Framework 2.0 uses the term. An XML schema is an entity that defines the permissible elements, attributes, and values contained in an XML document-type. The entity defining the schema may be a separate linked document or simply lines of XML code in the document that instantiates the schema.
The primary purpose of XML schemas is to help receiving applications automatically determine the prescribed logical relationship among items, and thereby detect when some new item deviates from the permissible. For example, to ascertain whether an incoming document conforms to the BizTalk 2.0 document type, a BizTalk-enabled application invokes a validating processor, which compares the document to the structure prescribed in the entity defining its schema. The BizTalk Message or Document is valid if it complies with the constraints expressed in the schema provided in the BizTalk Framework 2.0.
Another way to look at XML schemas is that they provide human-readable metadata pertinent to a document and its elements. Metadata is simply data that comments on other data; and XML tags, which are terse and descriptive, perform this role in the context of an XML document.
The BizTalk XML schema defines the tags (BizTags) that describe the logical structure and content of a BizTalk Document; hence the core of a BizTalk Message (which includes an outer, non-XML envelope specific to the particular transport protocol over which it's being transmitted). Other XML schemassuch as those defined under such vertical-market initiatives as RosettaNet and Information and Content Exchange (ICE)define XML tags specific to Business Documents that a BizTalk Document would contain.
Consequently, a typical BizTalk Message would reference at least one non-BizTalk schema in addition to the BizTalk schema. The destination BizTalk server and application would work together to validate these dual layers of schemas, according to the following processing.
A destination BizTalk server parses the structure of the incoming BizTalk Message's outer, non-XML-based transport envelope, and validates that structure using procedures defined outside the BizTalk Framework specifications.
The destination BizTalk server extracts the BizTalk Document from the BizTalk Message, parses the structure of the BizTalk Document's XML envelope, and validates that structure against the BizTalk schema.
The destination BizTalk server sends the validated XML-formatted BizTalk Documents to the destination application.
The destination application extracts the Business Documents contained in the BizTalk Document, parses their XML structures, validates them against the relevant application-specific XML schemas, and processes the data contained in these documents according to application-specific business rules. According to the BizTalk Framework, some of these Business Documents may include non-XML data, in which case the destination application would have separate procedures for parsing, validating, and processing them.
Currently, the BizTalk Framework defines BizTalk document schemas in the XML Data Reduced (XDR) format. Microsoft developed XDR and submitted it as a proposal to the W3C in 1998, but it is not an industry standard, nor is it on a W3C standards track. Acknowledging this fact, and committed to supporting open and ratified standards where available, Microsoft now identifies XDR solely as a transitional schema-definition format for use within the BizTalk Framework. The company recognizes that the W3C's more recent XML Schema specifications are on a standards fast track, and has committed to supporting them in a future version of the framework.
Microsoft chose XDR over XML 1.0's native Document Type Definition (DTD) schema format due to XDR's support for more robust data typing and object-oriented functionality. The XML Schema specification draws on concepts and conventions developed in XDR and other schema-definition proposals submitted to the W3C, including such proposals as Schema for Object-Oriented XML (SOX) and Document Content Description (DCD).
XDR renders document schemas through tagged XML element nametags, rather than DTD declaration statements. XML parsers must recognize XML-Data schemas in order to validate documents against them. XDR schemas include tags for declaring the following:
Conceptual-graph and syntactical-tree schemas, plus rules for mapping between them
DTD-like document constructs, such as elements, attributes, entities, and notations
Object classes, such as class hierarchies, properties, constraints, and relationships
Data types, including all highly popular data types, all built-in data types of popular database and programming languages, parsing rules, and implementation formats
The XDR specification identifies data types for particular elements through references to Web Uniform Resource Identifiers (URIs). The data type's URI refers to a part of the XML document's schema that declares the appropriate parser and storage format of the element.
XDR supports open content models in addition to the closed content models defined under XML 1.0. Open content models allow XML documents to contain subelements that were not explicitly listed in their schema declarations. A closed content model, by contrast, requires that all elements and attributes be listed explicitly, and declares as invalid any XML document that includes undeclared content. XDR also defines tags for defining elements as keys and foreign keys. This is useful for instantiating a conceptual data model among elements within an XML document and for supporting database-style joins.
As we noted, XDR (and XML Schema) defines the schema or information model applicable to a valid XML document type, such as a BizTalk Document. The BizTalk Document is an envelope around one or more application-specific Business Documents. Some, but not all, of them must be in XML format. In order to validate the structure and contents of an XML-formatted Business Document, an XML-enabled application would have to access the XML schema appropriate to that document-type.
Microsoft established an online repository in which organizations may publish their application-specific Business Document schemas. The schema repository is available free of charge to all comers at http://www.biztalk.org, a non-profit clearinghouse. Schemas for Business Documents do not contain any BizTags, only the XML tags required to support the business transaction. Business Document schemas are designed by various companies, industry groups, and other implementing organizationsnot by Microsoft. However, Microsoft defined general requirements and guidelines for Business Document schema implementations, and made them available at http://www.biztalk.org.