JavaTM Platform
Standard Ed. 6

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 의 그래프를 그 공개 프로퍼티의 텍스트 표현으로서 어카이브(archive)화하는 목적으로 설계되고 있습니다. 이 방식에서 작성된 문서는, Java 원시 파일과 같이, 필요한 클래스의 구현이 변경으로부터 보호되고 있습니다. 프로세스간 통신 및 일반적으로 목적의 직렬화에는, 지금까지 대로 ObjectOutputStream 를 사용하는 것을 추천합니다.

XMLEncoder 클래스는,JavaBean 를, XML 스펙 버젼 1.0 으로 Unicode/ISO 10646 캐릭터 세트의 UTF-8 캐릭터 세트에 준거한 XML 문서로서 표현하는 디폴트의 지정을 제공합니다. XMLEncoder 클래스에 의해 생성되는 XML 문서에는, 다음과 같은 특징이 있습니다.

이하는, swing 툴 킷의 사용자 인터페이스 컴퍼넌트를 포함한 XML 어카이브(archive)의 예입니다.

 <? 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 개의 태그로 기술할 수 있습니다만, 공통의 데이터 구조를 보다 간결하게 표현하기 위해(때문에), 다음의 정의가 이루어지고 있습니다.

상세한 것에 대하여는, 「The Swing Connection. 」의 「Using XMLEncoder 」를 참조해 주세요.

도입된 버젼:
1.4
관련 항목:
XMLDecoder , ObjectOutputStream

생성자 의 개요
XMLEncoder (OutputStream  out)
          XML 인코딩을 사용해 스트림 outJavaBeans 를 송신하는, 새로운 출력 스트림을 작성합니다.
 
메소드의 개요
 void close ()
          이 메소드는,flush 를 호출해, 닫는 postamble를 기입해, 이 스트림에 관련지을 수 있고 있는 출력 스트림을 클로즈 합니다.
 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
 

생성자 의 상세

XMLEncoder

public XMLEncoder(OutputStream  out)
XML 인코딩을 사용해 스트림 outJavaBeans 를 송신하는, 새로운 출력 스트림을 작성합니다.

파라미터:
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 표현을 출력에 기입합니다.

오버라이드(override):
클래스 Encoder 내의 writeObject
파라미터:
o - 스트림에 기입해지는 객체
관련 항목:
XMLDecoder.readObject()

writeStatement

public void writeStatement(Statement  oldStm)
스트림의 플래시시에 실제의 출력이 생성되도록(듯이), 문장을 기록합니다.

이 메소드는, 지속적인 위양을 초기화하는 문맥내에서만 호출하도록 해 주세요.

오버라이드(override):
클래스 Encoder 내의 writeStatement
파라미터:
oldStm - 스트림에 기입해진다 문장
관련 항목:
PersistenceDelegate.initialize(java.lang.Class, java.lang.Object, java.lang.Object, java.beans.Encoder)

writeExpression

public void writeExpression(Expression  oldExp)
스트림의 플래시시에 실제의 출력이 생성되도록(듯이), 식을 기록합니다.

이 메소드는, 지속적인 위양을 초기화하는 문맥내, 또는 자원 번들로부터 읽어들이도록(듯이) 엔코더를 설정하는 문맥내에서만 호출하도록 해 주세요.

XMLEncoder 로 자원 번들을 사용하는 상세한 것에 대하여는, http://java.sun.com/products/jfc/tsc/articles/persistence4/#i18n 를 참조해 주세요.

오버라이드(override):
클래스 Encoder 내의 writeExpression
파라미터:
oldExp - 스트림에 기입해진다 식
관련 항목:
PersistenceDelegate.initialize(java.lang.Class, java.lang.Object, java.lang.Object, java.beans.Encoder)

flush

public void flush()
이 메소드는, XML 인코딩에 관련지을 수 있었던 프리안불을 써내,flush 를 마지막으로 호출했을 때로부터 스트림에 기입해진 모든 값을 써냅니다. 플래시 후, 이 스트림에 기입해진 값의 내부 참조는 모두 클리어 됩니다.


close

public void close()
이 메소드는,flush 를 호출해, 닫는 postamble를 기입해, 이 스트림에 관련지을 수 있고 있는 출력 스트림을 클로즈 합니다.


JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.