Udostępnij przez


Próbki adnotacje schematu XSD przykłady XPath (SQLXML 4.0)

Przykładowe kwerendy XPath w tej sekcji odnoszą się do schematu mapowania.Mapowanie schematu jest adnotacjami pliku schematu XML (XSD).Aby uzyskać więcej informacji na temat mapowania schematów, zobacz Wprowadzenie do adnotacjami schematów XSD (SQLXML 4.0).

Potrzebne są następujące wykonać kwerend XPath adnotacjami schematu XSD:

  • Utworzyć szablon z kwerendę XPath w nim.W szablonie można określić schemat mapowanie, przeciwko której ma zostać wykonana kwerenda XPath.W takim przypadek schematu mapowania muszą być przechowywane w katalogu (lub jeden z jego podkatalogów, w których przypadek ścieżka względna jest określony jako wartość mapping-schema atrybut w szablonie) skojarzonego z pliku szablonu.

  • Utwórz aplikację testową używającej rozszerzenia SQLXML dla obiektów ADO do wykonać kwerend.Aby uzyskać więcej informacji, zobacz Przy użyciu ADO SQLXML wykonanie kwerendy 4.0.

Wszystkie przykłady w tej sekcji, dla celów ilustracyjnych kwerend XPath są określone w szablonie, a szablon jest wykonywane przy użyciu obiektu ADO.Dlatego należy użyć następującego pliku schematu mapowanie, SampleSchema1.xml.Zapisz ten plik w katalogu, w którym przechowywane są szablony.

Próbki adnotacje schematu 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="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>