Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Представления XML реляционных данных можно создать с помощью языка определения схемы XML (XSD). Затем эти представления можно запрашивать с помощью запросов языка XML-пути (XPath). Это похоже на создание представлений с помощью инструкций CREATE VIEW, а затем указание запросов SQL к представлению.
Схема XML описывает структуру XML-документа, а также описывает различные ограничения данных в документе. При указании запросов XPath к схеме структура возвращаемого XML-документа определяется схемой, с которой выполняется запрос XPath.
В схеме <XSD элемент xsd:schema> заключает всю схему. Все объявления элементов должны содержаться в элементе <xsd:schema> . Вы можете описать атрибуты, определяющие пространство имен, в котором находится схема, и пространства имен, используемые в схеме в качестве свойств <элемента xsd:schema> .
Допустимая схема XSD должна содержать< элемент xsd:schema>, определенный следующим образом:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<!-- additional schema definitions here -->
</xsd:schema>
Элемент <xsd:schema> является производным от спецификации пространства имен СХЕМЫ XML.http://www.w3.org/2001/XMLSchema
Заметки к схеме XSD
Схему XSD можно использовать с заметками, описывающими сопоставление с базой данных, запрашивать базу данных и возвращать результаты в виде XML-документа. Заметки предоставляются для сопоставления схемы XSD с таблицами и столбцами базы данных. Запросы XPath можно указать в xml-представлении, созданном схемой XSD, для запроса базы данных и получения результатов в виде XML.
Замечание
В Microsoft SQLXML 4.0 язык схемы XSD поддерживает заметки, представленные с аннотированной XML-Data сокращенной (XDR) схемой языка в SQL Server 2000. Аннотированный XDR не рекомендуется использовать в SQLXML 4.0.
В контексте реляционной базы данных полезно сопоставить произвольную схему XSD с реляционным хранилищем. Одним из способов этого является анимировать схему XSD. Схема XSD с заметками называется схемой сопоставления, которая содержит сведения, относящиеся к сопоставлению XML-данных с реляционным хранилищем. Схема сопоставления — это xml-представление реляционных данных. Эти сопоставления можно использовать для извлечения реляционных данных в виде XML-документа.
Пространство имен для заметок
В схеме XSD заметки задаются с помощью схемы пространства имен urn:schemas-microsoft-com:mapping-schemas. Как показано в следующем примере, самый простой способ указать пространство имен — указать его в теге <xsd:schema> .
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
...
</xsd:schema>
Префикс пространства имен, используемый, является произвольным. В этой документации префикс SQL используется для обозначения пространства имен заметок и различает заметки в этом пространстве имен от других пространств имен.
Пример аннотированной схемы XSD
В следующем примере схема XSD состоит из <элемента Person.Contact> . Элемент <Employee> имеет атрибут ContactID и <дочерние элементы FirstName> и <LastName> :
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="Contact" >
<xsd:complexType>
<xsd:sequence>
<xsd:element name="FName"
type="xsd:string" />
<xsd:element name="LName"
type="xsd:string" />
</xsd:sequence>
<xsd:attribute name="ConID" type="xsd:integer" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
Заметки добавляются в эту схему XSD для сопоставления его элементов и атрибутов с таблицами и столбцами базы данных:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="Contact" sql:relation="Person.Contact" >
<xsd:complexType>
<xsd:sequence>
<xsd:element name="FName"
sql:field="FirstName"
type="xsd:string" />
<xsd:element name="LName"
sql:field="LastName"
type="xsd:string" />
</xsd:sequence>
<xsd:attribute name="ConID"
sql:field="ContactID"
type="xsd:integer" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
В схеме <сопоставления элемент Contact> сопоставляется с таблицей Person.Contact в примере базы данных AdventureWorks с помощью заметки sql:relation
. Атрибуты ConID, FName и LName сопоставляются со столбцами ContactID, FirstName и LastName в таблице Person.Contact с помощью sql:field
заметок.
Эта аннотированная схема XSD предоставляет xml-представление реляционных данных. Это xml-представление можно запрашивать с помощью языка XPath. Запрос XPath возвращает XML-документ в результате вместо набора строк, возвращаемого запросами SQL.
Замечание
В схеме сопоставления конфиденциальность регистра для указанных реляционных значений (например, имени таблицы и имени столбца) зависит от того, использует ли SQL Server параметры сортировки с учетом регистра. Дополнительные сведения см. в статье Collation and Unicode Support.
Другие ресурсы
Дополнительные сведения о языке определения схемы XML (XSD), языке XML-пути (XPath) и расширяемых преобразованиях языка таблицы стилей (XSLT) можно найти на следующих веб-сайтах:
Часть 0 схемы XML: primer, рекомендация W3C (http://www.w3.org/TR/xmlschema-0/)
Часть 1 схемы XML: структуры, рекомендация W3C (http://www.w3.org/TR/xmlschema-1/)
Xml Schema Part 2:Datatypes, рекомендация W3C (http://www.w3.org/TR/xmlschema-2/)
Язык XML-пути (XPath) (http://www.w3.org/TR/xpath)
Преобразования XSL (XSLT) (http://www.w3.org/TR/xslt)
См. также
Вопросы безопасности аннотированных схем (SQLXML 4.0)
Аннотированные схемы XDR (устаревшие в SQLXML 4.0)