Méthodes importantes
Definir une classes
alias("MY_TABLE", MyType.class);
Definir un champ
aliasField("MY_TABLE", MyType.class, "fieldName");
Definir un attribut
aliasAttribute(MyType.class, "fieldName","attribute-name");
Ignorer des champs
omitField(CaptureSacapt.class, "mareeId");
Questions diverses
Utiliser un format de date compatible avec les XSD
registerConverter(new ISO8601DateConverter());
Il est nécessaire pour ceci d'ajouter à son fichier POM
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>1.5.2</version>
</dependency>
Changer l'ordre des champs
La manière la plus simple de changer l'ordre d'apparition des balise dans le XML généré est tout simplement de changer l'ordre des champs à l'intérieur de la classe.
L'autre méthode consiste à se servir d'un trieur de champs.
SortableFieldKeySorter sorter = new SortableFieldKeySorter();
sorter.registerFieldOrder(MyType.class,
new String[] { "firstToSerialize",
"secondToSerialize",
"thirdToSerialize" }
);
xstream = new XStream(new Sun14ReflectionProvider(new FieldDictionary( sorter)));
Les éléments nuls
Il n'existe pas de manière simple de traiter les chaine vide comme des nulles. Il est nécessaire d'implémenter un convertisseur et de l'enregistrer.
Validation par XSD
Un XML est validé par XSD
SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setNamespaceAware(true);
spf.setValidating(true);
SAXParser sp = spf.newSAXParser();
sp.setProperty(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);
InputStream schemaIs = getClass().getResourceAsStream("/my-validator.xsd");
sp.setProperty(JAXP_SCHEMA_SOURCE, schemaIs);
XSDHandler handler = new XSDHandler();
sp.parse(file, handler);
Aucun commentaire:
Enregistrer un commentaire