Syntax für Elementpfade zum Angeben von XML-Berichtsdaten

Aktualisiert: 17. Juli 2006

Im Berichts-Designer geben Sie die Daten, die für einen Bericht aus einer XML-Datenquelle verwendet werden sollen, durch Definieren eines Elementpfades (mit Unterscheidung von Groß-/Kleinschreibung) an. 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 entsprechen Feldern im Dataset und werden im Fenster Datasets angezeigt, wenn Sie auf der Symbolleiste auf die Schaltfläche Felder aktualisieren klicken. In diesem Thema wird die Syntax für Elementpfade beschrieben.

ms365158.note(de-de,SQL.90).gifHinweis:
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 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 Kommas voneinander 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.

ms365158.note(de-de,SQL.90).gifHinweis:
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 Endknoten 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.

Beispiel – Keine Namespaces

In den folgenden Beispielen wird das XML-Dokument Customers.xml verwendet. Diese Tabelle zeigt Beispiele zur Syntax von Elementpfaden und die Ergebnisse beim Verwenden des Elementpfades in einer Abfrage an, die ein Dataset anhand eines als Datenquelle dienenden XML-Dokuments definiert.

ms365158.note(de-de,SQL.90).gifHinweis:
Wenn der Elementpfad leer ist, wird für die Abfrage der Standardelementpfad verwendet: der erste Pfad zur Endknotenauflistung. 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

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-Dokument: Customers.xml

Wenn Sie die Elementpfadbeispiele aus dem vorherigen Abschnitt ausprobieren möchten, können Sie dieses XML kopieren und in einem URL speichern, auf den vom Berichts-Designer zugegriffen werden kann. Verwenden Sie das XML-Dokument anschließend als XML-Datenquelle: z. B. https://localhost/Customers.xml. Alternativ dazu können Sie eine XML-Datenquelle erstellen, die nicht über eine Verbindungszeichenfolge verfügt, und Customers.XML im XML-Abfrageelement in ein <XmlData>-Tag einbetten.

<?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>

Siehe auch

Aufgaben

Vorgehensweise: Aktualisieren von Feldern im Fenster Datasets (Berichts-Designer)

Andere Ressourcen

Lernprogramm: Verwenden von XML-Daten in einem Bericht

Hilfe und Informationen

Informationsquellen für SQL Server 2005