XmlSchemaCollection クラス
XML スキーマ定義言語 (XSD: XML Schema Definition Language) スキーマおよび XDR (XML-Data Reduced) スキーマのキャッシュを格納します。このクラスは継承できません。
この型のすべてのメンバの一覧については、XmlSchemaCollection メンバ を参照してください。
System.Object
System.Xml.Schema.XmlSchemaCollection
NotInheritable Public Class XmlSchemaCollection
Implements ICollection, IEnumerable
[C#]
public sealed class XmlSchemaCollection : ICollection, IEnumerable
[C++]
public __gc __sealed class XmlSchemaCollection : public
ICollection, IEnumerable
[JScript]
public class XmlSchemaCollection implements ICollection,
IEnumerable
スレッドセーフ
この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。
解説
スキーマは、 Add メソッドを使用して読み込まれ、そのときにスキーマは名前空間 URI に関連付けられます。XML スキーマの場合、通常これはスキーマの targetNamespace プロパティです。
このクラスは、XML スキーマと XDR スキーマの両方を格納しますが、 XmlSchema を受け取ったり、返す任意のメソッドおよびプロパティは、XML スキーマだけに適用されます。
この製品のバージョンは、http://www.w3.org/TR/xmlschema-1 および http://www.w3.org/TR/xmlschema-2 にある W3C 勧告『XML Schema』をサポートします。XML スキーマは、スキーマ要素の W3C スキーマ名前空間、 http://www.w3.org/2001/XMLSchema を参照する必要があります。例については、 Add メソッドのトピックを参照してください。
XmlSchemaCollection は、効率的にデータ検証を行うために XmlValidatingReader で使用できます。
使用例
[Visual Basic, C#, C++] 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
[C#]
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);
}
}
[C++]
#using <mscorlib.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::Xml;
using namespace System::Xml::Schema;
using namespace System::IO;
public __gc class ValidXSD {
public:
static void main() {
XmlSchemaCollection* sc = new XmlSchemaCollection();
sc->ValidationEventHandler += new ValidationEventHandler(0, ValidationCallBack);
sc->Add(0, S"books.xsd");
if(sc->Count > 0)
{
XmlTextReader* tr = new XmlTextReader(S"notValidXSD.xml");
XmlValidatingReader* rdr = new XmlValidatingReader(tr);
rdr->ValidationType = ValidationType::Schema;
rdr->Schemas->Add(sc);
rdr->ValidationEventHandler += new ValidationEventHandler(0, ValidationCallBack);
while (rdr->Read());
}
}
private:
static void ValidationCallBack(Object* /*sender*/, ValidationEventArgs* e) {
Console::WriteLine(S"Validation Error: {0}", e->Message);
}
};
int main()
{
ValidXSD::main();
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
名前空間: System.Xml.Schema
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
アセンブリ: System.Xml (System.Xml.dll 内)