6.11 javax.xml.xpathパッケージに関する注意事項
javax.xml.xpathパッケージに関する注意事項を次の表に示します。
項番 |
注意事項 |
---|---|
1 |
マルチスレッドプログラミングをする場合,XPathFactoryクラスはスレッドセーフではありません。したがって,複数のスレッドが同時に同一のXPathFactoryインスタンスにアクセスしてはいけません。スレッド間の競合を避けるため,次のどちらかの方法を使用してください。
|
2 |
マルチスレッドプログラミングをする場合,XPathFactoryクラスのnewInstanceメソッドで生成されるXPathインスタンス,およびXPathインタフェースのcompileメソッドで生成されるXPathExpressionインスタンスはスレッドセーフではありません。したがって,複数のスレッドが同時に同一のXPathインスタンス,およびXPathExpressionインスタンスにアクセスしてはいけません。スレッド間の競合を避けるため,次の方法を使用してください。
|
3 |
XPathFactoryクラスのnewInstance(String uri)メソッドの引数に指定可能なURIは"http://java.sun.com/jaxp/xpath/dom"だけです。 |
4 |
次のメソッドを用いて,コンテキストを参照するようなXPath式を評価する場合は,引数itemにnullではないコンテキストを指定してください。
|
5 |
この表の項番4で示したメソッドの引数itemには,Document,DocumentFragment,Element,Text,Attr,ProcessingInstruction,Commentのどれかのオブジェクトを指定してください。 |
6 |
XPathFunctionインタフェースを実装するクラスのevaluateメソッドの戻り値の型,および, XPathVariableResolverインタフェースを実装するクラスのresolveVariableメソッドの戻り値の型は,java.lang.String,java.lang.Boolean,java.lang.Number,org.w3c.Node,org.w3c.NodeListのどれかにしてください。 |
7 |
javax.xml.xpathパッケージのメソッドで例外が発生した場合,発生した例外オブジェクトにgetMessageメソッドを適用した戻り値がnullになり詳細メッセージを取得できないことがあります。この場合,例外オブジェクトにgetCauseメソッドを適用して「ラップされた例外オブジェクト」を取得し,これにgetMessageメソッドを適用することで,詳細なメッセージを取得できる場合があります。 |
8 |
and,or,mod,div演算子の前後には,空白を入れてください。 (例)"1000 div 10" |
9 |
次のすべての条件が重なるXPath式はサポートしません。
|
10 |
次のすべての条件が重なるXPath式はサポートしません。
|
11 |
属性ノード,名前空間ノードにfollowing-sibling軸を適用したXPath式はサポートしません。 |
12 |
| 演算子のオペランドがロケーションセット以外のXPath式はサポートしません。 |
13 |
名前空間接頭辞と名前空間URIの組が等しい名前空間ノードが複数存在するとき,それらの名前空間ノードに軸を適用するXPath式はサポートしません。 |
14 |
値が重複したID型属性を含むXML文書に対してid関数を適用した場合,id関数の結果が不正になることがあります。 |