Образец схемы XSD с заметками для примеров XPath (SQLXML 4.0)
Образцы запросов XPath в этом разделе обращаются к схеме сопоставления. Схема сопоставления — это файл схемы XML (XSD) с заметками. Дополнительные сведения о схемах сопоставления см. в разделе Введение в схемы XSD с заметками (SQLXML 4.0).
![]() |
---|
Перед выполнением образцов запросов XPath необходимо установить образец базы данных AdventureWorks. Дополнительные сведения см. в разделе Образцы баз данных AdventureWorks. |
Для выполнения запросов XPath к схеме XSD с заметками необходимо выполнить следующее:
Создайте шаблон с запросом XPath. В шаблоне укажите схему сопоставления, к который следует выполнять запрос XPath. В данном случае схема сопоставления должна храниться в каталоге (или одном из вложенных каталогов - в этом случае относительный путь указывается в виде значения атрибута mapping-schema в шаблоне), связанном с файлом шаблона.
Создайте тестовое приложение, использующее для выполнения запросов расширения SQLXML для ADO. Дополнительные сведения см. в разделе Использование ADO для выполнения запросов SQLXML 4.0.
Во всех примерах этого раздела запросы XPath в целях иллюстрации указаны в шаблоне, и шаблон выполняется с помощью ADO. Таким образом, необходимо использовать следующий файл схемы сопоставления — SampleSchema1.xml. Сохраните этот файл в каталоге, где хранятся шаблоны.
Образец схемы XSD с заметками (SampleSchema1.xml)
<?xml version="1.0"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sql="urn:schemas-microsoft-com:mapping-schema"> <xsd:annotation> <xsd:appinfo> <sql:relationship name="CustOrders" parent="Sales.Customer" parent-key="CustomerID" child="Sales.SalesOrderHeader" child-key="CustomerID" /> <sql:relationship name="OrderOrderDetail" parent="Sales.SalesOrderHeader" parent-key="SalesOrderID" child="Sales.SalesOrderDetail" child-key="SalesOrderID" /> </xsd:appinfo> </xsd:annotation> <xsd:element name="Customer" sql:relation="Sales.Customer" type="CustomerType" /> <xsd:complexType name="CustomerType" > <xsd:sequence> <xsd:element name="Order" sql:relation="Sales.SalesOrderHeader" sql:relationship="CustOrders" /> </xsd:sequence> <xsd:attribute name="CustomerID" type="xsd:ID"/> <xsd:attribute name="TerritoryID"/> <xsd:attribute name="AccountNumber"/> <xsd:attribute name="CustomerType"/> <xsd:attribute name="Orders" type="xsd:IDREFS" sql:prefix="Ord-"/> </xsd:complexType> <xsd:element name="Order" sql:relation="Sales.SalesOrderHeader" type="OrderType"/> <xsd:complexType name="OrderType"> <xsd:sequence> <xsd:element name="OrderDetail" sql:relation="Sales.SalesOrderDetail" sql:relationship="OrderOrderDetail" /> </xsd:sequence> <xsd:attribute name="SalesOrderID" type="xsd:ID" sql:prefix="Ord-"/> <xsd:attribute name="SalesPersonID"/> <xsd:attribute name="OrderDate"/> <xsd:attribute name="DueDate"/> <xsd:attribute name="ShipDate"/> </xsd:complexType> <xsd:element name="OrderDetail" sql:relation="Sales.SalesOrderDetail" type="OrderDetailType"/> <xsd:complexType name="OrderDetailType"> <xsd:attribute name="ProductID" type="xsd:IDREF"/> <xsd:attribute name="UnitPrice"/> <xsd:attribute name="OrderQty"/> <xsd:attribute name="UnitPriceDiscount"/> </xsd:complexType> <xsd:element name="UnitPriceDiscount" sql:relation="Sales.SalesOrderDetail" type="DiscountType"/> <xsd:complexType name="DiscountType"> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <xsd:element name="Contact" sql:relation="Person.Contact" type="ContactType"/> <xsd:complexType name="ContactType"> <xsd:attribute name="ContactID"/> <xsd:attribute name="LastName"/> <xsd:attribute name="FirstName"/> <xsd:attribute name="Title"/> </xsd:complexType></xsd:schema>