Sdílet prostřednictvím


Syntaxe cesty elementu pro data sestav XML (SSRS)

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
  1. Vytvořte zdroj dat XML s prázdným připojovacím řetězcem.

  2. Vytvořte novou datovou sadu pro zdroj dat XML.

  3. 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.

  4. V podokně dotazu zadejte následující dva řádky:

    <Query>

    <XmlData>

  5. Zkopírujte Customers.XML a vložte text do podokna dotazu za <XmlData>.

  6. V podokně dotazu odstraňte první řádek, který jste zkopírovali z Customers.XML: <?xml version="1.0"?>

  7. Na konec dotazu přidejte následující dva řádky:

    </XmlData>

    </Query>

  8. 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.

  9. Vyberte OK.