モジュール java.xml
パッケージ 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
    バージョン:
    1.2
    関連項目:
    XMLInputFactory, XMLEventWriter, XMLStreamWriter
    • フィールドの詳細

      • IS_REPAIRING_NAMESPACES

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

      • XMLOutputFactory

        protected XMLOutputFactory()
    • メソッドの詳細

      • newDefaultFactory

        public static XMLOutputFactory newDefaultFactory()
        XMLOutputFactory組み込みシステムのデフォルト実装の新しいインスタンスを作成します。
        戻り値:
        XMLOutputFactory組み込みシステムのデフォルト実装の新しいインスタンス。
        導入されたバージョン:
        9
      • 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への参照を取得すると、ファクトリを使用してストリームのインスタンスを構成および取得できます。

        例外:
        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,
                                                              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,
                                                            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