Schema Compositions

A schema composition refers to the set of elements and associated restrictions and subsets that make up a Profile configuration. Generally schema compositions are used to define material used to build an output schema, for example an XSD file. Model compositions in contrast are used to configure the material used as the basis of a subset "transform" - for example when creating a NIEM model subset.

Define schema content

Content is added to the schema by dropping Classes from the model on to the Schema Composer Class window and choosing which properties to include. The Schema Composer helps with the composition by adding any referenced types automatically to the schema. The process of composing a schema is like this:

  1. Create a Scheme Composer Schema Profile.
  2. Create elements from a Class model.
  3. Include/exclude properties.
  4. Apply any restrictions.
  5. Generate schema formats.

Schema Restrictions

The Schema Composer allows restrictions to be applied to elements and properties for a particular message requirement.


A class listed in a the schema can aggregate the properties of any generalizations that exist in the schema. When a class is selected in the schema that generalizes another class also listed in the schema, the properties of both will be listed in the attributes window. By selecting one or more properties of the generalization these properties will be aggregated on the specialization.

In simple terms,a type can be created that describes an element in simpler terms based on selective properties.


A schema element can be represented according to the entire class model inheritance structure or none at all. When aspects of the inherited model are required and selected in the schema composer, the generalizations will be automatically added to the schema.


When an element is redefined within the Schema Composer it is given a new name. It can then be restricted in different ways to provide the required description of an instance. A 'PaymentMethod' enumeration could be redefined as 'CardPayment' that omits the value 'Cash'. A redefined type is a top level schema element. It has no corollary in the model.


The cardinality of an property can be further restricted from its model counterpart, but it cannot be less restrictive. The cardinality can be changed for any root element class and any class property.


Where a property type has specializations that are listed in the schema, those specializations can be specified as choice elements in the generated schema. To do this select the property and choose the restriction content menu option.

Any specialization that has been added to the schema will be available as a choice.


This section relates to the style of XSD generated by the Schema Composer. Each standard has its own rules in relation to the style of xsd produced. UN/CEFACT NDR for example specifies a modular schema with two schemas being emitted for a single message. Enterprise Architect provides flexibility with these schemes and permitting different styles of XML schema to be produced.



Inline elements

Properties can be emitted as inline local definitions, by setting the option in the property restriction page.

Type Redefinition

Allows a type to be defined based on another type. The new type can be re-used within the schema. A restricted payment enumeration for instance, perhaps omitting certain credit cards.

Element re-use

Types are emitted as top level elements by default, allowing re-use of the schema.

Unified schema

A unified schema is emitted that encapsulates and completely defines the message described by the schema.