*Bài 4: XML * Bài 3: ADO.NET * Bài 2: Các ASP.NET Server Control*

25 thg 7, 2013

Bài 4: XML

1. TỔNG QUAN VỀ XML
1.1. GIỚI THIỆU XML

- XML (Extensible Markup Language) – một loại cơ sở dữ liệu dạng cây, được xây dựng bằng các tag giống HTML

- Là một thành phần quan trọng trong các tiến trình trao đổi dữ liệu

- Có thể xem xét một nguồn XML từ nhiều khía cạnh:

+ Một file text;

+ Một cấu trúc cây (tree);

+ Một tập các bảng dữ liệu.

1.2. TẠO XML DOCUMENT TRÊN VS.NET

- Chọn thư mục trên cửa sổ Solution Explorer

- Chọn Add New Item… từ menu Project

- Chọn Data trên cây Categories

- Chọn XML File trên danh mục Templates

- Nhập tên XML Document vào ô Name

- Nhấn Add



1.3. XML FILE

XMLFile1.xml



1.4. ĐỌC MỘT FILE XML

Sử dụng class XmlTextReader để đọc một file xml



Đoạn code này cho một bảng với các giá trị ở trang sau





Đọc Attribute của một Element

Đoạn code này cho res bằng “Type = TV”

1.5. GHI MỘT FILE XML


Sử dụng class XmlTextWriter


Hàm WriteSanPham



 Kết quả của hàm WriteTo


2. XML DOCUMENT
- Là cấu trúc cây của file xml

- Xét file Catalog1.xml


Có thể sử dụng các đối tượng XmlNode để đọc dữ liệu từ XmlDocument


Ví dụ: Đọc giá trị của các node dùng danh sách ChildNodes 


Ví dụ: Đọc giá trị của các node dùng FirstChild và NextSibling


Kết quả sau khi nhấn nút “Button”


3. MÔ HÌNH DATA CỦA XML DOCUMENT
3.1. CLASS XMLDATADOCUMENT

- Được kế thừa từ XmlDocument

- Có thêm thuộc tính DataSet


3.2. XML SCHEMA

- Là lược đồ dữ liệu của Xml Document

- Ví dụ schema của file Catalog1.xml: font-size:12.0pt;font-family:"Tahoma","sans-serif"'> 

- Có thêm thuộc tính DataSet


Ý nghĩa của các tag:


<xs:element name="Catalog">
Tên của DataSet

<xs:element maxOccurs="unbounded" name="SanPham">
DataTable “SanPham”

<xs:element name="SanPhamID" type="xs:unsignedByte" />
DataColumn “SanPhamID” có kiểu là unsignedByte.


3.3. ĐỌC DỮ LIỆU TỪ FILE XML

Có thể đọc dữ liệu từ file .xml vào DataSet của XmlDataDocument theo các bước sau:

- Tạo một reader kiểu FileStream (hoặc XmlTextReader) để đọc dữ liệu từ file .xml

- Gọi hàm ReadXmlSchema để đọc schema của file .xml

- Gọi hàm Load của XmlDataDocument để đọc dữ liệu từ reader

- Đóng reader t;font-family:"Courier New"'>"unbounded" name="SanPham">

DataTable “SanPham”

<xs:element name="SanPhamID" type="xs:unsignedByte" />
DataColumn “SanPhamID” có kiểu là unsignedByte.



3.4. TRUY VẤN DỮ LIỆU

Có thể đọc dữ liệu từ file .xml theo một điều kiện nào đó bằng các đối tượng

XPathDocument XPathNavigator (XPath namespace) theo các bước sau:
- Tạo đối tượng XPathDocument để mở file .xml

- Dùng hàm CreateNavigator của XPathDocument để tạo đối tượng XmlPathNavigator

- Dùng hàm Select của XPathNavigator để tạo ra một đối tượng XPathNodeIterator

+ Tham số của hàm Select là đường dẫn đến các node cần đọc kèm theo các điều kiện;

+ Dùng hàm MoveNext() của XPathNodeIterator để chuyển dần đến từng node. Khi chạy đến cuối danh sách hàm cho giá trị false;

+ Dùng thuộc tính Current của XPathNodeIterator để lấy node hiện tại.

Ví dụ: Đọc các node TenSanPham thuộc Loai=“TV” và cho hiện tên của chúng lên Responce



3.5. MÔ HÌNH CSDL QUAN HỆ

Xét file Catalog2.xml



- Khi tạo schema của file Catalog2.xml, một khóa mới với tên LoaiSP_Id sẽ được sinh ra và được điền vào bảng LoaiSP làm khóa chính (PK) và vào bảng SanPham làm khóa ngoại lai (FK)

- Mô hình thực thể liên kết thể hiện trên DataSet Editor của VS.2008 


4. TƯƠNG TÁC GIỮA XML VÀ DATASE


Ghi một XML Document từ truy vấn Database

- Dùng phương thức WriteXml của DataSet để ghi dữ liệu vào file .xml trên server

- Dùng phương thức WriteXmlSchema của DataSet để ghi schema vào file .xsd trên server

- Ví dụ:


Đọc dữ liệu từ một XML Document vào DataSet:

- Dùng phương thức ReadXml của DataSet để đọc dữ liệu từ file .xml trên server.

- Dùng phương thức ReadXmlSchema của DataSet để đọc schema từ file .xsd trên server.

- Ví dụ:


------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------



Không có nhận xét nào:

Đăng nhận xét

BACK TO TOP
Skype: vdtrungkt