Почему XML Schema?
В данном разделе представлен ряд положений, которые показывают, почему XML Schema лучше, чем DTD.
XML Schema имеет поддержку типов данных
Одно из наиболее важных положений в XML Schema - это возможность поддержки типов данных.
Поддержка типов данных поддерживает:
- более легкое описание возможное содержание документа;
-
- более легкую проверку корректности данных;
-
- более легкую работу с данными из базы данных;
-
- более легкое определение области значений данных (ограничения данных);
-
- более легкое определение шаблонов данных (форматов данных);
-
- более легкое преобразование данных между различными типами данных.
XML Schema используют XML синтаксис
Другая сильная сторона XML Schema - это то, что они пишутся на XML.
Поскольку XML Schema написаны на XML, то:
- вам не надо изучать другой язык;
- вы можете использовать ваш XML редактор для редактирования файлов Schema;
- вы можете использовать ваш XML анализатор (parser) для анализа ваших файлов Schema;
- вы можете манипулировать вашей схемой посредством XML DOM;
- вы можете трансформировать ваши схемы посредством XSLT.
XML Schema гарантируют передачу данных
Когда данные посылаются от отправителя к получателю очень важно то, что они имеют одинаковое представление о содержимом.
Посредством XML Schema отправитель может описать данные таким образом, что получатель будет понимать их.
Например, дата представленная как 1999-03-11 может в ряде стран интерпретироваться как 3 ноября, в других странах как 11 марта. Однако, XML element с типом данных:
<date type="date">1999-03-11</date>
позволит однозначно понимать содержимое, т.к. тип данных XML даты описывается в формате CCYY-MM-DD.
XML Schema расширяемы
XML Schema расширяемы подобно XML, поскольку они написаны на XML.
Используя данное свойство, вы можете:
- повторно использовать ваши схемы в других схемах;
- создавать ваши собственные типы данных производные от стандартных типов;
- ссылаться на несколько схем из одного документа.
Правильность XML документа - недостаточно
Правильный (well-formed) XML документ - это документ, который соответствует правилам синтаксиса XML:
- должен начинаться с XML объявления;
- должен иметь один уникальный корневой элемент;
- все начальные теги должны иметь парные конечные теги;
- XML теги чувствительны к регистру;
- все элементы должны быть закрыты;
- все элементы должны быть правильно вложены;
- все значения атрибутов должны быть в двойных кавычках;
- XML сущности (entities) должны использоваться вместо зарезервированных символов.
Даже если документы правильные, они могут все равно содержать ошибки и эти ошибки могут приводить к серьезным последствиям. С XML Schema большинство этих ошибок можно избежать, применяя программное обеспечения проверки правильности.
XML Schema - как применять
XML документ может иметь ссылки на DTD или XML Schema.
Простой XML документ
Ниже представлен простой XML документ (note.xml).
<?xml version="1.0"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
В этом примере элемент note является комплексным элементом, поскольку он содержит другие элементы. Все другие элементы простые, т.к. они не содержат других элементов.
Простой DTD
Ниже представлен простой DTD файл (note.dtd), который определяет элементы XML документа:
<!ELEMENT note (to, from, heading, body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
Стока 1 в DTD определяет элемент note и говорит, что он содержит четыре элемента "to, from, heading, body".
Строки 2-5 определяют элемент to с типом "#PCDATA", элемент from с типом "#PCDATA" и так далее.
Простая XML Schema
Ниже представлена простая XML Schema (note.xsd), которая также определяет элементы XML файла:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<element name="to" type="xs:string"/>
<element name="from" type="xs:string"/>
<element name="heading" type="xs:string"/>
<element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Схема определяет элемент note как комплексный элемент, содержащий последовательность других простых элементов.
Ссылка на DTD
Данный XML документ имеет ссылку на DTD:
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM
"http://www.w3schools.com/dtd/note.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Ссылка на XML Schema
Данный XML документ имеет ссылку на XML Schema:
<?xml version="1.0"?>
<note xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation=
"http://www.w3schools.com/schema/note.xsd">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Сайт создан в системе
uCoz