Altova XMLSpy 2025 Enterprise Edition

Filter in XML-Dokumenten

Ein Filter in der XML-Grid-Ansicht kann auf einen Element-Node angewendet werden, um die Nachfahren dieses Node zu filtern. Überall dort, wo ein Filter angewendet werden kann, wird ein ausgegrautes Filtersymbol angezeigt. Sobald ein Filter definiert wurde, wird dieses Symbol farbig angezeigt (siehe Abbildung unten). Ein Filter wird mit Hilfe eines XQuery 3.1-Ausdrucks definiert. So wurde z.B. in der Abbildung unten für den Node Temperatures ein Filter definiert, um nur diejenigen Month-Child-Elemente anzuzeigen, die ein Min-Child-Element haben, das einen Wert, der größer als 10 ist, anzuzeigen. (Beachten Sie, dass in der Abbildung die Indexzahl der entsprechenden Month-Elementinstanz entspricht).

 

XSXMLGridViewFilters

 

Um einen Filter einzurichten, klicken Sie mit der rechten Maustaste auf das Element, das Sie filtern möchten, wählen Sie im angezeigten Kontextmenü den Filter aus, geben Sie den XQuery-Ausdruck ein und drücken Sie die Eingabetaste. Die Filter-Zelle ist durch das Symbol ic_jsongridfilteroff (siehe Abbildung oben) gekennzeichnet. Durch Klick auf das Filter-Symbol können Sie den Filter ein- und ausschalten.

 

 

Beachten Sie zu Filtern die folgenden Punkte:

 

Filter können nur auf Element-Nodes angewendet werden.

Der Kontext-Node des XQuery-Ausdrucks des Filters ist der aktuelle Node. So ist z.B. in der Abbildung oben der Kontext-Node der Node Temperatures.

Filter können verschachtelt sein. Verschachtelte Filter werden auf den gefilterten Inhalt des übergeordneten Filters angewendet.

Jeder Filter wird separat ausgeführt. Andere Filter oder Formeln im Dokument haben keine Auswirkung darauf (es sei denn, es handelt sich um einen verschachtelten Filter).

Um in einem Ausdruck eine neue Zeile hinzuzufügen, drücken Sie Strg+Eingabetaste. Dies ist nützlich, wenn Sie einen Ausdruck mehrzeilig anzeigen möchten, um eine bessere Übersicht zu haben.

Der gefilterte Inhalt ist nur eine visuelle Anzeige. Der eigentliche Inhalt bleibt dabei unverändert.

Nachdem ein Filter erstellt wurde, kann er über den Kontextmenübefehl Filtern des Node deaktiviert/wieder aktiviert werden.

Filter werden nicht im XML-, JSON- oder YAML-Dokument gespeichert, sondern in einer speziellen Metadatendatei in Ihrem Applikationsordner (Eigene) Dokumente: Altova\XMLSpyCommon\json-metadata.json. Filter werden automatisch von dieser Datei aus angewendet, wenn das Dokument in der Grid-Ansicht erneut geöffnet wird. Sie können die Metadatendatei an andere XMLSpy-Benutzer weitergeben, damit diese dieselben Filter verwenden können.

 

Filter in JSON/YAML-Dokumenten

Mit Hilfe von Filtern können Sie die Anzeige von Objekten und Arrays filtern. So wurde z.B. in der Abbildung unten ein Filter (bei dem es sich um einen XQuery 3.1-Ausdruck handelt) auf ein Array angewendet, sodass nur CD-Tracks, die von Brian May geschrieben wurden, angezeigt werden. In JSON-Terminologie bedeutet dies, dass nur die Objekt-Children von Tracks, die eine Eigenschaft Writer mit dem String-Wert Brian May haben, angezeigt werden. Mit dem XQuery-Ausdruck des Filters werden alle Child-Objekte von Tracks ermittelt und nur diejenigen ausgewählt, bei denen die Eigenschaft Writer den String 'Brian May' enthält.

 

JSONGridViewFilters01

 

Jeder Filter wird separat ausgeführt. Andere Filter oder Formeln im Dokument haben keine Auswirkung darauf.

 

Informationen zur Erstellung von XQuery-Ausdrücken für JSON/YAML-Dokumente finden Sie im Abschnitt XQuery-Ausdrücke für JSON.

 

Anmerkung:Sie können Ausdrücke für Filter und Formeln in der Grid-Ansicht aus Gründen der Übersichtlichkeit auch in mehreren Zeilen eingeben. Um im Ausdruck eine neue Zeile hinzuzufügen, drücken Sie Strg+Eingabetaste.

 

Anmerkung:Da ein Filter auf XQuery basiert, funktioniert er in YAML-Dokumenten, die der JSON-Syntax nicht entsprechen, nicht. Wenn Sie in Ihrem YAML-Dokument z.B. Anker oder Aliasse verwenden, hat die Berechnung eines Filters eine XQuery-Fehlermeldung zur Folge.

 

 

Einrichten eines Filters

Um einen Filter einzurichten, klicken Sie mit der rechten Maustaste auf das Element, das Sie filtern möchten, wählen Sie im angezeigten Kontextmenü den Filter aus, geben Sie den XQuery-Ausdruck ein und drücken Sie die Eingabetaste. Die Filter-Zelle ist durch das Symbol ic_jsongridfilteroff (siehe Abbildung oben) gekennzeichnet. Durch Klick auf das Filter-Symbol können Sie den Filter ein- und ausschalten.

 

Beachten Sie zu Filtern die folgenden Punkte:

 

Filter können nur auf Objekte und Arrays angewendet werden.

Der Kontext-Node des XQuery-Ausdrucks des Filters ist der aktuelle Node. So ist z.B. in der Abbildung oben der Kontext-Node des XQuery-Ausdrucks des Filters der Node Tracks.

Filter können verschachtelt sein. Verschachtelte Filter werden auf den gefilterten Inhalt des übergeordneten Filters angewendet.

Jeder Filter wird separat ausgeführt. Andere Filter oder Formeln im Dokument haben keine Auswirkung darauf (es sei denn, es handelt sich um einen verschachtelten Filter).

Um in einem Ausdruck eine neue Zeile hinzuzufügen, drücken Sie Strg+Eingabetaste. Dies ist nützlich, wenn Sie einen Ausdruck mehrzeilig anzeigen möchten, um eine bessere Übersicht zu haben.

Der gefilterte Inhalt ist nur eine visuelle Anzeige. Der eigentliche Inhalt bleibt dabei unverändert.

Nachdem ein Filter erstellt wurde, kann er über den Kontextmenübefehl Filtern des Node deaktiviert/wieder aktiviert werden.

Filter werden nicht im XML-, JSON- oder YAML-Dokument gespeichert, sondern in einer speziellen Metadatendatei in Ihrem Applikationsordner (Eigene) Dokumente: Altova\XMLSpyCommon\json-metadata.json. Filter werden automatisch von dieser Datei aus angewendet, wenn das Dokument in der Grid-Ansicht erneut geöffnet wird. Sie können die Metadatendatei an andere XMLSpy-Benutzer weitergeben, damit diese dieselben Filter verwenden können.

 

© 2018-2024 Altova GmbH