有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JaxB从XML到Java类的自动解析

我对jaxb一无所知。我的问题是:使用jaxb,是否可以实现从xml文件到java对象的自动映射? 从xml文件开始,是否有什么东西可以生成带有注释jaxb Relative的Java类


共 (2) 个答案

  1. # 1 楼答案

    这确实是可能的。但是,您需要的是XSD而不是XML文件。有一些工具(Trang,例如)可以从一个或多个示例XML文件推断XSD

    请注意,如果XML示例不完整,或者如果模式不能在单个XML文件(独占元素等)中完全表示,使用工具生成此XSD可能会得到不准确的结果

    一旦有了XSD,就可以使用^{}来生成封送器/解封器类

    xjc myxsd.xsd
    

    这将生成JAXB将用于编组/解编组的带注释类。注意,您也可以自己编写这些类。一旦拥有它们,只需在代码中使用它们:

    File file = new File("myFile.xml");
    JAXBContext jaxbContext = JAXBContext.newInstance(MyRootElement.class);
    Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
    MyRootElement element = (MyRootElement) jaxbUnmarshaller.unmarshal(file);
    
  2. # 2 楼答案

    是的,JAXB自动执行marshallingunmarshalling,但它需要一个架构文件。 JaxB用于将XML与Java对象绑定。它使用XSD模式文件进行编组和解编组。像XJC这样的简单ant任务很少可以使用