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

[目次][用語][索引][前へ][次へ]

付録A.3 SAXパーサの動作の差異

SAXパーサの動作の差異を次の表に示します。

表A-3 SAXパーサの動作の差異

項番 条件 XML Processorの動作
バージョン06-00の場合 バージョン07-00以降の場合
1 XMLReaderFactoryクラスのcreateXMLReader()メソッドを使用する場合 システムプロパティ"org.xml.sax.driver"の値を用いてXMLReaderインスタンスの生成を試みます。 次の順序でXMLReaderインスタンスの生成を試みます。
  1. システムプロパティ"org.xml.sax.driver"が示すクラス名
  2. JARファイル内の META-INF/services/org.xml.sax.driverが示すクラス名
  3. デフォルトのXMLReaderクラス名
  4. ParserFactoryクラスのmakeParser()メソッドの戻り値をParserAdapterでラップしたクラス
2 XMLReaderオブジェクトにContentHandlerオブジェクトを設定した場合 エンティティをスキップしてもContentHandlerオブジェクトのskippedEntityメソッドは呼び出されません。 エンティティをスキップすると,ContentHandlerオブジェクトのskippedEntityメソッドが呼び出されます。
3 DeclHandlerクラスのexternalEntityDecl(String name, String publicId, String systemId)メソッド,および,DTDHandlerインタフェースのnotationDecl(String name, String publicId, String systemId)メソッドの引数systemIdがURLの場合 URLが完全に解決されないことがあります。 URLが完全に解決されます。
4 XMLReaderクラスのsetEntityResolverメソッド,setDTDHandlerメソッド,setContentHandlerメソッド,setErrorHandlerメソッドの引数にnullを指定した場合 NullPointerException例外が発生します。 リゾルバやハンドラがクリアされます。
5 ParserAdapterクラスのsetEntityResolverメソッド,setDTDHandlerメソッド,setContentHandlerメソッド,setErrorHandlerメソッドの引数にnullを指定した場合 NullPointerException例外が発生します。 リゾルバやハンドラがクリアされます。
6 XMLFilterImplクラスのsetEntityResolverメソッド,setDTDHandlerメソッド,setContentHandlerメソッド,setErrorHandlerメソッド,setParentメソッドの引数にnullを指定した場合 NullPointerException例外が発生します。 リゾルバ,ハンドラ,および親リーダなどがクリアされます。
7 SAXパーサのフィーチャー"http://xml.org/sax/features/namespaces"をfalseに設定し,かつ,フィーチャー"http://xml.org/sax/features/namespace-prefixes"をtrueに設定した場合 接頭辞"xml","xmlns"に対するstartPrefixMappingメソッドおよびendPrefixMappingメソッドが呼び出されます。 接頭辞"xml","xmlns"に対するstartPrefixMappingメソッドおよびendPrefixMappingメソッドは呼び出されません。
8 ErrorHandlerインタフェースのfatalErrorメソッドの実装クラスでSAXExceptionを継承した例外クラスをスローする場合 parse実行時にパーサがSAXExceptionをスローします。 パーサはErrorHandlerインタフェースの実装クラスのfatalErrorメソッドがスローする例外をそのままスローします。
9 SAXParserクラスのsetProperty()メソッドで,http://java.sun.com/xml/jaxp/properties/schemaLanguageプロパティに不当な文字列を指定した場合 KECX01602-Eのエラーを通知します。 KECX01903-Eのエラーを通知します。
10 SAXParserクラスのsetProperty()メソッドで,http://java.sun.com/xml/jaxp/properties/schemaLanguageプロパティを指定する前にhttp://java.sun.com/xml/jaxp/properties/schemaSourceプロパティを指定した場合 KECX01603-Eのエラーを通知します。 KECX01904-Eのエラーを通知します。