Aracılığıyla paylaş


Örnek XPath örnekleri (SQLxml 4.0) xsd şema açıklamalı

Bu bölümdeki örnek XPath sorguları eşleme şemasına bakın.Eşleme şema bir metin notlu xml şema (xsd) dosyasıdır.Eşleme şemaları hakkında daha fazla bilgi için bkz: Açıklama eklenmiş xsd şemaları (SQLxml 4.0) Giriº.

Aşağıdaki açıklama eklenmiş bir xsd şeması karşı XPath sorguları yürütmek için gereklidir:

  • Bir XPath sorgusu da bir şablon oluşturun.Şablonda karşı XPath sorgusu yürütülecek olan eşleme şema belirtin.Bu durumda, eşleme şema dizinde saklanan gerekir (veya durum göreli bir yol değeri olarak belirtilmişse dizinlerinden biri mapping-schema öznitelik şablonda) ilişkili şablon dosyası.

  • Sorguları yürütmek için ADO sqlxml uzantıları kullanan bir sınama uygulaması oluşturun.Daha fazla bilgi için bkz: ado SQLxml yürütme kullanarak 4.0 sorgular.

Resimde amacıyla, bu bölümdeki tüm örneklerde bir şablonda belirtilen XPath sorguları ve şablon ado kullanılarak yürütülür.Bu nedenle, SampleSchema1.xml aşağıdaki eşleme şema dosyası kullanmanız gerekir.Bu dosyayı şablonların depolandığı dizine kaydedin.

Örnek açıklamalı xsd şeması (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>