Sun Java System Application Server 8.2 は JAXP 1.3 をサポートしています。つまり SAX 2.0.2 をサポートしていることになります。SAX 2.0.2 では、DeclHandler.externalEntityDecl が、DTDHandler.unparsedEntityDecl との整合性を保つために、絶対的なシステム識別子を返すようパーサーに要求します。このことによって、SAX 2.0.0 を使用するアプリケーションを移行するときに、いくつかの非互換性が発生します。
これまでの externalEntityDecl の動作を変更せずに、SAX 2.0.0 を使用するアプリケーションを SAX 2.0.2 に移行するには、resolve-dtd-uris 機能を false に設定します。次に例を示します。
SAXParserFactory spf = SAXParserFactory.newInstance(); spf.setFeature("http://xml.org/sax/features/resolve-dtd-uris",false);
SAX 2.0.0 と SAX 2.0.2 との間のその他の非互換性については、『JAXP Compatibility Guide』を参照してください。