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

インタフェースXMLStreamWriter


public interface XMLStreamWriter
XMLStreamWriterインタフェースはXMLの書込み方法を指定します。 XMLStreamWriterは入力に対しては整形式を確認しません。 ただし、writeCharactersメソッドは&、< and >をエスケープする必要があります。属性値の場合、writeAttributeメソッドは上記の文字に"を加え、すべての文字の内容と属性値が整形式であることを保証します。 それぞれのNAMESPACEとATTRIBUTEは、個別に書き込まれる必要があります。
XML名前空間、javax.xml.stream.isRepairingNamespaces、および書込みメソッドの動作
メソッド isRepairingNamespaces == true isRepairingNamespaces == false
namespaceURIバインドあり namespaceURIバインドなし namespaceURIバインドあり namespaceURIバインドなし
writeAttribute(namespaceURI, localName, value) prefix:localName="value" [1] xmlns:{generated}="namespaceURI" {generated}:localName="value" prefix:localName="value" [1] XMLStreamException
writeAttribute(prefix, namespaceURI, localName, value) 同じ接頭辞にバインド:
prefix:localName="value" [1]

異なる接頭辞にバインド:
xmlns:{generated}="namespaceURI" {generated}:localName="value"
xmlns:prefix="namespaceURI" prefix:localName="value" [3] 同じ接頭辞にバインド:
prefix:localName="value" [1][2]

異なる接頭辞にバインド:
XMLStreamException[2]
xmlns:prefix="namespaceURI" prefix:localName="value" [2][5]
writeStartElement(namespaceURI, localName)

writeEmptyElement(namespaceURI, localName)
<prefix:localName> [1] <{generated}:localName xmlns:{generated}="namespaceURI"> prefix:localName> [1] XMLStreamException
writeStartElement(prefix, localName, namespaceURI)

writeEmptyElement(prefix, localName, namespaceURI)
同じプレフィクスにバインドされています:
<prefix:localName> [1]

別のプレフィクスにバインドされています:
<{generated}:localName xmlns:{generated}="namespaceURI">
<prefix:localName xmlns:prefix="namespaceURI"> [4] 同じプレフィクスにバインドされています:
<prefix:localName> [1]

別のプレフィクスにバインドされています:
XMLStreamException
<prefix:localName> 
ノート:
  • [1] namespaceURIがデフォルトの名前空間URIと等しい場合、接頭辞は書き込まれません
  • [2]プレフィクス== ""|| null & & namespaceURI ==""の場合、プレフィクスまたはネームスペース宣言は生成されないか、記述されません。
  • [3] prefix == ""||nullの場合、接頭辞はランダムに生成されます
  • [4] prefix == ""||nullの場合、デフォルトの名前空間として処理され、接頭辞は生成または書き込みされません。また、namespaceURIがバインドされていない場合は、xmlns宣言が生成または書き込みされます
  • [5] prefix == ""||nullの場合、デフォルトの名前空間の定義が無効であるとして処理され、XMLStreamExceptionがスローされます
導入されたバージョン:
1.6
関連項目:
XMLOutputFactory, XMLStreamReader
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    void close()
    このライターを閉じて、ライターに関連付けられているリソースをすべて解放します。
    void flush()
    キャッシュに格納されたすべてのデータを、ベースとなる出力メカニズムに書き込みます。
    NamespaceContext getNamespaceContext()
    現在の名前空間コンテキストを返します。
    String getPrefix​(String uri)
    URIのバインド先の接頭辞を取得します。
    Object getProperty​(String name)
    ベースとなる実装から機能またはプロパティの値を取得します。
    void setDefaultNamespace​(String uri)
    URIをデフォルトの名前空間にバインドします。このURIは、現在のSTART_ELEMENTとEND_ELEMENTのペアの範囲にバインドされます。
    void setNamespaceContext​(NamespaceContext context)
    接頭辞とURIのバインドに対して、現在の名前空間コンテキストを設定します。
    void setPrefix​(String prefix, String uri)
    URIのバインド先の接頭辞を設定します。
    void writeAttribute​(String localName, String value)
    属性を出力ストリームに書き込みます。接頭辞は書き込まれません。
    void writeAttribute​(String namespaceURI, String localName, String value)
    属性を出力ストリームに書き込みます。
    void writeAttribute​(String prefix, String namespaceURI, String localName, String value)
    属性を出力ストリームに書き込みます。
    void writeCData​(String data)
    CDataセクションを書き込みます。
    void writeCharacters​(char[] text, int start, int len)
    出力にテキストを書き込みます。
    void writeCharacters​(String text)
    出力にテキストを書き込みます。
    void writeComment​(String data)
    コメント・アウトされたデータを使用してXMLコメントを書き込みます。
    void writeDefaultNamespace​(String namespaceURI)
    出力ストリームにデフォルトの名前空間を書き込みます。
    void writeDTD​(String dtd)
    DTDセクションを書き込みます。
    void writeEmptyElement​(String localName)
    出力に空の要素タグを書き込みます。
    void writeEmptyElement​(String namespaceURI, String localName)
    出力に空の要素タグを書き込みます。
    void writeEmptyElement​(String prefix, String localName, String namespaceURI)
    出力に空の要素タグを書き込みます。
    void writeEndDocument()
    すべての開始タグを閉じて、対応する終了タグを書き込みます。
    void writeEndElement()
    出力に終了タグを書き込みます。イベントの接頭辞とローカル名の判別はライターの内部状態に依存します。
    void writeEntityRef​(String name)
    エンティティ参照を書き込みます。
    void writeNamespace​(String prefix, String namespaceURI)
    出力ストリームに名前空間を書き込みます。このメソッドの接頭辞引数が空の文字列、「xmlns」、またはnullの場合、このメソッドはwriteDefaultNamespaceに委譲します。
    void writeProcessingInstruction​(String target)
    処理命令を書き込みます。
    void writeProcessingInstruction​(String target, String data)
    処理命令を書き込みます。
    void writeStartDocument()
    XML宣言を書き込みます。
    void writeStartDocument​(String version)
    XML宣言を書き込みます。
    void writeStartDocument​(String encoding, String version)
    XML宣言を書き込みます。
    void writeStartElement​(String localName)
    出力に開始タグを書き込みます。
    void writeStartElement​(String namespaceURI, String localName)
    出力に開始タグを書き込みます。
    void writeStartElement​(String prefix, String localName, String namespaceURI)
    出力に開始タグを書き込みます。
  • メソッドの詳細

    • writeStartElement

      void writeStartElement​(String localName) throws XMLStreamException
      出力に開始タグを書き込みます。 すべてのwriteStartElementメソッドによって、内部名前空間コンテキストに新しい範囲が開かれます。 対応するEndElementを書き込むと、それらの範囲が閉じられます。
      パラメータ:
      localName - タグのローカル名(null以外)
      例外:
      XMLStreamException
    • writeStartElement

      void writeStartElement​(String namespaceURI, String localName) throws XMLStreamException
      出力に開始タグを書き込みます。
      パラメータ:
      namespaceURI - 使用する接頭辞のnamespaceURI (null以外)
      localName - タグのローカル名(null以外)
      例外:
      XMLStreamException - 名前空間URIが接頭辞にバインドされておらず、javax.xml.stream.isRepairingNamespacesがtrueに設定されていない場合
    • writeStartElement

      void writeStartElement​(String prefix, String localName, String namespaceURI) throws XMLStreamException
      出力に開始タグを書き込みます。
      パラメータ:
      localName - タグのローカル名(null以外)
      prefix - タグの接頭辞(null以外)
      namespaceURI - 接頭辞のバインド先URI (null以外)
      例外:
      XMLStreamException
    • writeEmptyElement

      void writeEmptyElement​(String namespaceURI, String localName) throws XMLStreamException
      出力に空の要素タグを書き込みます。
      パラメータ:
      namespaceURI - タグのバインド先URI (null以外)
      localName - タグのローカル名(null以外)
      例外:
      XMLStreamException - 名前空間URIが接頭辞にバインドされておらず、javax.xml.stream.isRepairingNamespacesがtrueに設定されていない場合
    • writeEmptyElement

      void writeEmptyElement​(String prefix, String localName, String namespaceURI) throws XMLStreamException
      出力に空の要素タグを書き込みます。
      パラメータ:
      prefix - タグの接頭辞(null以外)
      localName - タグのローカル名(null以外)
      namespaceURI - タグのバインド先URI (null以外)
      例外:
      XMLStreamException
    • writeEmptyElement

      void writeEmptyElement​(String localName) throws XMLStreamException
      出力に空の要素タグを書き込みます。
      パラメータ:
      localName - タグのローカル名(null以外)
      例外:
      XMLStreamException
    • writeEndElement

      void writeEndElement() throws XMLStreamException
      出力に終了タグを書き込みます。イベントの接頭辞とローカル名の判別はライターの内部状態に依存します。
      例外:
      XMLStreamException
    • writeEndDocument

      void writeEndDocument() throws XMLStreamException
      すべての開始タグを閉じて、対応する終了タグを書き込みます。
      例外:
      XMLStreamException
    • close

      void close() throws XMLStreamException
      このライターを閉じて、ライターに関連付けられているリソースをすべて解放します。 ベースとなる出力ストリームが閉じることはありません。
      例外:
      XMLStreamException
    • flush

      void flush() throws XMLStreamException
      キャッシュに格納されたすべてのデータを、ベースとなる出力メカニズムに書き込みます。
      例外:
      XMLStreamException
    • writeAttribute

      void writeAttribute​(String localName, String value) throws XMLStreamException
      属性を出力ストリームに書き込みます。接頭辞は書き込まれません。
      パラメータ:
      localName - 属性のローカル名
      value - 属性の値
      例外:
      IllegalStateException - 現在の状態が属性の書込みを許可しない場合
      XMLStreamException
    • writeAttribute

      void writeAttribute​(String prefix, String namespaceURI, String localName, String value) throws XMLStreamException
      属性を出力ストリームに書き込みます。
      パラメータ:
      prefix - この属性の接頭辞
      namespaceURI - この属性の接頭辞のURI
      localName - 属性のローカル名
      value - 属性の値
      例外:
      IllegalStateException - 現在の状態が属性の書込みを許可しない場合
      XMLStreamException - 名前空間URIが接頭辞にバインドされておらず、javax.xml.stream.isRepairingNamespacesがtrueに設定されていない場合
    • writeAttribute

      void writeAttribute​(String namespaceURI, String localName, String value) throws XMLStreamException
      属性を出力ストリームに書き込みます。
      パラメータ:
      namespaceURI - この属性の接頭辞のURI
      localName - 属性のローカル名
      value - 属性の値
      例外:
      IllegalStateException - 現在の状態が属性の書込みを許可しない場合
      XMLStreamException - 名前空間URIが接頭辞にバインドされておらず、javax.xml.stream.isRepairingNamespacesがtrueに設定されていない場合
    • writeNamespace

      void writeNamespace​(String prefix, String namespaceURI) throws XMLStreamException
      出力ストリームに名前空間を書き込みます。このメソッドの接頭辞引数が空の文字列、「xmlns」、またはnullの場合、このメソッドはwriteDefaultNamespaceに委譲します。
      パラメータ:
      prefix - この名前空間のバインド先の接頭辞
      namespaceURI - 接頭辞のバインド先URI
      例外:
      IllegalStateException - 現在の状態が名前空間の書込みを許可しない場合
      XMLStreamException
    • writeDefaultNamespace

      void writeDefaultNamespace​(String namespaceURI) throws XMLStreamException
      出力ストリームにデフォルトの名前空間を書き込みます。
      パラメータ:
      namespaceURI - デフォルトの名前空間のバインド先URI
      例外:
      IllegalStateException - 現在の状態が名前空間の書込みを許可しない場合
      XMLStreamException
    • writeComment

      void writeComment​(String data) throws XMLStreamException
      コメント・アウトされたデータを使用してXMLコメントを書き込みます。
      パラメータ:
      data - コメントに含まれるデータ(nullの場合もある)
      例外:
      XMLStreamException
    • writeProcessingInstruction

      void writeProcessingInstruction​(String target) throws XMLStreamException
      処理命令を書き込みます。
      パラメータ:
      target - 処理命令のターゲット(null以外)
      例外:
      XMLStreamException
    • writeProcessingInstruction

      void writeProcessingInstruction​(String target, String data) throws XMLStreamException
      処理命令を書き込みます。
      パラメータ:
      target - 処理命令のターゲット(null以外)
      data - 処理命令に含まれるデータ(null以外)
      例外:
      XMLStreamException
    • writeCData

      void writeCData​(String data) throws XMLStreamException
      CDataセクションを書き込みます。
      パラメータ:
      data - CDataセクションに含まれるデータ(null以外)
      例外:
      XMLStreamException
    • writeDTD

      void writeDTD​(String dtd) throws XMLStreamException
      DTDセクションを書き込みます。 この文字列は、XML 1.0仕様のdoctypedecl生成規則全体を表します。
      パラメータ:
      dtd - 書き込まれるDTD
      例外:
      XMLStreamException
    • writeEntityRef

      void writeEntityRef​(String name) throws XMLStreamException
      エンティティ参照を書き込みます。
      パラメータ:
      name - エンティティの名前
      例外:
      XMLStreamException
    • writeStartDocument

      void writeStartDocument() throws XMLStreamException
      XML宣言を書き込みます。 XMLバージョンを1.0に、エンコーディングをutf-8にデフォルト設定します。
      例外:
      XMLStreamException
    • writeStartDocument

      void writeStartDocument​(String version) throws XMLStreamException
      XML宣言を書き込みます。 XMLバージョンを1.0にデフォルト設定します。
      パラメータ:
      version - XMLドキュメントのバージョン
      例外:
      XMLStreamException
    • writeStartDocument

      void writeStartDocument​(String encoding, String version) throws XMLStreamException
      XML宣言を書き込みます。 エンコーディング・パラメータでは、ベースとなる出力の実際のエンコーディングは設定しません。 実際のエンコーディングは、XMLOutputFactoryを使用してXMLStreamWriterのインスタンスを作成するときに設定する必要があります。
      パラメータ:
      encoding - XML宣言のエンコーディング
      version - XMLドキュメントのバージョン
      例外:
      XMLStreamException - 指定されたエンコーディングがベースとなるストリームのエンコーディングと一致しない場合
    • writeCharacters

      void writeCharacters​(String text) throws XMLStreamException
      出力にテキストを書き込みます。
      パラメータ:
      text - 書き込む値
      例外:
      XMLStreamException
    • writeCharacters

      void writeCharacters​(char[] text, int start, int len) throws XMLStreamException
      出力にテキストを書き込みます。
      パラメータ:
      text - 書き込む値
      start - 配列内の開始位置
      len - 書き込む文字数
      例外:
      XMLStreamException
    • getPrefix

      String getPrefix​(String uri) throws XMLStreamException
      URIのバインド先の接頭辞を取得します。
      戻り値:
      接頭辞またはnull
      例外:
      XMLStreamException
    • setPrefix

      void setPrefix​(String prefix, String uri) throws XMLStreamException
      URIのバインド先の接頭辞を設定します。 この接頭辞は、現在のSTART_ELEMENTとEND_ELEMENTのペアの範囲にバインドされます。 START_ELEMENTが書き込まれる前にこのメソッドが呼び出されると、接頭辞はルートの範囲にバインドされます。
      パラメータ:
      prefix - URIにバインドする接頭辞(null以外)
      uri - 接頭辞にバインドするURI (nullの場合もある)
      例外:
      XMLStreamException
    • setDefaultNamespace

      void setDefaultNamespace​(String uri) throws XMLStreamException
      URIをデフォルトの名前空間にバインドします。このURIは、現在のSTART_ELEMENTとEND_ELEMENTのペアの範囲にバインドされます。 START_ELEMENTが書き込まれる前にこのメソッドが呼び出されると、URIはルートのスコープにバインドされます。
      パラメータ:
      uri - デフォルトの名前空間にバインドするURI (nullの場合もある)
      例外:
      XMLStreamException
    • setNamespaceContext

      void setNamespaceContext​(NamespaceContext context) throws XMLStreamException
      接頭辞とURIのバインドに対して、現在の名前空間コンテキストを設定します。 このコンテキストは書込みに使用するルートの名前空間コンテキストになります。また、現在のルートの名前空間コンテキストを置き換えます。 後続のsetPrefixおよびsetDefaultNamespaceの呼出しでは、名前空間の解決用にルート・コンテキストとしてメソッドに渡されたコンテキストを使用して名前空間がバインドされます。 このメソッドは、ドキュメントの初めに一度だけ呼び出すことができます。 この操作によって名前空間は宣言されません。 名前空間URIと接頭辞のマッピングが名前空間コンテキストに見つかった場合、このマッピングは宣言されたものとして処理され、接頭辞をStreamWriterで使用できます。
      パラメータ:
      context - このライターで使用する名前空間コンテキスト(null以外)
      例外:
      XMLStreamException
    • getNamespaceContext

      NamespaceContext getNamespaceContext()
      現在の名前空間コンテキストを返します。
      戻り値:
      現在のNamespaceContext
    • getProperty

      Object getProperty​(String name) throws IllegalArgumentException
      ベースとなる実装から機能またはプロパティの値を取得します。
      パラメータ:
      name - プロパティの名前(null以外)
      戻り値:
      プロパティの値
      例外:
      IllegalArgumentException - プロパティがサポートされていない場合
      NullPointerException - 名前がnullである場合