In diesen Tagen haben viele SQL-Motoren die Möglichkeit, Abfrageergebnisse automatisch als XML formatiert zu erzeugen. Zum Beispiel bietet Microsoft SQL Server einen sehr einfachen Modus, unten ist ein Auszug aus der 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
A erzeugte XML aussehen kann:
<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>
...
könnte Sie dieses Skript, um die XML-Fragmente nach Bedarf oder andere zusätzliche Logik zu verarbeiten. Wenn Sie Skripterstellung erhalten, besteht ein weiterer einfacher Ansatz, bei dem ein Skript ausgeführt wird (C# unter Windows), darin, ein ADO.NET-DataSet mit einer Art von Abfrage zu laden, die die gewünschten Daten darstellt, und dann das ADO.NET zu serialisieren in eine XML-Datei.
Dieses Skript:
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);
}
}
}
}
eine XML mit dieser Struktur führen wird:

Wenn Ihre Datenbank nicht diese Funktion nicht unterstützt, oder Sie eine andere Lösung, und Wenn Ihr XML einem vorgeschriebenen XSD folgen muss, dann könnte ich für QTAssistant sprechen (ich bin damit verbunden), das diese Funktion für eine geraume Zeit hat; Es heißt XML-Builder und verwendet im Grunde eine XML-Map zwischen einem XSD und einer Reihe von SQL-Statements, die so strukturiert sind, dass sie der hierarchischen Natur eines XML-Dokuments entsprechen.
Wenn Sie sich entscheiden, es auszuprobieren, müssen Sie sich zuerst registrieren, um das Tool herunterzuladen; Die eingebettete Hilfe enthält eine Schritt-für-Schritt-Anleitung zum Einrichten der Demo, da sie mit einem funktionierenden Beispiel unter dem Thema Module> XML Builder> Beispiele> Rekursives Beispiel geliefert wird. Das Beispiel erfordert eine Version von Microsoft SQL Server, aber es könnte mit jeder anderen Datenbank funktionieren, für die ein OLEDB-Anbieter auf Ihrem Computer installiert ist, einschließlich Excel oder Access.
Wenn interaktiv, das ist, wie die geladene Probe wie folgt aussieht:
