185
Chương 5: XML
Để sử dụng XML serialization, trước hết bạn phải đánh dấu các đối tượng dữ liệu với các đặc
tính cho biết phép ánh xạ sang XML. Các đặc tính này thuộc không gian tên
System.Xml.Serialization
và bao gồm:
•
XmlRoot
—cho biết tên phần tử gốc của file XML. Theo mặc định,
XmlSerializer
sẽ sử
dụng tên của lớp. Đặc tính này có thể được áp dụng khi khai báo lớp.
•
XmlElement
—cho biết tên phần tử dùng cho một thuộc tính hay biến công khai. Theo
mặc định,
XmlSerializer
sẽ sử dụng tên của thuộc tính hay biến công khai.
•
XmlAttribute
—cho biết một thuộc tính hay biến công khai sẽ được tuần tự hóa thành
một đặc tính (không phải phần tử), và chỉ định tên đặc tính.
•
XmlEnum
—cấu hình phần text sẽ được sử dụng khi tuần tự hóa các giá trị liệt kê. Nếu
bạn không sử dụng
XmlEnum
, tên của hằng liệt kê sẽ được sử dụng.
•
XmlIgnore
—cho biết một thuộc tính hay biến công khai sẽ không được tuần tự hóa.
Ví dụ, xét danh mục sản phẩm đã được trình bày trong mục 5.1. Bạn có thể mô tả tài liệu
XML này bằng các đối tượng
ProductCatalog
và
Product
như sau:
using System;
using System.Xml.Serialization;
[XmlRoot("productCatalog")]
public class ProductCatalog {
[XmlElement("catalogName")]
public string CatalogName;
// Sử dụng kiểu dữ liệu ngày (bỏ qua phần giờ).
[XmlElement(ElementName="expiryDate", DataType="date")]
public DateTime ExpiryDate;
// Cấu hình tên thẻ.
[XmlArray("products")]
[XmlArrayItem("product")]
public Product[] Products;
public ProductCatalog() {
// Phương thức khởi dựng mặc định (dùng khi giải tuần tự hóa).
}
public ProductCatalog(string catalogName, DateTime expiryDate) {
this.CatalogName = catalogName;