Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V Návrháři sestav určíte data k použití pro sestavu ze zdroje dat XML definováním cesty elementu rozlišující velká a malá písmena. Cesta elementu označuje, jak procházet hierarchické uzly XML a jejich atributy ve zdroji dat XML. Chcete-li použít výchozí cestu elementu, ponechte dotaz datové sady nebo dotaz XML ElementPathQuery prázdný. Když se data načtou ze zdroje dat XML, uzly elementů s textovými hodnotami a atributy uzlu elementu se stanou sloupci v sadě výsledků. Hodnoty uzlů a atributů se při spuštění dotazu stanou daty řádků. Sloupce se zobrazí jako kolekce polí dat v podokně Sestava dat. Toto téma popisuje syntaxi cesty elementu.
Poznámka
Syntaxe cesty elementu je nezávislá na oboru názvů. Chcete-li použít obory názvů v cestě elementu, použijte syntaxi dotazu XML, která obsahuje element XML ElementPath popsaný v syntaxi dotazu XML pro data sestav XML (SSRS).
Následující tabulka popisuje konvence používané k definování cesty elementu.
Úmluva | Používá se pro |
---|---|
tučným písmem | Text, který musí být zadán přesně tak, jak je znázorněn. |
| (svislá čára) | Odděluje položky syntaxe. Můžete zvolit jenom jednu z položek. |
[ ] (hranaté závorky) |
Volitelné položky syntaxe Nezadávejte hranaté závorky. |
{ } (složené závorky) | Odděluje parametry položek syntaxe. |
[,...n] | Označuje, že předchozí položku lze opakovat n kolikrát. Výskyty jsou oddělené čárkami. |
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.
Poznámky
Následující tabulka shrnuje termíny cesty elementu. Příklady v tabulce odkazují na ukázkový dokument XML Customers.xml, který je součástí části Příklady tohoto tématu.
Poznámka
Značky XML rozlišují malá a velká písmena. Při zadání ElementNode v cestě k elementu musíte přesně odpovídat značkám XML ve zdroji dat.
Termín | Definice |
---|---|
Cesta k elementu | Definuje posloupnost uzlů, které se mají procházet v dokumentu XML, aby bylo možné načíst data polí pro datovou sadu se zdrojem dat XML. |
ElementNode | Uzel XML v dokumentu XML. Uzly jsou určené značkami a existují v hierarchickém vztahu s jinými uzly. Například <Customers> je uzel kořenového prvku. <customer> je dílčím <Customers>. |
XMLName | Název uzlu. Například název uzlu Zákazníci je Zákazníci. XMLName může mít předponu s identifikátorem oboru názvů, který jednoznačně pojmenuje každý uzel. |
kódování | Označuje, že Hodnota pro tento element je kódovaný XML a musí být dekódován a zahrnut jako dílčí prvek tohoto prvku. |
FieldList | Definuje sadu prvků a atributů, které se mají použít k načtení dat. Pokud není zadáno, všechny atributy a dílčí prvky se použijí jako pole. Pokud je zadán prázdný seznam polí ({}), nebudou použita žádná pole z tohoto uzlu. FieldList nesmí obsahovat zároveň hodnotu ani prvek, ani ElementNode. |
pole | Určuje data, která se načtou jako pole datové sady. |
atribut | Dvojice název-hodnota v rámci ElementNode. Například v uzlu elementu <Id zákazníka="1">, ID je atribut a @ID(Integer) vrátí "1" jako celočíselnou typ v odpovídajícím datovém poli ID. |
hodnoty | Hodnota elementu. Hodnota může být použita pouze na poslední ElementNode v elementové cestě. Například protože <Return> je listový uzel, pokud ho zahrnete na konec cesty prvku, hodnota Return {@} je židle. |
element | Hodnota pojmenovaného subelementu. Například Customers {}/Customer {}/LastName načte hodnoty pouze pro element LastName. |
typ | Volitelný datový typ, který se má použít pro pole vytvořené z tohoto prvku. |
NamespacePrefix | NamespacePrefix je definován v elementu dotazu XML. Pokud neexistuje žádný element dotazu XML, obory názvů v xml ElementPath jsou ignorovány. Pokud existuje element dotazu XML, xml ElementPath má volitelný atribut IgnoreNamespaces. Pokud je IgnoreNamespaces true, obory názvů v xml ElementPath a dokument XML jsou ignorovány. Další informace najdete v tématu Syntaxe XML dotazu pro data sestav XML (SSRS). |
Příklad – Žádné jmenné prostory
Následující příklady používají dokument XML Customers.xml. Tato tabulka ukazuje příklady syntaxe cesty elementu a výsledky použití cesty elementu v dotazu, který definuje datovou sadu na základě dokumentu XML jako zdroje dat.
Poznámka
Pokud je cesta elementu prázdná, použije dotaz výchozí cestu elementu: první cestu k kolekci uzlů typu list. V prvním příkladu je ponechání cesty elementu prázdné ekvivalentní zadání cesty elementu /Customers/Customer/Orders/Order. Všechny hodnoty a atributy uzlu v cestě se vrátí v sadě výsledků a názvy uzlů a atributy se zobrazí jako pole datové sady.
Příklad č. 1: Prázdné
Objednávka | Množství | ID | Jméno | Příjmení | Customer.ID | xmlns |
---|---|---|---|---|---|---|
Židle | 6 | 1 | Bobby | Moore | 11 | https://www.adventure-works.com |
Stůl | 1 | 2 | Bobby | Moore | 11 | https://www.adventure-works.com |
Pohovka | 2 | 8 | Krystal | Hu | 20 | https://www.adventure-works.com |
Koncové tabulky | 2 | 15 | Wyatt | Diaz | 33 | https://www.adventure-works.com |
příklad č. 2: Customers {}/Customer
Jméno | Příjmení | ID |
---|---|---|
Bobby | Moore | 11 |
Krystal | Hu | 20 |
Wyatt | Diaz | 33 |
příklad č. 3: Customers {}/Customer {}/LastName
Příjmení |
---|
Moore |
Hu |
Diaz |
příklad č. 4: Customers {}/Customer {}/Orders/Order {@,@Qty}
Objednávka | Množství |
---|---|
Židle | 6 |
Stůl | 1 |
Pohovka | 2 |
Koncové tabulky | 2 |
příklad č. 5: Customers {}/Customer/Orders/Order{ @ID(Integer)}
ID objednávky | Jméno | Příjmení | ID |
---|---|---|---|
1 | Bobby | Moore | 11 |
2 | Bobby | Moore | 11 |
8 | Krystal | Hu | 20 |
15 | Wyatt | Diaz | 33 |
Dokument XML: Customers.xml
Pokud si chcete vyzkoušet příklady cest elementů v předchozí části, můžete zkopírovat tento KÓD XML a uložit ho na adresu URL, která je přístupná návrhářem sestav, a pak použít dokument XML jako zdroj dat XML: například https://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>
Alternativně můžete vytvořit zdroj dat XML, který nemá žádný připojovací řetězec a vložit Customers.XML v dotazu, a to pomocí následujícího postupu:
Vložit Customers.XML do dotazu
Vytvořte zdroj dat XML s prázdným připojovacím řetězcem.
Vytvořte novou datovou sadu pro zdroj dat XML.
V dialogovém okně Vlastnosti datové sady klikněte na Návrhář dotazů. Otevře se dialogové okno návrháře dotazů na základě textu.
V podokně dotazu zadejte následující dva řádky:
<Query>
<XmlData>
Zkopírujte Customers.XML a vložte text do podokna dotazu za
<XmlData>
.V podokně dotazu odstraňte první řádek, který jste zkopírovali z Customers.XML:
<?xml version="1.0"?>
Na konec dotazu přidejte následující dva řádky:
</XmlData>
</Query>
Klikněte na Spustit dotaz (!).
Sada výsledků zobrazí 4 řádky dat s následujícími sloupci:
xmlns
,Customer.ID
,FirstName
,LastName
,ID
,Qty
,Order
.Vyberte OK.