REST ネイティブ・フィルターでサポートされるフィルター条件

レポート可能 REST サービス・インプリメンターは、ネイティブ・フィルターによって返される情報を最適化します。 このフィルターは、フィールド引数に対する XPath フィルターとして指定されます。

複数レベルのフィルターを使用した情報の抽出

このフィルターを使用して、フィルタリングされる子エレメントによって組み込まれる XML エレメントを制限します。 フィルター内のすべてのフィールドは、親エレメントによって直接含まれる XML エレメントの値です。 ただし、XPath 構文を使用して、階層内のより深い場所にあるエレメントを取り出すこともできます。 以下の方式を使用することで、特定の情報を抽出できます。
フィルターは複数のレベルで指定できます。 以下の例は、フィールド引数で返される PRRequirement を示しています。
fields=Project/Requirements/PRRequirement[Stability = 'High']/(FullTag|Priority|Status|TracesTo/Relationship[Suspect='true']/*).

このフィルター条件は、特定の製造元によって製造された装置と、可能性があると考えられるすべての TracesTo 関係を選択する追加情報とを抽出します。 以下の例は、フィルターの結果を示しています。

<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>

マルチパスの設定を使用した情報の抽出

XPath 構文を使用して、階層内のより深い場所にある値を取り出すことができます。 ただし、評価するフィルターに対して指定できる値は 1 つのみです。 複数の値を指定すると、式は未定義と見なされます。 例えば、PRRequirement に関連文書があるとします。 この式はスキーマで次のように定義されます。

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

複数の関連文書を存在させることはできないため、この式は評価できます。 関連文書がない場合には、一致はありません。 マルチパス設定のフィールド式は、次のとおりです。

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

フィルターでの XML 属性の使用

フィルター条件で XML 属性値を使用して情報を抽出できます。 以下の例は、この属性の使用方法を示しています。
fields=Project/Requirements/PRRequirement[attribute::Stability = 'High']/(FullTag|Priority|Status).
fields=Project/Requirements/PRRequirement[@Stability = 'High']/(FullTag|Priority|Status).
attribute:: と @ のどちらの形式の属性軸もサポートされます。 Stability が結果に組み込まれないので、XML の結果は同じです。

フィードバック