XmlSchemaCollection 类
注意:此类现在已过时。
包含“XML 架构”定义语言 (XSD) 和“XML 数据缩减”(XDR) 架构的缓存。无法继承此类。
**命名空间:**System.Xml.Schema
**程序集:**System.Xml(在 system.xml.dll 中)
语法
声明
<ObsoleteAttribute("Use System.Xml.Schema.XmlSchemaSet for schema compilation and validation. https://go.microsoft.com/fwlink/?linkid=14202")> _
Public NotInheritable Class XmlSchemaCollection
Implements ICollection, IEnumerable
用法
Dim instance As XmlSchemaCollection
[ObsoleteAttribute("Use System.Xml.Schema.XmlSchemaSet for schema compilation and validation. https://go.microsoft.com/fwlink/?linkid=14202")]
public sealed class XmlSchemaCollection : ICollection, IEnumerable
[ObsoleteAttribute(L"Use System.Xml.Schema.XmlSchemaSet for schema compilation and validation. https://go.microsoft.com/fwlink/?linkid=14202")]
public ref class XmlSchemaCollection sealed : ICollection, IEnumerable
/** @attribute ObsoleteAttribute("Use System.Xml.Schema.XmlSchemaSet for schema compilation and validation. https://go.microsoft.com/fwlink/?linkid=14202") */
public final class XmlSchemaCollection implements ICollection, IEnumerable
ObsoleteAttribute("Use System.Xml.Schema.XmlSchemaSet for schema compilation and validation. https://go.microsoft.com/fwlink/?linkid=14202")
public final class XmlSchemaCollection implements ICollection, IEnumerable
备注
架构是使用 Add 方法加载的,同时,架构会与命名空间统一资源标识符 (URI) 关联。对于“XML 架构”,这通常会是架构的 targetNamespace 属性。
尽管该类同时存储“XML 架构”和“XDR 架构”,但采用或返回 XmlSchema 的任何方法和属性都只应用于“XML 架构”。
该版本的产品支持位于 http://www.w3.org/TR/xmlschema-1 和 http://www.w3.org/TR/xmlschema-2 的万维网联合会 (W3C)“XML 架构”建议。“XML 架构”必须在其架构元素中引用“W3C 架构”命名空间 **http://www.w3.org/2001/XMLSchema**。有关示例,请参见 Add。
XmlValidatingReader 可以使用 XmlSchemaCollection 进行有效的数据验证。
重要事项: |
---|
XmlSchemaCollection 类在 Microsoft .NET Framework 2.0 版中已过时,并已被 XmlSchemaSet 类替换。 |
示例
下面的示例使用 XmlSchemaCollection 验证 XML 文档。
Imports System
Imports System.Xml
Imports System.Xml.Schema
Imports System.IO
public class ValidXSD
public shared sub Main()
Dim sc as XmlSchemaCollection = new XmlSchemaCollection()
AddHandler sc.ValidationEventHandler, AddressOf ValidationCallBack
sc.Add(nothing, "books.xsd")
if(sc.Count > 0)
Dim tr as XmlTextReader = new XmlTextReader("notValidXSD.xml")
Dim rdr as XmlValidatingReader = new XmlValidatingReader(tr)
rdr.ValidationType = ValidationType.Schema
rdr.Schemas.Add(sc)
AddHandler rdr.ValidationEventHandler, AddressOf ValidationCallBack
while (rdr.Read())
end while
end if
end sub
private shared sub ValidationCallBack(sender as object, e as ValidationEventArgs)
Console.WriteLine("XSD Error: {0}", e.Message)
end sub
end class
using System;
using System.Xml;
using System.Xml.Schema;
using System.IO;
public class ValidXSD {
public static void Main() {
XmlSchemaCollection sc = new XmlSchemaCollection();
sc.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack);
sc.Add(null, "books.xsd");
if(sc.Count > 0)
{
XmlTextReader tr = new XmlTextReader("notValidXSD.xml");
XmlValidatingReader rdr = new XmlValidatingReader(tr);
rdr.ValidationType = ValidationType.Schema;
rdr.Schemas.Add(sc);
rdr.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack);
while (rdr.Read());
}
}
private static void ValidationCallBack(object sender, ValidationEventArgs e) {
Console.WriteLine("Validation Error: {0}", e.Message);
}
}
#using <System.Xml.dll>
#using <System.dll>
using namespace System;
using namespace System::Xml;
using namespace System::Xml::Schema;
using namespace System::IO;
public ref class ValidXSD
{
public:
static void main()
{
XmlSchemaCollection^ sc = gcnew XmlSchemaCollection;
sc->ValidationEventHandler += gcnew ValidationEventHandler( ValidationCallBack );
sc->Add( nullptr, "books.xsd" );
if ( sc->Count > 0 )
{
XmlTextReader^ tr = gcnew XmlTextReader( "notValidXSD.xml" );
XmlValidatingReader^ rdr = gcnew XmlValidatingReader( tr );
rdr->ValidationType = ValidationType::Schema;
rdr->Schemas->Add( sc );
rdr->ValidationEventHandler += gcnew ValidationEventHandler( ValidationCallBack );
while ( rdr->Read() )
;
}
}
private:
static void ValidationCallBack( Object^ /*sender*/, ValidationEventArgs^ e )
{
Console::WriteLine( "Validation Error: {0}", e->Message );
}
};
int main()
{
ValidXSD::main();
}
import System.*;
import System.Xml.*;
import System.Xml.Schema.*;
import System.IO.*;
public class ValidXSD
{
public static void main(String[] args)
{
XmlSchemaCollection sc = new XmlSchemaCollection();
sc.add_ValidationEventHandler(new ValidationEventHandler(
ValidationCallBack));
sc.Add(null, "books.xsd");
if (sc.get_Count() > 0) {
XmlTextReader tr = new XmlTextReader("notValidXSD.xml");
XmlValidatingReader rdr = new XmlValidatingReader(tr);
rdr.set_ValidationType(ValidationType.Schema);
rdr.get_Schemas().Add(sc);
rdr.add_ValidationEventHandler(new ValidationEventHandler(
ValidationCallBack));
while (rdr.Read()) {
}
}
} //main
private static void ValidationCallBack(Object sender,
ValidationEventArgs e)
{
Console.WriteLine("Validation Error: {0}", e.get_Message());
} //ValidationCallBack
} //ValidXSD
继承层次结构
System.Object
System.Xml.Schema.XmlSchemaCollection
线程安全
此类型的任何公共静态(Visual Basic 中的 Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。
平台
Windows 98、Windows 2000 SP4、Windows Millennium Edition、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition
.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求。
版本信息
.NET Framework
受以下版本支持:1.0、1.1
在 2.0 中过时(编译器警告)