181
Chương 5: XML
public bool ValidateXml(string xmlFilename, string schemaFilename) {
// Tạo validator.
XmlTextReader r = new XmlTextReader(xmlFilename);
XmlValidatingReader validator = new XmlValidatingReader(r);
validator.ValidationType = ValidationType.Schema;
// Nạp Schema vào validator.
XmlSchemaCollection schemas = new XmlSchemaCollection();
schemas.Add(null, schemaFilename);
validator.Schemas.Add(schemas);
// Thiết lập phương thức thụ lý sự kiện validation.
validator.ValidationEventHandler +=
new ValidationEventHandler(ValidationEventHandler);
failed = false;
try {
// Đọc tất cả dữ liệu XML.
while (validator.Read())
{}
}catch (XmlException err) {
// Điều này xảy ra khi tài liệu XML có chứa ký tự bất
// hợp lệ hoặc các thẻ lồng nhau hay đóng không đúng.
Console.WriteLine("A critical XML error has occurred.");
Console.WriteLine(err.Message);
failed = true;
}finally {
validator.Close();
}
return !failed;
}
private void ValidationEventHandler(object sender,
ValidationEventArgs args) {