Описание элементов в XML Schema
Элементы бывают простыми и сложными. Простые элементы не могут иметь атрибуты и содержимое смешанного типа, а сложные – могут. Содержимое смешанного типа – это возможность использовать внутри элемента дочерние элементы и текст (смешанное содержимое) .Простые определяются с помощью вложенного элемента <xs:simpleType>, сложные - <xs:complexType>. Последовательность элементов и типов не играет роли. Схема будет работать в любом случае. Элементы обладают обязательными атрибутами name и type, определяющими имя элемента и его тип. Например: <xs:element name="computer" type="xs:string"> В схемах XML поддерживаются все наиболее распространенные в языках программирования типы данных, а именно: xs:string – строковый (символьный) тип xs:decimal - десятичное число xs:boolean – true/false xs:float – число с плавающей точки xs:date (1950-03-26) - дата xs:time (15:30:01) - время и др. Второй способ написания XML Schema (первый в примере выше), который основывается на том, чтобы описывать тип сразу внутри элемента. Данный способ подойдет в том случае, если вы не планируете использовать одно и то же описание для разных элементов.
Элемент объявляется при помощи специальной конструкции «element» с использованием соответствующего префикса. В данном случае мы определяем элемент с названием «root» без указания типа (type), так как он будет описан внутри элемента. То есть, есть два способа описания элементов. Способ
Способ
Вы можете использовать как первый способ, так и второй. Все они работают одинаково. Вопрос лишь в удобстве в данном конкретном случае. Далее после объявления элемента мы указываем, что он комплексного типа (<xs:complexType>) и перечисляем (<xs:sequance>) вложенные элементы. В данном случае это элементы name и age с типами «xs:string» и «xs:integer». Префикс xs означает, что это базовый тип, который уже описан в стандарте XML Schema. Запись атрибутов: <attribute default = string fixed = string form = (qualified | unqualified) id = ID name = NCName ref = QName type = QName use = (optional | prohibited | required): optional {any attributes with non-schema Namespace...}> Content: (annotation?, (simpleType?)) </attribute> Атрибут sequence определяет фиксированный порядок вхождений дочерних элементов. Если порядок не важен, необходимо использовать choice. В этом случае допускается и по несколько вхождений, число которых можно управлять: minOccurs="2" - минимальной количество 2 maxOccurs="10" - максимальное количество 10 maxOccurs="unbounded" - неограниченное число. Пример: <xs:element name="zooAnimals"> <xs:complexType> <xs:sequence minOccurs="0" maxOccurs="unbounded"> <xs:element name="elephant"/> <xs:element name="bear"/> <xs:element name="giraffe"/> </xs:sequence> </xs:complexType> </xs:element>.
Простые и комплексные типы в XML Schema. Типы атрибутов. Элементы бывают простыми и сложными (комплексными). Простые элементы не могут иметь атрибуты и содержимое смешанного типа, а сложные – могут. Содержимое смешанного типа – это возможность использовать внутри элемента дочерние элементы и текст (смешанное содержимое) . Простые определяются с помощью вложенного элемента <xs:simpleType>. Сложные определяются с помощью <xs:complexType> (спецификация по адресу: http://msdn.microsoft.com/ru-ru/library/vstudio/ms256067(v=vs.90).aspx). В отличие от простых элементов сложные элементы могут иметь атрибуты и содержимое смешанного типа. Последовательность появления дочерних элементов определяется с помощью конструкции <xs:sequence> Например, сложный элемент Computer с установленной последовательностью появления элементов (сначала HDD, потом Motherboard) можно определить так: <xs:complexType name=”Computer”> <xs:sequence> <xs:element name=”HDD” type=”xs:string”/> <xs:element name=”Motherboard” type=”xs:string”/> </xs:sequence> <xs:attribute name=”model” type=”xs:string” fixed=”NewModel”/> <xsd:complexType> Объявление атрибута: <attribute default = string fixed = string form = (qualified | unqualified) id = ID name = NCName ref = QName type = QName use = (optional | prohibited | required): optional {any attributes with non-schema Namespace...}> Content: (annotation?, (simpleType?)) </attribute> Default Атрибут со значением по умолчанию. Если атрибут не указан в экземпляре внутри XML-документа, атрибуту присваивается заданное значение. Если атрибут не присутствует в экземпляре документа, то он должен отобразиться в модуле проверки после обработки схемы. Обработчики схемы должны действовать таким образом, будто атрибуту задано значение по умолчанию и он фактически не находится в документе экземпляра. Атрибуты Default и fixed не могут присутствовать одновременно. Необязательный. Fixed Атрибут с фиксированным значением. Если атрибут присутствует в экземпляре документа, его значение должно быть равным заданному фиксированному значению. Если атрибут не присутствует, то атрибут получает указанное значение. Атрибуты Default и fixed не могут присутствовать одновременно. Необязательный. Type Имя встроенного типа данных или простого типа данных, определенного в этой схеме (или другой схеме, указанной конкретным пространством имен). Тип должен быть именем QName. Этот тип может включать префикс пространства имен. Атрибут type может присутствовать, только если в содержимом не содержится элемент simpleType. Необязательный. Типы атрибутов по способу использования: Выражается через значение параметраuse(Необязательный). Если этот атрибут указан, то он должен принять одно из следующих значений. optional -атрибут является необязательным и может принимать любое значение. Это значение по умолчанию. Следующие примеры эквивалентны. <xs:attribute name="myattr" type="xs:string"/> <xs:attribute name="myattr" type="xs:string" use="optional"/> prohibited -атрибут нельзя использовать. Этот атрибут используется в ограничении другого сложного типа, чтобы запретить использование существующих атрибутов. <xs:complexType name="A"> <xs:attribute name="x" type="xs:NCName"/> <xs:attribute name="y" type="xs:QName"/> </xs:complexType>
<xs:complexType name="B"> <xs:complexContent> <xs:restriction base="xs:A"> <xs:attribute name="x" use="required" /> <xs:attribute name="y" use="prohibited"/> </xs:restriction> </xs:complexContent> </xs:complexType> required -атрибут должен отобразиться один раз (обязательно). Атрибут необходим и может принимать любое значение, допускаемое определением типа этого атрибута. <xs:attribute name="myattr" type="xs:string" use="required"/> Атрибут используется в ограничении или расширении другого сложного типа, он требует существования конкретного атрибута или атрибутов. <xs:complexType name="A"> <xs:attribute name="x" type="xs:NCName"/> <xs:attribute name="y" type="xs:QName"/> </xs:complexType>
<xs:complexType name="B"> <xs:complexContent> <xs:restriction base="xs:A"> <xs:attribute name="x" use="required" /> <xs:attribute name="y" use="prohibited"/> </xs:restriction> </xs:complexContent> </xs:complexType>
Популярное: Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе... Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (2533)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |