从xml feed中与JAXB解组时,所有值都为null

时间:2019-03-18 13:07:15

标签: java jaxb

xml提要由根提要元素组成:

<feed xmlns="http://www.w3.org/2005/Atom" xmlns:g="http://base.google.com/ns/1.0">   
 <g:title>Example Feed</g:title> ...

和子条目。 feed的每个元素以及条目均以'g:'命名空间作为前缀:

<xs:schema targetNamespace="http://www.w3.org/2005/Atom"
       elementFormDefault="qualified"
       attributeFormDefault="unqualified"
       xmlns:atom="http://www.w3.org/2005/Atom"
       xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="feed" type="atom:feedType" xmlns:atom="http://www.w3.org/2005/Atom" />
<xs:complexType name="entryType">
<xs:sequence>
  <xs:element name="id" type="xs:string"/>

我使用xjc生成了xsd,但是所有元素都带有'xs:'。

我只是尝试通过以下方式解组xml:

  JAXBContext jc =  JAXBContext.newInstance("com.example.productfeed.generated");

        Unmarshaller unmarshaller = jc.createUnmarshaller();

        URL url = new URL("the url");
        InputStream xml = url.openStream();
        JAXBElement<FeedType> feed = unmarshaller.unmarshal(new StreamSource(xml), FeedType.class);

对象层次结构是正确的FeedType,其中包含EntryType数组,但feed和entry的所有属性均为空。我想它必须与g:和xs:命名空间有关,但不知道如何解决它。

0 个答案:

没有答案