共用方式為


指定 XML 報表資料的元素路徑語法

更新: 2006 年 7 月 17 日

在「報表設計師」中,可藉由定義區分大小寫的元素路徑來指定要用於 XML 資料來源中之報表的資料。元素路徑會指出在 XML 資料來源中周遊 XML 階層式節點及其屬性的方法。若要使用預設的元素路徑,請將資料集查詢或 XML ElementPath (屬於 XML Query) 保留空白。由 XML 資料來源擷取資料時,具有文字值的元素節點以及元素節點屬性會變成結果集內的資料行。執行查詢時,節點及屬性的值會變成資料列資料。按一下工具列上的 [重新整理欄位] 按鈕,資料行會對應至資料集內的欄位,而且會出現在 [資料集] 視窗中。此主題描述元素路徑語法。

ms365158.note(zh-tw,SQL.90).gif附註:
元素路徑與命名空間無關。若要在元素路徑中使用命名空間,請使用包含 XML ElementPath 元素 (如<指定 XML 報表資料的 XML 查詢語法>中所描述) 的 XML 查詢語法。

下表描述定義元素路徑所使用的慣例。

慣例 適用於

粗體字

文字必須完全依照顯示的樣子輸入。

| (分隔號)

會分隔語法項目,您只能選擇其中一個項目。

[ ] (方括號)

選擇性的語法項目,不要輸入方括號。

{ } (大括號)

會分隔語法項目的參數。

[,...n]

指出先前項目可以重複 n 次,以逗號分開各次出現項目。

語法

Element path ::=
    ElementNode[/Element path]
ElementNode ::=
    XMLName[(Encoding)][{[FieldList]}]
XMLName ::=
    [NamespacePrefix:]XMLLocalName
Encoding ::=
        HTMLEncoded | Base64Encoded
FieldList ::=
    Field[,FieldList]
Field ::=
    Attribute | Value | Element | ElementNode
Attribute ::=
        @XMLName[(Type)]
Value ::=
        @[(Type)]
Element ::=
    XMLName[(Type)]
Type ::=
        String | Integer | Boolean | Float | Decimal | Date | XML 
NamespacePrefix ::=
    Identifier that specifies the namespace.
XMLLocalName :: =
    Identifier in the XML tag. 

備註

下表摘要說明元素路徑的詞彙。表格中的範例會參考範例 XML 文件 Customers.xml (包含在本主題的「範例」一節中)。

ms365158.note(zh-tw,SQL.90).gif附註:
XML 標記有區分大小寫。在元素路徑中指定 ElementNode 時,必須完全符合資料來源中的 XML 標記。
詞彙 定義

元素路徑

定義 XML 文件中周遊節點的順序,以便使用 XML 資料來源擷取資料集的欄位資料。

ElementNode

XML 文件中的 XML 節點。節點是由標記指定,並存在於與其他節點構成的階層式關聯性中。例如,<Customers> 是根元素節點。<Customer> 是 <Customers> 的子元素。

XMLName

節點的名稱。例如,Customers 節點的名稱為 Customers。XMLName 可以使用命名空間識別碼作為前置詞,以確保所有節點的名稱都是唯一的。

Encoding

指出本元素的 Value 是已編碼的 XML,需要加以解碼並加入作為此元素的子元素。

FieldList

定義用來擷取資料的元素與屬性組合。

如果沒有指定,所有屬性和子元素都會作為欄位使用。如果指定了空的欄位清單 ({}),此節點將不會使用任何欄位。

FieldList 可能不會同時包含 ValueElementElementNode

Field

指定擷取作為資料集欄位的資料。

Attribute

ElementNode 中名稱與值的配對。例如,在 <Customer ID="1"> 元素節點中,ID 為一屬性,而 @ID(Integer) 會在對應的資料欄位 ID 中以整數資料類型傳回 "1"。

Value

該元素的值,Value 只能在元素路徑中最後一個 ElementNode 上使用。例如,因為 <Return> 是一個分葉節點,如果將它加入元素路徑的結尾,Return {@} 的值會是 Chair

Element

具名子元素的值。例如,Customers {}/Customer {}/LastName 只會擷取 LastName 元素的值。

Type

此元素建立之欄位所使用的選擇性資料類型。

NamespacePrefix

NamespacePrefix 是在 XML 查詢元素中定義。如果 XML 查詢元素不存在,則會省略 XML ElementPath 中的命名空間。如果有 XML 查詢元素,XML ElementPath 則會有選擇性的 IgnoreNamespaces 屬性。如果 IgnoreNamespacestrue,則會忽略 XML ElementPath 以及 XML 文件中的命名空間。如需詳細資訊,請參閱<指定 XML 報表資料的 XML 查詢語法>。

範例 - 沒有命名空間

下列範例使用 Customers.xml XML 文件。這個表格會顯示元素路徑語法的範例,並且以 XML 文件為資料來源,顯示在定義資料集的查詢中使用元素路徑的結果。

ms365158.note(zh-tw,SQL.90).gif附註:
如果元素路徑為空時,查詢會使用預設的元素路徑:到達分葉節點集合的第一條路徑。在第一個範例中,將元素路徑保留為空白相當於將元素路徑指定為 /Customers/Customer/Orders/Order。路徑上的所有節點值和屬性都會傳回到結果集,而節點名稱和屬性會以資料集欄位的方式顯示。

範例

資料集內的欄位

空的

Order

Qty

ID

FirstName

LastName

Customer.ID

xmlns

Chair61BobbyMoore11https://www.adventure-works.com

Table12BobbyMoore11https://www.adventure-works.com

Sofa28CrystalHu20https://www.adventure-works.com

EndTables215WyattDiaz33https://www.adventure-works.com

Customers {}/Customer

FirstName

LastName

ID

BobbyMoore11

CrystalHu20

WyattDiaz33

Customers {}/Customer {}/LastName

LastName

Moore

Hu

Diaz

Customers {}/Customer {}/Orders/Order {@,@Qty}

Order

Qty

Chair6

Table1

Sofa2

EndTables2

Customers {}/Customer/Orders/Order{ @ID(Integer)}

Order.ID

FirstName

LastName

ID

1BobbyMoore11

2BobbyMoore11

8CrystalHu20

15WyattDiaz33

XML 文件:Customers.xml

若要試驗上一節中的元素路徑範例,您可以複製此 XML 文件並將它儲存到可以使用報表設計師存取的 URL,然後使用此 XML 文件作為 XML 資料來源:例如,https://localhost/Customers.xml。或者,您可以建立一個沒有任何連接字串的 XML 資料來源,並將 Customers.XML 內嵌在 XML 查詢元素的 <XmlData> 標記中。

<?xml version="1.0"?>
<Customers xmlns="https://www.adventure-works.com">
   <Customer ID="11">
      <FirstName>Bobby</FirstName>
      <LastName>Moore</LastName>
      <Orders>
         <Order ID="1" Qty="6">Chair</Order>
         <Order ID="2" Qty="1">Table</Order>
      </Orders>
      <Returns>
         <Return ID="1" Qty="2">Chair</Return>
      </Returns>
   </Customer>
   <Customer ID="20">
      <FirstName>Crystal</FirstName>
      <LastName>Hu</LastName>
      <Orders>
         <Order ID="8" Qty="2">Sofa</Order>
      </Orders>
      <Returns/>
   </Customer>
   <Customer ID="33">
      <FirstName>Wyatt</FirstName>
      <LastName>Diaz</LastName>
      <Orders>
         <Order ID="15" Qty="2">EndTables</Order>
      </Orders>
      <Returns/>
   </Customer>
</Customers>

請參閱

工作

如何:重新整理資料集視窗中的欄位 (報表設計師)

其他資源

教學課程:在報表中使用 XML 資料

說明及資訊

取得 SQL Server 2005 協助