6.1 JAXP1.4機能の共通の注意事項

JAXP1.4の共通の注意事項を次の表に示します。

表6-1 JAXP1.4の共通の注意事項

項番注意事項
1JAXP1.4仕様書で,引数にnullを指定したときの動作が規定されていないメソッドがあります。このようなメソッドの引数にnullを指定した場合,NullPointerException例外が発生するなど,動作結果が未定義ですので注意してください。
2JAXP1.4仕様書が規定するメソッドで例外が発生したとき,例外オブジェクトにgetMessageメソッドを適用することで,多くの場合は詳細メッセージが得られます。ただし,詳細メッセージが必ず得られることを保証するものではありません。したがって,アプリケーションでは,詳細メッセージの内容に依存した例外処理をしないで,例外の種別に応じて適切な処理をしてください。例えば,DOMException例外の場合は,codeフィールドでエラーの詳細要因を判定してください。
3DocumentBuilderクラスのparse(String uri)メソッドやSAXParserクラスのparse(String uri, ...)メソッドなどの引数に指定するURIは,正しい形式で指定してください。URIとして不正な文字列を指定すると,IllegalArgumentExceptionなどのRuntimeException例外が発生する場合があります。
4DocumentBuilderクラスのparse(File f)メソッドやSAXParserクラスのparse(File f, ...)メソッドなどの引数に指定するFileオブジェクトは,引数に「%」「#」「?」を含まないFileコンストラクタで生成してください。引数にこれらの文字が含まれるFileコンストラクタで生成されたFileオブジェクトを指定すると,次に示す現象が発生する場合があります。
  • IllegalArgumentExceptionなどのRuntimeException例外が発生する
  • SAXException例外が発生する
  • XMLパーサの動作が不正になる
5XML文書のエンコーディング,XML宣言のencoding擬似属性,およびInputSourceやReaderのエンコーディングは統一してください。統一されていない場合の動作は保証しません。

JAXP1.4を使用する場合は,次の表に示すクラスとメソッドは使用できません。

表6-2 JAXP1.4で制限となるクラスとメソッド

項番パッケージ名クラス名メソッド名
1javax.xml.streamXMLEventFactorynewInstance(String, ClassLoader)
2XMLInputFactorynewInstance(String, ClassLoader)
3XMLOutputFactorynewInstance(String, ClassLoader)

また,次の表に示すメソッドは,この表に示すファクトリクラス名だけを指定できます。それ以外のファクトリクラス名を指定した場合の動作は保証されません。

表6-3 ファクトリ生成のメソッドと指定できるファクトリクラス名

項番パッケージ名クラス名メソッド名指定できるファクトリクラス名
1javax.xml.datatypeDatatypeFactorynewInstance(String, ClassLoader)com.cosminexus.jaxp.impl.parsers.jaxp.datatype.DatatypeFactoryImp
2javax.xml.parsersDocumentBuilderFactorynewInstance(String, ClassLoader)com.cosminexus.jaxp.impl.parsers.jaxp.DocumentBuilderFactoryImpl
3SAXParserFactorynewInstance(String, ClassLoader)com.cosminexus.jaxp.impl.parsers.jaxp.SAXParserFactoryImpl
4javax.xml.streamXMLEventFactorynewFactory(String, ClassLoader)com.cosminexus.stax.xml.stream.events.ZephyrEventFactory
5javax.xml.stream.XMLEventFactory
6XMLInputFactorynewFactory(String, ClassLoader)com.cosminexus.stax.xml.stream.ZephyrParserFactory
7javax.xml.stream.XMLInputFactory
8XMLOutputFactorynewFactory(String, ClassLoader)com.cosminexus.stax.xml.stream.ZephyrWriterFactory
9javax.xml.stream.XMLOutputFactory
10javax.xml.transformTransformerFactorynewInstance(String, ClassLoader)com.cosminexus.jaxp.impl.transform.processor.TransformerFactoryImpl
11javax.xml.validationSchemaFactorynewInstance(String, String, ClassLoader)com.cosminexus.jaxp.impl.parsers.jaxp.validation.XMLSchemaFactory
12javax.xml.xpathXPathFactorynewInstance(String, String, ClassLoader)com.cosminexus.jaxp.impl.xpath.jaxp.XPathFactoryImpl
注※
Developer's Kit for Java 09-60以降でサポート

<この節の構成>
6.1.1 javax.xml.transform.stax.StAXSourceクラスおよびjavax.xml.transform.stax.StAXResultクラスのサポート範囲
6.1.2 その他の注意事項