This chapter introduces Ensemble schema definitions, which Ensemble uses to validate virtual documents (and to access data in them, as discussed in the chapter “Virtual Property Paths”). It contains the following sections:
Because a virtual document is not represented as an object (with a corresponding class definition), Ensemble requires additional tools to parse and validate the virtual document. These tools start with Ensemble schema definitions.
An Ensemble schema definition is a set of descriptions that represent a specific EDI standard or an XML schema. A schema definition is an Ensemble concept, not to be confused with other concepts such as a database schema or XML schema. It is, however, based on the corresponding EDI or XML schema.
Schema definitions are specific to a given Ensemble namespace and are stored in the Ensemble database for that namespace. Ensemble provides schema definitions for HL7 Version 2. In other cases, however, you must import the corresponding schema.
Each schema definition provides Ensemble with a complete view of an EDI standard (or of an XML schema). There is one schema definition for HL7 Version 2, one for X12, one for ASTM, and so on. In practical terms, a schema definition may contain only a subset of the standard in question; this depends on how the corresponding EDI schema was imported into Ensemble.
In an Ensemble schema definition, a schema category is a grouping convention. Each schema definition contains one or more schema categories. For example, for HL7 Version 2, each schema category corresponds to a specific version of HL7 version 2 (2.1, 2.2, 2.3, and so on).
In an Ensemble schema definition, each schema category contains one or more document structures. Each document structure describes one type of document. For example, for HL7 Version 2, ADT_A01 is a document structure — if you are not familiar with HL7, just note that ADT_A01 is a kind of HL7 message.
Depending on the EDI standard, Ensemble uses different approaches to organize a schema definition into schema categories and document structures. For example, for HL7 Version 2, each schema category may contain many different document structures. In contrast, for X12, an Ensemble schema definition has a flatter organization, commonly with only one document structure per schema category:
Each Ensemble virtual document has a document type, often simply called DocType (which is the name of the property that stores this information). This corresponds to a specific part of a schema definition, the part that describes the expected structure of and values in this virtual document. The DocType enables Ensemble to validate and parse that virtual document.
The DocType for a virtual document is identified by a combination of the schema category and document structure. Specifically, the syntax for the DocType property is as follows:
category is the name of a schema category.
structure is the name of a document structure within the referenced category. This piece is always required, even if the schema category has only one document structure.
For example, the following shows the DocType property of an ADT_A01 message for HL7 Version 2.5: