Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Semantic web.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.1 Mб
Скачать
    1. Элементы xml Schema

В Пример 10. элемент Book является комплексным элементом, поскольку он содержит другие элементы. Все остальные элементы являются простыми, так как они не содержат других элементов.

      1. Определение простых элементов

Элемент простого типа это XML элемент, который не может содержать какие-либо другие элементы или атрибуты. Содержимое элемента может быть одним из типов, которые включаются в определение XML Schema, или он может быть пользовательского типа, который вы можете определить самостоятельно.

Синтаксис:

<xsd:element name="NAME" type="TYPE"/>

где NAME – это имя элемента, а TYPE – тип.

Примеры:

<xsd:element name="Title" type="xsd:string"/>

<xsd:element name="age" type="xsd:number"/>

Ниже представлен список наиболее часто используемых внутренних типов XML Schema:

Название

Описание

Пример

string

Строка символов, включая символы пробела, табуляции, возврата каретки и перевода строки.

John Lennon

boolean

Двоичное, логическое. Принимает значения: true или false (1 или 0).

false

decimal

Десятичное число в виде последовательности десятичных цифр, включая дробную часть, отделяемую точкой.

3145.56

hexBinary

16-е данные в двоичном кодев виде последовательности двоичных октетов.

0FFF

anyURI

Универсальный индикатор ресурсов (URI) согласно RFC 2396 и RFC 2732.

http://cnet.com

integer

Целое число

1235

time

Значение текущего времени

15:30:01

date

Календарная дата

1950-03-26

Если XML элемент типа xsd:date, например, содержит произвольную текстовую строку, то на этот элемент будет выдаваться ошибка, связанная с несоответствием типов. Используя определения XML Schema, можно добавлять собственные ограничения для XML элементов. Эти ограничения называются областью определений (facets).

      1. Перечисляемые значения

Имеется возможность ограничить содержимое XML элементов, представляя их в виде набора фиксированных значений:

<xsd:element name="car">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:enumeration value="Audi"/>

<xsd:enumeration value="Mercedes"/>

<xsd:enumeration value="Volvo"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

Элементы enumeration XML Schema определяют набор допустимых значений для XML элемента car.

Следующий пример определяет XML элемент, который называется age (возраст) и имеет ограничения на значения – от 16 до 34:

<xsd:element name="age">

<xsd:simpleType>

<xsd:restriction base="xsd:integer">

<xsd:minInclusive value="16"/>

<xsd:maxInclusive value="34"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

      1. Определение комплексных элементов

Комплексные элементы XML могут содержать дочерние элементы и/или атрибуты.

Синтаксис:

<xs:element name="name">

<xs:complexType>

содержание элемента

</xs:complexType>

</xs:element>

<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 элемента содержащего атрибуты.

<xsd:element name="product">

<xsd:complexType>

<xsd:attribute name="prodid" type="xsd:Integer"/>

</xsd:complexType>

</xsd:element>

XML элемент

<product prodid="1345"/>

Следующий пример демонстрирует описание не пустого XML элемента содержащего атрибуты.

<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>

  1. Пример 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]