@XmlElement et inutile "requis" paramètre
J'ai mis @XmlElement(name = "title",required = true) avant le javabean propriété
int some_property, et ne pas affecter une valeur à some_property. Pour certaines raisons, cette propriété n'est pas produite dans le XML généré. Donc, s'il vous plaît, expliquer le sens de nécessaire
des parties de code:
@XmlRootElement(name = "book")
@XmlType(propOrder = { "author", "name", "publisher", "isbn" })
public class Book {
private String name;
private String author;
private String publisher;
private String isbn;
//If you like the variable name, e.g. "name", you can easily change this
//name for your XML-Output:
@XmlElement(name = "title",required = true)
public String getName() {
return name;
}
....
Quelque part l'int Principal :
//create books
Book book1 = new Book();
book1.setIsbn("978-0060554736");
book1.setAuthor("Neil Strauss");
book1.setPublisher("Harpercollins");
bookList.add(book1);
Book book2 = new Book();
book2.setIsbn("978-3832180577");
book2.setName("Feuchtgebiete");
book2.setAuthor("Charlotte Roche");
book2.setPublisher("Dumont Buchverlag");
bookList.add(book2);
JAXBContext context = JAXBContext.newInstance(Bookstore.class);
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
//Write to System.out
m.marshal(bookstore, System.out);
//Write to File
m.marshal(bookstore, new File(BOOKSTORE_XML));
//get variables from our xml file, created before
System.out.println();
System.out.println("Output from our XML File: ");
Unmarshaller um = context.createUnmarshaller();
Bookstore bookstore2 = (Bookstore) um.unmarshal(new FileReader(BOOKSTORE_XML));
ArrayList<Book> list = bookstore2.getBooksList();
OriginalL'auteur | 2013-10-09
Vous devez vous connecter pour publier un commentaire.
Ce
required
N'sur@XmlElement
La
required
bien sur la@XmlElement
annotation affecte le schéma XML est généré à partir des classes Java.Modèle De Domaine (Racine)
Ci-dessous est un simple modèle Java. Notez comment les
bar
propriété arequired=true
et lafoo
propriété n'.Le Code De Démonstration
Ci-dessous est un code qui montre comment générer un schéma XML à l'aide de la
JAXBContext
.Généré Schéma XML
Ci-dessous est la résultante de schéma XML remarque comment l'élément XML correspondant à la
foo
champ aminOccurs="0"
tandis que l'élément XML correspondant à labar
champ (qui a été annoté avec@XmlElement(required=true)
ne le fait pas. C'est parce que la valeur par défautminOccurs
est 1, ce qui signifie qu'il est nécessaire.Si Vous Souhaitez qu'un Élément pour
null
ValeursModèle De Domaine (Racine)
La
baz
champ a été annoté avec@XmlElement(nillable=true)
. Si la valeur est null, la résultante de l'élément XML permettra de tirer profit de laxsi:nil
attribut. Sans cette annotation des valeurs null sera considérée comme absente nœuds.Le Code De Démonstration
Sortie
Ci-dessous est le XML résultant de l'exécution de la démo de code.
Où faut-il dire cela?
malheureusement je ne trouve pas. Donc merci pour la réponse.
Magnifiquement expliqué! Court et Doux! Cristal clair!!! Merci beaucoup!
OriginalL'auteur Blaise Doughan
À partir de: http://docs.oracle.com/javaee/5/api/javax/xml/bind/annotation/XmlElement.html
Votre propriété est mappée à un élément qui est (je l'espère), a déclaré que requis dans le schéma. Votre XML généré n'est pas conforme à ce schéma, qui est plus ou moins ce que j'attendais d'une instance qui n'est pas "jouer le jeu", il a jeté
OriginalL'auteur Norwæ
Pourriez-vous nous montrer un échantillon de votre code et xml généré?
Selon docs:
OriginalL'auteur michal