| Variable | Description | Usage | NDR Reference | 
|---|---|---|---|
| {$AbstractName} | The name of the abstract element. This element serves as the head of the substitution group. | Required | NDR Rule 9-37: Untyped element is abstract NDR Rule 11-15: Name of element that ends in "Abstract" is abstract | 
| {$SubstitutableName} | The name of the substitutable element. In an XML instance, this element may be substituted for any occurrence of ($AbstractName}. | Required | Rule 7-5 How to name a component NDR Section 10.8 Component naming rules | 
| {$RepresentationTerm} | A required representation term for elements with simple content | Optional | NDR Table 10-2 Representation terms Rule 11-16 Element with simple content has representation term | 
| {$Type} | The QName of the complex data type | Required | Rule 9-46 Elements are nillable | 
| {$Nillable} | "true", if the property can have a nil value | Optional | NDR Rule 9-23: Code has definition | 
| {$Definition} | The data definition of the property | Required | NDR Section 11.6.1 How to write component definitions NDR Section 11.6.1.1 Data definition opening phrases Rule 11-31 Standard opening phrase for elements | 
<xs:element name="{$AbstractName}" abstract="true" >
    <xs:annotation>
      <xs:documentation>A data concept for a(n) {$Definition}</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="{$SubstitutableName}{$RepresentationTerm}" type="{$Type}" substitutionGroup="{$AbstractName}" nillable="{$Nillable}">
    <xs:annotation>
      <xs:documentation>A(n) {$Definition}</xs:documentation>
    </xs:annotation>
  </xs:element>