Condiciones de filtro soportadas por filtros nativos REST

El implementador del servicio REST notificable optimiza la información devuelta por el filtro nativo. El filtro se especifica como un filtro de XPath en el argumento fields.

Extraer información mediante filtrado multinivel

Utilice el filtro para limitar los elementos XML incluidos por los elementos hijo que se filtran. Todos los campos del filtro son valores de los elementos XML que están contenidos directamente en el elemento padre. Sin embargo, puede utilizar la sintaxis XPath para recuperar elementos a mayor profundidad en la jerarquía. Puede extraer información específica mediante los métodos siguientes :
Los filtros pueden especificarse en varios niveles. El ejemplo siguiente muestra el requisito PR (PRRequirement) que se devuelve con el argumento fields.
fields=Project/Requirements/PRRequirement[Stability = 'High']/(FullTag|Priority|Status|TracesTo/Relationship[Suspect='true']/*).

Esta condición de filtro extrae los aparatos fabricados por un fabricante específico, junto con información adicional seleccionando todas las relaciones TracesTo sospechosas. El ejemplo siguiente muestra los resultados del 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>

Extraer información mediante un valor multivía de acceso

Puede utilizar la sintaxis XPath para recuperar valores a mayor profundidad en la jerarquía. Sin embargo, sólo puede suministrar un valor para que el filtro lo evalúe. Si suministra varios valores, la expresión se considerará sin definir. Por ejemplo, PRRequirement tiene un documento relacionado. Esta expresión se define en el esquema como:

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

Puesto que no puede haber más de un documento relacionado, la expresión puede evaluarse. Si no hay ningún documento relacionado, no hay coincidencia. La expresión fields para el valor multivía de acceso es:

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

Utilizar atributos XML en un filtro

Puede extraer información utilizando los valores de atributo XML en una condición de filtro. El ejemplo siguiente muestra cómo se utilizan los atributos:
fields=Project/Requirements/PRRequirement[attribute::Stability = 'High']/(FullTag|Priority|Status).
fields=Project/Requirements/PRRequirement[@Stability = 'High']/(FullTag|Priority|Status).
Ambas formas del eje de atributo attribute:: y @ están soportadas. Los resultados XML son idénticos, porque Stability no se incluye en los resultados.