Bonjour à tous
voilà mon problème
Mon application doit generer un fichier XML avec notamment deux attributs date au format dd/MM/yyyy.
Le souci est que ce champs est alimenté par une valeur en base avec un format different. En fait c'est pas un problème car avec un peu de recherche on voit qu'on peut faire de la customization.
Pour cela j'ai fait un schéma, j'utilise les annotations et je génére un mes classes java en utilisant xjc
Et tout marche très bien. Sauf que j'ai fait mon schéma d'une manière pas très sympa à savoir une belle duplication de code que voici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:jxb="http://java.sun.com/xml/ns/jaxb" jxb:version="2.0" > <xs:element name="item" > <xs:complexType> <xs:attribute name="uid" type="xs:int" use="required" /> <xs:attribute name="lib" type="xs:string" use="optional" /> <xs:attribute name="dt_start" type="xs:date" use="optional"> <xs:annotation> <xs:appinfo> <jxb:property> <jxb:baseType> <jxb:javaType name="java.util.Date" parseMethod="monopackage.MonAdapter.stringToDate" printMethod="monopackage.MonAdapter.dateToString" /> </jxb:baseType> </jxb:property> </xs:appinfo> </xs:annotation> </xs:attribute> <xs:attribute name="dt_end" type="xs:date" use="optional" > <xs:annotation> <xs:appinfo> <jxb:property> <jxb:baseType> <jxb:javaType name="java.util.Date" parseMethod="monopackage.MonAdapter.stringToDate" printMethod="monopackage.MonAdapter.dateToString" /> </jxb:baseType> </jxb:property> </xs:appinfo> </xs:annotation> </xs:attribute> <xs:attribute name="status" type="xs:string" use="optional" /> </xs:complexType> </xs:element> </xs:schema>
L'objectif est de factoriser cette annotation est de la rendre visible pour ce schema là en particulier.Je voudrais eviter de reecrire deux fois la même annotation ...
J'ai essayé plusieurs choses mais à chaque fois j'ai des erreurs de compilations: disant que les annotations sont placées au mauvais endroit
ça ne m'arrange pas de le mettre en globalBindings car toutes les dates n'auront pas ce format
J'ai essayé d'utiliser le schemaBindings mais je comprends par trop la syntaxe
Voilà tout
merci d'avance
Partager