Почему XML Схема?

В данном разделе представлен ряд положений, которые показывают, почему XML Схема лучше, чем DTD.

XML Схема имеет поддержку типов данных

Одно из наиболее важных положений в XML Схемах - это возможность поддержки типов данных.

Поддержка типов данных поддерживает:

XML Схемы используют XML синтаксис

Другая сильная сторона XML Схем - это то, что они пишутся на XML.

Поскольку XML Схемы написаны на XML, то:

XML Схемы гарантируют передачу данных

Когда данные посылаются от отправителя к получателю очень важно то, что они имеют одинаковое представление о содержимом. Посредством XML Схем отправитель может описать данные таким образом, что получатель будет понимать их.

Например, дата представленная как 1999-03-11 может в ряде стран интерпретироваться как 3 ноября, в других странах как 11 марта. Однако, XML element с типом данных: <date type="date">1999-03-11</date> позволит однозначно понимать содержимое, т.к. тип данных XML даты описывается в формате CCYY-MM-DD.

XML Схемы расширяемы

XML Схемы расширяемы подобно XML, поскольку они написаны на XML.
Используя данное свойство, вы можете:

Правильность XML документа - недостаточно

Правильный (well-formed) XML документ - это документ, который соответствует правилам синтаксиса XML: Даже если документы правильные, они могут все равно содержать ошибки и эти ошибки могут приводить к серьезным последствиям. С XML Схемами большинство этих ошибок можно избежать, применяя программное обеспечения проверки правильности.

XML Схема - как применять

XML документ может иметь ссылки на DTD или XML Схему.

Простой 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 Схема

Ниже представлена простая XML Схема (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 Схему

Данный XML документ имеет ссылку на XML Схему:
<?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