3.7.1 パーサ切り替え機能の概要
パーサ切り替え機能は,XML ProcessorのXML実装と,フレームワークまたはユーザが指定したXML実装との優先順を切り替えられる機能です。この機能を使うことで,フレームワークに同梱されたXML実装へ切り替えられます。
パーサ切り替え機能を使用することで,他社製のXML実装を前提とするフレームワークを使用したアプリケーションでも,XML実装を切り替えられます。ただし,パーサ切り替え機能では,アプリケーションサーバのコンポーネントが使用するXML実装をXML Processorから切り替えることはできません。
- 〈この項の構成〉
(1) パーサ切り替え機能の有効範囲
パーサ切り替え機能の有効範囲はJ2EEサーバ単位です。パーサ切り替えの設定がほかのJ2EEサーバに影響を与えることはありません。
また,パーサ切り替え機能を有効にした場合でも,J2EEサーバ起動やデプロイの実行に関しては,ユーザが指定したXML実装ではなくXML Processorが使用されます。パーサ切り替え機能の有効範囲を次の図に示します。
(2) 対象となるXML実装の種類
JAXP,StAX,JAXBの各APIで,XML実装を切り替えられるメソッドを次の表に示します。
項番 |
APIの種類 |
クラス名 |
メソッド名 |
---|---|---|---|
1 |
JAXP API |
javax.xml.datatype.DatatypeFactory |
newInstance() |
2 |
javax.xml.parsers.DocumentBuilderFactory |
newInstance() |
|
3 |
javax.xml.parsers.SAXParserFactory |
newInstance() |
|
4 |
javax.xml.transform.TransformerFactory |
newInstance() |
|
5 |
javax.xml.transform.sax.SAXTransformerFactory |
newInstance() |
|
6 |
javax.xml.validation.SchemaFactory |
newInstance(String schemaLanguage) |
|
7 |
javax.xml.xpath.XPathFactory |
newInstance() |
|
8 |
newInstance(String URI) |
||
9 |
org.w3c.dom.bootstrap.DOMImplementationRegistry |
newInstance() |
|
10 |
org.xml.sax.helpers.XMLReaderFactory |
createXMLReader() |
|
11 |
StAX API |
javax.xml.stream.XMLInputFactory |
newInstance() |
12 |
newFactory() |
||
13 |
javax.xml.stream.XMLOutputFactory |
newInstance() |
|
14 |
newFactory() |
||
15 |
javax.xml.stream.XMLEventFactory |
newInstance() |
|
16 |
newFactory() |
||
17 |
JAXB API |
javax.xml.bind.JAXBContext |
newInstance(Class... classesToBeBound) |
18 |
newInstance(Class[] classesToBeBound, Map<String,?> properties) |
||
19 |
newInstance(String contextPath) |
||
20 |
newInstance(String contextPath, ClassLoader classLoader) |
||
21 |
newInstance(String contextPath, ClassLoader classLoader, Map<String,?> properties) |