コレクションにフィルタ句 [パターン] を追加することにより、制約と分岐をコレクションに適用することができます。フィルタは SQL の WHERE 句に類似しています。フィルタにはフィルタ パターンが含まれています。フィルタ パターンはコレクションの各要素に対してテストされ、論理値として評価されます。フィルタ パターンのテストに不合格となったコレクション内の要素は、結果のコレクションから除外されます。
フィルタ内にコレクションが含まれる場合、便宜上、コレクションに何かメンバが含まれていると論理値 TRUE が生成され、コレクションが空の場合は FALSE が生成されます。author/degree
などの式はコレクションから論理値への変換関数を意味し、<degree>
という名の子要素を持つ <author>
要素が存在する場合は TRUE として評価されます。
式の所定のレベルで任意数のフィルタを使用することができます。空のフィルタは使用できません。
フィルタは常にコンテキストに対して評価されます。言い換えると、式 book[author]
は、見つかったすべての <book>
要素に対して、それに <author>
子要素が存在するかどうかがテストされます。同様に、book[author = 'Bob']
は、見つかったすべての <book>
要素に対して、それに値 Bob
を持つ <author>
子要素があるかどうかがテストされます。コンテキストの値もピリオド (.) 文字を使用して調べることができます。たとえば book[. = 'Trenton']
は、現在のコンテキスト内で見つかったすべての book に対して、その値が Trenton
かどうかがテストされます。
例
式 | 説明 |
---|---|
|
少なくとも 1 つの |
|
少なくとも 1 つの |
|
少なくとも 1 つの |
|
少なくとも 1 つの |
|
少なくとも 1 つの |