How can GJXDM and NIEM be extended?

It is possible to extend GJXDM and NIEM, like any other XML markup language. There are several ways that a local schema might do this. A simple set of examples has been prepared that illustrates various extension methods.

One of these methods is based on the World Wide Web consortium (W3C) rules for extension of XML Schema types. W3C Schema rules for type extension allow many possibilities. However, type extension within the GJXDM and NIEM is intended to maintain a class hierarchy of objects by adhering to a more restrictive set of subclass rules.

To ensure the integrity, consistency, and meaning of the class (inheritance) hierarchy, the following rules for type extension must be followed:

1) A derived type may add (by extension) additional fields (elements/attributes) to its base type.

2) A derived type may restrict one or more fields of its base type, but only so that a derived field is a subset of the field of the base type. For example, a derived type may: 

3) A derived type may not modify a field of its base type such that it violates the constraints of its base type. For example, a derived type may not: 

W3C rules for Extension XML Schema Types: