共用方式為


為 XDR 結構描述中的屬性指定預設值 (XDR 結構描述)

重要事項重要事項

這個主題是舊版應用程式的參考。這項功能未來將不會繼續開發,請避免在新的開發工作中使用此功能,而改用註解式 XSD 結構描述建立 XML 檢視。如需詳細資訊,請參閱<註解式 XSD 結構描述簡介 (SQLXML 4.0)>。您可以將現有註解 XDR 結構描述轉換為 XSD 結構描述。如需詳細資訊,請參閱<將註解式 XDR 結構描述轉換為等效 XSD 結構描述 (SQLXML 4.0)>。

在資料庫中,您可以指派資料行的預設值。同樣地,在 XDR 結構描述中,也可以為屬性設定預設值 (在 XDR 結構描述中不能為元素指派預設值)。XDR 結構描述可以在 <AttributeType> 上使用 default 屬性規格。

如果與屬性相關聯的資料行値為 NULL,則不會針對該元素執行個體傳回該屬性。但如果在 <AttributeType> 上指定了 default 屬性,則該屬性會使用指定的預設值傳回。

例如,將資料從資料庫擷取到 XML 文件中時,如果遺失其中一個屬性值,則會使用該屬性在 XDR 結構描述中的預設值。

[!附註]

預設值可能不會出現在傳回的文件中,反而會由驗證剖析器在每當找不到該屬性時使用此值。

[!附註]

如果使用的剖析器為結構描述感知,就會使用預設值。也就是說,如果使用的是 MSXML 剖析器,您必須確定 resolveExternals 旗標是設定為 TRUE (預設值),之後剖析器就會提取結構描述。在進行剖析之後,不論 XML 文件中是否包含了屬性,個別的執行個體都會具有屬性 (且指定為預設值)。DOM 會提供預設值。

範例

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

A. 為 XDR 結構描述中的屬性指定預設值

在此範例中,Title 屬性會設為預設值 "XYZ"。在擷取連絡記錄時,會為沒有稱謂的連絡人指派預設值。

<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
        xmlns:dt="urn:schemas-microsoft-com:datatypes"
        xmlns:sql="urn:schemas-microsoft-com:xml-sql">

<ElementType name="Person.Person" >
    <AttributeType name="CID" />
    <AttributeType name="FirstName" />
    <AttributeType name="LastName" />
    <AttributeType name="Title" default="XYZ"/>

    <attribute type="CID" sql:field="BusinessEntityID" />
    <attribute type="FirstName" />
    <attribute type="LastName" />
    <attribute type="Title"  />
</ElementType>
</Schema>

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

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

  2. 複製下列範本,並將其貼到文字檔中。將檔案儲存為 DefaultValueXdrT.xml 並放在與 DefaultValueXdr.xml 一樣的目錄中。

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
      <sql:xpath-query mapping-schema="DefaultValueXdr.xml">
        /Person.Person[@CID &gt; 1000 and @CID &lt; 1006]
      </sql:xpath-query>
    </ROOT>
    

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

    mapping-schema="C:\MyDir\DefaultValueXdr.xml"
    
  3. 建立和使用 SQLXML 4.0 測試指令碼 (Sqlxml4test.vbs) 以執行範本。

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

以下為結果集:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
  <Person.Person CID="1001" FirstName="Terri" LastName="Duffy" /> 
  <Person.Person CID="1002" FirstName="Roberto" LastName="Tamburello" /> 
  <Person.Person CID="1003" FirstName="Michael" LastName="Sullivan" /> 
  <Person.Person CID="1004" FirstName="Sharon" LastName="Salavaria" /> 
  <Person.Person CID="1005" FirstName="Gail" LastName="Erickson" Title="Ms." /> 
</ROOT>