Разработка распределенных приложений в Microsoft.NET Framework


Язык XML и схемы XML - часть 2


Для определения назначения элементов и атрибутов XML-документа введено понятие пространства имен XML (XML namespace), которое должно иметь уникальный идентификатор. Обычно пространство имен идентифицируется некоторым URI (Uniform Resource Identifier), связанным с доменом организации, предложившее пространство имен. По данному URI может располагаться некоторое описание пространства имен, однако это не обязательно. Все используемые в XML документе пространства имен описываются в корневом элементе документа в атрибутах с именем вида xmlns:schema_id. Таким образом схема связывается с некоторым коротким идентификатором schema_id, который затем используется как префикс атрибутов и элементов. Например, в следующей строчке пространству имен http://www.w3.org/2001/XMLSchema> дается идентификатор xs, используемый в имени элемента xs:schema.

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

Часть имени элемента после двоеточия является локальной, а часть перед двоеточием должна быть связана со схемой в корневом атрибуте. Благодаря такой нотации разные пространства имен могут иметь совпадающие имена элементов. Пространства имен используются оперирующими с XML программами.

Одним из достоинств XML является наличия языков спецификаций, определяющих правильный XML документ. Первоначально эту функцию выполнял DTD (Document Type Definition), однако в настоящий момент общепринятым стандартом является спецификация схем XML (XML Schema Definition, XSD). XSD документ является также документом на языке XML, использующим пространство имен http://www.w3.org/2001/XMLSchema. Файл с описанием схемы XML определяет:

  • словарь документа (имена элементов и атрибутов);
  • синтаксис корректного документа;
  • сложные типы данных.

Элементарные типы данных описаны в самом пространстве имен http://www.w3.org/2001/XMLSchema. Синтаксис схемы позволяет описать сложные типы данных, включающие в себя поля простых типов, сложных типов, а также сложные последовательности, каждый элемент которых может принадлежать к одному из нескольких сложных или простых типов данных.Таким образом, синтаксис схемы XML позволяет описать результат сериализации контейнера (списка или массива), в котором могут храниться объекты нескольких известных классов. В состав .NET Framework входит утилита xsd.exe, создающая схему по заданному классу, которая будет подробно рассмотрена в следующей главе. Соответствие между классами .NET и схемами не является взаимно однозначным. В частности, при использовании утилиты xsd.exe любым видам списочных контейнеров соответствует одинаковая последовательность в схемах XML.




Начало  Назад  Вперед



Книжный магазин