javax.xml.validationパッケージに関する注意事項を表6-15に示します。
表6-15 javax.xml.validationパッケージに関する注意事項
項番 | 注意事項 |
---|---|
1 | マルチスレッドプログラミングをする場合,SchemaFactoryクラス,Validatorクラス,ValidatorHandlerクラス,TypeInfoProviderクラスはスレッドセーフではありません。したがって,各スレッドは排他的にこれらのオブジェクトにアクセスするようにしてください。 |
2 | SchemaFactoryクラスのnewInstance(String schemaLanguage)メソッドの引数に指定可能なURIは"http://www.w3.org/2001/XMLSchema"だけです。 |
3 | SchemaFactoryクラスのisSchemaLanguageSupportedメソッドには, "http://www.w3.org/2001/XMLSchema"を指定してください。その他のスキーマ言語を指定した場合は,falseが戻ります。 |
4 | SchemaFactoryクラスのnewSchema(Source[] schemas)メソッドの引数schemasの配列要素には,それぞれ異なるtargetNamespaceを持つスキーマ文書を指定してください。同一のtargetNamespaceを持つスキーマ文書,またはtargetNamespaceを持たないスキーマ文書を複数個指定すると,インデックスの小さい配列要素のスキーマ文書が優先されます。 |
5 | 次の条件でSchemaFactoryクラスのnewSchema(Source[] schemas)メソッドを実行すると,例外が発生しない場合があります。
|
6 | Validatorクラスのvalidate(Source),validate(Source, Result)の引数には,表6-16に示す組み合わせで指定してください。 |
7 | Validatorクラスのvalidateメソッドによって,ID型の属性の定義を含むスキーマ文書を用いてXML文書を検証する場合は,validate(DOMSource, DOMResult)ではなく,validate(SAXSource),validate(DOMSource),validate(SAXSource, SAXResult)のどれかのメソッドを使用してください。 |
8 | 次の条件がすべて重なるとき,Validatorクラスのvalidate(Source source, Result result)メソッドを実行すると,DOMException例外が発生する場合があります。
|
9 | スキーマ文書の中にxsd:ENTITY型,およびxsd:ENTITIES型が含まれるとき,ValidatorHandlerクラスを用いたスキーマ検証はサポートしていません。このような場合は,例えばValidatorクラスなどのほかの方法でスキーマ検証するようにしてください。 |
10 | スキーマ文書で定義されていない要素および属性から取得したTypeInfoオブジェクトは,妥当性検証失敗時には,xsd:anyType型のTypeInfoオブジェクトと同じになります。 |
11 | Validatorクラスのvalidate(Source)およびvalidate(Source, Result)の引数SourceにDOMSourceオブジェクトを指定する場合,DOMSourceオブジェクトが保持するNodeオブジェクトは,次に示すすべての条件に従う必要があります。
|
12 | Validatorクラスのvalidate(Source),validate(Source, Result)の引数SourceにSAXSourceオブジェクトを指定する場合に,そのSAXSourceオブジェクトがXMLReaderオブジェクトを使用するとき,XMLReaderオブジェクトは次に示すすべての条件に従う必要があります。
|
表6-16 Validatorクラスのvalidate(Source),validate(Source, Result)の引数の組み合わせ
引数Result | 引数Source | |||
---|---|---|---|---|
SAXSource | DOMSource | StreamSource | null | |
SAXResult | ○ | × | × | × |
DOMResult | × | ○ | × | × |
StreamResult | × | × | × | × |
null | ○ | ○ | × | × |