xml的java类表示

时间:2012-06-27 06:55:26

标签: java xml

  

可能重复:
  What is the best/simplest way to read in an XML file in Java application?

我有一个像这样的xml:

<Root>
   <Commodity>
       <Which name="Book" />
       <Book name="harley" price="5" />
       <Book name="Marley" price="8" />
       <Book name="hampi" price="10" />
   </Commodity>
   <Item>
      <Commodity>
         <Which name="fiction" />
         <Book name="harley" price="5" />
         <Book name="Marley" price="8" />
         <Book name="hampi" price="10" />
      </Commodity>
      <Item>
         <Commodity>
            <Which name="thriller" />
            <Book name="hjhj" price="5" />
            <Book name="ccvcv" price="8" />
            <Book name="vcvnnn" price="10"/>
         </Commodity>
      </Item>
   </Item>
</Root>

我觉得这是一个非常复杂的xml结构,因为它有一个嵌套标签。有没有办法为结构生成java类?

3 个答案:

答案 0 :(得分:3)

如果您有XSD或DTD,则可以使用JAXB轻松创建文档的表示。

如果您没有架构定义,我建议您编写它。无论如何,它很快就会派上用场。只要您尝试验证文档或与任何人共享您的格式。

BTW,这不是一个复杂的XML文档;)

答案 1 :(得分:1)

虽然我完全同意@Tom关于架构的必要性,但有时这是一种过度杀伤力。您可以使用快速简单的OXM框架,如XStream。见http://x-stream.github.io/

答案 2 :(得分:0)

请注意,XSD(或其他模式)仅对直接子项提供约束。因此,不清楚对于Item还是无限只有两个嵌套级别。如果是前者,你将不得不手动编写代码 - 模式不会为你做。

从文档语料库中推导出模式是一项非常艰巨的任务。

我还评论说,嵌套使用Item不太可能是指示Item的多个属性的有用方法。