XSD Komplekse elementer
- Forrige side XSD begrænsninger
- Næste side XSD tomme elementer
Komplekse elementer indeholder andre elementer og/eller egenskaber.
Hvad er et komplekst element?
Komplekse elementer er XML-elementer, der indeholder andre elementer og/eller egenskaber.
Der er fire typer komplekse elementer:
- Tomme elementer
- Elementer, der indeholder andre elementer
- Elementer, der kun indeholder tekst
- Elementer, der indeholder elementer og tekst
Bemærk:Disse elementer kan alle indeholde egenskaber!
Eksempler på komplekse elementer
Den komplekse element, "product", er tom:
<product pid="1345"/>
Den komplekse element, "employee", indeholder kun andre elementer:
<employee> <firstname>John</firstname> <lastname>Smith</lastname> </employee>
Den komplekse element, "food", indeholder kun tekst:
<food type="dessert">Ice cream</food>
Den komplekse element, "description", indeholder elementer og tekst:
<description> Det skete den <date lang="norwegian">03.03.99</date> .... </description>
Hvordan definerer man en kompleks element?
Se denne komplekse XML-element, "employee", som kun indeholder andre elementer:
<employee> <firstname>John</firstname> <lastname>Smith</lastname> </employee>
I XML Schema har vi to måder at definere en kompleks element på:
1. Ved at navngive dette element, kan du direkte erklære elementet "employee", sådan her:
<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>
Hvis du bruger den beskrevne metode, kan kun "employee" bruge den definerede komplekse type. Bemærk, at underelementerne, "firstname" og "lastname", er omgivet af indikatoren <sequence>. Dette betyder, at underelementerne skal optræde i den rækkefølge, de er deklarerede. Du vil finde XSD-indikatorer Lær mere om indikatorer i dette afsnit.
2. "employee"-elementet kan bruge type-attributten, som bruges til at referere til navnet på den komplekse type, der skal bruges:
<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>
Hvis du har brugt den beskrevne metode, kan flere elementer bruge den samme komplekse type, såsom dette:
<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 også bygge på eksisterende komplekse elementer ved at bruge et komplekst element som grundlag og derefter tilføje nogle elementer, som dette:
<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>
- Forrige side XSD begrænsninger
- Næste side XSD tomme elementer