|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.beans.Encoder java.beans.XMLEncoder
public class XMLEncoder
XMLEncoder
クラスは ObjectOutputStream
の補足的な代替クラスであり、ObjectOutputStream
で Serializable
オブジェクトのバイナリ表現を生成する場合と同様にして 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 文書には、次のような特徴があります。
XMLEncoder
クラスは内部で冗長性削減アルゴリズムを使用するため、Bean のプロパティーのデフォルト値がストリームに書き込まれません。
次に、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 つのタグで記述できますが、共通のデータ構造をより簡潔に表現するため、次の定義がなされています。
Integer
クラスのインスタンスは <int>123</int> と記述できる。XMLEncoder
クラスが、Java プリミティブ型と関連ラッパークラス間の変換を内部的に処理する Java リフレクションパッケージを使用する点に注意すること。XMLEncoder
クラスの API 自体は、Object
だけを取り扱う。
詳細については、「The Swing Connection.」の「Using XMLEncoder」を参照してください。
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)
ストリームのフラッシュ時に実際の出力が生成されるように、式を記録します。 |
void |
writeObject(Object o)
指定されたオブジェクトの XML 表現を出力に書き込みます。 |
void |
writeStatement(Statement oldStm)
ストリームのフラッシュ時に実際の出力が生成されるように、文を記録します。 |
クラス java.beans.Encoder から継承されたメソッド |
---|
get, getExceptionListener, getPersistenceDelegate, remove, setExceptionListener, setPersistenceDelegate |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
---|
public XMLEncoder(OutputStream out)
out
に JavaBeans を送信する、新しい出力ストリームを作成します。
out
- オブジェクトの XML 表現の送信先となるストリームXMLDecoder.XMLDecoder(InputStream)
メソッドの詳細 |
---|
public void setOwner(Object owner)
owner
に設定します。
owner
- このエンコーダの所有者getOwner()
public Object getOwner()
setOwner(java.lang.Object)
public void writeObject(Object o)
Encoder
内の writeObject
o
- ストリームに書き込まれるオブジェクトXMLDecoder.readObject()
public void writeStatement(Statement oldStm)
このメソッドは、持続的な委譲を初期化するコンテキスト内だけで呼び出すようにしてください。
Encoder
内の writeStatement
oldStm
- ストリームに書き込まれる式PersistenceDelegate.initialize(java.lang.Class>, java.lang.Object, java.lang.Object, java.beans.Encoder)
public void writeExpression(Expression oldExp)
このメソッドは、持続的な委譲を初期化するコンテキスト内、またはリソースバンドルから読み込むようにエンコーダを設定するコンテキスト内だけで呼び出すようにしてください。
XMLEncoder でリソースバンドルを使用する詳細については、http://java.sun.com/products/jfc/tsc/articles/persistence4/#i18n を参照してください。
Encoder
内の writeExpression
oldExp
- ストリームに書き込まれる式PersistenceDelegate.initialize(java.lang.Class>, java.lang.Object, java.lang.Object, java.beans.Encoder)
public void flush()
flush
を最後に呼び出したときからストリームに書き込まれたすべての値を書き出します。フラッシュ後、このストリームに書き込まれた値の内部参照はすべてクリアーされます。
public void close()
flush
を呼び出し、閉じるポストアンブルを書き込み、このストリームに関連付けられている出力ストリームをクローズします。
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。