我想知道如何在XSD文件中创建一个Object树。这有什么框架吗?
函数签名有点接近这个:
TreeSet<Object> convertToTree(File xsdFile);
所以你可以看到函数convertToTree
应该读取xsd文件并生成一个Tree集合。
有人可以发一些例子吗?
答案 0 :(得分:5)
如果您需要示例,请参阅generate JAXB classes from an XML schema file或
这样做:"%java_home%\bin\xjc" -p [package_name] [xsd_file].xsd
答案 1 :(得分:2)
您可以使用JAXB解决此问题。 据我所知,它甚至可以整合到Netbeans中。
在Netbeans中:
选择您的项目 - &gt;右键单击 - &gt;新
选择其他 - &gt;类别= XML; FileTypes = JAXB Binding
其余的应该是自我解释。
但是,如果您没有xsd定义的固定xml方案,但是您希望显示xsd文件定义的xml方案的结构,则可以执行以下操作:
由于xsd文件也始终是xml文件,因此您应该编写一个描述xsd文件的xsd文件。 (我确定已经有xsd文件的方案)。然后,您可以使用此上述xsd文件来编组和解组其他xsd文件。但我没有测试这个解决方案......
答案 2 :(得分:2)
JDK附带的'xjc'实用程序可以从命令行运行,将模式作为参数传递。它会生成代表模式结构的Java类。然后,您可以使用这些类将XML转换为Java表示并返回(请参阅JAXB和编组/解组)。
答案 3 :(得分:0)
在XML Schema Definition(xsd)中有一些elememnt类型,这些是在xsd文件中创建对象树时的根元素。
正如Kuldeep所说,这个xsd文件适用于JAXB(Java绑定的Java架构)和JavaBean类。这将使用setter和getter方法生成bean类,以从bean对象中检索数据。
例如,Example.xsd文件具有如下所述的结构。
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://www.project.com/folder/Example" xmlns:jxb="http://java.sun.com/xml/ns/jaxb" xmlns:vsi="http://www.project.com/folder/Example" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" jxb:version="1.0">
<xs:annotation>
<xs:appinfo>
<jxb:schemaBindings>
<jxb:package name="com.folder.jaxb.beans.example" />
</jxb:schemaBindings>
</xs:appinfo>
</xs:annotation>
然后使用propertys及其属性定义元素。
然后创建一个build.xml文件,该文件具有运行ant的脚本,然后使用xsd对象树生成新的bean类。
之后,您可以使用xml元素运行项目。