フィルターおよびフィルター パターン
コレクションにフィルター句 [パターン] を追加することにより、制約と分岐をコレクションに適用することができます。 フィルターは 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 つの |