如果您正在使用 Java 并且想要生成类,我强烈建议您使用XMLbeans。它带有一些不错的实用程序,包括:
inst2xsd:给定 xml ,它会生成 xsd
例子
inst2xsd -enumerations never message.xml
(将生成 xsd 文件并禁用任何相同类型的枚举)
scomp:将模式编译成jar文件,这意味着它会为你生成一个非常好的可重用库,如果你没有,它包含一个基于模式命名空间(或以noNamespace.something开头)的类(或多个类)在您的 XML 中定义任何
例子
scomp -jar yourschema mySchema.xsd
(创建xmltypes.jar - 这是您想要的 jar,只需将其重命名为聪明的名称,然后将其用于获取和设置、读取和写入值的双向解析)
最后,只需启动您的 java IDE 并为 scomp 创建的模式添加所有 xmlbeans JARS 和JAR
然后,您可以使用您的 xmldata 加载、创建、存储、操作,因为它只是您项目中的 java 对象;-)
基于您的小 XML 片段的元素,您将使用大致如下所示的代码进行访问:
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 CXF和Apache Axis2,它们可以轻松地从 SOAP XML 消息或 WSDL 生成 Java 类。