我有一个xml likethis
<datapoint>
<fieldname>somestring</fieldname>
<value>some string</value>
</datapoint>
<datapoint>
<fieldname>somestring</fieldname>
<value>some string</value>
</datapoint>
<datapoint>
<fieldname>somestring</fieldname>
<value>
<filename>some string</filename>
</value>
</datapoint>
我需要为此XML定义XSD。我使用值作为复杂类型。但是当我使用value作为复杂类型时,我无法解析JAXB中Value的字符串值。我只得到一个对象。如果我将值声明为简单类型(String),我无法读取文件名。我该怎么做..请帮助。
答案 0 :(得分:0)
通过在定义中包含minOccurs="0"
,将XML元素标记为可选。
我使用值作为复杂类型。但是当我使用价值作为复杂类型时 我无法从JAXB中的Value解析字符串值
如果只定义复杂类型,则需要将相应的类传递给unmarshal方法:
Datapoint datapoint = unmarshaller.unmarshal(xml, Datapoint.class).getValue();
如果为复杂类型定义全局元素,则不需要使用class参数。如果定义引用命名复杂类型的全局元素,则会返回JAXBElement<Datapoint>
的实例,如果定义具有匿名类型的全局元素,则将返回Datapoint
的实例。 / p>