188
Chương 5: XML
}
10.
10.
T o XML Schema cho m t l p .NET
ạ
ộ ớ
T o XML Schema cho m t l p .NET
ạ
ộ ớ
Bạn cần tạo một XML Schema dựa trên một hay nhiều lớp C#. Điều này cho
phép bạn kiểm tra tính hợp lệ của các tài liệu XML trước khi giải tuần tự hóa
chúng với
XmlSerializer
.
Sử dụng tiện ích dòng lệnh XML Schema Definition Tool (xsd.exe—đi kèm với
.NET Framework). Chỉ định tên của assembly làm đối số dòng lệnh, và thêm đối
số
/t:[TypeName]
để cho biết kiểu cần chuyển đổi.
Mục 5.9 đã trình bày cách sử dụng
XmlSerializer
để tuần tự hóa đối tượng .NET thành XML,
và giải tuần tự hóa XML thành đối tượng .NET. Nhưng nếu muốn sử dụng XML như một
phương cách để tương tác với các ứng dụng khác, quy trình nghiệp vụ, hay các ứng dụng phi-
Framework, bạn sẽ cần xác nhận tính hợp lệ của XML trước khi giải tuần tự hóa nó. Bạn cũng
sẽ cần tạo một tài liệu XML Schema định nghĩa cấu trúc và các kiểu dữ liệu được sử dụng
trong định dạng XML của bạn, để các ứng dụng khác có thể làm việc với nó. Một giải pháp là
sử dụng tiện ích dòng lệnh xsd.exe.
Tiện ích xsd.exe đi kèm với .NET Framework. Nếu đã cài đặt Microsoft Visual Studio .NET,
bạn sẽ tìm thấy nó trong thư mục C:\Program Files\Microsoft Visual Studio
.NET\FrameworkSDK\Bin. Tiện ích xsd.exe có thể tạo ra XML Schema từ một assembly đã
được biên dịch. Bạn chỉ cần cung cấp tên file và cho biết lớp mô tả tài liệu XML với đối số
/t:[TypeName]
.
Ví dụ, xét các lớp
ProductCatalog
và
Product
đã được trình bày trong mục 5.9. Bạn có thể tạo
XML Schema cho một danh mục sản phẩm với dòng lệnh sau:
xsd 05-09.exe /t:ProductCatalog
Bạn chỉ cần chỉ định lớp
ProductCatalog
trên dòng lệnh, vì lớp này mô tả tài liệu XML. XML
Schema được tạo ra trong ví dụ này (có tên mặc định là schema0.xsd) sẽ mô tả đầy đủ một
danh mục sản phẩm, với các item sản phẩm lồng bên trong. Bây giờ, bạn có thể sử dụng
XmlValidatingReader
(đã được trình bày trong mục 5.8) để kiểm tra tính hợp lệ của tài liệu
XML dựa vào XML Schema này.
11.
11.
T o l p t m t XML Schema
ạ ớ ừ ộ
T o l p t m t XML Schema
ạ ớ ừ ộ
Bạn cần tạo một hay nhiều lớp C# dựa trên một XML Schema; để sau đó, bạn có
thể tạo một tài liệu XML theo định dạng phù hợp bằng các đối tượng này và
XmlSerializer
.
Sử dụng tiện ích dòng lệnh xsd.exe (đi kèm với .NET Framework). Chỉ định tên
file Schema làm đối số dòng lệnh, và thêm đối số
/c
để cho biết bạn muốn tạo mã
lệnh cho lớp.