CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 184

184
Chương 5: XML

XmlSchemaCollection schemas = new XmlSchemaCollection();

schemas.Add(null, "ProductCatalog.xsd");

validator.Schemas.Add(schemas);

// Nạp và kiểm tra tài liệu cùng một lúc.

try {

doc.Load(validator);

// (Validation thành công.)

}catch (XmlSchemaException err) {

// (Validation thất bại.)

}

9.

9.

S d ng XML Serialization v i các đ i t

ng tùy bi n

ử ụ

ố ượ

ế

S d ng XML Serialization v i các đ i t

ng tùy bi n

ử ụ

ố ượ

ế

Bạn cần sử dụng XML như một định dạng tuần tự hóa (serialization format). Tuy
nhiên, bạn không muốn xử lý XML
trực tiếp trong mã lệnh, mà muốn tương tác
với dữ liệu bằng các đối tượng tùy biến.

Sử dụng lớp

System.Xml.Serialization.XmlSerializer

để chuyển dữ liệu từ đối

tượng của bạn sang XML, và ngược lại. Bạn cũng có thể đánh dấu mã lệnh của
lớp bằng các đặc tính để tùy biến biểu diễn XML
của nó.

Lớp

XmlSerializer

cho phép chuyển các đối tượng thành dữ liệu XML, và ngược lại. Lớp này

đủ thông minh để tạo đúng các mảng khi nó tìm thấy các phần tử lồng bên trong.
Các yêu cầu khi sử dụng

XmlSerializer

:

XmlSerializer

chỉ tuần tự hóa các thuộc tính và các biến công khai.

Các lớp cần tuần tự hóa phải chứa một phương thức khởi dựng mặc định không có đối
số.

XmlSerializer

sẽ sử dụng phương thức khởi dựng này khi tạo đối tượng mới trong

quá trình giải tuần tự hóa.

Các thuộc tính của lớp phải là khả-đọc (readable) và khả-ghi (writable). Đó là vì

XmlSerializer

sử dụng hàm truy xuất thuộc tính get để lấy thông tin và hàm truy xuất

thuộc tính set để phục hồi dữ liệu sau khi giải tuần tự hóa.

Bạn cũng có thể lưu trữ các đối tượng theo định dạng dựa-trên-XML bằng cách
sử dụng .NET Serialization

System.Runtime.Serialization.Formatters.Soap.

SoapFormatter

. Trong trường hợp này, bạn chỉ cần làm cho lớp của bạn trở

thành khả-tuần-tự-hóa, không cần cung cấp phương thức khởi dựng mặc định
hay bảo đảm tất cả các thuộc tính là khả ghi. Tuy nhiên, cách này không cho bạn
quyền kiểm soát trên định dạng XML
đã-được-tuần-tự-hóa.

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.