XSD Сложные элементы
- Предыдущая страница Ограничения XSD
- Следующая страница XSD Пустые элементы
Сложный элемент содержит другие элементы и/или атрибуты.
Что такое сложный элемент?
Сложный элемент - это элемент XML, который содержит другие элементы и/или атрибуты.
Есть四种 типа сложных элементов:
- Пустые элементы
- Элементы, содержащие другие элементы
- Элементы, содержащие только текст
- Элементы, содержащие элементы и текст
Примечание:Все эти элементы могут содержать атрибуты!
Пример сложного элемента
Сложный элемент, "product", пуст:
<product pid="1345"/>
Сложный элемент, "employee", содержит только другие элементы:
<employee> <firstname>John</firstname> <lastname>Smith</lastname> </employee>
Сложный элемент, "food", содержит только текст:
<food type="dessert">Ice cream</food>
Сложный элемент, "description", содержит элементы и текст:
<description> Это произошло <date lang="norwegian">03.03.99</date> .... </description>
Как определить сложный элемент?
Пожалуйста, посмотрите на этот сложный XML элемент, "employee", который содержит только другие элементы:
<employee> <firstname>John</firstname> <lastname>Smith</lastname> </employee>
В XML Schema есть два способа определить сложный элемент:
1. Назвав этот элемент, можно напрямую объявить элемент "employee", например:
<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>
Если вы используете описанный выше метод, то только "employee" может использовать规定的 сложный тип. Обратите внимание, что подэлементы, "firstname" и "lastname", окружены знаками <sequence>. Это означает, что подэлементы должны出现 в порядке их объявления. Вы найдете Знаки XSD В этом разделе вы узнаете больше о знаках.
2. "employee" элемент может использовать атрибут type, который указывает на имя используемого сложного типа:
<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>
Если вы использовали описанный выше метод, то несколько элементов могут использовать один и тот же сложный тип, например, так:
<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>
Вы также можете добавить элементы на основе существующего сложного элемента, например, так:
<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>
- Предыдущая страница Ограничения XSD
- Следующая страница XSD Пустые элементы