2つの異なる名前空間からのドキュメントを対象とする複雑なXQuery式を生成するライブラリを作成しています。ただし、クエリを生成するとき、クエリする必要のある各要素の特定の名前空間がわからないため、現在、2つの可能な組み合わせの論理和を生成しています。
// * [ns1:foo / ns1:bar = "何らかの条件"またはns2:foo / ns2:bar="何らかの条件"]
この式をパフォーマンスの観点からより適切かつ最適に生成する方法はありますか?
私が見つけた1つの可能な解決策は、以下を使用することです。
デフォルトの要素名前空間「*」を宣言します
その場合、私は単純に以下を生成することができます:
// * [foo / bar="何らかの条件"]
ただし、2つの可能な名前空間を列挙できず、代わりにワイルドカードを使用できるため、パフォーマンスのオーバーヘッドが増える可能性があります。