Почему XML Schema?

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

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

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

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

XML Schema используют XML синтаксис

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

Поскольку XML Schema написаны на XML, то:

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 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