| Variable | Description | Usage | NDR Reference | 
|---|---|---|---|
| {$Name} | Name of the type | Required | NDR Section 10.8 Naming rules Rule 7-5 How to name a component NDR Section 10.8 Component naming rules Rule 11-1 Type name ends in "Type" Rule 11-2 Complex type name is upper camel case | 
| {$Definition} | The data definition of the type. | Required | NDR Section 11.6.1 How to write component definitions Rule 11-32 Standard opening phrase for complex types | 
| {$SimpleTypeName} | QName of the simple type being extended | Required | |
| {$AttributeName} | The QName of the attribute being referenced. Note: Attributes are rarely used in NIEM. | NDR Section 11.3 Model group components | 
<xs:complexType name="{$Name}Type">
    <xs:annotation>
      <xs:documentation>A data type for a(n) {$Definition}</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="{$SimpleTypeName}">
        <xs:attributeGroup ref="structures:SimpleObjectAttributeGroup"/>
        <xs:attribute ref="{$AttributeName}" use="optional|required"/>
      </xs:extension>
    </xs:simpleContent>
 </xs:complexType>