将存储在表中的数据插入XMLspy? (用于运行数据诊断,稍后)

时间:2012-04-13 05:37:31

标签: xml xsd dtd xml-dtd

我有很多数据表,我需要对表(它们的数据)运行诊断程序,因此,我想将数据插入XMLspy,并为表生成xml文件。可能吗 ?也许与Oxygen

我试图寻找可以执行以下操作的特定教程,但找不到任何:

以一个简单的表格为例,其中包含几行和几行。列,所以我想把它的值

在XMLspy中,然后生成XML文件。

是否可以使用该程序输入值并最终生成

一个XML文件?如果是这样,你能指导我到网站/教程吗?

此致

1 个答案:

答案 0 :(得分:1)

现在,许多SQL引擎都能够自动生成格式化为XML的查询结果。例如,Microsoft SQL Server提供了一种非常简单的模式,下面是Online Books的摘录。

SELECT Cust.CustomerID, 
       OrderHeader.CustomerID,
       OrderHeader.SalesOrderID, 
       OrderHeader.Status,
       Cust.CustomerType
FROM Sales.Customer Cust, Sales.SalesOrderHeader OrderHeader
WHERE Cust.CustomerID = OrderHeader.CustomerID
ORDER BY Cust.CustomerID
FOR XML AUTO

生成的XML可能如下所示:

<Cust CustomerID="1" CustomerType="S">
  <OrderHeader CustomerID="1" SalesOrderID="43860" Status="5" />
  <OrderHeader CustomerID="1" SalesOrderID="44501" Status="5" />
  <OrderHeader CustomerID="1" SalesOrderID="45283" Status="5" />
  <OrderHeader CustomerID="1" SalesOrderID="46042" Status="5" />
</Cust>
...

您可以编写脚本,根据需要处理XML片段,或任何其他附加逻辑。

如果你使用脚本,另一个涉及一些脚本(Windows上的C#)的简单方法是使用某种代表所需数据的查询加载ADO.NET DataSet,然后将ADO.NET序列化为一个XML文件。

这个脚本:

using System;
using System.Data;
using System.Data.OleDb;
class Script
{
    public static void Main()
    {
        using(OleDbConnection cn = new OleDbConnection("Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=NORTHWIND;Integrated Security=SSPI"))
        {
            using (OleDbDataAdapter adapter = new OleDbDataAdapter("select EmployeeID, LastName, FirstName, Title from Employees", cn))
            {
                DataSet d = new DataSet("Customers");
                adapter.Fill(d, "Customer");
                d.WriteXml(@"c:\temp\MyXml.xml", XmlWriteMode.IgnoreSchema);
            }
        }
    }
}

将产生具有以下结构的XML:

QTAssistant XML diagram

如果您的数据库不支持此功能,或者您更喜欢其他解决方案,并且如果您的XML必须遵循规定的XSD ,那么我可以代表QTAssistant(我是与之相关的)具有此功能已有相当长的一段时间;它被称为XML Builder,它基本上使用XSD和一组SQL stataments之间的XML映射,其结构与XML文档的层次结构特性相匹配。

如果您决定试用,则必须先注册才能下载该工具;嵌入式帮助有关于如何设置演示的分步指南,因为它带有一个正常运行的示例,模块&gt; XML Builder&gt;样品&gt;递归示例主题。该示例需要一个版本的Microsoft SQL Server,但它可以与您的计算机上安装了OLEDB提供程序的任何其他数据库一起使用,包括Excel或Access。

交互式时,这就是加载样本的样子:

QTAssistant XML Builder Module