![]()
Главная Обратная связь Дисциплины:
Архитектура (936) ![]()
|
Обявление элементов и их атрибутов
Элементы, из которых будет состоять документ XML, объявляются в схеме компонентом element:
<xsd:element name="имя элемента" type="тип элемента" minOccurs="наименьшее число появлений элемента в документе" maxOccurs="наибольшее число появлений" />
Значение по умолчанию необязательных атрибутов minOccurs и maxOccurs равно 1. Это означает, что если эти атрибуты отсутствуют, то элемент должен появиться в документе XML ровно один раз. Например:
<xsd:element name="degree" type="xsd:nonPositiveInteger" />
Указание типа элемента в атрибуте type удобно, если это встроенный простой тип или тип, определенный заранее. Тогда в атрибуте type можно записать только имя типа. Если же тип элемента определяется здесь же, то определение типа элемента лучше вынести в содержимое компонента element:
<xsd:element name="имя элемента" > Определение типа элемента </xsd:element>
Объявление атрибута элемента тоже несложно:
<xsd:attribute name=" имя атрибута" type="тип атрибута" use="обязательность атрибута" default="значение по умолчанию" />
Необязательный атрибут use принимает три значения:
§ optional — описываемый атрибут необязателен (это значение по умолчанию); § required — описываемый атрибут обязателен; § prohibited — описываемый атрибут неприменим. Это значение полезно при определении подтипа, чтобы отменить некоторые атрибуты базового типа. Например:
<xsd:attribute name="id" type="positiveInteger" use="required" />
Если описываемый атрибут необязателен, то атрибутом default можно задать его значение по умолчанию:
<xsd:attribute name="name" type="NCName" default="anonymous" />
Определение типа атрибута, — а это должен быть простой тип, — можно вынести в содержимое элемента attribute".
<xsd:attribute name="имя атрибута"> Тип атрибута </xsd:attribute>
Определение сложных типов
Напомним, что тип элемента называется сложным, если в элемент вложены другие элементы и/или в открывающем теге элемента есть атрибуты. Сложный тип определяется компонентом complexType, имеющим вид:
<xsd:complexType name="имя типа" > Определение типа </xsd:complexType>
Необязательный атрибут name задает имя типа, а в содержимом компонента complexType описываются элементы, входящие в сложный тип, и/или атрибуты открывающеготега. Определение сложного типа можно разделить на три группы: § определение типа пустого элемента; § определение типа элемента с простым телом; § определение типа элемента, содержащего вложенные элементы. Рассмотрим эти определения подробнее.
Определение типа пустого элемента
Проще всего определяется тип пустого элемента — элемента, не содержащего тела, а содержащего только атрибуты в открывающем теге. Каждый атрибут объявляется одним компонентом attribute, как в предыдущем разделе, например:
<xsd:complexType name="imageType"> <xsd:attribute name="href" type="xsd:anyURI" /> </xsd:complexType>
После этого определения можно в схеме объявить элемент image типа imageType:
<xsd:element name="image" type="imageType" />
а в документе XML использовать это объявление:
<image href="http://some.com/images/myface.gif" />
Лабораторная работа №15
1. Представьте данные картотеки из XML-документа лабораторной работы №1 в виде простого набора записей для каждого студента. 2. Создайте XSD-схему, в которой описываются элементы вышеуказанного XML-документа. 3. Свяжите XML-документ с созданной XSD-схемой. 4. Сохраните оба файла в папке под своей фамилией. 5. Для отображения XML-документа в браузуре воспользуйтесь одним из способов (таблица стилей CSS, объект DSO, структура DOM, таблица стилей XSL) по согласованию с преподавателем. 6. Откройте XML-документ в браузере. 7. При появлении сообщений об ошибках, постарайтесь их найти и устранить. 8. Сдайте работы преподавателю.
![]() |