モジュール java.xml
パッケージ javax.xml.stream

クラスXMLOutputFactory

java.lang.Object
javax.xml.stream.XMLOutputFactory

public abstract class XMLOutputFactory extends Object
XMLEventWriterおよびXMLStreamWriterを取得するためのファクトリの抽象実装を定義します。 次の表に、この仕様の標準プロパティの定義を示します。 各プロパティは、実装ごとに必要となるサポートのレベルが異なります。 必要なサポート・レベルは、「必須」の列に示されています。
構成パラメータ
プロパティ名 動作 戻り型 デフォルト値 必須
javax.xml.stream.isRepairingNamespaces出力側の接頭辞のデフォルトを設定しますBooleanFalseはい

次に、名前空間と接頭辞の修復アルゴリズムについて説明します。

プロパティは次のコード行で設定できます。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
関連項目:
  • フィールド詳細

    • IS_REPAIRING_NAMESPACES

      public static final String IS_REPAIRING_NAMESPACES
      接頭辞を出力側でデフォルト設定するために使用されるプロパティ。
      関連項目:
  • コンストラクタの詳細

    • XMLOutputFactory

      protected XMLOutputFactory()
      インスタンス化を妨げるprotectedコンストラクタです。 代わりにnewFactory()を使用してください。
  • メソッドの詳細

    • newDefaultFactory

      public static XMLOutputFactory newDefaultFactory()
      XMLOutputFactory組み込みシステムのデフォルト実装の新しいインスタンスを作成します。
      戻り値:
      XMLOutputFactory組み込みシステムのデフォルト実装の新しいインスタンス。
      導入されたバージョン:
      9
    • newInstance

      public static XMLOutputFactory newInstance() throws FactoryConfigurationError
      newFactory()メソッドとまったく同様にファクトリの新しいインスタンスを作成します。
      戻り値:
      XMLOutputFactoryのインスタンス
      例外:
      FactoryConfigurationError - このファクトリのインスタンスをロードできない場合
    • newFactory

      public static XMLOutputFactory newFactory() throws FactoryConfigurationError
      ファクトリの新しいインスタンスを作成します。 このメソッドは、「JAXPルックアップ・メカニズム」を使用して、ロードするXMLOutputFactory実装クラスを決定します。

      アプリケーションがXMLOutputFactoryへの参照を取得すると、ファクトリを使用してストリーム・インスタンスを構成および取得できます。

      戻り値:
      XMLOutputFactoryのインスタンス
      例外:
      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 - 書込み先のライター
      戻り値:
      XMLStreamWriterのインスタンス
      例外:
      XMLStreamException - エラーが発生した場合
    • createXMLStreamWriter

      public abstract XMLStreamWriter createXMLStreamWriter(OutputStream stream) throws XMLStreamException
      ストリームへの書込みを行う新しいXMLStreamWriterを作成します。
      パラメータ:
      stream - 書込み先のストリーム
      戻り値:
      XMLStreamWriterのインスタンス
      例外:
      XMLStreamException - エラーが発生した場合
    • createXMLStreamWriter

      public abstract XMLStreamWriter createXMLStreamWriter(OutputStream stream, String encoding) throws XMLStreamException
      ストリームへの書込みを行う新しいXMLStreamWriterを作成します。
      パラメータ:
      stream - 書込み先のストリーム
      encoding - 使用するエンコーディング
      戻り値:
      XMLStreamWriterのインスタンス
      例外:
      XMLStreamException - エラーが発生した場合
    • createXMLStreamWriter

      public abstract XMLStreamWriter createXMLStreamWriter(Result result) throws XMLStreamException
      JAXP結果への書込みを行う新しいXMLStreamWriterを作成します。 このメソッドはオプションです。
      パラメータ:
      result - 書込み先の結果
      戻り値:
      XMLStreamWriterのインスタンス
      例外:
      UnsupportedOperationException - このXMLOutputFactoryでこのメソッドがサポートされていない場合
      XMLStreamException - エラーが発生した場合
    • createXMLEventWriter

      public abstract XMLEventWriter createXMLEventWriter(Result result) throws XMLStreamException
      JAXP結果への書込みを行う新しいXMLEventWriterを作成します。 このメソッドはオプションです。
      パラメータ:
      result - 書込み先の結果
      戻り値:
      XMLEventWriterのインスタンス
      例外:
      UnsupportedOperationException - このXMLOutputFactoryでこのメソッドがサポートされていない場合
      XMLStreamException - エラーが発生した場合
    • createXMLEventWriter

      public abstract XMLEventWriter createXMLEventWriter(OutputStream stream) throws XMLStreamException
      ストリームへの書込みを行う新しいXMLEventWriterを作成します。
      パラメータ:
      stream - 書込み先のストリーム
      戻り値:
      XMLEventWriterのインスタンス
      例外:
      XMLStreamException - エラーが発生した場合
    • createXMLEventWriter

      public abstract XMLEventWriter createXMLEventWriter(OutputStream stream, String encoding) throws XMLStreamException
      ストリームへの書込みを行う新しいXMLEventWriterを作成します。
      パラメータ:
      stream - 書込み先のストリーム
      encoding - 使用するエンコーディング
      戻り値:
      XMLEventWriterのインスタンス
      例外:
      XMLStreamException - エラーが発生した場合
    • createXMLEventWriter

      public abstract XMLEventWriter createXMLEventWriter(Writer stream) throws XMLStreamException
      ライターへの書込みを行う新しいXMLEventWriterを作成します。
      パラメータ:
      stream - 書込み先のストリーム
      戻り値:
      XMLEventWriterのインスタンス
      例外:
      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