XML-Schema complexType- Element
❮ Vollständige XML-Schema-Referenz
Definition und Verwendung
Das Element complexType definiert einen komplexen Typ. Ein komplexes Typelement ist ein XML-Element, das andere Elemente und/oder Attribute enthält.
Elementinformationen
- Übergeordnete Elemente: element, redefine, schema
Syntax
<complexType
id=ID
name=NCName
abstract=true|false
mixed=true|false
block=(#all|list of (extension|restriction))
final=(#all|list of (extension|restriction))
any attributes
>
(annotation?,(simpleContent|complexContent|((group|all|
choice|sequence)?,((attribute|attributeGroup)*,anyAttribute?))))
</complexType>
(Das ?-Zeichen gibt an, dass das Element null oder einmal vorkommen kann, und das *-Zeichen gibt an, dass das Element null oder mehrmals innerhalb des complexType-Elements vorkommen kann.)
Attribute | Description |
---|---|
id | Optional. Specifies a unique ID for the element |
name | Optional. Specifies a name for the element |
abstract | Optional. Specifies whether the complex type can be used in an instance document. True indicates that an element cannot use this complex type directly but must use a complex type derived from this complex type. Default is false |
mixed | Optional. Specifies whether character data is allowed to appear between the child elements of this complexType element. Default is false. If a simpleContent element is a child element, the mixed attribute is not allowed! |
block | Optional. Prevents a complex type that has a specified type
of derivation from being used in place of this complex type. This value can
contain #all or a list that is a subset of extension or restriction:
|
final | Optional. Prevents a specified type of derivation of this
complex type element. Can contain #all or a list that is a subset of
extension or restriction.
|
any attributes | Optional. Specifies any other attributes with non-schema namespace |
Beispiel 1
Das folgende Beispiel hat ein Element namens „note“, das einen komplexen Typ hat:
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Beispiel 2
Das folgende Beispiel hat einen komplexen Typ „fullpersoninfo“, der von einem anderen komplexen Typ „personinfo“ abgeleitet wird, indem der geerbte Typ um drei zusätzliche Elemente (Adresse, Stadt und Land) erweitert wird:
<xs:element name="employee" type="fullpersoninfo"/>
<xs:complexType name="personinfo">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="fullpersoninfo">
<xs:complexContent>
<xs:extension base="personinfo">
<xs:sequence>
<xs:element name="address" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
Im obigen Beispiel muss das Element „Mitarbeiter“ nacheinander die folgenden Elemente enthalten: „Vorname“, „Nachname“, „Adresse“, „Stadt“ und „Land“.
❮ Vollständige XML-Schema-Referenz