What are Schema Components and how are they addressed in the National Information Exchange Model (NIEM)?

The term “schema component” is used for any object constructed by XML Schema.

Schema components are specified by the XML Schema specification. They include attribute declarations, type definitions, etc. They include attribute uses (which are distinct from attribute declarations) and use of model groups (distinct from model group definitions).  In the National Information Exchange Model (NIEM) the term “NIEM Component” is used for a schema component from a namespace that is NIEM-Conformant.


From XML Schema Part 1: Structures 2d Ed

W3C Recommendation 28 October 2004


[Definition:] Schema component is the generic term for the building blocks that comprise the abstract data model of the schema. [Definition:] An XML Schema is a set of schema components. There are 13 kinds of component in all, falling into three groups. The primary components, which may (type definitions) or must (element and attribute declarations) have names are as follows:


Simple type definitions

Complex type definitions

Attribute declarations

Element declarations


The secondary components, which must have names, are as follows:


Attribute group definitions

Identity-constraint definitions

Model group definitions

Notation declarations


Finally, the "helper" components provide small parts of other components; they are not independent of their context:



Model groups



Attribute Uses