XSD Komplexa element
- Föregående sida XSD Begränsningar
- Nästa sida XSD Tomma element
En komplex element innehåller andra element och/eller egenskaper.
Vad är en komplex element?
En komplex element är en XML-element som innehåller andra element och/eller egenskaper.
Det finns fyra typer av komplex element:
- Tomma element
- Element som 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å komplex element
En komplex element, "product", är tom:
<product pid="1345"/>
En komplex element, "employee", innehåller endast andra element:
<employee> <firstname>John</firstname> <lastname>Smith</lastname> </employee>
En komplex element, "food", innehåller endast text:
<food type="dessert">Iskaka</food>
En komplex element, "description", innehåller element och text:
<description> Det hände den <date lang="norwegian">03.03.99</date> .... </description>
Hur definierar man en komplex element?
Se denna 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 "employee"-elementet, till exempel 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 metod som beskrivs ovan, kan endast "employee" använda den definierade komplexa typen.Observera att dess underelement, "firstname" och "lastname", är inneslutna i indikatorn <sequence>.Detta innebär att underelement måste uppträda i den ordning de deklarerades. XSD-indikatorer Lär dig mer om indikatorer i detta avsnitt.
2. "employee"-elementet kan använda type-egenskapen, som används för att hänvisa till namnet på den komplexa typen som ska användas:
<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 använder den metod som beskrivs ovan, kan flera element använda samma komplexa typ, till exempel så här:
<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å befintliga komplexa element, till exempel så här:
<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 Tomma element