In the instance example below, the basic information about the person (name, birthdate) appears under the nc:RoleOfPerson element.
<j:CrashDriver>
<nc:RoleOfPerson>
<nc:PersonName>
<nc:PersonFullName>John Doe</nc:PersonFullName>
</nc:PersonName>
<nc:PersonBirthDate>
<nc:Date>1966-06-06</nc:Date>
</nc:PersonBirthDate>
</nc:RoleOfPerson>
<j:CrashDriverViolationCode>A10</j:CrashDriverViolationCode>
<j:CrashDrivingViolationCode>S16</j:CrashDrivingViolationCode>
</j:CrashDriver>
In the instance example below, the basic information about the person (name, birthdate) is linked from the nc:RoleOfPerson element to element nc:Person, which is defined elsewhere in the instance.
<j:CrashDriver>
<nc:RoleOfPerson structures:ref="BRAVO" xsi:nil="true"/>
<j:CrashDriverViolationCode>A10</j:CrashDriverViolationCode>
<j:CrashDrivingViolationCode>S16</j:CrashDrivingViolationCode>
</j:CrashDriver>
<nc:Person structures:id="BRAVO">
<nc:PersonName>
<nc:PersonFullName>John Doe</nc:PersonFullName>
</nc:PersonName>
<nc:PersonBirthDate>
<nc:Date>1966-06-06</nc:Date>
</nc:PersonBirthDate>
</nc:Person>
This example shows a role type (CrashDriverType) and an element with that type (CrashDriver).
<xs:complexType name="CrashDriverType">
<xs:annotation>
<xs:documentation>A data type for a motor vehicle driver involved in a traffic accident.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="structures:ObjectType">
<xs:sequence>
<xs:element ref="nc:RoleOfPerson" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="j:DriverLicense" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="j:CrashDriverContributingCircumstances" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="j:CrashDriverDistraction" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="j:CrashDriverViolation" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="j:CrashDrivingViolation" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="j:CrashDriverAugmentationPoint" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="CrashDriver" type="j:CrashDriverType" nillable="true">
<xs:annotation>
<xs:documentation>A motor vehicle driver involved into a traffic accident.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="NAMEType">
<xs:annotation>
<xs:documentation>A data type for ...</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="structures:ObjectType">
<xs:sequence>
<xs:element ref="ROLE-OF-ELEMENT-NAME" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="ADDITIONAL-PROPERTY" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
The example below shows the definition of role-of element “RoleOfPerson” from Core.
<xs:element name="RoleOfPerson" type="nc:PersonType" substitutionGroup="nc:RoleOfAbstract" nillable="true">
<xs:annotation>
<xs:documentation>A person of whom the role object is a function.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="RoleOfNAME" type="NAMEType" substitutionGroup="nc:RoleOfAbstract" nillable="true">
<xs:annotation>
<xs:documentation>DEFINITION</xs:documentation>
</xs:annotation>
</xs:element>