<?xml version=”1.0” encoding=”utf-8”?>
<xs:schema elementFormDefault=”qualified”xmlns:xs=”http://www.w3.org/2001/XMLSchema”>
<xs:element name=”Book” >
<xs:complexType >
<xs:sequence>
<xs:element name=”Title” type=”xs:string”/>
<xs:element name=”Author” type=”xs:string”/>
</xs:sequence>
<xs:attribute name=”PublishYear” type=”xs:gYear” />
</xs:complexType>
</xs:element>
</xs:schema>
假设Schema的文件名是XmlBookSchema.xsd
const string sourceXml = “<?xml version=’1.0’?>” + “<Book PublishYear=\”2009\”>” + “<Author>Billy Bob</Author>” +
“<Title>Programming, art or engineering?</Title>” + “</Book>”;
static void Main(string[] args)
{
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.Add(null, “XmlBookSchema.xsd”);
XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
settings.Schemas = schemaSet;
settings.ValidationEventHandler += new ValidationEventHandler(Settings_ValidationEventHandler);
using (StringReader reader = new StringReader(sourceXml))
using (XmlReader xmlReader = XmlTextReader.Create(reader, settings))
{
while (xmlReader.Read()) ;
}
Console.WriteLine(“Validation complete”);
Console.ReadKey();
}
static void Settings_ValidationEventHandler(object sender, ValidationEventArgs e)
{
Console.WriteLine(“Validation failed: “+e.Message);
}
本文介绍了一个使用C#进行XML Schema验证的例子。该例子展示了如何定义一个简单的XML Schema(用于描述书籍信息),并利用这个Schema来验证XML文档的有效性。通过加载Schema文件和设置XmlReader验证属性,可以确保XML文档符合预定义的结构。

1281

被折叠的 条评论
为什么被折叠?



