使用JAXB解析超出类属性的值

时间:2018-06-11 21:15:46

标签: xml jaxb unmarshalling

我有一个Xml,我想将JAXB解组为Java类。每个班级都工作得非常好,除了班级"属性"其中包含"值"。我试图解组属性的值,它始终是一个不同的数据类型。有时值是String,有时是int或Double。我知道XML中有属性和元素,但是这个XML有一个实际的元素调用属性

<InstanceHierarchy Name="HMI">
    <InternalElement Name="name" RefBaseSystemUnitPath="somepath/" ID="123-45">
        <Attribute Name="Width" AttributeDataType="xs:Integer">
            <Value>800</Value>
        </Attribute>
    </InternalElement>
</InstanceHierarchy>

Hier是我的类属性:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "")
public class Attribute {

@XmlElement //here I have also tried @XMLValue
protected Value value;
@XmlAttribute(name = "Name")
protected String name;
@XmlAttribute(name = "AttributeDataType")
protected String attributeDataType;`

当我调试时,值始终为null(并且使用@XMLValue,值变量读取&#34; \ n \ t \ t \ t \ t&#34;)。

我必须事先说过我尝试了以下内容:

  1. 在属性类中,将Value定义为:

    @XMLValue
    protected String value;
    
  2. 我也试过@XMLElement并且仍然获得Value

    的空值
    @XmlElement(required = true)
    protected String value;
    
  3. 3.然后我决定创建一个Class&#34; Value&#34;并且以字符串形式仍然无法正常工作

    1. 所以我创建了一个全新的XML,名为&#34; Note.xml&#34;用于测试pourposes和I类可以完美解组。 &#34;属性&#34;仍然没有工作
    2. Note vs Attribute class

      有人可以帮助我从xml中获取价值吗?非常感谢你们!

      here the value of Attribute

0 个答案:

没有答案