У меня есть следующий XSD тег:Xstream - Удалить значение тега
<xs:complexType name="documentation">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="language" use="required"/>
</xs:extension>
</xs:simpleContent>
это порождает (с JAX-б):
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "documentation", propOrder = {
"value"
})
public class Documentation {
@XmlValue
protected String value;
@XmlAttribute(name = "language", required = true)
protected String language;
И я хочу некоторые выход как :
<documentation language="NL">SomeValue</documentation>
но Xstream генерирует:
<documentation language="NL">
<value>SomeValue</value>
</documentation>
Как я могу удалить теги значений? Я не хочу их ..
кода для генерации тегов XML (это только фрагмент ..):
private void createDocumentation(Description description, String docNL) {
List<Documentation> documentations = description.getDocumentation();
Documentation documentationNL = new Documentation();
documentationNL.setLanguage("NL");
documentationNL.setValue(docNL);
documentations.add(documentationNL);
}
private void createXmlFile(Description description) {
XStream xstream = new XStream(new DomDriver());
xstream.alias("description", Description.class);
xstream.alias("documentation", Documentation.class);
xstream.addImplicitCollection(Description.class, "documentation");
xstream.useAttributeFor(Documentation.class, "language");
String xml = xstream.toXML(description);
}
Я не могу изменить класс с момента его создания. – GregD
@GregD достаточно справедливо, в этом случае просто используйте второй регистрационный механизм с 'registerConverter', тогда нет необходимости вносить какие-либо изменения в класс. –