Condições de filtro suportadas pelos filtros nativos REST

O implementador de serviço REST relatável otimiza as informações que são retornadas pelo filtro nativo. O filtro é especificado como um filtro XPath no argumento de campos.

Extraindo informações usando a filtragem de vários níveis

Use o filtro para limitar os elementos XML que são incluídos por elementos filhos que são filtrados. Todos os campos no filtro são valores dos elementos XML que são diretamente contidos pelo elemento-pai. No entanto, você pode utilizar a sintaxe XPath para recuperar elementos mais profundos na hierarquia. É possível extrair informações específicas usando os seguintes métodos:
Os filtros podem ser especificados em diversos níveis. O exemplo a seguir mostra Pré-requisito que é retornado com o argumento de campos.
fields=Project/Requirements/PRRequirement[Stability = 'High']/(FullTag|Priority|Status|TracesTo/Relationship[Suspect='true']/*).

Esta condição de filtro extrai os dispositivos fabricados por um fabricante específico, juntamente com informações adicionais selecionando todos os relacionamentos TracesTo que são suspeitos. O exemplo a seguir mostra os resultados do filtro:

<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>
[… More matching relationships]
</TracesTo>
</PRRequirement>

Extraindo informações usando a configuração de vários caminhos

Você pode utilizar a sintaxe XPath para recuperar valores que estão mais profundos na hierarquia. No entanto, você pode fornecer apenas um valor para o filtro para avaliação. Se você fornecer diversos valores, a expressão será considerada indefinida. Por exemplo, PRRequirement tem um documento relacionado. Essa expressão é definida no esquema como:

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

Como nunca pode haver mais de um documento relacionado, a expressão pode ser avaliada. Se não houver nenhum documento relacionado, não haverá correspondência. A expressão de campos para a configuração de vários caminhos é:

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

Usando atributos XML em um filtro

Você pode extrair informações usando os valores de atributos XML em uma condição de filtro. O exemplo a seguir mostra como os atributos são utilizados:
fields=Project/Requirements/PRRequirement[attribute::Stability = 'High']/(FullTag|Priority|Status).
fields=Project/Requirements/PRRequirement[@Stability = 'High']/(FullTag|Priority|Status).
Os formatos dos eixos de atributos attribute:: and @ são suportados. Os resultados XML são idênticos, pois Stability não está incluído nos resultados.