Hitachi

Cosminexus V11 アプリケーションサーバ Cosminexus XML Processor ユーザーズガイド


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

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オブジェクトを指定すると,次に示す現象が発生する場合があります。

  • IllegalArgumentExceptionなどのRuntimeException例外が発生する

  • SAXException例外が発生する

  • XMLパーサの動作が不正になる

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

注※

Developer's Kit for Java 09-60以降でサポート

〈この節の構成〉