-- XSD schema extracted from ITU-T X.694 (11/2008)

<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <!--D.3.3.1 length, minLength, and maxLength--> <xsd:simpleType name="String-10"> <xsd:restriction base="xsd:string"> <xsd:length value="10"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="String-5-to-10"> <xsd:restriction base="xsd:string"> <xsd:minLength value="5"/> <xsd:maxLength value="10"/> </xsd:restriction> </xsd:simpleType> <!--These two simple type definitions are mapped to the following ASN.1 type assignments: String-10 ::= XSD.String (SIZE(10)) String-5-to-10 ::= XSD.String (SIZE(5..10))--> <!--D.3.3.2 pattern--> <xsd:simpleType name="My-filename"> <xsd:restriction base="xsd:string"> <xsd:pattern value="[ -ÿ]*"/> <xsd:pattern value="/?([^/]*/)*[^/]*/*" /> </xsd:restriction> </xsd:simpleType> <!--This simple type definition is mapped to the following ASN.1 type assignment: My-filename ::= XSD.String (CONSTRAINED BY {/* XML representation of the XSD pattern "[ -ÿ]*" "/?([^/]*/)*[^/]*/*" */})--> <!--D.3.3.3 whiteSpace--> <xsd:simpleType name="My-String"> <xsd:restriction base="xsd:string"> <xsd:whiteSpace value="preserve"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="My-NormalizedString"> <xsd:restriction base="xsd:string"> <xsd:whiteSpace value="replace"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="My-TokenString"> <xsd:restriction base="xsd:string"> <xsd:whiteSpace value="collapse"/> </xsd:restriction> </xsd:simpleType> <!--These simple type definitions are mapped to the following ASN.1 type assignments: My-String ::= XSD.String My-NormalizedString ::= [WHITESPACE REPLACE] XSD.String (FROM ({0, 0, 0, 32} .. {0, 16, 255, 255})) My-TokenString ::= [WHITESPACE COLLAPSE] XSD.String (FROM ({0, 0, 0, 32} .. {0, 16, 255, 255})) (PATTERN "([^ ]([^ ]| [^ ])*)?")--> <!--D.3.3.4 minInclusive, minExclusive, maxInclusive, and maxExclusive--> <xsd:simpleType name="Int-10-to-100"> <xsd:restriction base="xsd:integer"> <xsd:minExclusive value="10"/> <xsd:maxInclusive value="100"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="Pi-approximation"> <xsd:restriction base="xsd:double"> <xsd:minExclusive value="3.14159"/> <xsd:maxExclusive value="3.1416"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="Morning"> <xsd:restriction base="xsd:time"> <xsd:minInclusive value="00:00:00"/> <xsd:maxExclusive value="12:00:00"/> </xsd:restriction> </xsd:simpleType> <!--These simple type definitions are mapped to the following ASN.1 type assignments: Int-10-to-100 ::= INTEGER (10<..100) Pi-approximation ::= XSD.Double (3.14159<..<3.1416) Morning ::= XSD.Time (CONSTRAINED BY {/* minInclusive="00:00:00" maxExclusive="12:00:00" */ })--> <!--D.3.3.5 totalDigits and fractionDigits--> <xsd:simpleType name="RefundableExpenses"> <xsd:restriction base="xsd:decimal"> <xsd:totalDigits value="5"/> <xsd:fractionDigits value="2"/> </xsd:restriction> </xsd:simpleType> <!--This simple type definition is mapped to the following ASN.1 type assignment: RefundableExpenses ::= XSD.Decimal (CONSTRAINED BY {/* totalDigits="5" fractionDigits="2" */ })--> <!--D.3.3.6 enumeration--> <xsd:simpleType name="FarmAnimals"> <xsd:restriction base="xsd:normalizedString"> <xsd:enumeration value="Horse"/> <xsd:enumeration value="Bull"/> <xsd:enumeration value="Cow"/> <xsd:enumeration value="Pig"/> <xsd:enumeration value="Duck"/> <xsd:enumeration value="Goose"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="PrimeNumbersBelow30"> <xsd:restriction base="xsd:integer"> <xsd:enumeration value="2"/> <xsd:enumeration value="3"/> <xsd:enumeration value="5"/> <xsd:enumeration value="7"/> <xsd:enumeration value="11"/> <xsd:enumeration value="13"/> <xsd:enumeration value="17"/> <xsd:enumeration value="19"/> <xsd:enumeration value="23"/> <xsd:enumeration value="29"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="X680-release"> <xsd:restriction base="xsd:gYearMonth"> <xsd:enumeration value="2002-07"/> <xsd:enumeration value="1997-12"/> <xsd:enumeration value="1994-07"/> </xsd:restriction> </xsd:simpleType> <!--These simple type definitions are mapped to the following ASN.1 type assignments: FarmAnimals ::= [WHITESPACE REPLACE] /* This encoding instruction ensures that an enumeration such as value="Slow Loris" (containing a space) is encoded correctly. */ ENUMERATED { bull, cow, duck, goose, horse, pig } PrimeNumbersBelow30 ::= [USE-NUMBER] ENUMERATED {int2(2), int3(3), int5(5), int7(7), int11(11), int13(13), int17(17), int19(19), int23(23), int29(29)} X680-release ::= XSD.GYearMonth ("2002-07" | "1997-12" | "1994-07") The following encoding instruction is included in the XER encoding control section: TEXT FarmAnimals:ALL AS CAPITALIZED--> <!--D.3.3.7 enumeration in conjunction with other facets--> <!--The following examples are based on the inheritance of facets using the restriction of some of the types defined in D.3.3.6.--> <xsd:simpleType name="FarmAnimals-subset"> <xsd:restriction base="FarmAnimals"> <xsd:minLength value="4"/> <xsd:pattern value="[^oe]*"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="PrimeNumbersBelow30-subset"> <xsd:restriction base="PrimeNumbersBelow30"> <xsd:minExclusive value="5"/> <xsd:pattern value=".*[23].*"/> </xsd:restriction> </xsd:simpleType> <!--These simple type definitions are mapped to the following ASN.1 type assignments: /* Horse and Goose do not satisfy the pattern facet Cow and Pig do not satisfy the minLength facet */ FarmAnimals-subset ::= [WHITESPACE REPLACE] ENUMERATED {bull, duck} /* 2, 3 and 5 do not satisfy the minExclusive facet 2, 5, 7, 11, 17 and 19 do not satisfy the pattern facet */ PrimeNumbersBelow30-subset ::= [USE-NUMBER] ENUMERATED {int13(13), int23(23), int29(29)} The following encoding instruction is included in the XER encoding control section: TEXT FarmAnimals-subset:ALL AS CAPITALIZED--> <!--D.3.4 Mapping element declarations--> <!--D.3.4.1 element declarations whose type definition is a top-level simple type definition or complex type definition--> <xsd:element name="Forename" type="xsd:token"/> <xsd:element name="File" type="My-filename"/> <xsd:element name="Value" type="Int-10-to-50"/> <!--These element declarations are mapped to the following ASN.1 type assignments: Forename ::= XSD.Token File ::= My-filename Value ::= Int-10-to-50-derivations NOTE – The type "My-filename" and its mapping to ASN.1 is defined in D.3.3.2; the type "Int-10-to-50" and its mapping to ASN.1 is defined in D.3.2.4.--> <!--D.3.4.2 element declarations whose type definition is an anonymous simple type definition or complex type definition--> <xsd:element name="maxOccurs"> <xsd:simpleType> <xsd:union memberTypes="xsd:nonNegativeInteger"> <xsd:simpleType> <xsd:restriction base="xsd:token"> <xsd:enumeration value="unbounded"/> </xsd:restriction> </xsd:simpleType> </xsd:union> </xsd:simpleType> </xsd:element> <xsd:element name="address"> <xsd:complexType> <xsd:sequence> <xsd:element name="line-1" type="xsd:token"/> <xsd:element name="line-2" type="xsd:token"/> <xsd:element name="city" type="xsd:token"/> <xsd:element name="state" type="xsd:token" minOccurs="0"/> <xsd:element name="zip" type="xsd:token"/> </xsd:sequence> <xsd:attribute name="country" type="xsd:token"/> </xsd:complexType> </xsd:element> <!--These element declarations are mapped to the following ASN.1 type assignments: MaxOccurs ::= [NAME AS UNCAPITALIZED] [USE-UNION] CHOICE { nonNegativeInteger [NAMESPACE AS "http://www.w3.org/2001/XMLSchema"] INTEGER (0..MAX), alt [NAME AS ""] ENUMERATED {unbounded} } Address ::= [NAME AS UNCAPITALIZED] SEQUENCE { country [ATTRIBUTE] XSD.Token OPTIONAL, line-1 XSD.Token, line-2 XSD.Token, city XSD.Token, state XSD.Token OPTIONAL, zip XSD.Token }--> <!--D.3.4.3 element declarations which are the head of an element substitution group--> <xsd:element name="Tic" type="xsd:integer" abstract="true"/> <xsd:element name="Tac" type="xsd:byte" substitutionGroup="Tic"/> <xsd:element name="Toe" substitutionGroup="Tic"/> <xsd:element name="Foo" type="xsd:date"/> <xsd:element name="Bar" substitutionGroup="Foo"/> <!--These element declarations are mapped to: Tac ::= INTEGER (-128..127) Toe ::= INTEGER Tic-group ::= [UNTAGGED] CHOICE { tac [NAME AS CAPITALIZED] Tac, toe [NAME AS CAPITALIZED] Toe } Foo ::= XSD.Date Bar ::= XSD.Date Foo-group ::= [UNTAGGED] CHOICE { bar [NAME AS CAPITALIZED] Bar, foo [NAME AS CAPITALIZED] Foo } if and only if: a) the element declaration "Tic" occurs as the term of at least one particle (not shown in the example) that is being mapped to ASN.1; b) the element declaration "Foo" occurs as the term of at least one particle (not shown in the example) that is being mapped to ASN.1; and c) there are no other schema components being mapped to ASN.1 which are generating the ASN.1 type reference names Tac, Toe, Foo, Bar, Tic-group, and Foo-group.--> <!--D.3.4.4 element declarations with a value constraint that is a default value--> <!--D.3.4.4.1 The following is an element declaration with an anonymous simple type definition, not used as the base type definition of any type.--> <xsd:element name="Telephone" type="xsd:token" default="undefined"/> <!--This element declaration is mapped to the following ASN.1 type assignment: Telephone ::= [DEFAULT-FOR-EMPTY AS "undefined"] XSD.Token--> <!--D.3.4.4.2 The following is an element declaration with an anonymous complex type definition with simple content, not used as the base type definition of any type.--> <xsd:element name="InternationalTelephone" default="undefined"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:token"> <xsd:attribute name="country-code" type="xsd:integer"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> <!--This element declaration is mapped to the following ASN.1 type assignment: InternationalTelephone ::= [DEFAULT-FOR-EMPTY AS "undefined"] SEQUENCE { country-code [ATTRIBUTE] INTEGER OPTIONAL, base [UNTAGGED] XSD.Token }--> <!--D.3.4.4.3 The following is an element declaration with an anonymous complex type definition. The complex type definition has complex content that is mixed and emptiable, and is not used as the base type definition of any type.--> <xsd:element name="Description" default="absent"> <xsd:complexType mixed="true"> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element name="bold" type="xsd:string"/> <xsd:element name="italic" type="xsd:string"/> </xsd:choice> </xsd:complexType> </xsd:element> <!--This element declaration is mapped to the following ASN.1 type assignment: Description ::= [EMBED-VALUES] [DEFAULT-FOR-EMPTY AS "absent"] SEQUENCE { embed-values SEQUENCE OF XSD.String, choice-list [UNTAGGED] SEQUENCE OF [UNTAGGED] CHOICE { bold XSD.String, italic XSD.String } } (CONSTRAINED BY {/* Shall conform to ITU-T Rec. X.693 | ISO/IEC 8825-4, clause 25 */})--> <!--D.3.4.4.4 The type definition of the element declaration in the following example is used as the base type definition of another type.--> <!--This example uses the XSD and ASN.1 types of the example in D.3.2.4.--> <xsd:element name="Quantity" type="Int-10-to-50" default="20"/> <!--This element declaration is mapped to the following ASN.1 type assignment: Quantity ::= Int-10-to-50-deriv-default-20 If no ASN.1 type corresponding to Int-10-to-50, with a default value of "20" has already been generated, the following type is also generated: Int-10-to-50-deriv-default-20 ::= [USE-TYPE] CHOICE { int-10-to-50 [NAME AS CAPITALIZED] [DEFAULT-FOR-EMPTY AS 20] Int-10-to-50, stock-level [NAME AS CAPITALIZED] [DEFAULT-FOR-EMPTY AS 20] Stock-level, ten-multiples [NAME AS CAPITALIZED] [DEFAULT-FOR-EMPTY AS int20] Ten-multiples, twenty-multiples [NAME AS CAPITALIZED] [DEFAULT-FOR-EMPTY AS int20] Twenty-multiples }--> <!--D.3.4.5 element declaration with a value constraint that is a fixed value--> <!--D.3.4.5.1 The following is an element declaration with an anonymous simple type definition, which is not used as the base type definition of any type.--> <xsd:element name="UnknownTelephone" type="xsd:token" fixed="undefined"/> <!--This element declaration is mapped to the following ASN.1 type assignment: UnknownTelephone ::= [DEFAULT-FOR-EMPTY AS "undefined"] XSD.Token ("undefined")--> <!--D.3.4.5.2 The following is an element declaration with an anonymous complex type definition. The complex type definition has simple content and is not used as the base type definition of any type.--> <xsd:element name="UnknownInternationalTelephone" fixed="undefined"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:token"> <xsd:attribute name="country-code" type="xsd:integer"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> <!--This element declaration is mapped to the following ASN.1 type assignment: UnknownInternationalTelephone ::= [DEFAULT-FOR-EMPTY AS "undefined"] SEQUENCE { country-code [ATTRIBUTE] INTEGER OPTIONAL, base [UNTAGGED] XSD.Token } (WITH COMPONENTS {..., base ("undefined")})--> <!--D.3.4.5.3 The following is an element declaration with an anonymous complex type definition. The complex type definition has complex content that is mixed and emptiable, and is not used as the base type definition of any type.--> <xsd:element name="UnknownDescription" fixed="absent"> <xsd:complexType mixed="true"> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element name="bold" type="xsd:string"/> <xsd:element name="italic" type="xsd:string"/> </xsd:choice> </xsd:complexType> </xsd:element> <!--This element declaration is mapped to the following ASN.1 type assignment: UnknownDescription ::= [EMBED-VALUES] [DEFAULT-FOR-EMPTY AS "absent"] SEQUENCE { embed-values SEQUENCE OF XSD.String, choice-list [UNTAGGED] SEQUENCE OF [UNTAGGED] CHOICE { bold XSD.String, italic XSD.String } } (CONSTRAINED BY {/* Shall conform to ITU-T Rec. X.693 | ISO/IEC 8825-4, clause 25 */}) (WITH COMPONENTS {embed-values ({"absent"}), choice-list (SIZE(0))})--> <!--D.3.4.5.4 The type definition of the following element declaration is a simple type definition used as the base type definition of another type.--> <!--This example uses the XSD and ASN.1 types of the example in D.3.2.4.--> <xsd:element name="Quantity" type="Int-10-to-50" fixed="20"/> <!--This element declaration is mapped to the following ASN.1 type assignment: Quantity ::= Int-10-to-50-deriv-fixed-20 If no ASN.1 type corresponding to Int-10-to-50 with a fixed value of "20" has already been generated, the following type is also generated: Int-10-to-50-deriv-fixed-20 ::= [USE-TYPE] CHOICE { int-10-to-50 [NAME AS CAPITALIZED] [DEFAULT-FOR-EMPTY AS 20] Int-10-to-50, stock-level [NAME AS CAPITALIZED] [DEFAULT-FOR-EMPTY AS 20] Stock-level, ten-multiples [NAME AS CAPITALIZED] [DEFAULT-FOR-EMPTY AS int20] Ten-multiples, twenty-multiples [NAME AS CAPITALIZED] [DEFAULT-FOR-EMPTY AS int20] Twenty-multiples } (WITH COMPONENTS { int-10-to-50 (20), stock-level (WITH COMPONENTS {..., base (20)}) }, ten-multiples (int20), twenty-multiples (int20) })--> <!--D.3.4.6 element declarations that are nillable--> <!--D.3.4.6.1 The following example shows an element declaration that is nillable and whose type definition is an XSD built-in type.--> <xsd:element name="Nillable-1" type="xsd:string" nillable="true"/> <!--This element declaration is mapped to the following ASN.1 type assignment: Nillable-1 ::= [USE-NIL] SEQUENCE { content XSD.String OPTIONAL }--> <!--D.3.4.6.2 The following example shows an element declaration that is nillable and whose type definition is an anonymous complex type definition.--> <xsd:element name="Nillable-2" nillable="true"> <xsd:complexType> <xsd:sequence> <xsd:element name="a" type="xsd:string"/> <xsd:element name="b" type="xsd:string"/> </xsd:sequence> <xsd:attribute name="b" type="xsd:boolean"/> </xsd:complexType> </xsd:element> <!--This element declaration is mapped to the following ASN.1 type assignment: Nillable-2 ::= [USE-NIL] SEQUENCE { b [ATTRIBUTE] BOOLEAN OPTIONAL, content SEQUENCE { a XSD.String, b XSD.String } OPTIONAL }--> <!--D.3.4.6.3 The following example shows an element declaration that is nillable, and whose type definition is a top-level complex type definition.--> <xsd:complexType name="Foo"> <xsd:sequence> <xsd:element name="a" type="xsd:string"/> <xsd:element name="b" type="xsd:string"/> </xsd:sequence> <xsd:attribute name="b" type="xsd:boolean"/> </xsd:complexType> <xsd:element name="Nillable-3" type="Foo" nillable="true"/> <!--These schema components are mapped to the following ASN.1 type assignments: Foo ::= SEQUENCE { b [ATTRIBUTE] BOOLEAN OPTIONAL, a XSD.String, b-1 [NAME AS "b"] XSD.String } Foo-nillable ::= [USE-NIL] SEQUENCE { b [ATTRIBUTE] BOOLEAN OPTIONAL, content SEQUENCE { a XSD.String, b XSD.String } OPTIONAL } Nillable-3 ::= Foo-nillable--> <!--D.3.4.6.4 The following example shows an element declaration that is nillable, whose type definition is a top-level complex type definition, and which is used as the base type definition of another complex type definition.--> <!--The following schema components are defined in addition to the schema components of D.3.4.6.3:--> <xsd:complexType name="Bar"> <xsd:complexContent> <xsd:extension base="Foo"> <xsd:sequence> <xsd:element name="z" type="xsd:string"/> </xsd:sequence> <xsd:attribute name="c" type="xsd:boolean"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="Nillable-4" type="Foo" nillable="true"/> <!--In addition to the type Foo of D.3.4.6.3, the following ASN.1 types are generated: Bar ::= SEQUENCE { b [ATTRIBUTE] BOOLEAN OPTIONAL, c [ATTRIBUTE] BOOLEAN OPTIONAL, a XSD.String, b-1 [NAME AS "b"] XSD.String, z XSD.String } Foo-nillable ::= [USE-NIL] SEQUENCE { b [ATTRIBUTE] BOOLEAN OPTIONAL, content SEQUENCE { a XSD.String, b XSD.String } OPTIONAL } Bar-nillable ::= [USE-NIL] SEQUENCE { b [ATTRIBUTE] BOOLEAN OPTIONAL, c [ATTRIBUTE] BOOLEAN OPTIONAL, content SEQUENCE { a XSD.String, b XSD.String, z XSD.String } OPTIONAL } Foo-deriv-nillable ::= [USE-TYPE] CHOICE { foo [NAME AS CAPITALIZED] Foo-nillable, bar [NAME AS CAPITALIZED] Bar-nillable } Nillable-4 ::= Foo-deriv-nillable--> <!--D.3.5 Mapping attribute uses and attribute declarations--> <!--D.3.5.1 The following is an example of a top-level attribute declaration whose type definition is a top-level simple type definition.--> <xsd:attribute name="name" type="xsd:NCName"/> <!--This attribute declaration is mapped to the following ASN.1 type assignment: Name ::= [NAME AS UNCAPITALIZED] [ATTRIBUTE] XSD.NCName--> <!--D.3.5.2 The following is an example of a top-level attribute declaration whose type definition is an anonymous simple type definition.--> <xsd:attribute name="form"> <xsd:simpleType> <xsd:restriction base="xsd:token"> <xsd:enumeration value="qualified"/> <xsd:enumeration value="unqualified"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> <!--This attribute declaration is mapped to the following ASN.1 type assignment: Form ::= [NAME AS UNCAPITALIZED] [ATTRIBUTE] ENUMERATED {qualified, unqualified}--> <!--D.3.5.3 The following example is an attribute use with a value constraint that is a default value.--> <!--The attribute declaration whose name is "form" and that is referenced in this example is defined in D.3.5.2.--> <xsd:complexType name="element"> <xsd:attribute name="name" type="xsd:NCName" default="NAME"/> <xsd:attribute ref="form" default="qualified"/> </xsd:complexType> <!--This complex type definition is mapped to the following ASN.1 type assignment: Element ::= [NAME AS UNCAPITALIZED] SEQUENCE { form [ATTRIBUTE] Form DEFAULT qualified, name [ATTRIBUTE] XSD.NCName DEFAULT "NAME" }--> <!--D.3.5.4 This example shows a top-level attribute declaration with a value constraint that is a default value and an attribute use with this attribute declaration.--> <xsd:attribute name="minOccurs" type="xsd:nonNegativeInteger" default="1"/> <xsd:attribute name="maxOccurs" default="1"> <xsd:simpleType> <xsd:union memberTypes="xsd:nonNegativeInteger" > <xsd:simpleType> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="unbounded"/> </xsd:restriction> </xsd:simpleType> </xsd:union> </xsd:simpleType> </xsd:attribute> <xsd:complexType name="Particle"> <xsd:sequence> <xsd:element name="particle"/> </xsd:sequence> <xsd:attribute ref="minOccurs"/> <xsd:attribute ref="maxOccurs" default="unbounded"/> </xsd:complexType> <!--These schema components are mapped to the following ASN.1 type assignments: MinOccurs ::= [ATTRIBUTE] [NAME AS UNCAPITALIZED] INTEGER (0..MAX) MaxOccurs ::= [ATTRIBUTE] [NAME AS UNCAPITALIZED] [USE-UNION] CHOICE { nonNegativeInteger [NAMESPACE AS "http://www.w3.org/2001/XMLSchema"] INTEGER (0..MAX), alt [NAME AS ""] [WHITESPACE COLLAPSE] ENUMERATED {unbounded} } Particle ::= SEQUENCE { maxOccurs [ATTRIBUTE] MaxOccurs DEFAULT alt : unbounded, minOccurs [ATTRIBUTE] MinOccurs DEFAULT 1, particle XSD.AnyType }--> <!--D.3.5.5 This example shows an attribute use whose attribute declaration has a target namespace that is not absent.--> <xsd:complexType name="Ack"> <xsd:attribute name="number" type="xsd:integer" form="qualified" /> </xsd:complexType> <!--This complex type definition is mapped to the following ASN.1 type assignment: Ack ::= SEQUENCE { number [NAMESPACE AS "http://targetnamespaceForExample"] [ATTRIBUTE] INTEGER OPTIONAL }--> <!--D.3.6 Mapping model group definitions--> <!--D.3.6.1 The following is a model group definition whose model group has a compositor of sequence.--> <xsd:group name="mySequence"> <xsd:sequence> <xsd:element name="a" type="xsd:string"/> <xsd:element name="b" type="xsd:boolean"/> </xsd:sequence> </xsd:group> <!--This model group definition is mapped to the following ASN.1 type assignment: MySequence ::= [UNTAGGED] SEQUENCE { a XSD.String, b BOOLEAN }--> <!--D.3.6.2 The following is a model group definition whose model group has a compositor of all.--> <xsd:group name="myAll"> <xsd:all> <xsd:element name="a" type="xsd:string"/> <xsd:element name="b" type="xsd:boolean"/> </xsd:all> </xsd:group> <!--This model group definition is not mapped to ASN.1. --> <!--See D.3.8.3.1 for an example of the mapping of a complex type definition where the model group of this model group definition occurs as the topmost model group.--> <!--D.3.6.3 The following is a model group definition whose model group has a compositor of choice.--> <xsd:group name="myChoice"> <xsd:choice> <xsd:element name="am" type="xsd:string"/> <xsd:element name="bm" type="xsd:boolean"/> </xsd:choice> </xsd:group> <!--This model group definition is mapped to the following ASN.1 type assignment: MyChoice ::= [UNTAGGED] CHOICE { am XSD.String, bm BOOLEAN }--> <!--D.3.7 Mapping particles--> <!--The model group definition of D.3.6.3 and its corresponding ASN.1 type are used in some of the particle examples.--> <!--D.3.7.1 The following example shows particles of a model group with a compositor of sequence.--> <xsd:complexType name="ElementSequence"> <xsd:sequence> <xsd:element name="elem1" type="xsd:boolean"/> <xsd:element name="elem2" type="xsd:boolean" minOccurs="0"/> <xsd:element name="elem3" type="xsd:boolean" minOccurs="2" maxOccurs="5"/> <xsd:element name="elem4" type="xsd:boolean" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="elem5" type="xsd:boolean" minOccurs="5" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="ModelGroupSequence"> <xsd:sequence> <xsd:group ref="myChoice"/> <xsd:choice> <xsd:element name="a" type="xsd:string"/> <xsd:element name="b" type="xsd:string"/> </xsd:choice> <xsd:sequence> <xsd:element name="c" type="xsd:string"/> <xsd:element name="d" type="xsd:string"/> </xsd:sequence> <xsd:choice minOccurs="3" maxOccurs="12"> <xsd:element name="e" type="xsd:string"/> <xsd:element name="f" type="xsd:string"/> </xsd:choice> </xsd:sequence> </xsd:complexType> <!--These complex type definitions are mapped to the following ASN.1 type assignments: ElementSequence ::= SEQUENCE { elem1 BOOLEAN, elem2 BOOLEAN OPTIONAL, elem3-list [UNTAGGED] SEQUENCE (SIZE(2..5)) OF elem3 BOOLEAN, elem4-list [UNTAGGED] SEQUENCE OF elem4 BOOLEAN, elem5-list [UNTAGGED] SEQUENCE (SIZE(5..MAX)) OF elem5 BOOLEAN } ModelGroupSequence ::= SEQUENCE { myChoice MyChoice, choice [UNTAGGED] CHOICE { a XSD.String, b XSD.String }, c XSD.String, d XSD.String, choice-list [UNTAGGED] SEQUENCE (SIZE(3..12)) OF [UNTAGGED] CHOICE { e XSD.String, f XSD.String } }--> <!--D.3.7.2 The following example shows particles of a model group with a compositor of all.--> <xsd:complexType name="ElementAll"> <xsd:all> <xsd:element name="elem1" type="xsd:boolean"/> <xsd:element name="elem2" type="xsd:boolean" minOccurs="0"/> </xsd:all> </xsd:complexType> <!--This complex type definition is mapped to the following ASN.1 type assignments: ElementAll ::= [USE-ORDER] SEQUENCE { order SEQUENCE OF ENUMERATED {elem1, elem2}, elem1 XSD.String, elem2 XSD.String OPTIONAL } (CONSTRAINED BY {/* Shall conform to ITU-T Rec. X.693 | ISO/IEC 8825-4, clause 35 */})--> <!--D.3.7.3 The following example shows particles of a model group with a compositor of choice.--> <xsd:complexType name="ElementSequence"> <xsd:choice> <xsd:element name="elem1" type="xsd:boolean"/> <xsd:element name="elem2" type="xsd:boolean" minOccurs="0"/> <xsd:element name="elem3" type="xsd:boolean" minOccurs="2" maxOccurs="5"/> <xsd:element name="elem4" type="xsd:boolean" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="elem5" type="xsd:boolean" minOccurs="5" maxOccurs="unbounded"/> </xsd:choice> </xsd:complexType> <xsd:complexType name="ModelGroupChoice"> <xsd:choice> <xsd:group ref="myChoice"/> <xsd:choice> <xsd:element name="a" type="xsd:string"/> <xsd:element name="b" type="xsd:string"/> </xsd:choice> <xsd:sequence> <xsd:element name="c" type="xsd:string"/> <xsd:element name="d" type="xsd:string"/> </xsd:sequence> <xsd:choice minOccurs="3" maxOccurs="12"> <xsd:element name="e" type="xsd:string"/> <xsd:element name="f" type="xsd:string"/> </xsd:choice> </xsd:choice> </xsd:complexType> <!--These complex type definitions are mapped to the following ASN.1 type assignments: ElementSequence ::= SEQUENCE { choice [UNTAGGED] CHOICE { elem1 BOOLEAN, elem2-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF elem2 BOOLEAN, elem3-list [UNTAGGED] SEQUENCE (SIZE(2..5)) OF elem3 BOOLEAN, elem4-list [UNTAGGED] SEQUENCE OF elem4 BOOLEAN, elem5-list [UNTAGGED] SEQUENCE (SIZE(5..MAX)) OF elem5 BOOLEAN } } ModelGroupChoice ::= SEQUENCE { choice [UNTAGGED] CHOICE { myChoice MyChoice, choice [UNTAGGED] CHOICE { a XSD.String, b XSD.String }, sequence [UNTAGGED] SEQUENCE { c XSD.String, d XSD.String }, choice-list [UNTAGGED] SEQUENCE (SIZE(3..12)) OF [UNTAGGED] CHOICE { e XSD.String, f XSD.String } } }--> <!--D.3.8 Mapping complex type definitions--> <!--D.3.8.1 The following example is a complex type definition whose content type is empty.--> <xsd:complexType name="Null"/> <xsd:complexType name="Ack"> <xsd:sequence/> <xsd:attribute name="packetNumber" type="xsd:integer"/> </xsd:complexType> <!--These complex type definitions are mapped to the following ASN.1 type assignments: Null ::= SEQUENCE {} Ack ::= SEQUENCE { packetNumber [ATTRIBUTE] INTEGER OPTIONAL }--> <!--D.3.8.2 The following example is a complex type definition whose content type is a simple type definition.--> <xsd:complexType name="Formatted"> <xsd:simpleContent> <xsd:extension base="xsd:token"> <xsd:attribute name="format"> <xsd:simpleType> <xsd:restriction base="xsd:token"> <xsd:enumeration value="bold"/> <xsd:enumeration value="italic"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <!--This complex type definition is mapped to the following ASN.1 type assignment: Formatted ::= SEQUENCE { format [ATTRIBUTE][WHITESPACE COLLAPSE] ENUMERATED {bold, italic} OPTIONAL, base [UNTAGGED] XSD.Token }--> <!--D.3.8.3 The following examples are complex type definitions whose content type is an element-only content model.--> <!--D.3.8.3.1 In the following example, the content type is the model group of a model group definition.--> <!--This example uses the types defined in D.3.6.--> <xsd:complexType name="MyComplexType-1"> <xsd:group ref="myAll"/> </xsd:complexType> <xsd:complexType name="MyComplexType-2"> <xsd:group ref="myChoice" /> </xsd:complexType> <xsd:complexType name="MyComplexType-3"> <xsd:group ref="mySequence" maxOccurs="100"/> </xsd:complexType> <!--These complex type definitions are mapped to the following ASN.1 type assignments: MyComplexType-1 ::= [USE-ORDER] SEQUENCE { order SEQUENCE OF ENUMERATED {a,b}, a XSD.String, b BOOLEAN } (CONSTRAINED BY {/* Shall conform to ITU-T Rec. X.693 | ISO/IEC 8825-4, clause 35 */}) MyComplexType-2 ::= SEQUENCE { myChoice MyChoice } MyComplexType-3 ::= SEQUENCE { mySequence-list SEQUENCE (SIZE(1..100)) OF MySequence }--> <!--D.3.8.3.2 In the following example, the content type is a model group whose compositor is choice.--> <xsd:complexType name="MyComplexType-4"> <xsd:choice> <xsd:element name="a" type="xsd:string"/> <xsd:element name="b" type="xsd:boolean"/> </xsd:choice> </xsd:complexType> <xsd:complexType name="MyComplexType-5"> <xsd:choice minOccurs="0"> <xsd:element name="a" type="xsd:string"/> <xsd:element name="b" type="xsd:boolean"/> </xsd:choice> </xsd:complexType> <xsd:complexType name="MyComplexType-6"> <xsd:choice maxOccurs="5"> <xsd:element name="a" type="xsd:string"/> <xsd:element name="b" type="xsd:boolean"/> </xsd:choice> </xsd:complexType> <!--These complex type definitions are mapped to the following ASN.1 type assignments: MyComplexType-4 ::= SEQUENCE { choice [UNTAGGED] CHOICE { a XSD.String, b BOOLEAN } } MyComplexType-5 ::= SEQUENCE { choice [UNTAGGED] CHOICE { a XSD.String, b BOOLEAN } OPTIONAL } MyComplexType-6 ::= SEQUENCE { choice-list [UNTAGGED] SEQUENCE (SIZE(1..5)) OF [UNTAGGED] CHOICE { a XSD.String, b BOOLEAN } }--> <!--D.3.8.3.3 In the following example, the content type is a model group whose compositor is all.--> <xsd:complexType name="MyComplexType-7"> <xsd:all> <xsd:element name="a" type="xsd:string"/> <xsd:element name="b" type="xsd:boolean"/> </xsd:all> </xsd:complexType> <xsd:complexType name="MyComplexType-8"> <xsd:all minOccurs="0"> <xsd:element name="a" type="xsd:string"/> <xsd:element name="b" type="xsd:boolean"/> </xsd:all> </xsd:complexType> <!--These complex type definitions are mapped to the following ASN.1 type assignments: MyComplexType-7 ::= [USE-ORDER] SEQUENCE { order SEQUENCE OF ENUMERATED {a,b}, a XSD.String, b BOOLEAN } (CONSTRAINED BY {/* Shall conform to ITU-T Rec. X.693 | ISO/IEC 8825-4, clause 35 */}) MyComplexType-8 ::= [USE-ORDER] SEQUENCE { order SEQUENCE OF ENUMERATED {a,b}, a XSD.String OPTIONAL, b BOOLEAN OPTIONAL } (CONSTRAINED BY {/* Shall conform to ITU-T Rec. X.693 | ISO/IEC 8825-4, clause 35 */ })--> <!--D.3.8.3.4 In the following example, the content type is a model group whose compositor is sequence.--> <xsd:complexType name="MyComplexType-9"> <xsd:sequence> <xsd:element name="a" type="xsd:string"/> <xsd:element name="b" type="xsd:boolean"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="MyComplexType-10"> <xsd:sequence minOccurs="0"> <xsd:element name="a" type="xsd:string"/> <xsd:element name="b" type="xsd:boolean"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="MyComplexType-11"> <xsd:sequence maxOccurs="5"> <xsd:element name="a" type="xsd:string"/> <xsd:element name="b" type="xsd:boolean"/> </xsd:sequence> </xsd:complexType> <!--These complex type definitions are mapped to the following ASN.1 type assignments: MyComplexType-9 ::= SEQUENCE { a XSD.String, b BOOLEAN } MyComplexType-10 ::= SEQUENCE { sequence [UNTAGGED] SEQUENCE { a XSD.String, b BOOLEAN } OPTIONAL } MyComplexType-11 ::= SEQUENCE { sequence-list [UNTAGGED] SEQUENCE (SIZE(1..5)) OF [UNTAGGED] SEQUENCE { a XSD.String, b BOOLEAN } }--> <!--D.3.8.4 The following example shows a complex type definition whose content type is a mixed content model.--> <xsd:complexType name="MyComplexType-12" mixed="true"> <xsd:sequence> <xsd:element name="a" type="xsd:string"/> <xsd:element name="b" type="xsd:boolean"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="MyComplexType-13" mixed="true"> <xsd:all> <xsd:element name="a" type="xsd:string"/> <xsd:element name="b" type="xsd:boolean"/> </xsd:all> </xsd:complexType> <xsd:complexType name="MyComplexType-14" mixed="true"> <xsd:choice> <xsd:element name="a" type="xsd:string"/> <xsd:element name="b" type="xsd:boolean"/> </xsd:choice> </xsd:complexType> <xsd:complexType name="MyComplexType-15" mixed="true"> <xsd:all minOccurs="0"> <xsd:element name="a" type="xsd:string"/> <xsd:element name="b" type="xsd:boolean"/> </xsd:all> </xsd:complexType> <xsd:complexType name="MyComplexType-16" mixed="true"> <xsd:sequence maxOccurs="unbounded" minOccurs="0"> <xsd:element name="a" type="xsd:string"/> <xsd:element name="b" type="xsd:boolean"/> </xsd:sequence> </xsd:complexType> <!--These complex type definitions are mapped to the following ASN.1 type assignments: MyComplexType-12 ::= [EMBED-VALUES] SEQUENCE { embed-values SEQUENCE OF XSD.String, a XSD.String, b BOOLEAN } (CONSTRAINED BY {/* Shall conform to ITU-T Rec. X.693 | ISO/IEC 8825-4, clause 25 */}) MyComplexType-13 ::= [EMBED-VALUES] [USE-ORDER] SEQUENCE { embed-values SEQUENCE OF XSD.String, order SEQUENCE OF ENUMERATED {a,b}, a XSD.String, b BOOLEAN } (CONSTRAINED BY {/* Shall conform to ITU-T Rec. X.693 | ISO/IEC 8825-4, clause 25 */}) (CONSTRAINED BY {/* Shall conform to ITU-T Rec. X.693 | ISO/IEC 8825-4, clause 35 */}) MyComplexType-14 ::= [EMBED-VALUES] SEQUENCE { embed-values SEQUENCE OF XSD.String, choice [UNTAGGED] CHOICE { a XSD.String, b BOOLEAN } } (CONSTRAINED BY {/* Shall conform to ITU-T Rec. X.693 | ISO/IEC 8825-4, clause 25 */}) MyComplexType-15 ::= [EMBED-VALUES] [USE-ORDER] SEQUENCE { embed-values SEQUENCE OF XSD.String, order SEQUENCE OF ENUMERATED {a,b}, a XSD.String OPTIONAL, b BOOLEAN OPTIONAL } (CONSTRAINED BY {/* Shall conform to ITU-T Rec. X.693 | ISO/IEC 8825-4, clause 35 */}) (CONSTRAINED BY {/* Shall conform to ITU-T Rec. X.693 | ISO/IEC 8825-4, clause 25 */}) MyComplexType-16 ::= [EMBED-VALUES] SEQUENCE { embed-values SEQUENCE OF XSD.String, sequence-list [UNTAGGED] SEQUENCE OF [UNTAGGED] SEQUENCE { a XSD.String, b BOOLEAN } } (CONSTRAINED BY {/* Shall conform to ITU-T Rec. X.693 | ISO/IEC 8825-4, clause 25 */})--> <!--D.3.8.5 The following example shows attribute uses of a complex type definition built using an attribute group definition.--> <xsd:attributeGroup name="AG1"> <xsd:attribute name="a1" type="xs:string"/> <xsd:attribute name="a2" type="xs:string"/> <xsd:attribute name="a3" type="xs:decimal"/> </xsd:attributeGroup> <xsd:attributeGroup name="AG2"> <xsd:attribute name="a1" use="prohibited"/> <xsd:attribute name="a3" type="xs:integer"/> </xsd:attributeGroup> <xsd:complexType name="MyComplexType-17"> <xsd:attribute name="a4" type="xs:boolean"/> <xsd:attribute name="a5" type="xs:boolean"/> <xsd:attributeGroup ref="AG1"/> </xsd:complexType> <xsd:complexType name="MyComplexType-18"> <xsd:complexContent> <xsd:restriction base="MyComplexType-17"> <xsd:attributeGroup ref="AG2"/> <xsd:attribute name="a4" use="prohibited"/> </xsd:restriction> </xsd:complexContent> </xsd:complexType> <!--These complex type definitions are mapped to the following ASN.1 type assignments: MyComplexType-17 ::= SEQUENCE { a1 [ATTRIBUTE] XSD.String OPTIONAL, a2 [ATTRIBUTE] XSD.String OPTIONAL, a3 [ATTRIBUTE] XSD.Decimal OPTIONAL, a4 [ATTRIBUTE] BOOLEAN OPTIONAL, a5 [ATTRIBUTE] BOOLEAN OPTIONAL } MyComplexType-18 ::= SEQUENCE { a2 [ATTRIBUTE] XSD.String OPTIONAL, a3 [ATTRIBUTE] INTEGER OPTIONAL, a5 [ATTRIBUTE] BOOLEAN OPTIONAL }--> <!--D.3.8.6 Derivation of complex type definitions.--> <xsd:complexType name="MyComplexType-19"> <xsd:sequence minOccurs="0" maxOccurs="unbounded"> <xsd:element name="a" type="xsd:string"/> <xsd:element name="b" type="xsd:boolean"/> <xsd:element name="c" type="xsd:boolean" minOccurs="0"/> </xsd:sequence> <xsd:attribute name="attr1" type="xsd:short" use="required"/> <xsd:attribute name="attr2" type="xsd:short"/> </xsd:complexType> <xsd:complexType name="MyComplexType-20"> <xsd:complexContent> <xsd:restriction base="MyComplexType-19"> <xsd:sequence> <xsd:element name="a" type="xsd:token"/> <xsd:element name="b" type="xsd:boolean"/> </xsd:sequence> <xsd:attribute name="attr2" type="xsd:short" use="prohibited"/> </xsd:restriction> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="MyComplexType-21"> <xsd:complexContent> <xsd:extension base="MyComplexType-20"> <xsd:sequence> <xsd:element name="d" type="xsd:string"/> </xsd:sequence> <xsd:attribute name="attr3" type="xsd:boolean"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!--These complex type definitions are mapped to the following ASN.1 type assignments: MyComplexType-19 ::= SEQUENCE { attr1 [ATTRIBUTE] XSD.Short, attr2 [ATTRIBUTE] XSD.Short OPTIONAL, sequence-list [UNTAGGED] SEQUENCE OF [UNTAGGED] SEQUENCE { a XSD.String, b BOOLEAN, c BOOLEAN OPTIONAL } } MyComplexType-20 ::= SEQUENCE { attr1 [ATTRIBUTE] XSD.Short, a XSD.Token, b BOOLEAN } MyComplexType-21 ::= SEQUENCE { attr1 [ATTRIBUTE] XSD.Short, attr3 [ATTRIBUTE] BOOLEAN OPTIONAL, a XSD.String, b BOOLEAN, d XSD.String } MyComplexType-20-derivations ::= [USE-TYPE] CHOICE { myComplexType-20 [NAME AS CAPITALIZED] MyComplexType-20, myComplexType-21 [NAME AS CAPITALIZED] MyComplexType-21 } MyComplexType-19-derivations ::= [USE-TYPE] CHOICE { myComplexType-19 [NAME AS CAPITALIZED] MyComplexType-19, myComplexType-20 [NAME AS CAPITALIZED] MyComplexType-20, myComplexType-21 [NAME AS CAPITALIZED] MyComplexType-21 } if and only if: a) the simple type definition "MyComplexType-19" occurs as the type definition of at least one element declaration (not shown in the example) that is being mapped to ASN.1; b) the simple type definition "MyComplexType-20" occurs as the type definition of at least one element declaration (not shown in the example) that is being mapped to ASN.1; and c) there are no other schema components being mapped to ASN.1 which are generating the ASN.1 type reference names MyComplexType-19, MyComplexType-20, MyComplexType-21, MyComplexType-19-derivations, and MyComplexType-20-derivations.--> <!--D.3.9 Mapping wildcards--> <!--For these examples, the target namespace is assumed to be the following URI: "http://www.asn1.org/X694/wildcard".--> <!--D.3.9.1 Attribute wildcard.--> <xsd:complexType name="AnyAttribute-1"> <xsd:anyAttribute namespace="##any"/> </xsd:complexType> <xsd:complexType name="AnyAttribute-2"> <xsd:anyAttribute namespace="##other"/> </xsd:complexType> <xsd:complexType name="AnyAttribute-3"> <xsd:anyAttribute namespace="##targetNamespace"/> </xsd:complexType> <xsd:complexType name="AnyAttribute-4"> <xsd:anyAttribute namespace="##local http://www.asn1.org/X694/attribute"/> </xsd:complexType> <xsd:complexType name="AnyAttribute-5"> <xsd:complexContent> <xsd:extension base="AnyAttribute-4"> <xsd:anyAttribute namespace="##targetNamespace"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!--These complex type definitions are mapped to the following ASN.1 type assignments: AnyAttribute-1 ::= SEQUENCE { attr [ANY-ATTRIBUTES] SEQUENCE (CONSTRAINED BY { /* Each item shall conform to the "AnyAttributeFormat" specified in ITU-T Rec. X.693 | ISO/IEC 8825-4, clause 18 */}) OF XSD.String } AnyAttribute-2 ::= SEQUENCE { attr [ANY-ATTRIBUTES EXCEPT ABSENT "http://www.asn1.org/X694/wildcard"] SEQUENCE (CONSTRAINED BY { /* Each item shall conform to the "AnyAttributeFormat" specified in ITU-T Rec. X.693 | ISO/IEC 8825-4, clause 18 */}) OF XSD.String } AnyAttribute-3 ::= SEQUENCE { attr [ANY-ATTRIBUTES FROM "http://www.asn1.org/X694/wildcard"] SEQUENCE (CONSTRAINED BY { /* Each item shall conform to the "AnyAttributeFormat" specified in ITU-T Rec. X.693 | ISO/IEC 8825-4, clause 18 */}) OF XSD.String } AnyAttribute-4 ::= SEQUENCE { attr [ANY-ATTRIBUTES FROM ABSENT "http://www.asn1.org/X694/attribute"] SEQUENCE (CONSTRAINED BY { /* Each item shall conform to the "AnyAttributeFormat" specified in ITU-T Rec. X.693 | ISO/IEC 8825-4, clause 18 */}) OF XSD.String } AnyAttribute-5 ::= SEQUENCE { attr [ANY-ATTRIBUTES FROM ABSENT "http://www.asn1.org/X694/attribute" "http://www.asn1.org/X694/wildcard"] SEQUENCE (CONSTRAINED BY { /* Each item shall conform to the "AnyAttributeFormat" specified in ITU-T Rec. X.693 | ISO/IEC 8825-4, clause 18 */}) OF XSD.String }--> <!--D.3.9.2 The following is an example of a content model wildcard.--> <xsd:complexType name="Any-1"> <xsd:sequence> <xsd:any namespace="##any"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="Any-2"> <xsd:sequence> <xsd:any minOccurs="0" namespace="##other"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="Any-3"> <xsd:sequence> <xsd:any minOccurs="0" maxOccurs="unbounded" namespace="##local"/> </xsd:sequence> </xsd:complexType> <!--These complex type definitions are mapped to the following ASN.1 type assignments: Any-1 ::= SEQUENCE { elem [ANY-ELEMENT] XSD.String (CONSTRAINED BY { /* Shall conform to the "AnyElementFormat" specified in ITU-T Rec. X.693 | ISO/IEC 8825-4, clause 19 */}) } Any-2 ::= SEQUENCE { elem [ANY-ELEMENT EXCEPT ABSENT "http://www.asn1.org/X694/wildcard"] XSD.String (CONSTRAINED BY { /* Shall conform to the "AnyElementFormat" specified in ITU-T Rec. X.693 | ISO/IEC 8825-4, clause 19 */}) OPTIONAL } Any-3 ::= SEQUENCE { elem-list [UNTAGGED] SEQUENCE OF elem [ANY-ELEMENT FROM ABSENT] XSD.String (CONSTRAINED BY { /* Shall conform to the "AnyElementFormat" specified in ITU-T Rec. X.693 | ISO/IEC 8825-4, clause 19 */}) }--> </xsd:schema>