Esquema XSD anotado de exemplo para exemplos de XPath (SQLXML 4.0)
As consultas XPath de exemplo desta seção se referem a um esquema de mapeamento. O esquema de mapeamento é um arquivo XSD (Esquema XML) anotado. Para obter mais informações sobre esquemas de mapeamento, consulte Introdução a esquemas XSD anotados (SQLXML 4.0).
- Observação Antes de executar as consultas XPath de exemplo, você deve instalar o banco de dados AdventureWorks2008R2. Para obter mais informações, consulte Considerações para instalar exemplos e bancos de dados de exemplo do SQL Server.
Você precisa dos itens a seguir para executar consultas XPath no esquema XSD anotado:
Crie um modelo com uma consulta de XPath. No modelo, você especifica o esquema de mapeamento em que a consulta XPath será executada. Nesse caso, o esquema de mapeamento deverá estar armazenado no diretório (ou um de seus subdiretórios, caso em que um caminho relativo será especificado como valor do atributo mapping-schema no modelo) associado ao arquivo de modelo.
Crie um aplicativo de teste que use extensões de SQLXML para o ADO executar consultas. Para obter mais informações, consulte Usando o ADO para executar consultas do SQLXML 4.0.
Em todos os exemplos desta seção, para fins de ilustração, as consultas XPath serão especificadas em um modelo e o modelo será executado usando ADO. Portanto, você deverá usar o arquivo de mapeamento de esquema a seguir, SampleSchema1.xml. Salve este arquivo no diretório onde seus modelos estão armazenados.
Exemplo de Esquema XSD anotado (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="Person" sql:relation="Person.Person" type="ContactType"/>
<xsd:complexType name="ContactType">
<xsd:attribute name="BusinessEntityID"/>
<xsd:attribute name="LastName"/>
<xsd:attribute name="FirstName"/>
<xsd:attribute name="Title"/>
</xsd:complexType>
</xsd:schema>