如何在一个列表(jaxbObj.getAoAndBo())下有两个元素时获取正确的jaxb对象?

时间:2013-10-08 14:25:39

标签: java jaxb xsd

我正在使用Java和JAXB来解析xml文件。 我有一个架构(xsd),其中包含包含两个内部序列元素的secquence元素。

xsd类似于以下内容:

...
  <xs:element name="product_list">
    <xs:complexType>
      <xs:sequence minOccurs="1" maxOccurs="unbounded">
        <xs:element maxOccurs="unbounded" name="product">
          <xs:complexType>
            <xs:sequence />
            <xs:attribute name="name" type="xs:string" use="required" />
            <xs:attribute name="release" type="xs:string" use="required" />
          </xs:complexType>
        </xs:element>
        <xs:element maxOccurs="unbounded" name="info">
    ...
    </xs:complexType>
  </xs:element>
</xs:schema>

解组后,当我想获取“产品”列表时,我得到:

product_list.getProductsAndInfo()   => type: List<Object>

如何从“产品”对象获取信息? (例如product_list.getProduct)

1 个答案:

答案 0 :(得分:0)

要获取所需的对象信息,需要在对象列表上使用强制转换,例如:

ProductList pl = new ProductList(); // xml主对象/元素 pl = unmarshallfunc(); ((ProductList.Product)pl.getProductAndInfo()得到(0)。)的getName(); // type:List cast to Product。