Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
По умолчанию элемент сложного типа в аннотированной схеме XSD сопоставляется с таблицей (представлением) с тем же именем в указанной базе данных, а элемент или атрибут простого типа сопоставляется с столбцом с таким же именем в таблице.
Примеры
Чтобы создать рабочие образцы на основе следующих примеров, необходимо выполнить определенные требования. Дополнительные сведения см. в разделе "Требования к выполнению примеров SQLXML".
А. Указание сопоставления по умолчанию
В этом примере в схеме XSD нет заметок. Элемент Person.Contact имеет сложный тип, поэтому по умолчанию сопоставляется с таблицей Person.Contact> в базе данных AdventureWorks.< Все атрибуты (ContactID, FirstName, LastName) <элемента Person.Contact имеют простой тип и сопоставляются по умолчанию с столбцами с одинаковыми именами в таблице Person.Contact> .
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="Person.Contact" >
<xsd:complexType>
<xsd:attribute name="ContactID" type="xsd:string" />
<xsd:attribute name="FirstName" type="xsd:string" />
<xsd:attribute name="LastName" type="xsd:string" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
Проверка образца запроса XPath к схеме
Скопируйте приведенный выше код схемы и вставьте его в текстовый файл. Сохраните файл как MySchema.xml.
Скопируйте следующий шаблон и вставьте его в текстовый файл. Сохраните файл как MySchemaT.xml в том же каталоге, где вы сохранили MySchema.xml.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="MySchema.xml"> /Person.Contact </sql:xpath-query> </ROOT>
Путь к каталогу, указанный для схемы сопоставления (MySchema.xml), относится к каталогу, в котором сохраняется шаблон. Можно также задать абсолютный путь, например:
mapping-schema="C:\SqlXmlTest\MySchema.xml"
Создайте и запустите тестовый скрипт SQLXML 4.0 (Sqlxml4test.vbs), чтобы выполнить шаблон.
Дополнительные сведения см. в разделе "Использование ADO для выполнения запросов SQLXML 4.0".
Вот часть набора результатов:
<?xml version="1.0" encoding="UTF-8" ?>
<ROOT>
<Person.Contact ContactID="1" FirstName="Gustavo" LastName="Achong"/>
<Person.Contact ContactID="2" FirstName="Catherine" LastName="Abel"/>
...
</ROOT>
В. Сопоставление XML-элемента с столбцом базы данных
В этом примере сопоставление по умолчанию также происходит, так как заметки не используются. Элемент <Person.Contact> имеет сложный тип и сопоставляется с таблицей с тем же именем в базе данных. Элементы <FirstName> и LastName> и< атрибут EmployeeID имеют простой тип и, следовательно, сопоставляются со столбцами с одинаковыми именами. Единственное различие между этим и предыдущим примером заключается в том, что элементы используются для сопоставления полей FirstName и LastName.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="Person.Contact">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="FirstName" type="xsd:string" />
<xsd:element name="LastName" type="xsd:string" />
</xsd:sequence>
<xsd:attribute name="ContactID" type="xsd:integer" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
Проверка образца запроса XPath к схеме
Скопируйте приведенный выше код схемы и вставьте его в текстовый файл. Сохраните файл как MySchemaElements.xml.
Создайте следующий шаблон (MySchemaElementsT.xml) и сохраните его в том же каталоге, который использовался на предыдущем шаге.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="MySchemaElements.xml"> /Person.Contact </sql:xpath-query> </ROOT>
Путь к каталогу, указанный для схемы сопоставления, относится к каталогу, в котором сохраняется шаблон. Можно также задать абсолютный путь, например:
mapping-schema="C:\SqlXmlTest\MySchemaElements.xml"
Создайте и запустите тестовый скрипт SQLXML 4.0 (Sqlxml4test.vbs), чтобы выполнить шаблон.
Дополнительные сведения см. в разделе "Использование ADO для выполнения запросов SQLXML 4.0".
Вот часть набора результатов:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Person.Contact ContactID="1">
<FirstName>Gustavo</FirstName>
<LastName>Achong</LastName>
</Person.Contact>
...
</ROOT>
С. Сопоставление XML-элемента с столбцом типа данных XML
В этом примере сопоставление по умолчанию также происходит, так как заметки не используются. Элемент <Production.ProductModel> имеет сложный тип и сопоставляется с таблицей с тем же именем в базе данных. Атрибут ProductModelID имеет простой тип, поэтому сопоставляется со столбцами с одинаковыми именами. Единственное различие между этим и предыдущими примерами заключается в том, что <элемент "Инструкции> " сопоставляется с столбцом, использующим xml
тип данных с помощью xsd:anyType
типа.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="Production.ProductModel">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Instructions" type="xsd:anyType" />
</xsd:sequence>
<xsd:attribute name="ProductModelID" type="xsd:integer" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
Тип xml
данных появился в SQL Server 2005.
Проверка образца запроса XPath к схеме
Скопируйте приведенный выше код схемы и вставьте его в текстовый файл. Сохраните файл как MySchemaXmlAnyElements.xml.
Создайте следующий шаблон (MySchemaXmlAnyElementsT.xml) и сохраните его в том же каталоге, который использовался на предыдущем шаге.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="MySchemaXmlAnyElements.xml"> /Production.ProductModel[@ProductModelID=7] </sql:xpath-query> </ROOT>
Путь к каталогу, указанный для схемы сопоставления, относится к каталогу, в котором сохраняется шаблон. Можно также задать абсолютный путь, например:
mapping-schema="C:\SqlXmlTest\MySchemaXmlAnyElements.xml"
Создайте и запустите тестовый скрипт SQLXML 4.0 (Sqlxml4test.vbs), чтобы выполнить шаблон.
Дополнительные сведения см. в разделе "Использование ADO для выполнения запросов SQLXML 4.0".
Вот часть набора результатов:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Production.ProductModel ProductModelID="7">
<Instructions>
<root xmlns="http:
//schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstru
ctions">
...
</root>
<Instructions>
</Production.ProductModel>
</ROOT>
См. также
Вопросы безопасности аннотированных схем (SQLXML 4.0)
XML-данные (SQL Server)
Поддержка типов данных XML в SQLXML 4.0