Confus que sur la façon de l'utiliser JAXB XML Adaptateur pour mon exigence
Je suis à l'Aide de JAXB pour unmarshalling processus , pour lequel la demande est faite à partir de l'INTERFACE utilisateur de notre service de classe . Ci-dessous est le format de requête XML .
<SampleRequest user="testUser" account="testAccount" Specifier= "value1a,value1b,value1c : name2a,value2b,value2c"/>
Mon exigence est que , le Sélectionneur de l'attribut a eu Plusieurs séries de valeurs (: deux points séparés) j'ai besoin d'une carte de chaque série de valeurs à mes personnalisé classe java
J'ai essayé de cette façon
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class SampleRequest {
@XmlAttribute
private String user;
@XmlAttribute
private String account;
@XmlAttribute(name="Specifier")
private List<Specifier> specifier;
}
Specifier.java
@XmlJavaTypeAdapter(SpecifierAdapter.class)
public class Specifier {
}
SpecifierAdapter.java
public class SpecifierAdapter extends XmlAdapter{
@Override
public Object marshal(Object arg0) throws Exception {
//TODO Auto-generated method stub
return null;
}
@Override
public Object unmarshal(Object arg0) throws Exception {
//TODO Auto-generated method stub
return null;
}
}
Édité partie
Le Spécificateur de classe a 3 propriétés de la Chaîne .
class Specifier
{
String value1;
String value2;
String value3;
}
Et j'ai besoin de chaque série de Spécificateur par exemple (value1a,value1b,value1c) doit être mappé à valeur1 , valeur2 , valeur3, respectivement
Édité Partie 3
Salut ,
Merci pour la réponse , j'ai essayé de unmarshall cet exemple , ce que j'ai trouvé, c'est que , je suis nulle
C'est la demande que j'ai passé
<sampleRequest user="user" account="account" Specifier="v1,v2,v3 : a1,a2,a3"/>
Veux juste m'assurer que c'est mon Spécificateur de classe est correct ou pas ?? (Comme je n'ai pas utilisé toutes les Annotations ici )
package com;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
@XmlJavaTypeAdapter(SpecifierAdapter.class)
public class Specifier {
Specifier(String v1 , String v2 , String v3)
{
}
String value1;
public String getValue1() {
return value1;
}
public void setValue1(String value1) {
this.value1 = value1;
}
public String getValue2() {
return value2;
}
public void setValue2(String value2) {
this.value2 = value2;
}
public String getValue3() {
return value3;
}
public void setValue3(String value3) {
this.value3 = value3;
}
String value2;
String value3;
}
Grâce Pangea , j'ai édité ma question pour répondre à votre requête . veuillez voir .
J'ai édité ma question ( je suis null en tant que résultat ) lorsque unmarshalling pourrait s'il vous plaît laissez-moi savoir est mon Spécificateur de classe est correct ou pas ??
Je suis d'accord que je ne devrais pas modifier ou supprimer mes questions précédentes , vraiment un sentiment de culpabilité après avoir vu Jin Kwon réponse . Sincèrement, je m'en excuse
OriginalL'auteur Pawan | 2012-08-10
Vous devez vous connecter pour publier un commentaire.
REMARQUE: L'adaptateur de code pourrait être rendu plus simple par l'utilisation de goyave, de la bibliothèque Joiner Splitter et.
SampleRequest
Adaptateur
Utilisation
Sortie
OriginalL'auteur Aravind R. Yarram
J'ai préparé ma réponse avec mon IDE.
Vous avez supprimé votre question(11887278) et a demandé à nouveau.
Je pensais et pense que cette exigence n'est pas une bonne idée.
J'étais juste intéressé dans votre question, parce que je n'ai jamais fais ces multiples cordes à un attribut.
Mon code est très intéressant même ce Senthil Kumar expliqué.
Veuillez consulter la version intégrale mavenized projet à https://code.google.com/p/jinahya/source/browse/trunk/com.googlecode.jinahya/stackoverflow/src/main/java/com/googlecode/jinahya/stackoverflow/q11887278/
Veuillez
Voici 10 exemples dont chacun est mobilisé une unmarshalled
OriginalL'auteur Jin Kwon
Vous pouvez essayer ce qui suit pour la mise en œuvre SpecifierAdapter.java
OriginalL'auteur Senthil Kumar