Поделиться через


Общие сведения о схемах XDR с заметками (является устаревшим в SQLXML 4.0)

Важное примечаниеВажно!

Этот раздел включен в документацию в качестве справочника по приложениям прежних версий. Дальнейшая разработка этой функции проводиться не будет. Рекомендуется избегать использования данной функции в новых разработках. Вместо этого для создания XML-представлений пользуйтесь схемами XSD с заметками. Дополнительные сведения см. в разделе Введение в схемы XSD с заметками (SQLXML 4.0). Можно преобразовать существующие схемы XDR с заметками в схемы XSD. Дополнительные сведения см. в разделе Преобразование схем XDR с заметками в эквивалентные схемы XSD (SQLXML 4.0).

Можно создавать XML-представления реляционных данных с помощью схем XDR (XML-Data Reduced). Затем можно выполнять запросы XPath к этим представлениям. Это похоже на создание представлений с помощью инструкции CREATE VIEW с последующим получением данных из них с помощью запросов SQL.

Схема XML описывает структуру XML-документа, а также различные ограничения на данные, содержащиеся в документе. При задании запросов XPath по схеме структура возвращаемого XML-документа определяется согласно схеме, по которой выполняется запрос XPath.

В MicrosoftSQL Server 2000 язык XML-Data Reduced (XDR) был первоначально введен для создания схем XML. В то время язык XDR был гибким и преодолевал некоторые ограничения определений типа документа (Document Type Definitions, DTD), которые также могут использоваться для описания структур XML-документов. В отличие от определений DTD, схемы XDR описывают структуру XML-документа с помощью того же синтаксиса, что используется в самом XML-документе. Кроме этого, все данные в определении DTD представляют собой символьные данные. Схемы на языке XDR позволяют задавать тип данных элемента или атрибута.

В схеме XDR элемент <Schema> заключает в себе всю схему. Атрибуты, описывающие имя схемы и пространства имен, в которых она находится, можно задавать как свойства элемента <Schema>. В языке XDR все декларации элементов должны содержаться внутри элемента <Schema>.

Минимальная схема XDR выглядит следующим образом:

<?xml version="1.0" ?><Schema xmlns="urn:schemas-microsoft-com:xml-data">   ...</Schema>

Элемент <Schema> является производным от пространства имен xml-data (urn:schemas-microsoft-com:xml-data).

ПримечаниеПримечание

В этом разделе предполагается, что вы знакомы с языком XML-Data.

Заметки схемы XDR

Можно использовать XDR-схему с аннотациями, которые задают сопоставление с базой данных, чтобы создавать запросы к базе данных и возвращать результаты в виде XML-документа. Первые аннотации, которые можно было использовать для сопоставления XDR-схемы с таблицами и столбцами базы данных SQL, появились в версии SQL Server 2000. Можно создавать запросы XPath к представлениям XML, созданным на основе XDR-схемы для создания запросов к базе данных и получения результатов в виде XML.

Альтернативой является более сложный процесс написания запроса SQL, использующего режим FOR XML EXPLICIT для описания структуры XML-документа как части запроса. Однако, чтобы обойти большую часть ограничений запросов XPath к схемам сопоставления, используются запросы SQL в режиме FOR XML EXPLICIT для возвращения результатов в виде XML-документа.

При наличии публичной XDR-схемы (например, схем Microsoft BizTalk), можно прибегнуть к любому из двух способов:

  • Написать запрос в режиме FOR XML EXPLICIT, чтобы возвращаемые данные имели допустимый формат согласно XDR-схеме; однако написание запросов FOR XML EXPLICIT может быть довольно трудоемким.

  • Создать частную копию XDR-схемы. Затем добавить к этой частной копии аннотации, таким образом создавая схему сопоставления. Можно задать запросы XPath к схеме сопоставления. В результате запрос создаст не что иное как данные в пространстве имен публичной схемы. Создание аннотированных схем и задание запросов XPath к ним — гораздо более простой процесс, чем написание сложных запросов FOR XML EXPLICIT. На следующей иллюстрации показан этот процесс.

Использование копии схемы для создания примечаний.

Схема сопоставления

В контексте реляционной базы данных полезно сопоставить произвольную XDR-схему с реляционным хранилищем. Один из способов этого добиться — создание аннотированной XDR-схемы. XDR-схема с аннотациями называется также mapping schema, предоставляющая информацию о сопоставлении данных XML с реляционным хранилищем. По сути, схема сопоставления является XML-представлением реляционных данных. Эти сопоставления позволяют получать реляционные данные в виде XML-документа.

В версии SQL Server 2000 появились некоторые аннотации, которые можно использовать в XDR-схеме для сопоставления элементов и атрибутов таблицам и столбцам базы данных. С помощью XPath (XML Path) можно создавать запросы к схемам сопоставления (XML-представлениям). Схема сопоставления описывает структуру результирующего документа.

Пространства имен для заметок

В XDR-схеме аннотации задаются с помощью следующего пространства имен: urn:schemas-microsoft-com:xml-sql.

В следующем примере показано, что наиболее простой способ задать пространство имен — определить его внутри тега <Schema>. Для аннотаций должно быть указано пространство имен urn:schemas-microsoft-com:xml-sql.

<?xml version="1.0" ?><Schema xmlns="urn:schemas-microsoft-com:xml-data"        xmlns:sql="urn:schemas-microsoft-com:xml-sql"               >    ...........</Schema>

Префикс пространства имен может быть произвольным. В данной документации префикс sql используется для задания пространства имен аннотаций и для отличения аннотаций данного пространства имен от аннотаций других пространств имен.

Пространство имен для типов данных

Схемы XDR позволяют задавать тип данных элемента или атрибута. Типы данных определяются с помощью пространства имен urn:schemas-microsoft-com:datatypes.

Это минимально возможная схема XDR с объявлениями пространств имен:

<?xml version="1.0" ?><Schema xmlns="urn:schemas-microsoft-com:xml-data"        xmlns:sql="urn:schemas-microsoft-com:xml-sql"        xmlns:dt="urn:schemas-microsoft-com:datatypes">   ...</Schema>

Префикс пространства имен может быть произвольным. В данной документации префикс dt используется для задания пространства имен типов данных и для отличения аннотаций данного пространства имен от аннотаций других пространств имен.

Элемент <Schema> является производным от пространства имен xml-data: urn:schemas-microsoft-com:xml-data.

Пример XDR-схемы

Пример демонстрирует добавление аннотаций к XDR-схеме. Эта XDR-схема состоит из элемента <Contacts> и атрибутов CID, FName и LName.

<?xml version="1.0" ?><Schema xmlns="urn:schemas-microsoft-com:xml-data"        xmlns:dt="urn:schemas-microsoft-com:datatypes"        xmlns:sql="urn:schemas-microsoft-com:xml-sql"><ElementType name="Contacts" >    <AttributeType name="CID" />    <AttributeType name="FName" />    <AttributeType name="LName" />    <attribute type="CID" />    <attribute type="FName" />    <attribute type="LName" /></ElementType></Schema>

Теперь к XDR-схеме добавляются аннотации, чтобы сопоставить ее элементы и атрибуты именам таблиц и столбцов SQL в образце базы данных AdventureWorks. Аннотированная схема XDR:

<?xml version="1.0" ?><Schema xmlns="urn:schemas-microsoft-com:xml-data"        xmlns:dt="urn:schemas-microsoft-com:datatypes"        xmlns:sql="urn:schemas-microsoft-com:xml-sql"><ElementType name="Contacts" sql:relation="Person.Contact" >    <AttributeType name="CID" />    <AttributeType name="FName" />    <AttributeType name="LName" />    <attribute type="CID" sql:field="ContactID" />    <attribute type="FName" sql:field="FirstName" />    <attribute type="LName" sql:field="LastName" /></ElementType></Schema>

В схеме сопоставления элемент <Contacts> сопоставлен таблице Person.Contact с помощью аннотации sql:relation. Атрибуты CID, FName и LName сопоставлены столбцам ContactID, FirstName и LastName таблицы Person.Contact с помощью аннотаций sql:field.

Эта аннотированная XDR-схема создает XML-представление реляционных данных. Затем можно выполнять запросы XPath (XML Path) к этим XML-представлениям. Такой запрос возвращает XML-документ, в отличие от запросов SQL, которые возвращают наборы рядов.

ПримечаниеПримечание

В схеме сопоставления заданные реляционные значения (например, имена таблиц и столбцов) чувствительны к регистру.