Розробка XML - схеми
Простори імен, XML - схеми
Простори імен XML
Простори імен у XML – це іменована сукупність імен елементів і атрибутів, яка забезпечує їх унікальність у документі.
Мова XML надає можливість авторам документів створювати свої власні теги – імена елементів. При цьому можуть виникати конфлікти імен, тобто двом різним елементам може бути привласнено одне ім’я. Подібні проблеми можуть виникати як всередині одного документа, так і при роботі з різними XML – документами.
Наприклад, теги
<subject>Геометрія</subject>
і
<subject>Нейрохірургія</subject>
використовуються для розмітки даних і описують різні дані - шкільний предмет і галузь медицини.
Застосування префіксів імен може частково розв’язати такі конфлікти. Префікс імені визначається перед ім’ям елемента, після префікса потрібно ввести двокрапку. Наприклад, у тегах
<school:subject>Геометрія</ school:subject>
і
<medical:subject>Нейрохірургія</medical:subject>
конфлікт імен подолано за рахунок використання префіксів school і medical.
Крім застосування префіксів імен можна використовувати атрибут xmlns (namespace), який визначає простір імен і поміщається у відкриваючий тег із застосуванням такого синтаксису:
хmlns:префікс_імені= "простір_імен"
Простір імен може бути універсальним ідентифікатором ресурсу URI (Uniform Resource Identifier). Універсальний ідентифікатор ресурсу – це рядок символів, який ідентифікує який-небудь ресурс у Інтернет. Найбільш розповсюдженим типом URI є універсальний локатор ресурсу URL (Uniform
Resource Locator), що ідентифікує розташовану у Інтернері доменну адресу. Якщо в якості URI застосовується URL, то це надає можливість ввести унікальне ім’я для простору імен оскільки доменні адреси у мережі Інтернет не повторюються, при чому не відбувається ніякого звернення за зазначеною адресою, вона лише надає унікальне ім’я.
Коли простір імен визначається у початковому тегу, усі дочірні елементи з даним префіксом пов’язуються із зазначеним простором імен.
Як приклад можна розглянути документ з відомостями про студентів, у якому додана інформація про батьків кожного студента – ім’я та професія. Для однозначної ідентифікації імен студента, матері та батька, а також, щоб розрізняти професію батька та матері використовуються простори імен, пов’язані з префіксами m і f. Документ представлено на рис. 10.1.
Рисунок 10.1 –XML – документ, у якому використовуються простори імен
Простір імен можна також задати за замовчуванням. Це дає можливість уникнути необхідності визначати префікси імен у всіх дочірніх елементах. Виконати цю операцію можна за допомогою наступного синтаксису:
<element xmlns="namespace">
Рисунок 10.2 – Використання просторів імен за замовчуванням
Розробка XML - схеми
Для опису структури документа крім DTD можна використовувати схему XML, яка має певні переваги у порівнянні з DTD. Схема – це зовнішній файл, який містить опис елементів і атрибутів XML – документа. Схеми використовують синтаксис мови XML для визначення елементів документа, їх підпорядкування, типів даних елементів, при чому схеми підтримують значно більшу кількість типів даних ніж DTD. Схеми, на відміну від DTD, також підтримують простори імен. Таким чином, після перевірки на відповідність
XML - документа схемі обробляюча програма може створити модель даних документа, яка включає:
§ словник – назви елементів і атрибутів;
§ модель умісту документа – структура документа, яка відображає відношення між елементами і атрибутами:
§ типи даних.
На теперішній час існують два основних типа схем: XML – Data Reduced - стандарт, який використовується фірмою Microsoft, і XML – Schema – стандарт W3C. Схеми стандарту XML – Data Reduced є достатньо розповсюдженими, однак, на практиці частіше працюють зі схемами стандарту корпорації W3C XML – Schema, тому даний інструмент роботи з XML – документами буде розглядатися на прикладі стандарту XML – Schema.
Створення схеми виконується за допомогою мови XML – схеми, яка зазвичай називається мовою визначення XML – схеми XSD (XML Schema definition). Стандарт має статус рекомендації W3C з 2 травня 2001 року. Зараз консорціумом розробляється нова версія 1.1 XML – Schema Definition Language (XSD).
XML – схема починається з оголошення XML – документа, далі слідує тег xsd:schema, який є тегом найвищого рівня, що містить у собі всі елементи XML
– схеми. Даний тег включає атрибути, що визначають простори імен для схеми.
Зазвичай тег schema включає атрибут xmlns:xsd="http://www.w3.org/2001/XMLSchema"
Цей атрибут вказує на те, що елементи і типи даної схеми визначаються у просторі імен 2001 XMLSchema, яке можна знайти за адресою http://www.w3.org/2001/XMLSchema. Атрибут xmlns має фіксоване значення, у даному випадку його змінювати неможна. Як префікс простору імен можна використовувати будь-яку послідовність символів. Зазвичай використовуються префікс xsd у відповідності до узгодження щодо використання даного іменного простору для визначення елементів XML – схеми. Простір імен використовується у даному випадку для того, щоб ідентифікувати елементи і
прості типи даних як такі, що належать словникові мови XML – схем, а не авторові схеми.
Всередині тегу schema описуються елементи XML – документа. Елементи, які містять елементи - нащадки або атрибути, називаються елементами комплексного типу. Елементи, що вміщують лише власно данні, називаються елементами простого типу. Для опису елементів простого типу використовується тег element, що має вид:
<xsd:element name="ім’я_елемента" type="тип_даних"/>
У XML – схемах найчастіше використовуються такі типи даних: xsd:string - будь-які символьні дані
xsd:boolean - логічні значення true або false, 1 або 0 xsd:integer - ціле число
xsd:float - числове значення
xsd:date - дата xsd:dateTime - дата і час
Наприклад, для опису елемента first_name можна в схемі визначити:
<xsd:element name=" first_name " type="xsd:string"/>
Елементи комплексного типу можуть бути описані в схемі двома способами:
I. Визначається ім’я елемента, комплексний тип даних для конкретного елемента і далі описується послідовність дочірніх елементів.
Наприклад, так можна описати елемент student, який має дочірні елементи name і birthday символьного типу даних.
<xsd:element name="student">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="birthday" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
II. Оголошується елемент – визначається його ім’я і ім’я комплексного типу даних, а далі в схемі описується комплексний тип даних з даним іменем.
Наприклад, елемент student може бути описаний так:
<xsd:element name="student" type="stdata" />
<xsd:complexType name="stdata" >
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="birthday" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
Другий спосіб дає можливість використати комплексний тип даних при оголошенні декількох елементів.
Для опису атрибутів елементів у схемі використовується тег xsd:attribute, який може вміщувати наступні атрибути:
name - ім’я атрибуту елемента;
type – тип даних значення атрибуту; default – значення за замовчуванням; fixed – фіксоване значення атрибуту;
use – характер використання атрибуту: required – атрибут є обов’язковим, optional - необов’язковий атрибут.
Наприклад, якщо простий елемент phone має атрибут kind, то це можна описати так:
<xsd:element name="phone" type="xsd:string">
<xsd:attribute name=" kind" type="xsd:string"/>
</xsd:element>
У схемах, як і у DTD, можна визначити припустиму кількість повторень для елементів документа – кількість вкладень. Це виконується за допомогою атрибутів minOccurs і maxOccurs тегу xsd:element.
Атрибут minOccurs визначає мінімальну кількість появ елемента у
документі. Можливі значення атрибуту:
0 – елемент є необов’язковим, може з’являтися нуль або більше разів;
1 – елемент повинен бути присутнім мінімум один раз (значення за замовчуванням).
Атрибут maxOccurs визначає максимальну кількість появ елемента у документі. Можливі такі значення атрибуту:
1 – елемент може з’являтися у документі не більше одного разу; unbounded – число появ елемента у документі не обмежено.
Схему XML – документа можна створити за допомогою текстового редактору, у тому числі програми Блокнот, або з використанням різноманітних XML – редакторів. Файл, у якому зберігається схема документа, повинен мати розширення xsd. Для того, щоб пов’язати XML – документ зі схемою, потрібно у тегу кореневого елемента визначити простір імен схеми і визначити зовнішній файл, у якому знаходиться схема.
Наприклад, XML - документ, у якому знаходяться дані про студентів і для якого створено схему, виглядатиме так:
Схема цього документа:
Для перевірки відповідності документа схемі можна використовувати різні програмні засоби – програми XML – Validator, деякі з них надають можливість перевірити відповідність XML – документа схемі у режимі он-лайн. Наприклад, за адресою http://xmltools.corefiling.com/schemaValidate можна звернутися до такої програми.
На web-сторінці у полі XML Schema потрібно визначити файл зі схемою, у полі XML Instance – файл з XML – документом, натиснути на кнопці Validate,
далі для виведення результатів перевірки валідності натиснути на посиланні Click here. Результати перевірки повинні виглядати як на рис. 10.4. У разі виявлення помилок програма виведе перелік причин, з яких документ не є валідним.
Рисунок 10.3 – Вікно діалогу програми перевірки XML – документа на відповідність схемі
Дата добавления: 2016-04-14; просмотров: 1107;