문제

simple-xml을 사용하여 클래스를 직렬화하고 있습니다(http://simple.sourceforge.net/) 하지만 Point 개체에 @Element를 사용하려고 하면 오류가 발생합니다. 이 Point 개체를 어떻게 변환할 수 있나요?

도움이 되었습니까?

해결책

다음과 같이 변환을 만들 수 있습니다.

public class PointTransform implements Transform<Point> {

  public Point read(String value) {
     return fromString(value);
  }

  public String write(Point value)  {
     return toString(value);
  }

  // etc ...
}

그런 다음 클래스에 따라 변환을 해결할 수 있도록 Matcher를 Persister 생성자에 전달합니다.변환은 속성이나 텍스트 값과 같은 기본 요소에만 사용됩니다.결과 문서에 기록될 때만 이스케이프되므로 XML을 작성하는 데 사용하면 안 됩니다.이와 같은 주석을 사용하는 것이 가장 좋습니다.

@Root
public class Point {

  @Attribute
  private int x;

  @Attribute
  private int y;

  public int getX() {
     return x;
  }

  public int getY() {
     return y;
  }
}

다른 팁

컨버터를 사용하여 텍스트 표현이 아닌 전체 XML 요소가 필요한 객체를 직렬화 할 수 있습니다. 보다:

http://simple.sourceforge.net/download/stream/doc/tutorial/tutorial.php#converters

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top