Je ne vois pas une option dans Je vois que Woodstox a une propriété pour le faire, mais il n'est pas standardisé. P>
Est-ce que je manque de manière évidente de faire cela? P> javax.xml.stream.xmlevencewriter code> ou
javax.xml.stream.xmloutputSfactory code> pour définir soit utile de manière à ce que des éléments vides sont écrits (au lieu de paires d'éléments de début et de fin explicites). p>
5 Réponses :
Non. Il n'y a pas de différence sémantique entre
Un détail de mise en œuvre de l'auteur de Stax inclus avec le JDK par défaut: appeler writeartelement ("localName"); rédécissement () code> entraîne une étiquette d'auto-fermeture, tout en appelant
WriteStartelement ("localName" ); WriteCharacters (NULL); ÉLIME DE DÉMENT () CODE> Résultats dans une étiquette d'ouverture immédiatement suivie d'une étiquette de fermeture.
Comme vous le note, c'est un détail de mise en œuvre. D'autres sérialiseurs et versions ultérieures de Stax peuvent ne pas faire cela.
Je viens de disposer d'un problème où Jaxb Soumps sur
Vous le savez probablement déjà, mais XMLStreaMwriter dispose de la méthode de spécification de son "réel" élément vide. Xmleventwriter manque quelques pièces que l'interface de niveau inférieure a. P>
Configuration de la propriété afin que les balises vides sont générées comme
WstxOutputFactory factory = new WstxOutputFactory();
factory.setProperty(WstxOutputFactory.P_AUTOMATIC_EMPTY_ELEMENTS, true);
writer.writeEmptyElement("some_element"); writer.writeAttribute("some_attribute", "some_value");
Dans plusieurs réponses et commentaires, il y a une certaine confusion.
Stax a deux API: P>
xmlstreamreader code> et xmlstreamwriter code>; et li>
- L'API d'itérateur à l'aide de
XMLEVENTReader code> et xmleventwriter code>; li>
ul> sortie d'un élément vide avec une seule balise, code>, est fort> possible avec l'API curseur em> en utilisant < Code> xmlstreamwriter code>: p> xxx pré> sortie d'un élément vide avec une seule balise, code>, n'est pas < / Strong> possible avec l'API Itérateur em> en utilisant xmleventwriter code>, autant que je sache. Dans ce cas, vous êtes coincé avec la production d'un élément vide avec deux balises exemple> code>: p> xxx pré> p>
Bien sûr que vous avez tout à fait raison. J'aurais dû être plus précis, car je n'étais évidemment pas clair ici. Ce que je veux dire, c'est un élément qui se termine par "/>".