xsd
XML
结构定义
( XML Schemas Definition )XML Schema
是
DTD
的替代品。
XML Schema
语言也就是
XSD
。
XML Schema
描述了
XML
文档的结构。可以用一个指定的
XML Schema
来验证某个
XML
文档,以检查该
XML
文档是否符合其要求。文档设计者可以通过
XML Schema
指定一个
XML
文档所允许的 结构和内容,并可据此检查一个
XML
文档是否是有效的。
XML Schema
本身是一个
XML
文档,它符合
XML
语法结构。可以用通用的
XML
解析器解析它。
一个
XML Schema
会定义:文档中出现的元素、文档中出现的属性、子元素、子元素的数量、子元素的顺序、元素是否为空、元素和属性的数据类型、元素或属性的默认和固定值。
XSD
文件的后缀名为
.xsd
。在下面的代码示例中,上面的架构添加到XmlReaderSettings对象的XmlSchemaSetSchemas属性中。XmlReaderSettings对象作为参数传递给验证上述XML文档的XmlReader对象的Create方法。XmlReaderSettings对象的ValidationType属性设置为Schema,强制通过XmlReader对象的Create方法验证XML文档。将ValidationEventHandler添加到XmlReaderSettings对象以处理XML文档和架构验证过程中发现的错误所引发的任何Warning或Error事件。下面是一个例子:
contosoBooks.xsd
contosoBooks.xml
备注:关于Xsd的其他的一些类或者实例StreamWriter ,StreamReader,XmlSchema,XmlSchemaSet
Stream stream = new MemoryStream(); //当一个类的对象无法初始化时,可以考虑用它的继承类。
FileStream fs = File.Open("117.xml",FileMode.OpenOrCreate,FileAccess.ReadWrite);TextReader tr1=new StreamReader("123.xml");
TextReader tr2= new StringReader("asdfsadfsdf");
using System;
using System.Xml;
using System.Xml.Schema;
using System.IO;
using System.Xml.Serialization;
using System.Text;
public class XmlSchemaSetExample
{
static void Main()
{
XmlReaderSettings booksSettings = new XmlReaderSettings();
booksSettings.Schemas.Add("http://www.contoso.com/books", "contosoBooks.xsd");
booksSettings.ValidationType = ValidationType.Schema;
booksSettings.ValidationEventHandler += new ValidationEventHandler(booksSettingsValidationEventHandler);
MemoryStream ms = new MemoryStream();//定义一个数据流对象
XmlDocument doc = new XmlDocument();
doc.Load("contosoBooks.xml");
doc.Save(ms);
ms.Position = 0; //修改指针的位置
XmlReader books = XmlReader.Create(ms,booksSettings);
while (books.Read())
{ }
}
static void booksSettingsValidationEventHandler(object sender, ValidationEventArgs e)
{
if (e.Severity == XmlSeverityType.Warning)
{
Console.Write("WARNING: ");
Console.WriteLine(e.Message);
Console.Read();
}
else if (e.Severity == XmlSeverityType.Error)
{
Console.Write("ERROR: ");
Console.WriteLine(e.Message);
Console.Read();
}
}
}
The Autobiography of Benjamin Franklin
Benjamin
Franklin
8.99
The Confidence Man
Herman
Melville
11.99
The Gorgias
Plato
9.99
