Objet Point de transformation lors de l'utilisation de simple-xml
-
22-07-2019 - |
Question
Je suis en train de sérialiser une classe en utilisant simple-xml ( http://simple.sourceforge.net/ ) mais quand j’essaie d’utiliser @Element sur un objet Point, j’obtiens une erreur, comment puis-je transformer cet objet Point?
La solution
Vous pouvez créer une transformation comme ceci
public class PointTransform implements Transform<Point> {
public Point read(String value) {
return fromString(value);
}
public String write(Point value) {
return toString(value);
}
// etc ...
}
Ensuite, passez un Matcher au constructeur Persister afin qu’il puisse résoudre votre transformation en fonction de la classe. Les transformations ne sont utilisées que pour les primitives, comme les valeurs d'attribut ou de texte. Ils ne doivent pas être utilisés pour composer du XML, car il ne sera échappé que s'il est écrit dans le document résultant. Il vaut mieux utiliser des annotations comme ceci.
@Root
public class Point {
@Attribute
private int x;
@Attribute
private int y;
public int getX() {
return x;
}
public int getY() {
return y;
}
}
Autres conseils
Vous pouvez utiliser un convertisseur pour sérialiser des objets nécessitant des éléments XML complets (plutôt que de simplement avoir une représentation textuelle). Voir:
http://simple.sourceforge.net/download/ stream / doc / tutorial / tutorial.php # convertisseurs