The DataSet Class
Với sự giới thiệu của ADỌNET và lớp DataSet, là công cụ tuyệt vời để xem dự liệu cả ở dạng quan hệ lẫn XML. Có nhiều phương thức trong lớp DataSet nư GetXml() hoặc WriteXml(). Mặc dù GetXml() chỉ đơn giản trả lại một chuỗi thể hiện cho dữ liệu XML, bạn có thể sử dụng WriteXml() để ghi XML đến các đối tượng khác nhau:
Streams
TextWriters
XmlWriters
Files
Nếu dữ liệu quan hệ cần được chuyển về cầu trúc DOM, trong thực tế việc chuyển dữ liệu quan hệ về cấu trúc DOM đơn giản như truyền DataSet trong XmlDataDocument's constructor:
XmlDataDocument doc = new XmlDataDocument(myDataSet);
SQL Server 2000
SQL Server 2000 cung cấp nhiều kỹ thuật để chuyển dữ liệu quan hệ sang XML. Khi bạn sử dụng chung
với .NET platform, bạn có thể sử dụng nhiều tính năng mạnh của cả haị Đầu tiên bạn có thể kết nối đến dữ liệu của SQL 2000 thông qua HTTP hơn ADỌNET. Thơng qua sử dụng URL, bạn có thể nạp dữ liệu trực tiếp vào XmlDocument hoặc XmlTextReader. Vịec này hồn tồn có khả năng bằng các hàm đặc biệt được tích hợp vào SQL Server 2000. Ví dụ, câu SQL này sẽ chuyển dữ liệu sang XML một cách tự động
SELECT * FROM Customers FOR XML AUTO
Nếu bạn cần xác định thành phần của XML một cách riêng biệt, thêm khoá ELEMENTS:
SELECT * FROM Customers FOR XML AUTO, ELEMENTS
Nếu bạn có như cầu sử dụng ADỌNET Connection Class để kết nối đến CSDL như thơng qua HTTP, bạn có thể
sử dụng phương thức ExecuteXmlReader() của lớp Command. Việcnày cho phép dẽ liệu XML được nạp trực tiếp
vào lớp XmlTextReader.
SQLXML Managed Classes
Các lớp XML mới của .NET dùng cho SQL Server 2000 cso thể sử dụng khi bạn cài đặt SQL Server 2000 Web Releasẹ Web Release bao gồm Microsoft.DatạSqlXml namespace (bao gồm các lớp
SqlXmlCommand, SqlXmlParameter, và SqlXmlAdapter) cho phép bạn sử dụng để kết nối đến CSDL và xem XML được xuất. Ví dụ:
SqlXmlCommand cmd = new SqlXmlCommand(connString); cmd.CommandText = ''Customer'';
cmd.RootTag = ''Customers'';
cmd.SchemaPath = ''customersSchemạxml''; DataSet ds = new DataSet();
SqlXmlAdapter adapter = new SqlXmlAdapter(cmd); adapter.Fill(ds);