It is common in XSD to specify that elements within a composite group can occur a multiple number of times. For example:
<xsd:complexType name="Name"> <xsd:sequence> <xsd:element name="givenName" type="xsd:string "/> <xsd:element name="initial" type="xsd:string"/> <xsd:element name="familyName" type="xsd:string" maxOccurs="2"/> </xsd:sequence> </xsd:complexType>
In this case, the familyName
element may occur one or two times. (If
minOccurs
is absent, its default value is 1.) X.694 specifies that a
SEQUENCE OF type be formed for this element and then the element renamed to
familyName-list
to reference this element. The C code produced by this
transformation is as
follows:
typedef struct EXTERN Name { const OSUTF8CHAR* givenName; const OSUTF8CHAR* initial; struct { OSUINT32 n; const OSUTF8CHAR* elem[2]; } familyName_list; } Name;
In this case, an array was used to represent familyName_list
. In others,
a linked list might be used to represent the repeating item.