繁体   English   中英

如何在Java中从xsd创建对象树?

[英]How to create object tree from xsd in Java?

我想知道如何从XSD文件在Java中创建对象树。 有什么框架吗?

函数签名将与此接近:

TreeSet<Object> convertToTree(File xsdFile);

因此,您可以看到convertToTree函数应读取xsd文件并生成一个Tree集合。

有人也可以发表一些例子吗?

您可以选择使用JAXBXMLBean

如果需要示例,请参见从XML模式文件生成JAXB类,或者

这样做: "%java_home%\\bin\\xjc" -p [package_name] [xsd_file].xsd

您可以使用JAXB解决此问题。 据我所知,它甚至集成在Netbeans中。

在Netbeans中:

选择您的项目->右键单击->新建

选择其他->类别= XML; FileTypes = JAXB绑定

其余的应该自我解释。

但是,如果您没有xsd定义的固定xml方案,但是想要显示xsd文件定义的xml方案的结构,则可以执行以下操作:

由于xsd文件始终也是xml文件,因此您应该编写一个xsd文件来描述您的xsd文件。 (我确定已经有一个针对xsd文件的方案)。 然后,您可以如上所述使用此xsd文件对其他xsd文件进行封送。 但是我没有测试这个解决方案...

JDK附带了一个“ xjc”实用程序,您可以从命令行运行它,将模式作为参数传递。 它将生成代表架构结构的Java类。 然后,您可以使用这些类将XML转换为Java表示形式,然后再转换回Java表示形式(请参阅JAXB和封送/拆组)。

XML模式定义(xsd)中的XML具有一些元素类型,而这些是在xsd文件中创建对象树时的根元素。

正如Kuldeep所说,此xsd文件可与JAXB(用于XML绑定的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>

然后使用属性及其属性定义元素。

然后创建一个build.xml文件,该文件具有运行ant的脚本,然后使用xsd对象树生成一个新的bean类。

之后,您可以使用xml元素运行项目。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM