Two Minute Tutorial
이것은 매우 빠르게 XStream을 소개하고 있는 문서이다. 간편하게 읽고, XML로 객체를 변환하는 방법과 역으로 수행하는 방법에 대해서 알 수 있도록 하고 있따.
Create classes to be serialized
여기 단순한 몇가지 클래스가 있다. XStream은 이것을 XML 로 변경하고, 다시 객체로 받아 올 수 있도록 한다.
public class Person {
private String firstname;
private String lastname;
private PhoneNumber phone;
private PhoneNumber fax;
// ... constructors and methods
}
public class PhoneNumber {
private int code;
private String number;
// ... constructors and methods
}
주의 : 필드는 private로 되어 있다는 것을 확인하기 바란다. XStream은 필드의 가시성에 대해서 신경쓰지 않는다. Getter/Setter메소드 역시 필요없다. XStream은 기본 생성자를 만들지 않아도 된다.
Initializing XStream
XStream을 이용할때, XStream 클래스를 이용하여 초기화 할 수 있다.
XStream xstream = new XStream();
xstream-[version].jar파일과 xpp3-[version].jar파일이 클래스 패스에 걸려 잇어야 한다. XPP3는 매우 빠른 속도로 XML의 전체를 파싱을 할 수 있도록 구현되어 있다. 만약 이러한 의존성을 연결하고싶지 않다면 표준 JAXP DOM 파서를 이용할 수 있다.
XStream xstream = new XStream(new DomDriver()); // does not require XPP3 library
주의 : 이 클래스는 단순하게 공통적인 오퍼레이션을 실행하기 위해서 fcade 디자인 패턴을 이용하고 있다. 더욱더 유연한 기능을 제공하기 위해서 퍼사드는 서로다른 행동을 취할 수 있도록 하고 잇다.
이제 XStream을 이용하여 XML을 만들어 보는 것을 해 볼 것이다. 현재 클래스를 위해서 앨리어스를 생성하고, XML 엘리먼트의 이름을 지정해 주도록 하고 잇따. 이것은 XStream을 이용하기 위해 필요한 매핑을 제공하며, 이것은 선택적인 부분이다.
xstream.alias("person", Person.class);
xstream.alias("phonenumber", PhoneNumber.class);
주의 : 이것은 선택적인 스텝이다. XStream은 이것없이도 잘 수행된다. 그러나 XML 엘리먼트 이름은 각 클래스의 fully qualified 이름(패키지 이름 포함)을 포함하여 쓰는것이 일반적이다. 이것은 Alias Tutorial을 보면 더욱 자세하게 설명하고 있다.
Serializing an object to XML
이제 Persion과 populate에 대한 인스턴스를 생성해 볼 차례이다.
Person joe = new Person("Joe", "Walnes");
joe.setPhone(new PhoneNumber(123, "1234-456"));
joe.setFax(new PhoneNumber(123, "9999-999"));
이제 XML로 변경해 보자. 단순하게 XStream을 호출함으로 해서 이것을 만들수 있다.
String xml = xstream.toXML(joe);
XML의 결과는 다음과 같다.
<person>
<firstname>Joe</firstname>
<lastname>Walnes</lastname>
<phone>
<code>123</code>
<number>1234-456</number>
</phone>
<fax>
<code>123</code>
<number>9999-999</number>
</fax>
</person>
이것은 매우 심플하다. XML을 보면 매우 깔끔하게 만들어 졌다.
Deserializing an object back from XML
XML로 부터 객체를 다시 만들어 내는 방법은 다음과 같다.
Person newJoe = (Person)xstream.fromXML(xml);
아주 간단하다.
Summary
요약해보면..
- 엘리먼트 이름을 클래스 이름 별명으로 변환하기 위해서는 xstream.alias(String elementName, Class cls)를 이용하라.
- 객체를 XML로 변경하기 위해서는 xstream.toXML(Object obj);를 이용하라.
- XML에서 객체로 변경하고자 할 경우에는 xstream.fromXML(String xml)을 이용하라.
'WEB_Programming' 카테고리의 다른 글
J2EE Tutorials > Getting Started with Web Applications (1) | 2008.11.10 |
---|---|
[JSP] Request가 멀티파트 폼인지 검사하는 루틴 (0) | 2008.08.13 |
[WAS] 인코딩 필터 사용시 주의할점. (0) | 2008.07.25 |
JSP Include 2가지 종류 (0) | 2008.07.21 |
JSP Cookie 이용하기 (0) | 2008.07.11 |