2009-11-05 5 views
4

Je dois générer XML et ils diffèrent uniquement par les valeurs, que les balises contiennent.Modèle XML en Java

Est-il possible de créer un modèle XML puis d'écrire uniquement les valeurs à chaque fois? (Je ne veux pas aller le JAXB comme ce sont de petits XML s et ne valent pas la peine de créer des objets pour eux).

Est-ce une bonne approche?

Des pensées?

Répondre

0

Malgré le fait que vous êtes contre jaxb (que je n'ai pas encore utilisé), je souhaite recommander une méthode comparable avec Apache's XMLBeans.

Cela vous oblige à utiliser un schéma XML - mais de mon expérience, il vaut la peine ...

+0

Vous pouvez également générer un schéma XML à partir d'un exemple avec XMLBeans en utilisant inst2xsd http://xmlbeans.apache.org/docs/2.0.0/guide/tools.html#inst2xsd – fijiaaron

2

Tant que le fichier XML à produire est petit, simple et surtout cohérente au format, j'ai tendance à Buck la tendance: je crée et écris simplement une chaîne de texte.

writer.out.format("<?xml version='1.0'><root><tag1>%s</tag1></root>", value1) 

quelque chose.

+0

Java ne vous empêche pas de le faire avec une chaîne de pratiquement n'importe quelle longueur. Par souci de santé mentale, cependant, je fixerais une limite à environ 20 lignes de texte de sortie, ou peut-être 20 étiquettes. –

+0

FYI, la tendance Carl mentionne: http://stackoverflow.com/questions/3034611/whats-so-bad-about-building-xml-with-string-concatenation –

2

Vous pouvez utiliser freemarker ou velocity pour modéliser en Java, ou même simplement ajouter des balises PHP à un exemple de code XML à générer à partir d'un modèle. En règle générale, une fois que vous commencez à ajouter des éléments ou des attributs sous forme conditionnelle ou à créer des multiples en boucle, il est préférable de générer votre XML, même si je suis d'accord pour l'obtenir au format souhaité (pas ce que le générateur veut) est parfois une douleur.