Der Implementierer des Reportable REST Service optimiert die Informationen, die vom nativen Filter zurückgegeben werden. Der Filter
wird als XPath-Filter im Feldargument angegeben.
Informationen mit mehrstufiger Filterung extrahieren
Verwenden Sie den Filter, um die XML-Elemente, die von den gefilterten untergeordneten Elementen eingeschlossen werden, zu begrenzen. Alle Felder
im Filter sind Werte der XML-Elemente, die direkt im übergeordneten Element enthalten sind. Sie können die XPath-Syntax verwenden, um Elemente abzurufen,
die sich tiefer in der Hierarchie befinden. Sie können bestimmte Informationen
mit den folgenden Methoden extrahieren:
- Bedingungen für mehrstufige Filter
- Bedingungen für Pfade auf mehreren Ebenen
- XML-Attribute
Filter können auf mehreren Stufen angegeben werden. Das folgende Beispiel zeigt den Parameter
PRRequirement, der mit dem Feldargument zurückgegeben wird.
fields=Project/Requirements/PRRequirement[Stability
= 'High']/(FullTag|Priority|Status|TracesTo/Relationship[Suspect='true']/*).
Diese Filterbedingung extrahiert
die Geräte, die von einem bestimmten Hersteller erzeugt werden, zusammen mit zusätzlichen Informationen, die alle verdächtigen Beziehungen
vom Typ TracesTo enthalten, an. Das folgende Beispiel zeigt die Ergebnisse des Filters:
<PRRequirement>
<FullTag>PR1</FullTag>
<Priority>Medium</Priority>
<Status>Incorporated</Status>
<TracesTo>
<Relationship>
<Suspect>true</Suspect>
<RelationshipType>Traceability</RelationshipType>
<Direction>TracesTo</Direction>
<RelationshipID>{10C4D0CE-24CF-4C80-8167-E5A849FC821B}16{10C2D0CE-84CF-4C80-9166-E5A849FC821B}1RelationshipID>{10C2D0CE-84CE-4C80-9166-E5A849FC821B}16{10C2D0CE-84CF-4C80-9166-E5A849FC821B}1</RelationshipID>
<RelatedRequirement/>
</Relationship>
[… Weitere übereinstimmende Beziehungen]
</TracesTo>
</PRRequirement>
Informationen mit einer Einstellung für mehrere Pfaden extrahieren
Sie können die XPath-Syntax verwenden, um Elemente abzurufen,
die sich tiefer in der Hierarchie befinden. Sie können jedoch nur einen Wert angeben, der vom Filter ausgewertet werden soll. Wenn Sie mehrere Werte
angeben, gilt der Ausdruck als nicht definiert.
Beispiel: Der Parameter PRRequirement hat ein zugehöriges Dokument. Dieser Ausdruck ist im Schema wie folgt definiert:
xs:element
maxOccurs="1" name="Document" type="ReqDocument" minOccurs="0".
Da nie mehr als ein zugehöriges Dokument vorhanden sein kann,
kann der Ausdruck ausgewertet werden. Wenn kein zugehöriges Dokument vorhanden ist, gibt es auch keine Übereinstimmung.
Der Feldausdruck für die Einstellung für mehrere Pfade lautet wie folgt:
fields=Project/Requirements/PRRequirement[Document/Extension=prd]/(*|Document/*.
XML-Attribute in einem Filter verwenden
Sie können Informationen mit den XML-Attributwerden in einer Filterbedingung extrahieren.
Das folgende Beispiel zeigt, wie die Attribute verwendet werden:
fields=Project/Requirements/PRRequirement[attribute::Stability
= 'High']/(FullTag|Priority|Status).
fields=Project/Requirements/PRRequirement[@Stability
= 'High']/(FullTag|Priority|Status).
Beide Formate der Attributachse attribute:: und @ werden unterstützt. Die XML-Ergebnisse sind identisch,
da das Element "Stability" in den Ergebnissen nicht enthalten ist.