mysql - 让 MS SQL 2008 像 MySQL 5.0 一样生成 XML?

标签 mysql xml sql-server-2008

不久前,我编写了一个应用程序,该应用程序依赖于来自 MySQL 5.0 数据库的 XML。它通过调用 mysql 获得此 XML 输出。直接客户端,使用--xml命令行选项;这使得 MySQL 输出 XML 看起来像这样:

<resultset statement="SELECT * FROM tablename " 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <row>
        <field name="some_int">2</field>
        <field name="some_varchar">a string</field>
    </row>
</resultset>

现在我正在尝试切换到 MS SQL 2008。我的表已移植正常,客户端几乎可以调用任何它想要的内容,所以没有问题。我的问题是让 MS SQL 输出预期的 XML - 有没有一种简单的方法来生成相同的结构?

到目前为止,我已经查看了 FOR XML SELECT 中的选项声明,它似乎非常接近我想要做的事情(使用 PATH 变体),但有一个小调整:它不输出 <field>不再使用标签,而是使用列名来命名标签,因此上面的 XML 变为:

<row>
    <some_int>2</some_int>
    <some_varchar>a string</some_varchar>
</row>

(请注意,<resultset> 标签也消失了;这不是一个大问题,但如果 MS SQL 也可以生成它,那就加分了。)

除了编写我自己的 XML 生成器之外,有什么简单的方法可以从 MS SQL 获得与 MySQL 生成的相同的 XML 结构?理想情况下,我想使用 FOR XML 的任意组合在 SELECT , sqlcmd ,或osql生成正确文本的命令 - 不必很漂亮。

编辑:我正在运行的语句非常简单 SELECT * FROM tablename .

最佳答案

我认为最好的方法是使用 XSD。要将其转换为相同的格式,您必须自己进行一些操作,但您可以轻松地将数据以 XML 形式获取。

http://msdn.microsoft.com/en-us/library/aa258637(SQL.80).aspx

关于mysql - 让 MS SQL 2008 像 MySQL 5.0 一样生成 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2360511/

相关文章:

mysql - PHP MYSQL Solr 自动更新

javascript - 如何将xml文档对象转换为字符串?

c# - 如何逃避正斜杠?

sql-server - SQL Server - 使用带引号的标识符 ON 和 OFF 以及 Getdate()

sql - 查看或用户定义的函数?

java - org.springframework.dao.DataAccessResourceFailureException

java - MySQL wampserver 数据库日期格式

mysql - 有效日期时间值的奇怪 MySQL 警告 1264

xml - 在R中的<td>元素内解析<br>

xml - 骡子相同的有效载荷在不同的条件下以不同的格式显示在记录器中