- java.lang.Object
-
- javax.xml.stream.XMLOutputFactory
-
public abstract class XMLOutputFactory extends Object
XMLEventWriterおよびXMLStreamWriterを取得するためのファクトリの抽象実装を定義します。 次の表に、この仕様の標準プロパティの定義を示します。 各プロパティは、実装ごとに必要となるサポートのレベルが異なります。 必要なサポート・レベルは、「必須」の列に示されています。構成パラメータ プロパティ名 動作 戻り型 デフォルト値 必須 javax.xml.stream.isRepairingNamespaces 出力側の接頭辞のデフォルトを設定します Boolean False はい 次に、名前空間と接頭辞の修復アルゴリズムについて説明します。
プロパティは次のコード行で設定できます。
setProperty("javax.xml.stream.isRepairingNamespaces", new Boolean(true|false));このプロパティは、ライターのデフォルトの名前空間接頭辞の宣言を指定します。 デフォルト値はfalseです。
ライターが名前空間を補修する場合、ライターはスコープ内に名前空間宣言を現在持たないすべての属性に対して、現在のStartElementに名前空間宣言を作成します。 StartElementにURIが指定されているが、接頭辞が指定されていない場合、接頭辞が割り当てられます。現在のStartElementの親で接頭辞が宣言されていない場合、接頭辞は現在のStartElementで宣言されます。 defaultNamespaceがバインドされていてスコープ内にあり、デフォルトの名前空間が属性のURIまたはStartElement QNameに一致する場合、接頭辞は割り当てられません。
要素名または属性名に接頭辞が含まれるが、どの名前空間URIにもバインドされていない場合、直列化中に接頭辞が削除されます。
同じ開始タグまたは空の要素タグ内の要素名や属性名が異なる名前空間URIにバインドされていて、同じ接頭辞を使用している場合、要素または最初に現れる属性は元の接頭辞を保持し、後続の属性は接頭辞を属性の名前空間URIにバインドされた新しい接頭辞で置き換えます。
要素名または属性名が、要素の親の名前空間コンテキストから継承したものとは異なるURIにバインドされている接頭辞を使用し、現在の要素のコンテキストに名前空間宣言が存在しない場合、そのような名前空間宣言が追加されます。
要素名または属性名が接頭辞にバインドされていて、接頭辞を別のURIにバインドする名前空間宣言が存在する場合、その名前空間宣言は、正しいマッピングがその要素の親コンテキストから継承されている場合は削除され、それ以外の場合はその接頭辞を使用する要素または属性の名前空間URIに変更されます。
- 導入されたバージョン:
- 1.6
- バージョン:
- 1.2
- 関連項目:
XMLInputFactory,XMLEventWriter,XMLStreamWriter
-
-
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 static StringIS_REPAIRING_NAMESPACES接頭辞を出力側でデフォルト設定するために使用されるプロパティ。
-
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 protectedXMLOutputFactory()
-
メソッドのサマリー
すべてのメソッド staticメソッド インスタンス・メソッド 抽象メソッド 具象メソッド 非推奨のメソッド 修飾子と型 メソッド 説明 abstract XMLEventWritercreateXMLEventWriter(OutputStream stream)ストリームへの書込みを行う新しいXMLEventWriterを作成します。abstract XMLEventWritercreateXMLEventWriter(OutputStream stream, String encoding)ストリームへの書込みを行う新しいXMLEventWriterを作成します。abstract XMLEventWritercreateXMLEventWriter(Writer stream)ライターへの書込みを行う新しいXMLEventWriterを作成します。abstract XMLEventWritercreateXMLEventWriter(Result result)JAXP結果への書込みを行う新しいXMLEventWriterを作成します。abstract XMLStreamWritercreateXMLStreamWriter(OutputStream stream)ストリームへの書込みを行う新しいXMLStreamWriterを作成します。abstract XMLStreamWritercreateXMLStreamWriter(OutputStream stream, String encoding)ストリームへの書込みを行う新しいXMLStreamWriterを作成します。abstract XMLStreamWritercreateXMLStreamWriter(Writer stream)ライターへの書込みを行う新しいXMLStreamWriterを作成します。abstract XMLStreamWritercreateXMLStreamWriter(Result result)JAXP結果への書込みを行う新しいXMLStreamWriterを作成します。abstract ObjectgetProperty(String name)ベースとなる実装から機能またはプロパティを取得します。abstract booleanisPropertySupported(String name)このファクトリがサポートするプロパティ・セットを照会します。static XMLOutputFactorynewDefaultFactory()XMLOutputFactory組み込みシステムのデフォルト実装の新しいインスタンスを作成します。static XMLOutputFactorynewFactory()ファクトリの新しいインスタンスを作成します。static XMLOutputFactorynewFactory(String factoryId, ClassLoader classLoader)ファクトリの新しいインスタンスを作成します。static XMLOutputFactorynewInstance()newFactory()メソッドとまったく同様にファクトリの新しいインスタンスを作成します。static XMLInputFactorynewInstance(String factoryId, ClassLoader classLoader)非推奨。このメソッドは、間違ったクラスであるXMLInputFactoryのインスタンスを返すため、非推奨になっています。 代わりに、新しいメソッドnewFactory(java.lang.String, java.lang.ClassLoader)を使用してください。abstract voidsetProperty(String name, Object value)ユーザーがベースとなる実装に特定の機能とプロパティを設定できるようにします。
-
-
-
メソッドの詳細
-
newDefaultFactory
public static XMLOutputFactory newDefaultFactory()
XMLOutputFactory組み込みシステムのデフォルト実装の新しいインスタンスを作成します。- 戻り値:
XMLOutputFactory組み込みシステムのデフォルト実装の新しいインスタンス。- 導入されたバージョン:
- 9
-
newInstance
public static XMLOutputFactory newInstance() throws FactoryConfigurationError
newFactory()メソッドとまったく同様にファクトリの新しいインスタンスを作成します。- 例外:
FactoryConfigurationError- このファクトリのインスタンスをロードできない場合
-
newFactory
public static XMLOutputFactory newFactory() throws FactoryConfigurationError
ファクトリの新しいインスタンスを作成します。このstaticメソッドは新しいファクトリ・インスタンスを作成します。 このメソッドは次の順序の検索手順で、ロードするXMLOutputFactory実装クラスを決定します。
- javax.xml.stream.XMLOutputFactoryシステム・プロパティを使用する。
-
構成ファイル"stax.properties"を使用します。 このファイルは標準の
Properties形式であり、通常Javaインストールのconfディレクトリにあります。 これには、実装クラスの完全修飾名が格納されています。stax.propertiesファイルは実装によって一度だけ読み込まれ、その値は将来の使用のためにキャッシュされます。 最初の読込み時にファイルが存在しないと、そのあとにその存在がチェックされることはない。 stax.propertiesが最初に読み込まれた後に、そのプロパティの値を変更することはできません。
jaxp構成ファイル"jaxp.properties"を使用します。 このファイルはstax.propertiesと同じ形式であり、stax.propertiesが存在しない場合にのみ読み込まれます。
-
ServiceLoaderクラスで定義されているサービス・プロバイダ・ローディング機能を使用して、デフォルトのロード・メカニズムを使用してサービスの実装を特定してロード: サービス・プロバイダ・ローディング機能は、現在のスレッド・コンテキスト・クラス・ローダーを使用してサービスをロードしようとします。 コンテキスト・クラス・ローダーがnullの場合、システム・クラス・ローダーが使用されます。 -
それ以外の場合は、system-default実装が返されます。
アプリケーションがXMLOutputFactoryへの参照を取得すると、ファクトリを使用してストリームのインスタンスを構成および取得できます。
これは非推奨のnewInstance()メソッドを置き換える新しいメソッドです。 非推奨のメソッドに関連して、この置換メソッドによって定義されている動作に変更はありません。
- 例外:
FactoryConfigurationError- サービス構成エラーが発生した場合、または実装が使用できないかインスタンス化できない場合。
-
newInstance
@Deprecated(since="1.7") public static XMLInputFactory newInstance(String factoryId, ClassLoader classLoader) throws FactoryConfigurationError
非推奨。 このメソッドは、間違ったクラスであるXMLInputFactoryのインスタンスを返すため、非推奨になっています。 代わりに、新しいメソッドnewFactory(java.lang.String, java.lang.ClassLoader)を使用してください。ファクトリの新しいインスタンスを作成します。- パラメータ:
factoryId- 検索するファクトリの名前。プロパティ名と同一classLoader- 使用するclassLoader- 戻り値:
- ファクトリの実装
- 例外:
FactoryConfigurationError- このファクトリのインスタンスをロードできない場合
-
newFactory
public static XMLOutputFactory newFactory(String factoryId, ClassLoader classLoader) throws FactoryConfigurationError
ファクトリの新しいインスタンスを作成します。 classLoader引数がnullの場合、ContextClassLoaderが使用されます。このメソッドは次の順序の検索手順で、ロードするXMLOutputFactory実装クラスを決定します。
-
factoryIdによって識別されるシステム・プロパティの値を使用する。 -
構成ファイル"stax.properties"を使用します。 このファイルは標準の
Properties形式であり、通常Javaインストールのconfディレクトリにあります。 これには、実装クラスの完全修飾名が格納されています。stax.propertiesファイルは実装によって一度だけ読み込まれ、その値は将来の使用のためにキャッシュされます。 最初の読込み時にファイルが存在しないと、そのあとにその存在がチェックされることはない。 stax.propertiesが最初に読み込まれた後に、そのプロパティの値を変更することはできません。
jaxp構成ファイル"jaxp.properties"を使用します。 このファイルはstax.propertiesと同じ形式であり、stax.propertiesが存在しない場合にのみ読み込まれます。
-
factoryIdが"javax.xml.stream.XMLOutputFactory"の場合は、ServiceLoaderクラスで定義されているサービス・プロバイダ・ロード機能を使用して、指定されたClassLoaderを使用してサービスの実装を「見つけて読み込む」しようとします。classLoaderがnullである場合、デフォルトのロード・メカニズムが適用される。つまり、サービス・プロバイダのロード機能は、現在のスレッドのコンテキスト・クラス・ローダーを使用してサービスのロードを試みる。 コンテキスト・クラス・ローダーがnullの場合、システム・クラス・ローダーが使用されます。 -
それ以外の場合は、
FactoryConfigurationErrorをスローする。
- APIに関する注意:
- ここで定義されているパラメータfactoryIdは、最初のパラメータがファクトリの実装を提供する完全修飾ファクトリ・クラス名である、他のJAXPファクトリのfactoryIdとは一致しません。
これは非推奨の
newInstance(String factoryId、ClassLoader classLoader)メソッドを置き換える新しいメソッドです。 元のメソッドは、XMLInputFactoryを返すように誤って定義されていました。 - パラメータ:
factoryId- 検索するファクトリの名前。プロパティ名と同一classLoader- 使用するclassLoader- 戻り値:
- ファクトリの実装
- 例外:
FactoryConfigurationError- サービス構成エラーが発生した場合、または実装が使用できないかインスタンス化できない場合。
-
-
createXMLStreamWriter
public abstract XMLStreamWriter createXMLStreamWriter(Writer stream) throws XMLStreamException
ライターへの書込みを行う新しいXMLStreamWriterを作成します。- パラメータ:
stream- 書込み先のライター- 例外:
XMLStreamException
-
createXMLStreamWriter
public abstract XMLStreamWriter createXMLStreamWriter(OutputStream stream) throws XMLStreamException
ストリームへの書込みを行う新しいXMLStreamWriterを作成します。- パラメータ:
stream- 書込み先のストリーム- 例外:
XMLStreamException
-
createXMLStreamWriter
public abstract XMLStreamWriter createXMLStreamWriter(OutputStream stream, String encoding) throws XMLStreamException
ストリームへの書込みを行う新しいXMLStreamWriterを作成します。- パラメータ:
stream- 書込み先のストリームencoding- 使用するエンコーディング- 例外:
XMLStreamException
-
createXMLStreamWriter
public abstract XMLStreamWriter createXMLStreamWriter(Result result) throws XMLStreamException
JAXP結果への書込みを行う新しいXMLStreamWriterを作成します。 このメソッドはオプションです。- パラメータ:
result- 書込み先の結果- 例外:
UnsupportedOperationException- このXMLOutputFactoryでこのメソッドがサポートされていない場合XMLStreamException
-
createXMLEventWriter
public abstract XMLEventWriter createXMLEventWriter(Result result) throws XMLStreamException
JAXP結果への書込みを行う新しいXMLEventWriterを作成します。 このメソッドはオプションです。- パラメータ:
result- 書込み先の結果- 例外:
UnsupportedOperationException- このXMLOutputFactoryでこのメソッドがサポートされていない場合XMLStreamException
-
createXMLEventWriter
public abstract XMLEventWriter createXMLEventWriter(OutputStream stream) throws XMLStreamException
ストリームへの書込みを行う新しいXMLEventWriterを作成します。- パラメータ:
stream- 書込み先のストリーム- 例外:
XMLStreamException
-
createXMLEventWriter
public abstract XMLEventWriter createXMLEventWriter(OutputStream stream, String encoding) throws XMLStreamException
ストリームへの書込みを行う新しいXMLEventWriterを作成します。- パラメータ:
stream- 書込み先のストリームencoding- 使用するエンコーディング- 例外:
XMLStreamException
-
createXMLEventWriter
public abstract XMLEventWriter createXMLEventWriter(Writer stream) throws XMLStreamException
ライターへの書込みを行う新しいXMLEventWriterを作成します。- パラメータ:
stream- 書込み先のストリーム- 例外:
XMLStreamException
-
setProperty
public abstract void setProperty(String name, Object value) throws IllegalArgumentException
ユーザーがベースとなる実装に特定の機能とプロパティを設定できるようにします。- パラメータ:
name- プロパティの名前value- プロパティの値- 例外:
IllegalArgumentException- プロパティがサポートされていない場合
-
getProperty
public abstract Object getProperty(String name) throws IllegalArgumentException
ベースとなる実装から機能またはプロパティを取得します。- パラメータ:
name- プロパティの名前- 戻り値:
- プロパティの値
- 例外:
IllegalArgumentException- プロパティがサポートされていない場合
-
isPropertySupported
public abstract boolean isPropertySupported(String name)
このファクトリがサポートするプロパティ・セットを照会します。- パラメータ:
name- プロパティの名前(null以外)- 戻り値:
- プロパティがサポートされている場合はtrue、そうでない場合はfalse
-
-