SAXパーサの動作の差異を表A-3に示します。
表A-3 SAXパーサの動作の差異
項番 | 動作の差異 |
---|---|
1 | XMLReaderFactoryクラスのcreateXMLReader()メソッドは,06-00ではシステムプロパティ"org.xml.sax.driver"の値を用いてXMLReaderインスタンスの生成を試みますが,07-00以降では以下の順序でXMLReaderインスタンスの生成を試みます。
|
2 | XMLReaderオブジェクトにContentHandlerオブジェクトを設定したとき,06-00ではエンティティをスキップしてもContentHandlerオブジェクトのskippedEntityメソッドは呼び出されませんが,07-00以降では呼び出されます。 |
3 | DeclHandlerクラスのexternalEntityDecl(String name, String publicId, String systemId)メソッド,および,DTDHandlerインタフェースのnotationDecl(String name, String publicId, String systemId)メソッドの引数systemIdがURLのとき,06-00ではURLが完全に解決されない場合がありますが,07-00以降ではURLが完全に解決されます。 |
4 | XMLReaderクラスのsetEntityResolverメソッド,setDTDHandlerメソッド,setContentHandlerメソッド,setErrorHandlerメソッドの引数にnullを指定したとき,06-00ではNullPointerException例外が発生しますが,07-00以降ではリゾルバやハンドラがクリアされます。 |
5 | ParserAdapterクラスのsetEntityResolverメソッド,setDTDHandlerメソッド,setContentHandlerメソッド,setErrorHandlerメソッドの引数にnullを指定したとき,06-00ではNullPointerException例外が発生しますが,07-00以降ではリゾルバやハンドラがクリアされます。 |
6 | XMLFilterImplクラスのsetEntityResolverメソッド,setDTDHandlerメソッド,setContentHandlerメソッド,setErrorHandlerメソッド,setParentメソッドの引数にnullを指定したとき,06-00ではNullPointerException例外が発生しますが,07-00以降ではリゾルバやハンドラや親リーダがクリアされます。 |
7 | SAXパーサのフィーチャー"http://xml.org/sax/features/namespaces"をfalseに設定し,かつ,フィーチャー"http://xml.org/sax/features/namespace-prefixes"をtrueに設定したとき,接頭辞"xml","xmlns"に対するstartPrefixMappingメソッド,endPrefixMappingメソッドの動作が異なります。06-00ではこれらのメソッドが呼び出されますが,07-00以降では呼び出されません。 |