double arrow

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

Из вышеизложенного следует, что поддержка данных о структуре данных является важной целью языка XML, и практически любой его аспект направлен на то, чтобы упростить восприятие содержимого документа. Но как же решается задача определения метаданных в XML?

Любая задача структурирования связана с построением модели данных. В качестве модели XML-документа выбирается некий шаблон, определяющий тип используемой в документе информации и ее структуру. Такие шаблоны называют XML схемами и используют для описания класса данных. Задав класс с использованием схемы, вы получаете возможность создавать хорошо структурированные документы, которые можно проверить на допустимость.

В первое время для этой цели использовалась спецификация DTD (Document Type Definition), но фирма Microsoft разработала новый подход, который обладает значительными возможностями для описания типов данных. XML Schema задает структуру документа при помощи особого словаря; другими словами, сама схема документа представляет собой XML-документ, который включает в себя теги и атрибуты. Поэтому консорциум W3C рекомендовал описывать структуру документов XML на языке XSD.

Язык XSD различает простые и сложные элементы XML. Простыми (simple) элементами описываемого документа XML считаются элементы, не содержащие атрибутов и вложенных элементов. Сложные (complex) элементы содержат атрибуты и/или вложенные элементы. Схема XML описывает простые типы – типы простых элементов, и сложные типы – типы сложных элементов.

На Рис. 7.2 показана схема XML для документа-заказа, приве­денного на Рис. 8.2. Даже этот простой пример показывает основательную поддержку типизации данных в схемах XML; элементы и атрибуты имеют типы данных, очень похожие на типы данных SQL. Кроме того, схема, приведенная на Рис. 7.2, сама является XML-документом, и поэтому человеку, знакомому с осно­вами XML, прочитать ее легче, чем DTD-определение.

<schema xmlns="https://www.w3.org/2001/XMLSchema"> <element name="purchaseOrder" type="P0Type"/> <complexType name="POType"> <sequence> <element name="id_cln" type="integer"/> <element name="id_order" type="integer"/> <element name="date_order" type="date"/> <element name="id_slzh" type="integer" length="3"/> <element name="orderItem" min0ccurs="0" maxOccurs-"unbounded"> <complexType> <sequence> <element name="id_mfr" type="string" length="3"/> <element name="id_prd" type="string"/> <element name="count" type="integer"/> <element name="price_all" type="decimal" fractionDigits="2"/> </sequence> </complexType> </element> </sequence> </complexType> </schema>
Рис. 7.2 - Схема XML для простого документа-заказа

Возвращаясь к выполняемой XML функции разметки, следует еще раз подчеркнуть, что он (в отличие от HTML) не является полнофункциональным языком, который должен решать все задачи представления, поддержки и обработки информационных ресурсов Web.

Если проводить аналогию с технологиями баз данных, то XML можно квалифицировать как язык определения данных. Специфика XML как языка определения данных заключается в том, что в нем сочетаются возможности описания свойств экземпляров элементов XML-документов, составляющих содержание данного конкретного документа, с возможностями определения свойств типа XML-документов (XML Schema) в терминах типов элементов этих документов.

1. Первая группа средств (теги разметки) используется по принципу самоописываемости, определяя некоторые свойства элементов конкретного документа с помощью встраиваемых в него тегов разметки.

2. Что касается XML Schema, то она описывает типовые свойства элементов документа и свойства типов документов в целом.

Роль XML Schema аналогична роли схемы базы данных. Экземпляр XML можно сравнить с хранением данных на физическом диске в СУБД, а XML-схему - со схемой языка описания SQL-данных. При этом XML Schema отчуждается от описываемых документов и хранится где-либо в Web. Конкретные XML-документы ссылаются на это определение, хотя они могут и включать его непосредственно в явном виде.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: