Синтаксис пути к элементу для определения XML-данных отчета
Изменения: 17 июля 2006 г.
В конструкторе отчетов для определения данных из источника XML, которые должны использоваться в отчете, указывается путь к элементу с учетом регистра. Путь к элементу — это путь по иерархическим XML-узлам в источнике XML-данных и атрибуты этих узлов. Чтобы использовать путь к элементу по умолчанию, оставьте пустым запрос набора данных или XML ElementPath для XML-Query. При получении данных из источника XML-данных узлы элементов, которые имеют текстовые значения и атрибуты узла элемента, преобразуются в столбцы результирующего набора. При выполнении запроса значения этих узлов и атрибуты преобразуются в данные строк. Столбцы соответствуют полям в наборе данных и отображаются в окне набора данных при нажатии кнопки Обновить поля на панели инструментов. В этом разделе содержится информация о синтаксисе пути к элементу.
Примечание. |
---|
Синтаксис пути к элементу не зависит от пространства имен. Для указания пространств имен в пути к элементу используйте XML-запрос с XML-элементом ElementPath, описанным в разделе Синтаксис элемента XML Query для задания 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 в подразделе «Примеры» этого раздела.
Примечание. |
---|
В XML-тегах различается регистр символов. Определение ElementNode в пути к элементу должно точно соответствовать XML-тегам в источнике данных. |
Термин | Определение |
---|---|
Путь к элементу |
Определяет последовательность узлов, которые необходимо пройти в XML-документе, чтобы получить поля данных для набора данных из источника XML-данных. |
ElementNode |
XML-узел в XML-документе. Узлы обозначаются тегами и находятся в иерархической связи с другими узлами. Например, <Customers> является корневым элементом узла. <Customer> является подэлементом <Customers>. |
XMLName |
Имя узла. Например, именем узла Customers является Customers. Чтобы дать каждому узлу уникальное имя, XMLName может иметь префикс с идентификатором пространства имен. |
Encoding |
Указывает, что Value для этого элемента закодировано на языке XML, требует декодирования и включается как подэлемент этого элемента. |
FieldList |
Определяет набор элементов и атрибутов, используемых для получения данных. Если не указано иное, все атрибуты и подэлементы используются в качестве полей. Если задан пустой список полей ({}), поля из этого узла не используются. FieldList не может одновременно содержать Value и Element или ElementNode. |
Field |
Определяет данные, извлекаемые как поле набора данных. |
Attribute |
Пара «имя-значение» в ElementNode. Например, ID в узле элемента <Customer ID="1"> является атрибутом, а @ID(Integer) возвращает "1" как целочисленный тип данных в соответствующем поле данных ID. |
Value |
Значение элемента. Value может использоваться только в последнем ElementNode пути к элементу. Например, <Return> является конечным узлом. Если включить его в конце пути к элементу, значением Return {@} будет Chair. |
Element |
Значение именованного подэлемента. Например, Customers {}/Customer {}/LastName извлекает значения только для элемента LastName. |
Type |
Необязательный тип данных, который должен использоваться для поля, созданного из этого элемента. |
NamespacePrefix |
NamespacePrefix определяется в элементе XML-запроса. Если элемента XML-запроса не существует, пространства имен в XML ElementPath не обрабатываются. Если элемент XML-запроса существует, XML ElementPath имеет необязательный атрибут IgnoreNamespaces. Если параметр IgnoreNamespaces равен true, пространства имен в XML ElementPath и XML-документе не обрабатываются. Дополнительные сведения см. в разделе Синтаксис элемента XML Query для задания XML-данных отчета. |
Пример (без пространств имен)
В следующих примерах используется XML-документ Customers.xml. Эта таблица содержит примеры синтаксиса пути к элементу и результаты использования пути в запросе. Источником данных является XML-документ.
Примечание. |
---|
Если путь к элементу пуст, запрос использует путь к элементу по умолчанию: первый путь к коллекции конечного узла. В первом примере пустой путь к элементу эквивалентен указанию пути /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 в тег <XmlData> элемента XML-запроса.
<?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-данных в отчете