L'implémenteur des services REST rapportables optimise les informations
renvoyées par le filtre natif. Le filtre est spécifié comme
filtre XPath sur l'argument fields.
Extraction d'informations à l'aide d'un filtrage multi-niveau
Utilisez le filtre pour limiter les éléments XML inclus par les
éléments enfant filtrés. Toutes les zones du filtre correspondent aux valeurs des éléments XML qui se trouvent directement
dans l'élément parent.
Toutefois, vous pouvez utiliser la syntaxe XPath pour extraire des éléments plus profonds dans la hiérarchie. Vous pouvez extraire des informations spécifiques à l'aide des
méthodes suivantes :
- Conditions de filtre à plusieurs niveaux
- Conditions de chemin d'accès à plusieurs niveaux
- Attributs XML
Les filtres peuvent être spécifiés à plusieurs niveaux. L'exemple
ci-après illustre le PRRequirement renvoyé
avec l'argument fields.
fields=Project/Requirements/PRRequirement[Stability
= 'High']/(FullTag|Priority|Status|TracesTo/Relationship[Suspect='true']/*).
Cette condition de filtre extrait les dispositifs fabriqués par un fabricant spécifique,
ainsi que des informations supplémentaires, en sélectionnat toutes les relations TracesTo
suspectes. L'exemple suivant illustre les résultats du filtre :
<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>
Extraction des informations à l'aide d'un paramètre multi-accès
Vous pouvez utiliser la syntaxe XPath pour extraire les valeurs qui se trouvent plus loin
dans la hiérarchie.
Toutefois, vous ne pouvez fournir qu'une valeur pour le filtre à
évaluer.
Si vous fournissez plusieurs valeurs, l'expression est considérée comme non
définie.
Par exemple, le PRRequirement est associé à un document. Cette expression est définie comme suit dans le schéma :
xs:element
maxOccurs="1" name="Document" type="ReqDocument" minOccurs="0".
Comme
il ne peut jamais y avoir plusieurs documents associés, l'expression
peut être évaluée. S'il n'existe pas de document associé, il n'existe pas de
correspondance.
L'expression fields du paramètre multi-accès est la suivante :
fields=Project/Requirements/PRRequirement[Document/Extension=prd]/(*|Document/*.
Utilisation des attributs XML dans un filtre
Vous pouvez extraire
des informations à l'aide des valeurs d'attribut XML d'une condition de filtre.
L'exemple
suivant montre comment les attributs sont utilisés :
fields=Project/Requirements/PRRequirement[attribute::Stability
= 'High']/(FullTag|Priority|Status).
fields=Project/Requirements/PRRequirement[@Stability
= 'High']/(FullTag|Priority|Status).
Les deux formes de l'axe d'attribut attribute:: et
@ sont prises en charge. Les résultats XML sont identiques, car Stability n'est pas
inclus dans les résultats.