Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






XDR схема






XML-Data - повне ім'я мови опису схем, запропонованого Майкрософт, а XML-Data Reduced - це " частина" повної рекомендації. Схема XDR - це екземпляр XML, тобто відповідає всім синтаксичним правилам і стандартам XML.

Реалізуючи перевірки даних на рівні документа за допомогою схеми, додатки, генеруючі і приймаючі транзакції, можна оптимізувати для забезпечення максимального швидкодії. Відповідність полів і правильність записів перевіряються на рівні екземплярів XML.

Кореневим елементом в схемі XDR завжди є елемент Schema:

 

< Schema name=“ім’я_схеми” xmlns=”urn: schemas-microsoft-com: xml-data” xmlns: dt=“urn: schemas-microsoft-com: datatypes”> < -- оголошення інших елементів --> < /Schema>

 

Елемент ElementType має синтаксис:

< ElementType content=“{empty | texOnly | eltOnly | mixed}”> dt: type “datatype” model=“{open | closed}” name = “idref” order=“{one | seq | many}” >

 

Елемент ElementType може мати такі атрибути:

 

Ім’я Опис
name Ім’я елемента
content Вміст елемента. Допустимі значення: empty (порожній елемент), eltOnly (може бути тільки контейнером для інших елементів), textOnly (тільки текстові дані), mixed (змішані дані).
dt: type Типи даних елементів
model Може приймати:
Open – дозволено використовувати елементи, що не передбачені схемою
Closed – заборонено використовувати елементи, що не передбачені схемою
order Порядок слідування дочірніх елементів в екземплярі XML. Допустимі значення:
one – прогнозується наявність одного елемента
many – будь-яка кількість елементів в будь-якому поряду
seq – елементи вказуються в сугубо заданому порядку

 

В якості дочірніх для ElementType можна використовувати:

Ім’я Опис
element Оголошується дочірній елемент
description Забезпечується опис елемента ElementType
datatype Забезпечується тип даних елемента ElementType
group Визначається порядок чергування елементів
AttributeType Визначає атрибут
attribute Визначає інформацію про дочірній елемент AttributeType

 

Для оголошення атрибута:

< AttributeType default=“default-value” dt: type=“primitive-type” dt: values=“enumerated-values” name=“idref” required=“{yes|no}” >

 

В свою чергу AttributeType може мати атрибути:

Значення Опис
default Значення по замовчуванню
dt: type Один з наступних типів:
entity, entities, enumeration, id, idref, nmtoken, nmtokens, notation, string
dt: values Допустимі значення
name Ім’я атрибута
required Вказує на обов’язкову наявність атрибути в описі

 

Синтаксис для опису елемента attribute:

< attribute default=“default-value” type=“attribute-type” [required=“{yes|no}” ]>

 

Його атрибути:

Значення Коментар
default Значення по замовчуванню
type Ім’я елемента AttributeType, визначеного в даній схемі. повинно відповідати name елемента AttributeType
required Вказує на обов’язкову наявність атрибута

 

На відміну від DTD схем XDR підтримує типи даних. Елемент Schema має наступний атрибут:

 

Xmlns: dt=“urn=schemas-microsoft-com: datatypes”

 

З повним спском типів можна познайомитись на сторінці

 

https://msdn.microsoft.com/en-us/library/ms256121(VS.85).aspx

 

Індикатор входження в схемах XDR має синтаксис:

< element type=“element-type” [minOccur=“{0|1}”] [maxOccur=“{1|*}”] >

 

XDR схема схема дозволяє визначити групи вмісту. Так, в елементі ElementType може зберігатись group:

< group order=“(one|seq|many)” minOccur=“(0|1)” maxOccur=“(1|*)”> < element type=“ElementType/”> < element type=“ElementType/”> < element type=“ElementType/”> < element type=“ElementType/”> < /group>

 

Як висновок наведемо приклад XSD схеми, що описує структуру XML документа, що в свою черку вміщує електронні листи

 

<? xml version = " 1.0"? > < xsd: schema xmlns: xsd=" https://www.w3.org/2000/10/XMLSchema" >   < xsd: element name=" m_box" > < xsd: complexType> < xsd: sequence> < xsd: element ref=" message" minOccurs=" 0" maxOccurs=" unbounded" /> < /xsd: sequence> < /xsd: complexType> < /xsd: element>   < xsd: element name=" message" > < xsd: complexType> < xsd: sequence> < xsd: element ref=" head" minOccurs=" 1" maxOccurs=" 1" /> < xsd: element ref=" body" minOccurs=" 1" maxOccurs=" 1" /> < /xsd: sequence> < xsd: attribute name=" uid" use=" required" type=" xsd: string" /> < /xsd: complexType> < /xsd: element>   < xsd: element name=" head" > < xsd: complexType> < xsd: sequence> < xsd: element ref=" to" minOccurs=" 1" maxOccurs=" unbounded" /> < xsd: element ref=" from" minOccurs=" 1" maxOccurs=" 1" /> < xsd: element ref=" date" minOccurs=" 1" maxOccurs=" 1" /> < xsd: element ref=" subject" minOccurs=" 1" maxOccurs=" 1" /> < xsd: element ref=" cc" minOccurs=" 0" maxOccurs=" unbounded" /> < /xsd: sequence> < /xsd: complexType> < /xsd: element>   < xsd: element name=" to" type=" xsd: string" /> < xsd: element name=" from" type=" xsd: string" /> < xsd: element name=" date" type=" xsd: string" /> < xsd: element name=" subject" type=" xsd: string" /> < xsd: elememt name=" cc" type=" xsd: string" />   < /xsd: schema>

 

Для перевірки дійсності XML документа можна використовувати спеціальні валідатори, наприклад W3C валідатор (https://validator.w3.org/).

Для перевірки схем також існують спеціальні валідатори, наприклад XML Schema валідатор (https://www.w3.org/2001/03/webdata/xsv).

Згідно специфікації W3C XML програма повинна припинити обробку XML документа, як тільки буде виявлено помилку в цьому документі.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.