Объект Transforming Point при использовании simple-xml - PullRequest
3 голосов
/ 13 января 2009

Я сериализую класс с использованием simple-xml (http://simple.sourceforge.net/), но когда я пытаюсь использовать @Element для объекта Point, я получаю ошибку, как я могу преобразовать этот объект Point?

Ответы [ 2 ]

1 голос
/ 13 января 2009

Вы можете создать такое преобразование, как так

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;
  }
}
0 голосов
/ 19 марта 2012

Вы можете использовать конвертер для сериализации объектов, которым нужны полные элементы XML (а не просто текстовое представление). См:

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

...