Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
При использовании схемы XSD для предоставления xml-представления реляционной базы данных элементы и атрибуты схемы должны быть сопоставлены с таблицами и столбцами базы данных. Строки в таблице или представлении базы данных сопоставлятся с элементами в XML-документе. Значения столбцов в базе данных сопоставляют с атрибутами или элементами.
При указании запросов XPath к аннотированной схеме XSD данные для элементов и атрибутов в схеме извлекаются из таблиц и столбцов, с которыми они сопоставляются. Чтобы получить одно значение из базы данных, сопоставление, указанное в схеме XSD, должно иметь спецификацию отношения и поля. Если имя элемента или атрибута не совпадает с именем таблицы или представления или столбца, с которым оно сопоставляется, sql:relationsql:field используются заметки для указания сопоставления между элементом или атрибутом в XML-документе и таблице (представлении) или столбце в базе данных.
sql-relation
Заметка sql:relation добавляется для сопоставления XML-узла в схеме XSD с таблицей базы данных. Имя таблицы (представления) указывается в качестве значения заметки sql:relation .
При sql:relation указании элемента область действия этой заметки применяется ко всем атрибутам и дочерним элементам, описанным в определении сложного типа этого элемента, поэтому при написании заметок предоставляется ярлык.
Заметка sql:relation также полезна, если идентификаторы, допустимые в Microsoft SQL Server, недопустимы в XML. Например, "Сведения о заказе" — это допустимое имя таблицы в SQL Server, но не в ФОРМАТЕ XML. В таких случаях заметку sql:relation можно использовать для указания сопоставления, например:
<xsd:element name="OD" sql:relation="[Order Details]">
sql-field
Заметка sql-field сопоставляет элемент или атрибут с столбцом базы данных. Заметка sql:field добавляется для сопоставления XML-узла в схеме с столбцом базы данных. Нельзя указать sql:field пустой элемент содержимого.
Примеры
Чтобы создать рабочие образцы на основе следующих примеров, необходимо выполнить определенные требования. Дополнительные сведения см. в разделе "Требования к выполнению примеров SQLXML".
А. Указание заметок sql:relation и sql:field
В этом примере схема XSD состоит из <элемента Contact> сложного типа с <дочерними элементами FName> и LName> и< атрибутом ContactID.
Заметка sql:relation сопоставляет <элемент Contact> с таблицей Person.Contact в базе данных AdventureWorks. Заметка sql:field сопоставляет <элемент FName> с столбцом FirstName и< элементом LName столбца LastName>.
Заметка не указана для атрибута ContactID . Это приводит к сопоставлению атрибута по умолчанию с столбцом с тем же именем.
<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="ContactID"
type="xsd:integer" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
Проверка образца запроса XPath к схеме
Скопируйте приведенный выше код схемы и вставьте его в текстовый файл. Сохраните файл как MySchema-annotated.xml.
Скопируйте приведенный ниже шаблон и вставьте его в текстовый файл. Сохраните файл как MySchema-annotatedT.xml в том же каталоге, где вы сохранили MySchema-annotated.xml.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="MySchema-annotated.xml"> /Contact </sql:xpath-query> </ROOT>Путь к каталогу, указанный для схемы сопоставления (MySchema-annotated.xml), относится к каталогу, в котором сохраняется шаблон. Можно также задать абсолютный путь, например:
mapping-schema="C:\SqlXmlTest\MySchema-annotated.xml"Создайте и запустите тестовый скрипт SQLXML 4.0 (Sqlxml4test.vbs), чтобы выполнить шаблон.
Дополнительные сведения см. в разделе "Использование ADO для выполнения запросов SQLXML".
Вот часть набора результатов:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Contact ContactID="1">
<FName>Gustavo</FName>
<LName>Achong</LName>
</Contact>
.....
</ROOT>