3.7.1 パーサ切り替え機能の概要

パーサ切り替え機能は,XML ProcessorのXML実装と,フレームワークまたはユーザが指定したXML実装との優先順を切り替えられる機能です。この機能を使うことで,フレームワークに同梱されたXML実装へ切り替えられます。

パーサ切り替え機能を使用することで,他社製のXML実装を前提とするフレームワークを使用したアプリケーションでも,XML実装を切り替えられます。ただし,パーサ切り替え機能では,アプリケーションサーバのコンポーネントが使用するXML実装をXML Processorから切り替えることはできません。

<この項の構成>
(1) パーサ切り替え機能の有効範囲
(2) 対象となるXML実装の種類

(1) パーサ切り替え機能の有効範囲

パーサ切り替え機能の有効範囲はJ2EEサーバ単位です。パーサ切り替えの設定がほかのJ2EEサーバに影響を与えることはありません。

また,パーサ切り替え機能を有効にした場合でも,J2EEサーバ起動やデプロイの実行に関しては,ユーザが指定したXML実装ではなくXML Processorが使用されます。パーサ切り替え機能の有効範囲を次の図に示します。

図3-20 パーサ切り替え機能の有効範囲

[図データ]

(2) 対象となるXML実装の種類

JAXP,StAX,JAXBの各APIで,XML実装を切り替えられるメソッドを次の表に示します。

表3-9 XML実装を切り替えられるメソッド名

項番APIの種類クラス名メソッド名
1JAXP APIjavax.xml.datatype.DatatypeFactorynewInstance()
2javax.xml.parsers.DocumentBuilderFactorynewInstance()
3javax.xml.parsers.SAXParserFactorynewInstance()
4javax.xml.transform.TransformerFactorynewInstance()
5javax.xml.transform.sax.SAXTransformerFactorynewInstance()
6javax.xml.validation.SchemaFactorynewInstance(String schemaLanguage)
7javax.xml.xpath.XPathFactorynewInstance()
8newInstance(String URI)
9org.w3c.dom.bootstrap.DOMImplementationRegistrynewInstance()
10org.xml.sax.helpers.XMLReaderFactorycreateXMLReader()
11StAX APIjavax.xml.stream.XMLInputFactorynewInstance()
12newFactory()
13javax.xml.stream.XMLOutputFactorynewInstance()
14newFactory()
15javax.xml.stream.XMLEventFactorynewInstance()
16newFactory()
17JAXB APIjavax.xml.bind.JAXBContextnewInstance(Class... classesToBeBound)
18newInstance(Class[] classesToBeBound, Map<String,?> properties)
19newInstance(String contextPath)
20newInstance(String contextPath, ClassLoader classLoader)
21newInstance(String contextPath, ClassLoader classLoader, Map<String,?> properties)