首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XML数据建模工具

XML数据建模工具
EN

Stack Overflow用户
提问于 2012-10-31 09:49:33
回答 1查看 1K关注 0票数 0

我想从我为Java应用程序编写的XML创建模型类。有什么好工具可以从我正在编写的XML中转换自动生成的类?我的XML文件中的一个示例。

代码语言:javascript
复制
  <list name="NameValuePairListDefinition">
    <member target="NameValuePair" />
  </list>

  <structure name="PositiveIntegerList">
    <member name="list" target="PositiveIntegerListDefinition" />
  </structure>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-31 10:11:00

如果你正在使用Java并且想要生成类,我强烈建议你使用XMLbeans。它附带了一些很好的实用程序,包括:

  • inst2xsd:给定xml,它将生成xsd

示例inst2xsd -enumerations never message.xml

(将生成xsd文件并禁用任何相同类型的枚举)

  • scomp:将模式编译成一个jar文件,这意味着它将为您生成一个非常好的可重用的库,其中包含一个(或多个)基于模式的名称空间的类(或以noNamespace.something开头)(如果您没有在XML中定义任何名称空间的话

示例

scomp -jar yourschema mySchema.xsd

(它创建xmltypes.jar -这是您想要的jar,只需将其重命名为更聪明的名称,并将其用于双向解析以获取和设置、读取和写入values)

  • lastly,只需启动java集成开发环境,然后为由scomp

创建的模式添加所有的xmlbeans JAR和JAR

然后,您可以加载、创建、存储、操作xmldata,就像它只是项目中的java对象一样;-)

根据您的XML小片段的元素,您将使用大致如下所示的代码进行访问:

代码语言:javascript
复制
 MyModel myModel = null;
 try {
    //full path to XML file
    File modelXML = new File("Model.xml");

    // Bind the incoming XML to an XMLBeans type.
    myModel = MyModel.Factory.parse(modelXML);
 } 
 catch (XmlException e) { e.printStackTrace(); } 
 catch (IOException e) { e.printStackTrace(); }
 catch (FileNotFoundException e) { e.printStackTrace();  }

 // Using the <structure> element.
 Structure structure = myModel.getStructure();
 Member member = structure.getMember();
 String target = member.getTarget(); // "PositiveIntegerListDefinition" 

注意:我还建议使用不是保留的Java关键字的元素名称,例如list,我不太确定XMLBeans将如何处理它,但我假设它会稍微重命名,而不是重载。

这里有一个可以派上用场的完整教程:http://xmlbeans.apache.org/documentation/tutorial_getstarted.html

我假设您使用简单的直接XML调用或基于REST的Web服务,但是如果您决定使用更冗长的东西,比如SOAP,那么还有Apache CXFApache Axis2,它们可以很容易地从SOAP XML消息或WSDL生成Java类。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13150166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档