XML Schema complexType element

Definition og brug

complexType element definerer en kompleks type. Elementerne i den komplekse type er XML-elementer, der indeholder andre elementer og/eller egenskaber.

元素信息

forekomst uden begrænsninger i arkitekturen; én gang i elementet.
overordnede elementer element, redefine, schema
indhold annotation, simpleContent, complexContent, group, all, choice, sequence, attribute, attributeGroup, anyAttribute

syntaks

<complexType
id=ID 
navn=NCName 
abstract=true|false 
mixed=true|false
block=(#all|liste af (udvidelse|restriktion))
final=(#all|liste af (udvidelse|restriktion))
Enhver attribut

> 
(annotation?,(simpleContent|complexContent|((group|all|
</complexType>

(? symbol deklareres i complexType-elementet, element kan forekomme nul eller én gang, * symbol deklareres element kan forekomme nul eller flere gange.)

egenskaber

id

valgfri. Angiver den unikke ID for elementet.

navn

valgfri. Angiver elementets navn.

abstrakt

valgfri. Angiver om komplekse typer kan bruges i instansdokumentet. Hvis værdien er true, kan elementet ikke bruge den komplekse type direkte, men skal bruge en kompleks type, der er afledt af den komplekse type. Standardværdien er false.

blandet

valgfri. Angiver om tegndata kan forekomme mellem underelementerne i den komplekse type. Standardværdien er false.

  • Hvis simpleContent-elementet er et underelement, er mixed-attributten ikke tilladt.
  • Hvis complexContent-elementet er et underelement, kan mixed-attributten overskrives af mixed-attributten på complexContent-elementet.

blok

valgfri. Forhindre at komplekse typer med en specifik afledt type bruges til at erstatte den komplekse type. Værdien kan indeholde #all eller en liste, som er en delmængde af udvidelse eller restriktion:

  • udvidelse - forhindre at komplekse typer, der er afledt af udvidelser, bruges til at erstatte den komplekse type.
  • restriktion - forhindre at komplekse typer, der er afledt af begrænsninger, bruges til at erstatte den komplekse type.
  • #all - Forhindrer alle komplekse typer, der kan bruges til at erstatte denne komplekse type.

final

Valgfri. Forhindrer afledelse af specificerede typer fra dette komplekse type element. Værdien kan indeholde #all eller en liste, som er en delmængde af extension eller restriction.

  • extension - Forhindrer afledelse gennem udvidelse.
  • restriction - Forhindrer afledelse gennem begrænsning.
  • #all - Forhindrer alle afledte (udvidelser og begrænsninger).

Enhver attribut

Valgfri. Angiver eventuelle andre attributter med non-schema navnerum.

Eksempel

Eksempel 1

I eksemplet nedenfor har der en kompleks type element kaldet "note":

<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>

Eksempel 2

I eksemplet nedenfor er der en kompleks type "fullpersoninfo", der udvider den arvede type ved hjælp af tre supplerende elementer (address, city og country) og er afledt af en anden kompleks type "personinfo":

<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>

I de ovenstående eksempler skal "employee" elementet indeholde følgende elementer i rækkefølge: "firstname", "lastname", "address", "city" og "country".