如何解组单个String元素(jaxb)?

时间:2017-01-15 10:00:52

标签: java xml xsd jaxb

这是我的xsd计划:

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://gov.com/oos/types/1" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="id" type="xs:int"/>
  <xs:element name="sum" type="xs:int"/>
  <xs:element name="docPublishDate" type="xs:dateTime"/>
  <xs:element name="href" type="xs:anyURI"/>
  <xs:element name="printForm">
    <xs:complexType>
      <xs:sequence>
        <xs:element type="xs:anyURI" name="url"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

如何获得名为“id”的元素? ()

//我已经从xsd

创建了类
JAXBContext jaxbContext = JAXBContext.newInstance(ObjectFactory.class);
            Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
            JAXBElement<int> jaxbElement = unmarshaller.unmarshal(source, ...

我不知道接下来该做什么?如何获得原始类型的价值。到处都给我一个如何获得类复杂类型的指令?但不是单个元素,如int或string。请帮忙

1 个答案:

答案 0 :(得分:0)

在您的ObjectFactory中,您可能有idJAXBElement<Integer>或类似的地图。

所以你应该能够

JAXBElement<Integer> idElement = unmarshaller.unmarshal(source, ...);

然后

Integer id = idElement.getValue();