Kompozytowe elementy XSD
- Poprzednia strona Ograniczenia XSD
- Następna strona Puste elementy XSD
Element złożony zawiera inne elementy oraz/ lub atrybuty.
Co to jest element złożony?
Element złożony to XML element zawierający inne elementy oraz/ lub atrybuty.
Istnieją cztery rodzaje elementów złożonych:
- Pusty element
- Elementy zawierające inne elementy
- Elementy zawierające tylko tekst
- Elementy zawierające elementy i tekst
Komentarz:Wymienione powyżej elementy mogą zawierać atrybuty!
Przykład elementu złożonego
Element złożony, "product", jest pusty:
<product pid="1345"/>
Element złożony, "employee", zawiera tylko inne elementy:
<employee> <firstname>John</firstname> <lastname>Smith</lastname> </employee>
Element złożony, "food", zawiera tylko tekst:
<food type="dessert">Lodówka</food>
Element złożony, "description", zawiera elementy i tekst:
<description> Zdarzyło się to dnia <date lang="norwegian">03.03.99</date> .... </description>
Jak zdefiniować element złożony?
Spójrz na ten element XML złożony, "employee", który zawiera tylko inne elementy:
<employee> <firstname>John</firstname> <lastname>Smith</lastname> </employee>
W XML Schema mamy dwa sposoby zdefiniowania elementu złożonego:
1. Możesz bezpośrednio zadeklarować element "employee", np.:
<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>
Jeśli użyłeś opisanej metody, to tylko "employee" może używać określonego typu złożonego. Proszę zauważyć, że jego podelementy, "firstname" oraz "lastname", są otoczone wskaźnikiem <sequence>. Oznacza to, że podelementy muszą pojawiać się w kolejności, w której zostały zdefiniowane. Dowiesz się o tym: Wskaźniki XSD W tym rozdziale dowiesz się więcej o wskaźnikach.
2. Element "employee" może używać atrybutu type, który wskazuje nazwę używanego typu złożonego:
<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>
Jeśli użyłeś opisanej metody, wiele elementów może mieć ten sam typ złożony, np.:
<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>
Możesz również na podstawie już istniejącego elementu złożonego dodać nowe elementy, np.:
<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>
- Poprzednia strona Ograniczenia XSD
- Następna strona Puste elementy XSD