Share via


Sintaxis de ruta de acceso de elemento para especificar datos de informe XML

Actualizado: 17 de julio de 2006

En el Diseñador de informes, se define una ruta de acceso de elemento que distingue mayúsculas de minúsculas para especificar los datos que se van a utilizar en un informe desde un origen de datos XML. Una ruta de acceso de elemento indica cómo se deben recorrer los nodos jerárquicos XML y sus atributos en el origen de datos XML. Para utilizar la ruta de acceso de elemento predeterminada, mantenga vacía la consulta del conjunto de datos o el elemento XML ElementPath del elemento XML Query. Cuando se recuperan datos del origen de datos XML, los nodos de elemento que tienen valores de texto y atributos de nodo de elemento se convierten en columnas en el conjunto de resultados. Los valores de los nodos y atributos pasan a ser datos de fila al ejecutar la consulta. Las columnas se asignan a campos del conjunto de datos y aparecen en la ventana Conjuntos de datos al hacer clic en el botón Actualizar campos de la barra de herramientas. En este tema se describe la sintaxis de la ruta de acceso de elemento.

[!NOTA] La sintaxis de ruta de acceso de elemento es independiente del espacio de nombres. Para utilizar espacios de nombres en una ruta de acceso de elemento, se emplea la sintaxis de consulta XML que incluye un elemento XML ElementPath, tal como se describe en Sintaxis de consulta XML para especificar datos de informe XML.

En la tabla siguiente se describen las convenciones que se aplican para definir una ruta de acceso de elemento.

Convención Se usa para

Negrita

Texto que debe escribirse exactamente como se muestra.

| (barra vertical)

Separa los elementos de sintaxis. Sólo se puede elegir uno de los elementos.

[ ] (corchetes)

Elementos opcionales de sintaxis. No escriba los corchetes.

{ } (llaves)

Delimita los parámetros de los elementos de sintaxis.

[,...n]

Indica que el elemento anterior puede repetirse n veces. Cada repetición se separa de la siguiente con una coma.

Sintaxis

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. 

Notas

En la tabla siguiente se resumen los términos de ruta de acceso de elemento. Los ejemplos de la tabla hacen referencia al documento XML de ejemplo Customers.xml, que se incluye en la sección Ejemplos de este tema.

[!NOTA] En las etiquetas XML se distingue entre mayúsculas y minúsculas. Cuando se especifica ElementNode en la ruta de acceso de elemento, debe haber una correspondencia exacta con las etiquetas XML del origen de datos.

Término Definición

Ruta de acceso de elemento

Define la secuencia de nodos que deben recorrerse en el documento XML para recuperar los datos de campo de un conjunto de datos con un origen de datos XML.

ElementNode

Nodo XML en el documento XML. Los nodos se designan mediante etiquetas y existen en una relación jerárquica con otros nodos. Por ejemplo, <Customers> es el nodo de elemento raíz. <Customer> es un subelemento de <Customers>.

XMLName

Nombre del nodo. Por ejemplo, el nombre del nodo Customers es Customers. XMLName puede incluir delante un identificador de espacio de nombres para asignar un nombre único a cada nodo.

Encoding

Indica que Value para este elemento es XML codificado y debe descodificarse e incluirse como un subelemento de este elemento.

FieldList

Define el conjunto de elementos y atributos que se van a utilizar para recuperar datos.

Si no se especifica, se usan como campos todos los atributos y subelementos. Si se especifica la lista de campos vacía ({}), no se usa ningún campo de este nodo.

FieldList no puede contener a la vez Value y Element o ElementNode.

Field

Especifica los datos que se recuperan como campo de conjunto de datos.

Attribute

Par de nombre y valor de ElementNode. Por ejemplo, en el nodo de elemento <Customer ID="1">, ID es un atributo y @ID(Integer) devuelve "1" como un tipo de entero en el campo de datos ID correspondiente.

Value

Valor del elemento. Value sólo se puede utilizar en el último ElementNode de la ruta de acceso de elemento. Por ejemplo, dado que <Return> es un nodo hoja, si se incluye al final de una ruta de acceso de elemento, el valor de Return {@} es Chair.

Element

Valor del subelemento con nombre. Por ejemplo, Customers {}/Customer {}/LastName recupera valores únicamente para el elemento LastName.

Type

Tipo de datos opcional que se usa para el campo creado a partir de este elemento.

NamespacePrefix

NamespacePrefix se define en el elemento XML Query. Si no existe ningún elemento XML Query, se pasan por alto los espacios de nombres del elemento XML ElementPath. Si hay un elemento XML Query, el elemento XML ElementPath tiene un atributo IgnoreNamespaces opcional. Si IgnoreNamespaces es true, se pasan por alto los espacios de nombres en el elemento XML ElementPath y el documento XML. Para obtener más información, vea Sintaxis de consulta XML para especificar datos de informe XML.

Ejemplo: sin espacios de nombres

En los ejemplos siguientes se usa el documento XML Customers.xml. En esta tabla se muestran los ejemplos de sintaxis de ruta de acceso de elemento y los resultados que se obtienen al utilizar la ruta de acceso de elemento en una consulta que define un conjunto de datos, basándose en el documento XML como origen de datos.

[!NOTA] Cuando la ruta de acceso de elemento está vacía, la consulta utiliza la ruta de acceso de elemento predeterminada: la primera ruta de acceso a una colección de nodos hoja. En el primer ejemplo, dejar la ruta de acceso de elemento vacía equivale a especificar la ruta de acceso de elemento /Customers/Customer/Orders/Order. Todos los valores de nodo y atributos de la ruta se devuelven en el conjunto de resultados, y los nombres de nodo y nombres de atributo aparecen como campos de conjunto de datos.

Ejemplo

Campos en el conjunto de datos

Vacíos

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

Documento XML: Customers.xml

Para comprobar los ejemplos de ruta de acceso de elemento de la sección anterior, puede copiar este XML, guardarlo en una dirección URL a la que tenga acceso el Diseñador de informes y, a continuación, utilizar el documento XML como origen de datos XML; por ejemplo, https://localhost/Customers.xml. Alternativamente, puede crear un origen de datos XML que no tenga ninguna cadena de conexión e incrustar Customers.XML en una etiqueta <XmlData> en el elemento XML Query.

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

Vea también

Tareas

Cómo actualizar los campos de la ventana Conjuntos de datos (Diseñador de informes)

Otros recursos

Tutorial: Usar datos XML en un informe

Ayuda e información

Obtener ayuda sobre SQL Server 2005