XML 보고서 데이터를 위한 요소 경로 구문(SSRS)Element Path Syntax for XML Report Data (SSRS)

보고서 디자이너에서 대/소문자 구분 요소 경로를 정의하여 XML 데이터 원본에서 보고서에 사용할 데이터를 지정할 수 있습니다.In Report Designer, you specify the data to use for a report from an XML data source by defining a case-sensitive element path. 요소 경로는 XML 데이터 원본의 XML 계층 노드와 해당 특성으로 이동하는 방법을 나타냅니다.An element path indicates how to traverse the XML hierarchical nodes and their attributes in the XML data source. 기본 요소 경로를 사용하려면 데이터 집합 쿼리나 XML ElementPath 의 XML Query 를 비워 둡니다.To use the default element path, leave the dataset query or the XML ElementPath of the XML Query empty. XML 데이터 원본에서 데이터가 검색될 때 텍스트 값이 있는 요소 노드와 요소 노드 특성은 결과 집합의 열이 됩니다.When data is retrieved from the XML data source, element nodes that have text values and element node attributes become columns in the result set. 쿼리를 실행하면 노드 및 특성 값은 행 데이터가 됩니다.The values of the nodes and attributes become the row data when you run the query. 열은 보고서 데이터 창에 데이터 집합 필드 컬렉션으로 표시됩니다.The columns appear as the dataset field collection in the Report Data pane. 이 항목에서는 요소 경로 구문을 설명합니다.This topic describes the element path syntax.

참고

요소 경로 구문은 네임스페이스로부터 독립적입니다.Element path syntax is namespace-independent. 요소 경로에 네임스페이스를 사용하려면 XML 보고서 데이터를 위한 XML 쿼리 구문(SSRS)에 설명된 대로 XML ElementPath 요소를 포함하는 XML 쿼리 구문을 사용합니다.To use namespaces in an element path, use the XML query syntax that includes an XML ElementPath element described in XML Query Syntax for XML Report Data (SSRS).

다음 표에서는 요소 경로를 정의하는 데 사용되는 규칙을 설명합니다.The following table describes conventions used to define an element path.

규칙Convention 사용 대상Used for
굵게 표시bold 표시된 대로 입력해야 하는 텍스트입니다.Text that must be typed exactly as shown.
|(세로 막대)| (vertical bar) 각 구문 항목을 구분합니다.Separates syntax items. 항목 중 하나만 선택할 수 있습니다.You can choose only one of the items.
[ ](대괄호)[ ] (brackets) 선택적 구문 항목입니다.Optional syntax items. 대괄호는 입력하지 않습니다.Do not type the brackets.
{ } (중괄호){ } (braces) 구문 항목의 매개 변수 범위를 지정합니다.Delimits parameters of syntax items.
[,...n][,...n] 앞의 항목이 반복 될 수 나타냅니다 n 번입니다.Indicates the preceding item can be repeated n number of times. 각 항목은 쉼표로 구분됩니다.The occurrences are separated by commas.

구문Syntax


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.   

주의Remarks

다음 표에는 요소 경로에서 사용되는 용어가 요약되어 있습니다.The following table summarizes element path terms. 이 표의 예에서는 XML 문서 예인 Customers.xml을 참조하며 이 문서는 이 항목의 예 섹션에 포함되어 있습니다.Examples in the table refer to the example XML document Customers.xml, which is included in the Examples section of this topic.

참고

XML 태그는 대/소문자를 구분합니다.XML tags are case-sensitive. 요소 경로에 ElementNode를 지정할 경우 데이터 원본의 XML 태그와 일치해야 합니다.When you specify an ElementNode in the element path, you must exactly match the XML tags in the data source.

용어Term 정의Definition
요소 경로Element path XML 데이터 원본을 사용하여 데이터 집합의 필드 데이터를 검색하기 위해 XML 문서 내에서 이동할 노드 시퀀스를 정의합니다.Defines the sequence of nodes to traverse within the XML document in order to retrieve field data for a dataset with an XML data source.
ElementNodeElementNode XML 문서의 XML 노드입니다.The XML node in the XML document. 노드는 태그로 지정되며 다른 노드와 계층 관계에 있습니다.Nodes are designated by tags and exist in a hierarchical relationship with other nodes. 예를 들어, <Customers>는 루트 요소 노드이고For example, <Customers> is the root element node. <Customer>는 <Customers>의 하위 요소입니다.<Customer> is a subelement of <Customers>.
XMLNameXMLName 노드 이름입니다.The name of the node. 예를 들어 Customers 노드의 이름은 Customers입니다.For example, the name of the Customers node is Customers. XMLName 에 네임스페이스 식별자를 접두사로 사용하면 모든 노드에 고유 이름을 지정할 수 있습니다.An XMLName can be prefixed with a namespace identifier to uniquely name every node.
인코딩Encoding 이 요소에 대한 Value 가 인코딩된 XML이므로 이 값을 디코딩하여 이 요소의 하위 요소로 포함해야 함을 나타냅니다.Indicates that the Value for this element is encoded XML and needs to be decoded and included as a subelement of this element.
FieldListFieldList 데이터를 검색하는 데 사용할 요소 및 특성 집합을 정의합니다.Defines the set of elements and attributes to use to retrieve data.

지정하지 않으면 모든 특성 및 하위 요소가 필드로 사용됩니다.If not specified, all attributes and subelements are used as fields. 빈 필드 목록을 지정하는 경우({}) 이 노드의 필드는 사용되지 않습니다.If the empty field list is specified ({}), no fields from this node are used.

FieldListValueElement 또는 ElementNode가 모두 포함될 수는 없습니다.A FieldList may not contain both a Value and an Element or ElementNode.
필드Field 데이터 집합 필드로 검색되는 데이터를 지정합니다.Specifies the data that is retrieved as a dataset field.
AttributeAttribute ElementNode내의 이름 값 쌍입니다.A name-value pair within the ElementNode. 예를 들어 요소 노드 <Customer ID="1">에서 ID는 특성이며 @ID(Integer)는 해당 데이터 필드 ID에 정수 형식으로 “1”을 반환합니다.For example, in the element node <Customer ID="1">, ID is an attribute and @ID(Integer) returns "1" as an integer type in the corresponding data field ID.
Value 요소의 값입니다.The value of the element. Value 는 요소 경로의 마지막 ElementNode 에만 사용할 수 있습니다.Value can only be used on the last ElementNode in the element path. 예를 들어 <Return>은 리프 노드이므로 요소 경로의 끝에 이 노드를 포함하면 Return {@} 값은 Chair가 됩니다.For example, because <Return> is a leaf node, if you include it at the end of an element path, the value of Return {@} is Chair.
ElementElement 명명된 하위 요소의 값입니다.The value of the named subelement. 예를 들어 Customers {}/Customer {}/LastName은 LastName 요소에 대한 값만 검색합니다.For example, Customers {}/Customer {}/LastName retrieves values for only the LastName element.
형식Type 이 요소에서 만든 필드에 사용할 선택적 데이터 형식입니다.The optional data type to use for the field created from this element.
NamespacePrefixNamespacePrefix NamespacePrefix 는 XML 쿼리 요소에 정의되어 있습니다.NamespacePrefix is defined in the XML Query element. XML 쿼리 요소가 없으면 XML ElementPath 의 네임스페이스가 무시됩니다.If no XML Query element exists, namespaces in the XML ElementPath are ignored. XML 쿼리 요소가 있으면 XML ElementPath 에 선택적 특성 IgnoreNamespaces가 포함됩니다.If there is an XML Query element, the XML ElementPath has an optional attribute IgnoreNamespaces. IgnoreNamespaces가 true이면 XML ElementPath 및 XML 문서의 네임스페이스가 무시됩니다.If IgnoreNamespaces is true, namespaces in the XML ElementPath and the XML document are ignored. 자세한 내용은 XML 보고서 데이터를 위한 XML 쿼리 구문(SSRS)를 참조하세요.For more information, see XML Query Syntax for XML Report Data (SSRS).

예 - 네임스페이스가 없는 경우Example - No Namespaces

다음 예에서는 XML 문서 Customers.xml을 사용합니다.The following examples use the XML document Customers.xml. 이 표에서는 요소 경로 구문의 예를 보여 주고 XML 문서를 기본 데이터 원본으로 하여 데이터 집합을 정의하는 쿼리에 해당 요소 경로를 사용한 결과를 보여 줍니다.This table shows examples of element path syntax and the results of using the element path in a query that defines a dataset, based on the XML document as a data source.

참고

요소 경로가 비어 있으면 쿼리는 기본 요소 경로인 첫 번째 리프 노드 컬렉션 경로를 사용합니다.When the element path is empty, the query uses the default element path: the first path to a leaf node collection. 첫 번째 예에서 요소 경로를 비워 둔 것은 /Customers/Customer/Orders/Order 요소 경로를 지정한 것과 같습니다.In the first example, leaving the element path empty is equivalent to specifying the element path /Customers/Customer/Orders/Order. 경로와 함께 모든 노드 값과 특성이 결과 집합에 반환되고 노드 이름과 특성 이름은 데이터 집합 필드로 나타납니다.All node value and attributes along the path are returned in the result set, and the node names and attributes names appear as dataset fields.

예제 #1: 비어 있음Example #1: Empty

주문Order QtyQty IDID FirstNameFirstName LastNameLastName Customer.IDCustomer.ID xmlnsxmlns
ChairChair 66 11 BobbyBobby MooreMoore 1111 http://www.adventure-works.comhttp://www.adventure-works.com
테이블Table 11 22 BobbyBobby MooreMoore 1111 http://www.adventure-works.comhttp://www.adventure-works.com
SofaSofa 22 88 CrystalCrystal HuHu 2020 http://www.adventure-works.comhttp://www.adventure-works.com
EndTablesEndTables 22 1515 WyattWyatt DiazDiaz 3333 http://www.adventure-works.comhttp://www.adventure-works.com

예제 #2: Customers {}/CustomerExample #2: Customers {}/Customer

FirstNameFirstName LastNameLastName IDID
BobbyBobby MooreMoore 1111
CrystalCrystal HuHu 2020
WyattWyatt DiazDiaz 3333

예제 #3: Customers {}/Customer {}/LastNameExample #3: Customers {}/Customer {}/LastName

LastNameLastName
MooreMoore
HuHu
DiazDiaz

예제 #4: Customers {}/Customer {}/Orders/Order {@,@Qty}Example #4: Customers {}/Customer {}/Orders/Order {@,@Qty}

주문Order QtyQty
ChairChair 66
테이블Table 11
SofaSofa 22
EndTablesEndTables 22

예제 #5: Customers {}/Customer/Orders/Order{ @ID(Integer)}Example #5: Customers {}/Customer/Orders/Order{ @ID(Integer)}

Order.IDOrder.ID FirstNameFirstName LastNameLastName IDID
11 BobbyBobby MooreMoore 1111
22 BobbyBobby MooreMoore 1111
88 CrystalCrystal HuHu 2020
1515 WyattWyatt DiazDiaz 3333

XML 문서: Customers.xmlXML document: Customers.xml

이전 섹션의 요소 경로 예를 사용하려면 이 XML을 복사하여 보고서 디자이너에서 액세스할 수 있는 URL에 저장한 다음 해당 XML 문서를 XML 데이터 원본으로 사용합니다(예: http://localhost/Customers.xml).To try out the element path examples in the previous section, you can copy this XML and save it to a URL that is accessible by Report Designer, and then use the XML document as an XML data source: for example, http://localhost/Customers.xml.

<?xml version="1.0"?>  
<Customers xmlns="http://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 데이터 원본을 만들고 쿼리에 Customers.XML을 포함할 수 있습니다.Alternatively, you can create an XML data source that has no connection string and embed Customers.XML in the query, using the following procedure:

쿼리에 Customers.XML을 포함하려면To embed Customers.XML in a query
  1. 빈 연결 문자열을 사용하여 XML 데이터 원본을 만듭니다.Create an XML data source with a blank connection string.

  2. XML 데이터 원본에 대한 새 데이터 집합을 만듭니다.Create a new dataset for the XML data source.

  3. 데이터 집합 속성 대화 상자에서 쿼리 디자이너를 클릭합니다.In the Dataset Properties dialog box, click Query Designer. 텍스트 기반의 쿼리 디자이너 대화 상자가 열립니다.The text-based query designer dialog box opens.

  4. 쿼리 창에서 다음 두 줄을 입력합니다.In the query pane, enter the following two lines:

    <Query>

    <XmlData>

  5. Customers.XML을 복사하여 쿼리 창에서 <XmlData>다음에 텍스트를 붙여 넣습니다.Copy Customers.XML and paste the text in the query pane after <XmlData>.

  6. 쿼리 창에서 Customers.XML로부터 복사한 첫 번째 줄을 삭제합니다. <?xml version="1.0"?>In the query pane, delete the first line that you copied from Customers.XML: <?xml version="1.0"?>

  7. 쿼리 끝에 다음 두 줄을 추가합니다.At the end of the query, add the following two lines:

    <XmlData>

    <Query>

  8. 쿼리 실행 (!)을 클릭합니다.Click Run Query (!).

    다음 열과 함께 4줄의 데이터로 결과 집합이 표시됩니다. xmlns, Customer.ID, FirstName, LastName, ID, Qty, OrderThe result set displays 4 lines of data with the following columns: xmlns, Customer.ID, FirstName, LastName, ID, Qty, Order.

  9. 확인을 클릭합니다.Click OK.

관련 항목:See Also

XML 연결 유형 및 (입니다. SSRS ) XML Connection Type (SSRS)
Reporting Services 자습서 및 (입니다. SSRS ) Reporting Services Tutorials (SSRS)
추가, 편집, 보고서 데이터 창 및 (에서 필드 새로 고침 보고서 작성기 및 SSRS & )Add, Edit, Refresh Fields in the Report Data Pane (Report Builder and SSRS)