我们有一个XSD,并且我们想要一种根据XSD以xml格式导出数据的方式。数据现在在SQL数据库中,但我们没有问题使用mysql或其他数据库格式。我们需要映射XSD和表格数据以便以xml格式导出它们。如何将数据从数据库导出到xml根据XSD
回答
得到与早餐菜单
CREATE TABLE Menus
(name varchar(255)
,price numeric(12,4)
,description varchar(1500)
,calories int);
--insert用来定义导出一些测试数据
Insert Into Menus Values ('eggs',22.22,'test description eggs',333);
Insert Into Menus Values ('steak',22.22,'test description steak',333);
Insert Into Menus Values ('big side of bacon',22.22,'test description bacon',333);
Insert Into Menus Values ('huge side of bacon',22.22,'test description more bacon',333);
Insert Into Menus Values ('OMG BACON!',22.22,'test description oh man, more bacon',333);
XSD架构这个from here
- 创建测试表
<?xml version="1.0"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="breakfast_menu">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="food">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="name" type="xs:string" />
<xs:element minOccurs="0" name="price" type="xs:string" />
<xs:element minOccurs="0" name="description" type="xs:string" />
<xs:element minOccurs="0" name="calories" type="xs:unsignedShort" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
- SQL生成文件
DECLARE @MenuSchema XML
SET @MenuSchema = (
SELECT * FROM OPENROWSET
(BULK 'C:\Menu.xsd', SINGLE_CLOB)
AS xmlData)
--create the schema for using later in the XML type
CREATE XML SCHEMA COLLECTION MenuSchema AS @MenuSchema;
DECLARE @xmlData XML (MenuSchema)
SET @xmlData =
(SELECT
[name]
,price
,[description]
,calories
FROM
dbo.Menus [food]
FOR XML AUTO, ROOT ('breakfast_menu'), ELEMENTS)
SELECT @xmlData
这将只在非常简单的情况下工作,但我投了它,因为它显示了一些原则... – Shnugo
如果您的XSD是“只属性”或“仅元素”可能是足够使用SELECT ... FOR XML AUTO
带或不带ELEMENTS
。
在大多数情况下 - 至少在我的工作中 - 我已经处理混合XML。
有 - AFAIK - 没有自动的方式告诉SQL Server:“嘿,这里是一个查询,这里是一个XSD,去准备拟合的XML输出!
您必须创建一个SELECT ... FOR XML PATH()
,您可以通过这种方式定义输出适合您的XSD。
然后,您使用给定的模式声明XML变量并尝试填充输出。这将起作用 - 或不。这是模式验证...
如果您发现自动创建此方法,请发表评论,thx!
是的,我同意这一点。我也使用相同的。使用XML路径导出并使用C#编写的应用程序进行验证。但OP没有添加太多的细节,所以我做了如下的答案。 +1的解释; – Backtrack
- 1. 如何将数据从Hadoop导出到MySQL /任何数据库?
- 2. 从SQL Server数据库生成XSD以便导入XML数据
- 3. 如何将数据从SQL数据库导出到MS Excel中
- 4. 如何将数据从csv文件导出到mysql数据库?
- 5. 从数据库导出数据到HTML?
- 6. 如何从XSD模式构建数据库并导入XML数据
- 7. 将数据库中的数据导出到XML文件
- 8. 如何将数据从eXist数据库导入PostgreSQL数据库?
- 9. 将数据从Access导入/导出到远程MySQL数据库
- 10. 想要将数据从XML导入到SQLite数据库
- 11. Symfony2如何将数据库数据导出到csv
- 12. 将SQL Server数据从一个数据库导出到另一个数据库
- 13. 如何将数据库结构从数据库导出到迁移文件中?
- 14. 如何将XML数据库导入HBASE
- 15. 根据XSD模式验证BaseX XML数据库
- 16. 从xml导入数据库
- 17. 获取空指针异常将数据从数据库导出到xml
- 18. 使用ClosedXML将数据从excel导出到数据库表
- 19. 使用php将数据从数据库导出到csv文件
- 20. 将数据从BigQuery导出到本地PostgreSQL/MySql数据库
- 21. CodeIgniter:将数据从数据库导出到Excel中并下载
- 22. 将数据从MSSQL导出到H2数据库
- 23. 将数据从电源点导出到数据库
- 24. Wordpress使用$ wpdb将数据从数据库导出到csv
- 25. 将数据导入或导出到Excel到Oracle数据库
- 26. 如何将数据从mysql数据库导入到datagridview
- 27. 如何将数据从postgres数据库导入到android sqlite
- 28. Microsoft SQL Server:如何从数据库导出数据并将它们导入到另一个数据库?
- 29. 从Oracle数据库导出大数据
- 30. 从数据库导出数据
嗨亚历克斯,有一个很好的教程:http://wiki.lessthandot.com/index.php/Table_to_XML_using_SCHEMA_from_XSD – Backtrack