JavaTM 2
Platform
Std. Ed. v1.4.0

java.beans
クラス XMLEncoder

java.lang.Object
  |
  +--java.beans.Encoder
        |
        +--java.beans.XMLEncoder

public class XMLEncoder
extends Encoder

XMLEncoder クラスは ObjectOutputStream の補足的な代替クラスであり、ObjectOutputStreamSerializable オブジェクトのバイナリ表現を生成する場合と同様にして JavaBean のテキスト表現を生成します。たとえば、次のコードでは、提供された JavaBean とそのすべてのプロパティのテキスト表現を生成できます。

       XMLEncoder e = new XMLEncoder(
                          new BufferedOutputStream(
                              new FileOutputStream("Test.xml")));
       e.writeObject(new JButton("Hello, world"));
       e.close();
 
API は似ているものの、XMLEncoder クラスは、JavaBean のグラフをその公開プロパティのテキスト表現としてアーカイブ化する目的で設計されています。この方式で作成された文書は、Java ソースファイルと同様、必要なクラスの実装が変更から保護されています。プロセス間通信および通常目的の直列化には、これまでどおり ObjectOutputStream を使用することをお勧めします。

XMLEncoder クラスは、JavaBean を、XML 仕様バージョン 1.0 と Unicode/ISO 10646 文字セットの UTF-8 文字エンコーディングに準拠した XML 文書として表現するデフォルトの指定を提供します。XMLEncoder クラスによって生成される XML 文書には、次のような特徴があります。

以下は、swing ツールキットのユーザーインタフェースコンポーネントを含む XML アーカイブの例です。

 <?xml version="1.0" encoding="UTF-8"?>
 <java version="1.0" class="java.beans.XMLDecoder">
 <object class="javax.swing.JFrame">
   <void property="name">
     <string>frame1</string>
   </void>
   <void property="bounds">
     <object class="java.awt.Rectangle">
       <int>0</int>
       <int>0</int>
       <int>200</int>
       <int>200</int>
     </object>
   </void>
   <void property="contentPane">
     <void method="add">
       <object class="javax.swing.JButton">
         <void property="label">
           <string>Hello</string>
         </void>
       </object>
     </void>
   </void>
   <void property="visible">
     <boolean>true</boolean>
   </void>
 </object>
 </java>
 
XML 構文は、次の規約に準拠しています。

すべてのオブジェクトグラフはこれら 3 つのタグで記述できますが、共通のデータ構造をより簡潔に表現するため、次の定義がなされています。

導入されたバージョン:
1.4
関連項目:
XMLDecoder, ObjectOutputStream

コンストラクタの概要
XMLEncoder(OutputStream out)
          XML エンコーディングを使ってストリーム out に JavaBeans を送信する、新しい出力ストリームを作成します。
 
メソッドの概要
 void close()
          このメソッドは、flush を呼び出し、閉じるポストアンブルを書き込み、このストリームに関連付けられている出力ストリームをクローズします。
 void flush()
          このメソッドは、XML エンコーディングに関連付けられたプリアンブルを書き出し、flush を最後に呼び出したときからストリームに書き込まれたすべての値を書き出します。
 Object getOwner()
          このエンコーダの所有者を取得します。
 void setOwner(Object owner)
          このエンコーダの所有者を owner に設定します。
 void writeExpression(Expression oldExp)
          このメソッドは、スーパークラスの実装を呼び出し、oldExp を記録することにより、ストリームのフラッシュ時に実際の出力を生成します。
 void writeObject(Object o)
          指定されたオブジェクトの XML 表現を出力に書き込みます。
 void writeStatement(Statement oldStm)
          このメソッドは、スーパークラスの実装を呼び出し、oldStm を記録することにより、ストリームのフラッシュ時に実際の出力を生成します。
 
クラス java.beans.Encoder から継承したメソッド
get, getExceptionListener, getPersistenceDelegate, remove, setExceptionListener, setPersistenceDelegate
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

XMLEncoder

public XMLEncoder(OutputStream out)
XML エンコーディングを使ってストリーム out に JavaBeans を送信する、新しい出力ストリームを作成します。

パラメータ:
out - オブジェクトの XML 表現の送信先となるストリーム
関連項目:
XMLDecoder.XMLDecoder(InputStream)
メソッドの詳細

setOwner

public void setOwner(Object owner)
このエンコーダの所有者を owner に設定します。

パラメータ:
owner - このエンコーダの所有者
関連項目:
getOwner()

getOwner

public Object getOwner()
このエンコーダの所有者を取得します。

戻り値:
このエンコーダの所有者
関連項目:
setOwner(java.lang.Object)

writeObject

public void writeObject(Object o)
指定されたオブジェクトの XML 表現を出力に書き込みます。

オーバーライド:
クラス Encoder 内の writeObject
パラメータ:
o - ストリームに書き込まれるオブジェクト
関連項目:
XMLDecoder.readObject()

writeStatement

public void writeStatement(Statement oldStm)
このメソッドは、スーパークラスの実装を呼び出し、oldStm を記録することにより、ストリームのフラッシュ時に実際の出力を生成します。

オーバーライド:
クラス Encoder 内の writeStatement
パラメータ:
oldStm - ストリームに書き込まれる文

writeExpression

public void writeExpression(Expression oldExp)
このメソッドは、スーパークラスの実装を呼び出し、oldExp を記録することにより、ストリームのフラッシュ時に実際の出力を生成します。

オーバーライド:
クラス Encoder 内の writeExpression
パラメータ:
oldExp - ストリームに書き込まれる式

flush

public void flush()
このメソッドは、XML エンコーディングに関連付けられたプリアンブルを書き出し、flush を最後に呼び出したときからストリームに書き込まれたすべての値を書き出します。フラッシュ後、このストリームに書き込まれた値の内部参照はすべてクリアされます。


close

public void close()
このメソッドは、flush を呼び出し、閉じるポストアンブルを書き込み、このストリームに関連付けられている出力ストリームをクローズします。


JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.