Определение комплексных элементов
Комплексные элементы XML могут содержать дочерние элементы и/или атрибуты. Синтаксис: <xs:element name="name"> <xs:complexType> содержание элемента </xs:complexType> </xs:element> Пример 11. <xsd:element name="note"> <xsd:complexType> <xsd:sequence> <xsd:element name="to" type="xsd:string"/> <xsd:element name="from" type="xsd:string"/> <xsd:element name="heading" type="xsd:string"/> <xsd:element name="body" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </xsd:element> В примере приведен элемент XML Schema описывающий XML элемент содержащий дочерние элементы. Следующий пример демонстрирует описание пустого XML элемента содержащего атрибуты. Пример 12. <xsd:element name="product"> <xsd:complexType> <xsd:attribute name="prodid" type="xsd:Integer"/> </xsd:complexType> </xsd:element> XML элемент <product prodid="1345"/> Следующий пример демонстрирует описание не пустого XML элемента содержащего атрибуты. Пример 13. <xsd:element name="shoesize"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:integer"> <xsd:attribute name="country" type="xsd:string" /> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> XML элемент <shoesize country="france">35</shoesize> Пример 14. Пример XML документа отправляемых заказов: <?xml version="1.0"?> <shipOrder> <shipTo> <name>Tove Svendson</name> <street>Ragnhildvei 2</street> <address>4000 Stavanger</address> <country>Norway</country> </shipTo> <items> <item> <title>Empire Burlesque</title> <quantity>1</quantity> <price>10.90</price> </item> <item> <title>Hide your heart</title> <quantity>1</quantity> <price>9.90</price> </item> </items> </shipOrder> Пример XML Schema для рассмотренного выше XML документа: <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="shipOrder" type="order"/>
<xs:complexType name="order"> <xs:sequence> <xs:element name="shipTo" type="shipAddress"/> <xs:element name="items" type="cdItems"/> </xs:sequence> </xs:complexType>
<xs:complexType name="shipAddress"> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="street" type="xs:string"/> <xs:element name="address" type="xs:string"/> <xs:element name="country" type="xs:string"/> </xs:sequence> </xs:complexType>
<xs:complexType name="cdItems"> <xs:sequence> <xs:element name="item" type="cdItem" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType>
<xs:complexType name="cdItem"> <xs:sequence> <xs:element name="title" type="xs:string"/> <xs:element name="quantity" type="xs:integer"/> <xs:element name="price" type="xs:decimal"/> </xs:sequence> </xs:complexType>
</xs:schema>
Документация и литература: 1. XML-схема. Часть 0: Пример. Рекомендации W3C, 2 мая 2001 года. Перевод выполнил Шокоров В. П. http://www.citforum.ru/internet/xml/scheme/ 2. Понимание XML Schema. Автор: Aaron Skonnard, DevelopMentor. Перевод: Шатохина Надежда(sna@uneta.org), Ukraine.Net Alliance (http://www.uneta.org). Март 2003. http://www.vbnet.ru/articles/showarticle.aspx?id=151 3. Руководство по XML: Разработка XML Schema. http://www.iso.ru/journal/articles/41.html 4. Учебный центр IBM, ученые курсы по XML и сопутстующим технологиям http://www.ibm.com/developerworks/ru/xml/. 5. Школы Консорциума W3C: http://xml.nsu.ru 7. XSL [11]
|