A Jelenthető REST szolgáltatás megvalósító optimalizálja a
natív szűrő által visszaadott információkat. A szűrőt XPath szűrőként kell
megadni a mezőargumentumban.
Információk kinyerése többszintű szűrés használatával
A szűrő használatával korlátozhatja a befoglalt XML elemeket a
szűrt utódelemek alapján. A szűrőben szereplő minden mező az XML elemek
értéke, amelyeket közvetlenül tartalmaz a szülő elem.
XPath szintaxis
használatával azonban a hierarchiában mélyebben található elemeket is
lekérheti. Az alábbi módszerekkel nyerhet ki specifikus információkat:
- Többszintű szűrőfeltételek
- Többszintű útvonalfeltételek
- XML attribútumok
Több szinten is meg lehet adni szűrőket. Az alábbi példa
bemutatja a mezőargumentummal visszaadott
PRRequirement paramétert.
fields=Project/Requirements/PRRequirement[Stability
= 'High']/(FullTag|Priority|Status|TracesTo/Relationship[Suspect='true']/*).
Ez a szűrőfeltétel kinyeri egy adott gyártó eszközeit további
információkkal együtt, amelyek kiválasztják az összes gyanús
TracesTo viszonyt. Az alábbi példa bemutatja a szűrő
eredményeit:
<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>
[… További megfelelő viszonyok]
</TracesTo>
</PRRequirement>
Információk kinyerése többútvonalas beállítás használatával
XPath szintaxis használatával lekérheti a hierarchiában mélyebben
elhelyezkedő értékeket.
Azonban csak egy értéket adhat meg a szűrőnek kiértékelésre.
Ha több értéket ad meg, akkor a rendszer meghatározatlannak tekinti a
kifejezést.
Például tegyük fel, hogy a PRRequirement rendelkezik
egy kapcsolódó dokumentummal. Ez a kifejezés az alábbi módon van
meghatározva a sémában:
xs:element
maxOccurs="1" name="Document" type="ReqDocument" minOccurs="0".
Mivel sosem lehet több kapcsolódó dokumentum, a kifejezés kiértékelhető. Ha
nincs kapcsolódó dokumentum, akkor nincs találat.
A többútvonalas beállításhoz tartozó mezőkifejezés:
fields=Project/Requirements/PRRequirement[Document/Extension=prd]/(*|Document/*.
XML attribútumok használata szűrőkben
Lehetősége
van információk kinyerésére az XML attribútumértékek használatával a
szűrőfeltételekben.
Az alábbi példa bemutatja az attribútumok használatának módját:
fields=Project/Requirements/PRRequirement[attribute::Stability
= 'High']/(FullTag|Priority|Status).
fields=Project/Requirements/PRRequirement[@Stability
= 'High']/(FullTag|Priority|Status).
Az attribútum tengely mindkét formája (attribute:: and
@) támogatott. Az XML eredmények azonosak, mert a Stabilitás
nem szerepel az eredményekben.