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