Freigeben über


Erstellen von Konstantenelementen mithilfe von sql:is-constant (SQLXML 4.0)

Um ein konstantes Element anzugeben, das heißt, ein Element im XSD-Schema, das keiner Datenbanktabelle oder -spalte zugeordnet ist, können Sie die sql:is-constant Anmerkung verwenden. Diese Anmerkung akzeptiert einen booleschen Wert (0 = false, 1 = true). Zulässig sind die Werte 0, 1, true und false. Die sql:is-constant Anmerkung kann für ein Element angegeben werden, das keine Attribute besitzt. Wenn es für ein Element mit dem Wert "true" (oder "1") angegeben ist, wird dieses Element nicht der Datenbank zugeordnet, aber weiterhin im XML-Dokument angezeigt.

Die sql:is-constant Anmerkung kann für Folgendes verwendet werden:

  • Hinzufügen eines Elements auf oberster Ebene zum XML-Dokument. XML erfordert ein einzelnes Element der obersten Ebene (Stammelement) für das Dokument.

  • Erstellen von Containerelementen, z. B. ein <Orders-Element> , das alle Bestellungen umschließt.

Die sql:is-constant Anmerkung kann einem <complexType-Element> hinzugefügt werden.

Beispiele

Es müssen bestimmte Anforderungen erfüllt sein, damit aus den folgenden Beispielen funktionierende Beispiele erstellt werden können. Weitere Informationen finden Sie unter Anforderungen für das Ausführen von SQLXML-Beispielen.

Ein. Angeben von "sql:is-constant" zum Hinzufügen eines Containerelements

In diesem kommentierten XSD-Schema wird CustomerOrders als konstantes> Element definiert,< indem das sql:is-constant Attribut mit dem Wert 1 angegeben wird. <Daher ist CustomerOrders> keiner Datenbanktabelle oder -spalte zugeordnet. Dieses Konstante-Element besteht aus den <untergeordneten Elementen "Order> ".

Obwohl< CustomerOrders> keiner Datenbanktabelle oder -spalte zugeordnet ist, wird sie weiterhin im resultierenden XML-Code als Containerelement angezeigt, das die <untergeordneten Elemente "Order>" enthält.

<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" />  
  </xsd:appinfo>  
</xsd:annotation>  
  
  <xsd:element name="Customer" sql:relation="Sales.Customer" >  
   <xsd:complexType>  
     <xsd:sequence>  
        <xsd:element name="CustomerOrders" sql:is-constant="1" >  
          <xsd:complexType>  
            <xsd:sequence>  
              <xsd:element name="Order" sql:relation="Sales.SalesOrderHeader"  
                           sql:relationship="CustOrders"   
                           maxOccurs="unbounded" >  
                <xsd:complexType>  
                   <xsd:attribute name="SalesOrderID" type="xsd:integer" />  
                   <xsd:attribute name="OrderDate" type="xsd:date" />  
                   <xsd:attribute name="CustomerID" type="xsd:string" />  
                </xsd:complexType>  
              </xsd:element>  
            </xsd:sequence>  
           </xsd:complexType>  
          </xsd:element>  
         </xsd:sequence>  
          <xsd:attribute name="CustomerID" type="xsd:string" />  
     </xsd:complexType>  
  </xsd:element>  
</xsd:schema>  
So testen Sie eine XPath-Beispielabfrage für das Schema
  1. Kopieren Sie den oben stehenden Schemacode, und fügen Sie ihn in eine Textdatei ein. Speichern Sie die Datei als isConstant.xml.

  2. Kopieren Sie die folgende Vorlage, und fügen Sie sie in eine Textdatei ein. Speichern Sie die Datei als isConstantT.xml im selben Verzeichnis, in dem Sie isConstant.xmlgespeichert haben.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
        <sql:xpath-query mapping-schema="isConstant.xml">  
            Customer[@CustomerID=1]  
        </sql:xpath-query>  
    </ROOT>  
    

    Der für das Zuordnungsschema (isConstant.xml) angegebene Verzeichnispfad ist relativ zum Verzeichnis, in dem die Vorlage gespeichert wird. Es kann auch ein absoluter Pfad angegeben werden. Beispiel:

    mapping-schema="C:\MyDir\isConstant.xml"  
    
  3. Erstellen und verwenden Sie das SQLXML 4.0-Testskript (Sqlxml4test.vbs), um die Vorlage auszuführen.

    Weitere Informationen finden Sie unter Verwenden von ADO zum Ausführen von SQLXML-Abfragen.

Dies ist der partielle Resultset:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">   
<Customer CustomerID="1">   
  <CustomerOrders>   
    <Order SalesOrderID="43860" OrderDate="2001-08-01" CustomerID="1" />   
    <Order SalesOrderID="44501" OrderDate="2001-11-01" CustomerID="1" />   
    <Order SalesOrderID="45283" OrderDate="2002-02-01" CustomerID="1" />   
    <Order SalesOrderID="46042" OrderDate="2002-05-01" CustomerID="1" />   
    ...  
  </CustomerOrders>   
</Customer>   
</ROOT>