XSD - Composiet elementen
- Vorige pagina XSD Beperkingen
- Volgende pagina XSD Lege elementen
Een complex element bevat andere elementen en/or eigenschappen.
Wat is een complex element?
Een complex element is een XML-element dat andere elementen en/or eigenschappen bevat.
Er zijn vier soorten complexe elementen:
- Lege elementen
- Elementen die andere elementen bevatten
- Elementen die alleen tekst bevatten
- Elementen die elementen en tekst bevatten
Opmerking:Alle genoemde elementen kunnen eigenschappen bevatten!
Voorbeelden van complexe elementen
Het complexe element, "product", is leeg:
<product pid="1345"/>
Het complexe element, "employee", bevat alleen andere elementen:
<employee> <firstname>John</firstname> <lastname>Smith</lastname> </employee>
Het complexe element, "food", bevat alleen tekst:
<food type="dessert">Ice cream</food>
Het complexe element, "description", bevat elementen en tekst:
<description> Het gebeurde op <date lang="norwegian">03.03.99</date> .... </description>
Hoe definieer je een complex element?
Bekijk dit complexe XML-element, "employee", dat alleen andere elementen bevat:
<employee> <firstname>John</firstname> <lastname>Smith</lastname> </employee>
In XML Schema hebben we twee manieren om een complex element te definiëren:
1. Door dit element te noemen, kan je direct een verklaring van het "employee"-element geven, zoals hieronder:
<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>
Als u de bovenstaande methode gebruikt, kan alleen "employee" het voorgeschreven complexe type gebruiken. Let op dat de subelementen, "firstname" en "lastname", omgeven zijn door de indicator <sequence>. Dit betekent dat de subelementen moeten verschijnen in de volgorde waarin ze zijn gedeclareerd. U zult vinden dat XSD-indicatoren In dit hoofdstuk leert u meer over indicatoren.
2. Het "employee"-element kan het type-attribuut gebruiken, dat de naam van het te gebruiken complexe type verwijst:
<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>
Als u de bovenstaande methode gebruikt, kunnen meerdere elementen dezelfde complexe type gebruiken, zoals hieronder:
<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>
U kunt ook op een bestaand complex element een ander complex element baseren en vervolgens enkele elementen toevoegen, zoals hieronder:
<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>
- Vorige pagina XSD Beperkingen
- Volgende pagina XSD Lege elementen