XSD Komplex element
- Föregående sida XSD Begränsningar
- Nästa sida XSD Tom element
Komplexa element innehåller andra element och/eller egenskaper.
Vad är ett komplex element?
Komplexa element är XML-element som innehåller andra element och/eller egenskaper.
Det finns fyra typer av komplexa element:
- Tomma element
- Element som endast innehåller andra element
- Element som endast innehåller text
- Element som innehåller element och text
Kommentar:Ovanstående element kan alla innehålla egenskaper!
Exempel på komplexa element
Komplexa element, "product", är tomt:
<product pid="1345"/>
Komplexa element, "employee", innehåller endast andra element:
<employee> <firstname>John</firstname> <lastname>Smith</lastname> </employee>
Komplexa element, "food", innehåller endast text:
<food type="dessert">Ice cream</food>
Komplexa element, "description", innehåller element och text:
<description> Det hände den <date lang="swedish">03.03.99</date> .... </description>
Hur definierar man komplexa element?
Se detta komplexa XML-element, "employee", som endast innehåller andra element:
<employee> <firstname>John</firstname> <lastname>Smith</lastname> </employee>
I XML Schema har vi två sätt att definiera komplexa element:
1. Genom att namnge detta element kan du direkt deklarera elementet "employee", så här:
<xs:element name="employee"> <xs:complexType> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
Om du använder den beskrivna metoden ovan, kan endast "employee" använda den specificerade komplexa typen.Observera att dess underkomponenter, "firstname" och "lastname", är omgivna av indikatorn <sequence>.Detta innebär att underkomponenterna måste uppträda i den ordning de deklarerades. Du kommer att hitta XSD-indikator Denna sektion lär dig mer om indikatorer.
2. "employee"-elementet kan använda type-egenskapen, som används för att hänvisa till namnet på den komplexa typen som används:
<xs:element name="employee" type="personinfo"/> <xs:complexType name="personinfo"> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complexType>
Om du har använt den beskrivna metoden ovan, kan flera element använda samma komplexa typ, till exempel:
<xs:element name="employee" type="personinfo"/> <xs:element name="student" type="personinfo"/> <xs:element name="member" type="personinfo"/> <xs:complexType name="personinfo"> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complexType>
Du kan också lägga till några element på en redan befintlig komplex element baserat på en viss komplex element, liksom detta:
<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>
- Föregående sida XSD Begränsningar
- Nästa sida XSD Tom element