Modeling Augmentation Points

Augmentation point element

Name

The augmentation point element name must correspond with the type name it appears in, with the "Type" representation term being replaced by "AugmentationPoint".

The name of the augmentation point element for nc:PersonType is "nc:PersonAugmentationPoint".

Abstract

An augmentation point element has no content of its own and is merely a construct to support additional content from other namespaces. Making this element abstract ensures that it must be omitted or replaced in an instance by another element.

No type

An augmentation point element does not have a type. This ensures that there will not be a type conflict when it is later substituted by one or more augmentation elements.

Sub-element position

The augmentation point element must appear as the final sub-element in its type. This makes it easy to find and makes sure the type’s original content appears in instances before the augmentations do.

IEPD exceptions

Augmentation point elements are required in NIEM release schemas, but not for IEPDs.

NIEM releases are required to define augmentation points in order to make it as easy as possible for IEPDs to later add additional content. IEPDs may, but are not required to, provide this same level of support.

References

Rule Applicability Title
NDR 10-25 REF, EXT Augmentation point element corresponds to its base type
NDR 10-26 REF, EXT An augmentation point element has no type
NDR 10-27 REF, EXT An augmentation point element has no substitution group
NDR 10-28 REF, EXT Augmentation point element is only referenced by its base type
NDR 10-29 REF Augmentation point element use is optional
NDR 10-30 REF Augmentation point element use is unbounded
NDR 10-31 REF, EXT Augmentation point element use must be last element in its base type
NDR 11-29 REF, EXT Standard opening phrase for augmentation point element data definition