Freigeben über


Beispiel-XSD-Schema mit Anmerkungen für XPath-Beispiele (SQLXML 4.0)

Die Beispiel-XPath-Abfragen in diesem Abschnitt beziehen sich auf ein Zuordnungsschema. Das Zuordnungsschema ist eine XML-Schemadatei (XSD) mit Anmerkungen. Weitere Informationen zu Zuordnungsschemas finden Sie unter Einführung in XSD-Schemas mit Anmerkungen (SQLXML 4.0).

Die folgenden Bedingungen müssen erfüllt sein, um XPath-Abfragen eines XSD-Schemas mit Anmerkungen auszuführen:

  • Erstellen Sie eine Vorlage mit einer XPath-Abfrage. Geben Sie in der Vorlage das Zuordnungsschema an, anhand dessen die XPath-Abfrage ausgeführt werden soll. In diesem Fall muss das Zuordnungsschema im Verzeichnis gespeichert werden (oder in einem der Unterverzeichnisse, wobei dann ein relativer Pfad als Wert des mapping-schema-Attributs in der Vorlage angegeben wird), das der Vorlagendatei zugeordnet ist.

  • Erstellen Sie eine Testanwendung, die SQLXML-Erweiterungen für ADO verwendet, um Abfragen auszuführen. Weitere Informationen finden Sie unter Verwenden von ADO zum Ausführen von SQLXML 4.0-Abfragen.

In allen Beispielen in diesem Abschnitt werden zur Veranschaulichung die XPath-Abfragen in einer Vorlage angegeben, die mithilfe von ADO ausgeführt wird. Daher müssen Sie die folgende Zuordnungsschemadatei verwenden: SampleSchema1.xml. Speichern Sie diese Datei in dem Verzeichnis, in dem die Vorlagen gespeichert sind.

Beispiel-XSD-Schema mit Anmerkungen (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>