Aracılığıyla paylaş


Öğeleri ve öznitelikleri kullanma sql:hide tarafından gizleme

Bir XSD şeması karşı bir XPath sorgusu yürütüldüğünde, sonuç XML belgesi, öğeleri ve öznitelikleri şemada belirtilen vardır.Bazı öğeleri ve öznitelikleri şemada kullanarak gizli gerektiğini belirtebilirsiniz sql:hide Ek açıklama. Belirli bir öğe veya öznitelik şemada sorgunun seçim ölçütü gerektirir, ancak bunları oluşturulan XML belgesinde döndürdü istemediğiniz zaman yararlıdır.

The sql:hide annotation takes a Boole value (0=false, 1=true). Kabul edilebilir değerler 0, 1, doğru ve yanlış.

Örnekler

Aşağıdaki örnekler kullanarak çalışma örnekleri oluşturmak için , belirli gereksinimleri karşılaması gerekir.Daha fazla bilgi için bkz:SQLXML örnekleri çalıştırma gereksinimleri.

C.öznitelik SQL:hide belirtme

Bu örnekte XSD şeması için oluşan bir <Person.Contact> öğe ile Ilgili kişi kimliği, Ad, and Soyadı öznitelikleri.

The <Person.Contact> element is of complex type and, therefore, maps to the tablo of the same name (default mapping). All the attributes of <Person.Contact> element are of simple type and map to columns with the same names in the Person.Contacttable in the AdventureWorks database.Şemada, sql:hide Ek açıklama belirtilmiştir Ilgili kişi kimliği özniteliği.Bu şema karşı bir XPath sorgusu belirtildiğinde Ilgili kişi kimliği XML belgesindeki döndürülür.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
  <xsd:element name="Person.Contact" >
     <xsd:complexType>
       <xsd:attribute name="ContactID"  sql:hide="true" /> 
       <xsd:attribute name="FirstName"   type="xsd:string" /> 
       <xsd:attribute name="LastName"    type="xsd:string" /> 
     </xsd:complexType>
  </xsd:element>
</xsd:schema>

Şemaya örnek bir XPath sorgusu sınamak için

  1. Yukarıdaki şema kodunu kopyalayıp, bir metin dosyasına yapıştırın.Dosyayı Hide.xml kaydedin.

  2. Şu şablonu kopyalayıp, bir metin dosyasına yapıştırın.Dosya HideT.xml Hide.xml kaydettiğiniz aynı dizine kaydedin.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
        <sql:xpath-query mapping-schema="Hide.xml">
            /Person.Contact[@ContactID="1"]
        </sql:xpath-query>
    </ROOT>
    

    Eşleştirme şemasını (Hide.xml) dizini belirtilen şablon kaydedildiği göreli dizinidir.Mutlak bir yol da, örneğin belirtilebilir:

    mapping-schema="C:\MyDir\Hide.xml"
    
  3. Oluşturun ve SQLXML 4.0 sınama komut dosyası (Sqlxml4test.vbs) şablonu yürütmek için kullanın.

    Daha fazla bilgi için bkz:ADO SQLXML yürütmek kullanarak 4.0 sorgular..

sonuç kümesi aşağıdadır:

 <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
    <Person.Contact FirstName="Gustavo" LastName="Achong" /> 
 </ROOT>

Ne zaman sql:hide öğe ve öznitelik veya alt öğeleri oluşturulan XML belgesinde görünmez bir öğede belirtildi. Işte, başka bir XSD şeması sql:hide üzerinde belirtilen <RETENTİON> Öğe:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:dt="urn:schemas-microsoft-com:datatypes"
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">

  <xsd:annotation>
    <xsd:documentation>
      Sales.Customer-Sales.SalesOrderHeader-Sales.SalesOrderDetail Schema
      Copyright 2004 Microsoft. All rights reserved.
    </xsd:documentation>
    <xsd:appinfo>
      <sql:relationship name="CustomerOrder"
         parent="Sales.Customer"
                  parent-key="CustomerID"
                  child-key="CustomerID"
                  child="Sales.SalesOrderHeader" />
       <sql:relationship name="OrderOrderDetails"
                  parent="Sales.SalesOrderHeader"
                  parent-key="SalesOrderID"
                  child-key="SalesOrderID"
                  child="Sales.SalesOrderDetail"/>
    </xsd:appinfo>
  </xsd:annotation>

  <xsd:element name="Customers" sql:relation="Sales.Customer">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="Order" sql:relation="Sales.SalesOrderHeader" 
                     maxOccurs="unbounded" 
                     sql:relationship="CustomerOrder">
          <xsd:complexType>
            <xsd:sequence>
               <xsd:element name="OD" sql:relation="Sales.SalesOrderDetail"                                       maxOccurs="unbounded"                                       sql:relationship="OrderOrderDetails"                                       sql:hide="1">
                  <xsd:complexType>
                    <xsd:attribute name="SalesOrderID" type="xsd:string"/>
                    <xsd:attribute name="ProductID" type="xsd:string"/>
                  </xsd:complexType>
               </xsd:element>
            </xsd:sequence>
          <xsd:attribute name="CustomerID" type="xsd:string"/>
          <xsd:attribute name="OID" sql:field="SalesOrderID" 
                                    type="xsd:string"/>
          <xsd:attribute name="OrderDate" type="xsd:date"/> 
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="CID" sql:field="CustomerID" 
                                type="xsd:string"/>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>

Ne zaman bir XPath sorgusu (örneğin /Customers[@CID="1"]) oluşturulan XML belgesi içerir, bu şema karşı belirtilen <RETENTİON> öğe ve alt nesnelerine bu kısmi sonucunda gösterilen:

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