共用方式為


使用 sql:is-constant 建立常數元素 (SQLXML 4.0)

若要指定常數元素,也就是 XSD 結構描述中,沒有對應到任何資料庫資料表或資料行的元素,您可以使用 sql:is-constant 註解。此註解接受布林值 (0 = false,1 = true)。可接受的值為 0、1、true 和 false。sql:is-constant 註解可以在沒有任何屬性的元素上指定。如果該註解是在值為 True (或 1) 的元素上指定,該元素不會對應到資料庫,但是仍會出現在 XML 文件中。

sql:is-constant 註解可以用於:

  • 將最上層元素加入到 XML 文件中。XML 需要單一的最上層元素 (根元素) 供文件使用。

  • 建立容器元素,例如包裝所有訂單的 <Orders> 元素。

sql:is-constant 註解可以加入到 <complexType> 元素。

範例

若要使用下列範例建立工作範例,您必須符合某些需求。如需詳細資訊,請參閱<執行 SQLXML 範例的需求>。

A. 指定 sql:is-constant 來加入容器元素

在此註解式 XSD 結構描述中,會利用 1 這個值指定 sql:is-constant 屬性,藉以將 <CustomerOrders> 定義為常數元素。因此,<CustomerOrders> 不會對應到任何資料庫資料表或資料行。此常數元素是由 <Order> 子元素所組成。

雖然 <CustomerOrders> 沒有對應到任何資料庫資料表或資料行,它仍然會出現在產生的 XML 中,做為包含 <Order> 子元素的容器元素。

<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>

針對結構描述測試範例 XPath 查詢

  1. 複製上述的結構描述程式碼,並將其貼到文字檔中。將檔案儲存為 isConstant.xml。

  2. 複製下列範本,並將其貼到文字檔中。將檔案儲存為 isConstantT.xml,並儲存在與儲存 isConstant.xml 相同的目錄中。

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

    為對應結構描述 (isConstant.xml) 指定的目錄路徑,是儲存範本之目錄的相對路徑。您也可以指定絕對路徑,例如:

    mapping-schema="C:\MyDir\isConstant.xml"
    
  3. 建立及使用 SQLXML 4.0 Test Script (Sqlxml4test.vbs),以便執行範本。

    如需詳細資訊,請參閱<使用 ADO 執行 SQLXML 查詢>。

這是部分結果集:

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