Freigeben über


Syntax für Elementpfade zum Angeben von XML-Berichtsdaten (Berichts-Generator 2.0)

In Berichts-Generator 2.0 geben Sie die Daten an, die für einen Bericht aus einer XML-Datenquelle verwendet werden sollen, indem Sie einen Elementpfad definieren. Bei dem Pfad muss die Groß-/Kleinschreibung beachtet werden. Mit einem Elementpfad wird angegeben, wie die hierarchischen XML-Knoten und ihre Attribute in der XML-Datenquelle durchsucht werden können. Lassen Sie die Datasetabfrage oder den XML-ElementPath der XML-Query leer, um den Standardelementpfad zu verwenden. Wenn Daten aus der XML-Datenquelle abgerufen werden, werden Elementknoten mit Textwerten und Elementknotenattribute im Resultset zu Spalten. Die Werte der Knoten und Attribute werden beim Ausführen der Abfrage zu Zeilendaten. Die Spalten werden als Datasetfeldauflistung im Bereich Berichtsdaten angezeigt. In diesem Thema wird die Syntax für Elementpfade beschrieben.

HinweisHinweis

Die Syntax von Elementpfaden ist nicht vom Namespace abhängig. Wenn Sie in einem Elementpfad Namespaces verwenden möchten, verwenden Sie die XML-Abfragesyntax, die ein XML-ElementPath-Element enthält. Dies wird unter XML-Abfragesyntax zum Angeben von XML-Berichtsdaten (Berichts-Generator 2.0) beschrieben.

In der folgenden Tabelle werden Konventionen für das Definieren eines Elementpfades beschrieben.

Konvention

Syntaxelemente

Fett

Text, der genau so geschrieben werden muss wie dargestellt.

| (senkrechter Strich)

Trennt Syntaxelemente voneinander. Sie können nur eines der Elemente auswählen.

[ ] (eckige Klammern)

Optionale Syntaxelemente. Geben Sie die eckigen Klammern nicht mit ein.

{ } (geschweifte Klammern)

Begrenzt Parameter für Syntaxelemente.

[,...n]

Zeigt an, dass das vorherige Element n-mal wiederholt werden kann. Die einzelnen Vorkommen werden durch Trennzeichen getrennt.

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. 

Hinweise

In der folgenden Tabelle sind Begriffe für Pfadelemente zusammengefasst. Die Beispiele in der Tabelle beziehen sich auf das XML-Beispieldokument Customers.xml, das im Abschnitt mit Beispielen in diesem Thema enthalten ist.

HinweisHinweis

Bei XML-Tags wird zwischen Groß- und Kleinschreibung unterschieden. Wenn Sie im Elementpfad einen Elementknoten (ElementNode) angeben, müssen die XML-Tags in der Datenquelle genau übereinstimmen.

Begriff

Definition

Elementpfad

Definiert die zu durchsuchende Sequenz von Knoten im XML-Dokument, um Felddaten für ein Dataset mit einer XML-Datenquelle abzurufen.

ElementNode

Der XML-Knoten im XML-Dokument. Knoten werden durch Tags gekennzeichnet und sind in einer hierarchischen Beziehung mit anderen Knoten vorhanden. Bei <Customers> handelt es sich beispielsweise um den Stammknoten des Elements. <Customer> ist ein untergeordnetes Element von <Customers>.

XMLName

Der Name des Knotens. Der Name des Knotens Customers ist beispielsweise Customers. Für XMLName kann ein Namespacebezeichner als Präfix verwendet werden, um jeden Knoten eindeutig zu benennen.

Encoding

Gibt an, dass der Value für dieses Element codiertes XML darstellt und decodiert werden sowie als untergeordnetes Element dieses Elements aufgenommen muss.

FieldList

Definiert eine Gruppe von Elementen und Attributen, die zum Abrufen von Daten verwendet werden.

Wenn dieses Element nicht angegeben wird, werden alle Attribute und untergeordneten Elemente als Felder verwendet. Wenn die leere Feldliste angegeben wird ({}), werden keine Felder aus diesem Knoten verwendet.

Eine FieldList kann nicht gleichzeitig einen Value und ein Element oder einen ElementNode enthalten.

Field

Gibt die Daten an, die als Datasetfeld abgerufen werden.

Attribute

Ein Name/Wert-Paar im ElementNode. Beispielsweise handelt es sich bei ID im Elementknoten <Customer ID="1"> um ein Attribut, und @ID(Integer) gibt "1" als ganze Zahl in der entsprechenden Datenfeld-ID zurück.

Value

Der Wert des Elements. Value kann nur für den letzten ElementNode im Elementpfad verwendet werden. Da es sich beispielsweise bei <Return> um einen Blattknoten handelt, ist der Wert von Return {@} gleich Chair, wenn Sie es am Ende eines Elementpfades anfügen.

Element

Der Wert des benannten untergeordneten Elements. Beispielsweise werden mithilfe von Customers {}/Customer {}/LastName nur Werte für das LastName-Element abgerufen.

Type

Der optionale Datentyp, der für das aus diesem Element erstellte Feld zu verwenden ist.

NamespacePrefix

NamespacePrefix wird im XML-Abfrageelement definiert. Wenn kein XML-Abfrageelement vorhanden ist, werden Namespaces im XML-ElementPath ignoriert. Wenn ein XML-Abfrageelement vorhanden ist, verfügt der XML-ElementPath über das optionale Attribut IgnoreNamespaces. Wenn IgnoreNamespaces den Wert true aufweist, werden Namespaces im XML-ElementPath und im XML-Dokument ignoriert. Weitere Informationen finden Sie unter XML-Abfragesyntax zum Angeben von XML-Berichtsdaten (Berichts-Generator 2.0).

Beispiel – Keine Namespaces

Die folgenden Beispiele veranschaulichen die Verwendung des XML-Dokuments Customers.xml. In der Tabelle werden Beispiele der Elementpfadsyntax und die Ergebnisse bei der Verwendung des Elementpfads in einer Abfrage dargestellt, die ein Dataset basierend auf dem XML-Dokument als Datenquelle definiert.

HinweisHinweis

Wenn der Elementpfad leer ist, wird für die Abfrage der Standardelementpfad verwendet: der erste Pfad zur Blattknotenauflistung. Im ersten Beispiel entspricht das Leerlassen des Elementpfades dem Angeben des Elementpfades /Customers/Customer/Orders/Order. Alle Knotenwerte und -attribute entlang dieses Pfades werden im Resultset zurückgegeben, und die Knotennamen und -attribute werden als Datasetfelder angezeigt.

Beispiel

Felder im Dataset

Leer

OrderQtyIDFirstNameLastNameCustomer.IDxmlns
Chair61BobbyMoore11https://www.adventure-works.com
Table12BobbyMoore11https://www.adventure-works.com
Sofa28CrystalHu20https://www.adventure-works.com
EndTables215WyattDiaz33https://www.adventure-works.com

Customers {}/Customer

FirstNameLastNameID
BobbyMoore11
CrystalHu20
WyattDiaz33

Customers {}/Customer {}/LastName

LastName
Moore
Hu
Diaz

Customers {}/Customer {}/Orders/Order {@,@Qty}

OrderQty
Chair6
Tabelle1
Sofa2
EndTables2

Customers {}/Customer/Orders/Order{ @ID(Integer)}

Order.IDFirstNameLastNameID
1BobbyMoore11
2BobbyMoore11
8CrystalHu20
15WyattDiaz33

XML-Dokument: Customers.xml

Um die Elementpfadbeispiele im vorherigen Abschnitt auszuprobieren, können Sie dieses XML-Dokument kopieren und unter einer URL speichern, auf die der Berichts-Generator zugreifen kann. Anschließend können Sie das XML-Dokument als XML-Datenquelle verwenden: z. B. https://localhost/Customers.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>

Sie können auch eine XML-Datenquelle ohne Verbindungszeichenfolge erstellen und Customers.XML in die Abfrage einbetten. Gehen Sie dazu wie folgt vor:

So betten Sie Customers.XML in einer Abfrage ein

  1. Erstellen Sie eine XML-Datenquelle mit einer leeren Verbindungszeichenfolge.

  2. Erstellen Sie ein neues Dataset für die XML-Datenquelle.

  3. Klicken Sie im Dialogfeld Dataseteigenschaften auf Abfrage-Designer. Das textbasierte Dialogfeld des Abfrage-Designers wird geöffnet.

  4. Geben Sie die folgenden Zeilen im Abfragebereich ein:

    <Query>

    <XmlData>

  5. Kopieren Sie die Datei Customers.XML, und fügen Sie den Text im Abfragebereich nach der Zeile <XmlData> ein.

  6. Löschen Sie im Abfragebereich die erste Zeile, die Sie aus der Datei Customers.XML kopiert haben: <?xml version="1.0"?>

  7. Fügen Sie am Ende der Abfrage die beiden folgenden Zeilen hinzu:

    <XmlData>

    <Query>

  8. Klicken Sie auf Abfrage ausführen.

    Das Resultset zeigt vier Datenzeilen mit den folgenden Spalten an: xmlns, Customer.ID, FirstName, LastName, ID, Qty, Order

  9. Klicken Sie auf OK.