【发布时间】:2015-06-17 13:15:16
【问题描述】:
我需要基于 SQL Server 表生成 XML 文档。使用以下语法非常简单。
SELECT *
FROM MyTableName
WHERE name = 'Bob'
FOR XML PATH
我正在努力寻找一种方法来自动包含所有元素的数据类型,而无需手动修改 XML 并包含其他标签。
我希望 XML 属性反映在表定义中找到的数据类型。
【问题讨论】:
标签: sql-server xml types xsd
我需要基于 SQL Server 表生成 XML 文档。使用以下语法非常简单。
SELECT *
FROM MyTableName
WHERE name = 'Bob'
FOR XML PATH
我正在努力寻找一种方法来自动包含所有元素的数据类型,而无需手动修改 XML 并包含其他标签。
我希望 XML 属性反映在表定义中找到的数据类型。
【问题讨论】:
标签: sql-server xml types xsd
我通过使用 SQL Prompt 自动完成功能找到了答案。输入FOR XML RAW, 后,我探索了可以与它一起使用的其他选项。
结果我发现了以下两个可以与FOR XML RAW一起使用的选项
FOR XML RAW, XMLDATA
FOR XML RAW, XMLSCHEMA
我使用这些选项运行查询,并查看了输出生成的 xml 文档。在我意识到这是我一直在寻找的东西之后,我找到了文档https://msdn.microsoft.com/en-us/library/bb510461.aspx,其中解释了这两个选项以及如何使用它。
我稍微修改了我原来的查询,
SELECT *
FROM MyTableName
WHERE 1 = 0
FOR XML RAW, ELEMENTS, XMLSCHEMA
通过在 where 子句中包含 1=0,我只能生成没有任何数据的属性。现在我所要做的就是将输出复制到 notepad++ 并将其保存为 .xsd 文件。
【讨论】: