Warunki filtru obsługiwane przez filtry rodzime usług REST

Implementator usługi REST możliwości raportowania optymalizuje informacje zwracane przez filtr rodzimy. Filtr jest określony jako filtr XPath w argumencie fields.

Wyodrębnianie informacji przy użyciu wielopoziomowego filtrowania

Użycie filtru pozwala ograniczyć elementy XML dołączone przez filtrowane elementy potomne. Wszystkie pola w filtrze są wartościami elementów XML zawartych bezpośrednio w elemencie nadrzędnym. Można jednak użyć składni XPath w celu pobrania elementów znajdujących się głębiej w hierarchii. Istnieje możliwość wyodrębnienia konkretnych informacji przy użyciu następujących metod:
Filtry można określić na wielu poziomach. Poniższy przykład przedstawia filtr PRRequirement zwracany z argumentem fields.
fields=Project/Requirements/PRRequirement[Stability = 'High']/(FullTag|Priority|Status|TracesTo/Relationship[Suspect='true']/*).

Ten warunek filtru wyodrębnia urządzenia produkowane przez konkretnego producenta razem z informacjami dodatkowymi, wybierając wszystkie relacje TracesTo, które są podejrzane. W poniższym przykładzie przedstawiono wyniki filtru:

<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>
[... więcej zgodnych relacji]
</TracesTo>
</PRRequirement>

Wyodrębnianie informacji przy użyciu ustawienia wielu ścieżek

Do pobrania wartości znajdujących się głębiej w hierarchii można użyć składni XPath. Jednak do oceny dla filtru można podać tylko jedną wartość. W przypadku podania wielu wartości wyrażenie jest traktowane jako niezdefiniowane. Na przykład filtr PRRequirement ma powiązany dokument. To wyrażenie jest zdefiniowane w schemacie jako:

xs:element maxOccurs="1" name="Document" type="ReqDocument" minOccurs="0".

Ponieważ nigdy nie może być powiązany więcej niż jeden dokument, wyrażenie można wartościować. Jeśli nie ma powiązanego dokumentu, nie ma dopasowania. Wyrażenie fields dla ustawienia wielu ścieżek jest następujące:

fields=Project/Requirements/PRRequirement[Document/Extension=prd]/(*|Document/*.

Używanie atrybutów XML w filtrze

Informacje można wyodrębnić, korzystając z wartości atrybutów XML w warunku filtru. W poniższym przykładzie przedstawiono sposób użycia atrybutów:
fields=Project/Requirements/PRRequirement[attribute::Stability = 'High']/(FullTag|Priority|Status).
fields=Project/Requirements/PRRequirement[@Stability = 'High']/(FullTag|Priority|Status).
Obsługiwane są obie formy osi atrybutów, attribute:: i @. Wyniki XML są identyczne, ponieważ wartość Stability nie jest uwzględniana w tych wynikach.

Opinia