Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用xsd模式和sql查询的输出生成xml_Java_Xml_Xsd - Fatal编程技术网

Java 使用xsd模式和sql查询的输出生成xml

Java 使用xsd模式和sql查询的输出生成xml,java,xml,xsd,Java,Xml,Xsd,在Java应用程序中,我需要基于XSD模式生成XML。生成的XML将包含SQL查询返回的数据。 任何使用过的库都应该与JBoss EAP6兼容,可能还有更旧的版本 有人建议使用ApacheXalanLibs,但我找不到一个好的起点 有人做过类似的事情吗?如果我是你,我会使用JAXB api根据sql查询的输出创建xml输出。JAXB api是J2EE标准之一,它们是与许多容器最可能兼容的api 我没有看到您的代码,但我建议使用以下解决方案: 您可以使用ORM框架,也可以只使用纯JDBC。将数据从

在Java应用程序中,我需要基于XSD模式生成XML。生成的XML将包含SQL查询返回的数据。 任何使用过的库都应该与JBoss EAP6兼容,可能还有更旧的版本

有人建议使用ApacheXalanLibs,但我找不到一个好的起点


有人做过类似的事情吗?

如果我是你,我会使用JAXB api根据sql查询的输出创建xml输出。JAXB api是J2EE标准之一,它们是与许多容器最可能兼容的api

我没有看到您的代码,但我建议使用以下解决方案:

您可以使用ORM框架,也可以只使用纯JDBC。将数据从DB提取到内存后,必须将它们保存在一些类似Bean的类实例中

另一方面,您应该为XSD生成映射类。这通常是使用JAXB命令行工具或IDE工具(在后台使用该命令行工具)来完成的。我建议使用IntellijIDEA或EclipseJAXB工具

Intellij: 例如,如果您有一个CustomerOrders.xsd文件,您可以将其放置在一个包中,然后通过右键单击它,从webservices子菜单中选择“使用JAXB从xml模式生成java代码…”。然后会出现一个对话框来选择输出路径等。您可以在下图中看到这一点:

你使用哪种工具并不重要。最后,他们将为XSD映射创建一个或多个java类。这些类必须存储在代码可以在运行时访问的包或文件夹中。然后,您唯一的工作就是将数据持有者bean实例转换为该生成类的实例。之后,JAXB将根据您通过api的命令将它们封送到XML格式的字符串或文件中

使用JAXB api的示例代码如下:

try 
{
    CustomerType data = new CustomerType(); // This is a mapping class generated by jaxb tools.
                                            // You should convert your fetched data from DB to this type.
                                            // This object is the root object of your xml output file. 
                                            // Maybe you have some other child level classes under this object
                                            //    which creates your nested tags of your output xml data.
    Marshaller marshaller = JAXBContext.newInstance().createMarshaller();
    marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); // this is for formatting the output xml data
    marshaller.marshal(data, new File("Wherever you want to save!"));
} 
catch (JAXBException e) 
{
    e.printStackTrace();
}
希望这会有所帮助


祝你好运。

如果我是你,我会使用JAXB api根据sql查询的输出创建xml输出。JAXB api是J2EE标准之一,它们是与许多容器最可能兼容的api

我没有看到您的代码,但我建议使用以下解决方案:

您可以使用ORM框架,也可以只使用纯JDBC。将数据从DB提取到内存后,必须将它们保存在一些类似Bean的类实例中

另一方面,您应该为XSD生成映射类。这通常是使用JAXB命令行工具或IDE工具(在后台使用该命令行工具)来完成的。我建议使用IntellijIDEA或EclipseJAXB工具

Intellij: 例如,如果您有一个CustomerOrders.xsd文件,您可以将其放置在一个包中,然后通过右键单击它,从webservices子菜单中选择“使用JAXB从xml模式生成java代码…”。然后会出现一个对话框来选择输出路径等。您可以在下图中看到这一点:

你使用哪种工具并不重要。最后,他们将为XSD映射创建一个或多个java类。这些类必须存储在代码可以在运行时访问的包或文件夹中。然后,您唯一的工作就是将数据持有者bean实例转换为该生成类的实例。之后,JAXB将根据您通过api的命令将它们封送到XML格式的字符串或文件中

使用JAXB api的示例代码如下:

try 
{
    CustomerType data = new CustomerType(); // This is a mapping class generated by jaxb tools.
                                            // You should convert your fetched data from DB to this type.
                                            // This object is the root object of your xml output file. 
                                            // Maybe you have some other child level classes under this object
                                            //    which creates your nested tags of your output xml data.
    Marshaller marshaller = JAXBContext.newInstance().createMarshaller();
    marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); // this is for formatting the output xml data
    marshaller.marshal(data, new File("Wherever you want to save!"));
} 
catch (JAXBException e) 
{
    e.printStackTrace();
}
希望这会有所帮助


祝你好运。

谢谢你,我会试试的!关于汉克斯·斯泰菲,我要试一试!关于汉克斯·斯泰菲,我要试一试!Regardsy您应该使用此API:您应该使用此API:您应该使用此API: