JAXP1.4の共通の注意事項を次の表に示します。
表6-1 JAXP1.4の共通の注意事項
項番 | 注意事項 |
---|---|
1 | JAXP1.4仕様書で,引数にnullを指定したときの動作が規定されていないメソッドがあります。このようなメソッドの引数にnullを指定した場合,NullPointerException例外が発生するなど,動作結果が未定義ですので注意してください。 |
2 | JAXP1.4仕様書が規定するメソッドで例外が発生したとき,例外オブジェクトにgetMessageメソッドを適用することで,多くの場合は詳細メッセージが得られます。ただし,詳細メッセージが必ず得られることを保証するものではありません。したがって,アプリケーションでは,詳細メッセージの内容に依存した例外処理をしないで,例外の種別に応じて適切な処理をしてください。例えば,DOMException例外の場合は,codeフィールドでエラーの詳細要因を判定してください。 |
3 | DocumentBuilderクラスのparse(String uri)メソッドやSAXParserクラスのparse(String uri, ...)メソッドなどの引数に指定するURIは,正しい形式で指定してください。URIとして不正な文字列を指定すると,IllegalArgumentExceptionなどのRuntimeException例外が発生する場合があります。 |
4 | DocumentBuilderクラスのparse(File f)メソッドやSAXParserクラスのparse(File f, ...)メソッドなどの引数に指定するFileオブジェクトは,引数に「%」「#」「?」を含まないFileコンストラクタで生成してください。引数にこれらの文字が含まれるFileコンストラクタで生成されたFileオブジェクトを指定すると,次に示す現象が発生する場合があります。
|
5 | XML文書のエンコーディング,XML宣言のencoding擬似属性,およびInputSourceやReaderのエンコーディングは統一してください。統一されていない場合の動作は保証しません。 |
JAXP1.4を使用する場合は,次の表に示すクラスとメソッドは使用できません。
表6-2 JAXP1.4で制限となるクラスとメソッド
項番 | パッケージ名 | クラス名 | メソッド名 |
---|---|---|---|
1 | javax.xml.stream | XMLEventFactory | newInstance(String, ClassLoader) |
2 | XMLInputFactory | newInstance(String, ClassLoader) | |
3 | XMLOutputFactory | newInstance(String, ClassLoader) |
また,次の表に示すメソッドは,この表に示すファクトリクラス名だけを指定できます。それ以外のファクトリクラス名を指定した場合の動作は保証されません。
表6-3 ファクトリ生成のメソッドと指定できるファクトリクラス名
項番 | パッケージ名 | クラス名 | メソッド名 | 指定できるファクトリクラス名 |
---|---|---|---|---|
1 | javax.xml.datatype | DatatypeFactory | newInstance(String, ClassLoader) | com.cosminexus.jaxp.impl.parsers.jaxp.datatype.DatatypeFactoryImp |
2 | javax.xml.parsers | DocumentBuilderFactory | newInstance(String, ClassLoader) | com.cosminexus.jaxp.impl.parsers.jaxp.DocumentBuilderFactoryImpl |
3 | SAXParserFactory | newInstance(String, ClassLoader) | com.cosminexus.jaxp.impl.parsers.jaxp.SAXParserFactoryImpl | |
4 | javax.xml.stream | XMLEventFactory | newFactory(String, ClassLoader) | com.cosminexus.stax.xml.stream.events.ZephyrEventFactory |
5 | javax.xml.stream.XMLEventFactory※ | |||
6 | XMLInputFactory | newFactory(String, ClassLoader) | com.cosminexus.stax.xml.stream.ZephyrParserFactory | |
7 | javax.xml.stream.XMLInputFactory※ | |||
8 | XMLOutputFactory | newFactory(String, ClassLoader) | com.cosminexus.stax.xml.stream.ZephyrWriterFactory | |
9 | javax.xml.stream.XMLOutputFactory※ | |||
10 | javax.xml.transform | TransformerFactory | newInstance(String, ClassLoader) | com.cosminexus.jaxp.impl.transform.processor.TransformerFactoryImpl |
11 | javax.xml.validation | SchemaFactory | newInstance(String, String, ClassLoader) | com.cosminexus.jaxp.impl.parsers.jaxp.validation.XMLSchemaFactory |
12 | javax.xml.xpath | XPathFactory | newInstance(String, String, ClassLoader) | com.cosminexus.jaxp.impl.xpath.jaxp.XPathFactoryImpl |