XmlSchema クラス
アセンブリ: System.Xml (system.xml.dll 内)
構文
解説 セキュリティに関するメモ |
|---|
| XmlSchema クラスを使用した結果として発生した例外 (XmlSchemaException クラスなど) には、信頼関係のないシナリオで公開されてはならないような機密情報が含まれている場合があります。たとえば、XmlSchemaException の SourceUri プロパティは、例外が発生する原因となったスキーマ ファイルへの URI パスを返します。信頼関係のないシナリオでは、SourceUri プロパティを公開しないでください。こういった機密情報が信頼関係のないシナリオで公開されてしまわないよう、例外は適切に処理する必要があります。 |
使用例Option Explicit On Option Strict On Imports System Imports System.Xml Imports System.Xml.Schema Class XMLSchemaExamples Public Shared Sub Main() Dim schema As New XmlSchema() ' <xs:element name="cat" type="xs:string"/> Dim elementCat As New XmlSchemaElement() schema.Items.Add(elementCat) elementCat.Name = "cat" elementCat.SchemaTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema") ' <xs:element name="dog" type="xs:string"/> Dim elementDog As New XmlSchemaElement() schema.Items.Add(elementDog) elementDog.Name = "dog" elementDog.SchemaTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema") ' <xs:element name="redDog" substitutionGroup="dog" /> Dim elementRedDog As New XmlSchemaElement() schema.Items.Add(elementRedDog) elementRedDog.Name = "redDog" elementRedDog.SubstitutionGroup = New XmlQualifiedName("dog") ' <xs:element name="brownDog" substitutionGroup ="dog" /> Dim elementBrownDog As New XmlSchemaElement() schema.Items.Add(elementBrownDog) elementBrownDog.Name = "brownDog" elementBrownDog.SubstitutionGroup = New XmlQualifiedName("dog") ' <xs:element name="pets"> Dim elementPets As New XmlSchemaElement() schema.Items.Add(elementPets) elementPets.Name = "pets" ' <xs:complexType> Dim complexType As New XmlSchemaComplexType() elementPets.SchemaType = complexType ' <xs:choice minOccurs="0" maxOccurs="unbounded"> Dim choice As New XmlSchemaChoice() complexType.Particle = choice choice.MinOccurs = 0 choice.MaxOccursString = "unbounded" ' <xs:element ref="cat"/> Dim catRef As New XmlSchemaElement() choice.Items.Add(catRef) catRef.RefName = New XmlQualifiedName("cat") ' <xs:element ref="dog"/> Dim dogRef As New XmlSchemaElement() choice.Items.Add(dogRef) dogRef.RefName = New XmlQualifiedName("dog") Dim schemaSet As New XmlSchemaSet() AddHandler schemaSet.ValidationEventHandler, AddressOf ValidationCallbackOne schemaSet.Add(schema) schemaSet.Compile() Dim compiledSchema As XmlSchema = Nothing For Each schema1 As XmlSchema In schemaSet.Schemas() compiledSchema = schema1 Next Dim nsmgr As New XmlNamespaceManager(New NameTable()) nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema") compiledSchema.Write(Console.Out, nsmgr) End Sub 'Main Public Shared Sub ValidationCallbackOne(ByVal sender As Object, ByVal args As ValidationEventArgs) Console.WriteLine(args.Message) End Sub 'ValidationCallbackOne End Class 'XMLSchemaExamples
using System; using System.Xml; using System.Xml.Schema; class XMLSchemaExamples { public static void Main() { XmlSchema schema = new XmlSchema(); // <xs:element name="cat" type="xs:string"/> XmlSchemaElement elementCat = new XmlSchemaElement(); schema.Items.Add(elementCat); elementCat.Name = "cat"; elementCat.SchemaTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema"); // <xs:element name="dog" type="xs:string"/> XmlSchemaElement elementDog = new XmlSchemaElement(); schema.Items.Add(elementDog); elementDog.Name = "dog"; elementDog.SchemaTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema"); // <xs:element name="redDog" substitutionGroup="dog" /> XmlSchemaElement elementRedDog = new XmlSchemaElement(); schema.Items.Add(elementRedDog); elementRedDog.Name = "redDog"; elementRedDog.SubstitutionGroup = new XmlQualifiedName("dog"); // <xs:element name="brownDog" substitutionGroup ="dog" /> XmlSchemaElement elementBrownDog = new XmlSchemaElement(); schema.Items.Add(elementBrownDog); elementBrownDog.Name = "brownDog"; elementBrownDog.SubstitutionGroup = new XmlQualifiedName("dog"); // <xs:element name="pets"> XmlSchemaElement elementPets = new XmlSchemaElement(); schema.Items.Add(elementPets); elementPets.Name = "pets"; // <xs:complexType> XmlSchemaComplexType complexType = new XmlSchemaComplexType(); elementPets.SchemaType = complexType; // <xs:choice minOccurs="0" maxOccurs="unbounded"> XmlSchemaChoice choice = new XmlSchemaChoice(); complexType.Particle = choice; choice.MinOccurs = 0; choice.MaxOccursString = "unbounded"; // <xs:element ref="cat"/> XmlSchemaElement catRef = new XmlSchemaElement(); choice.Items.Add(catRef); catRef.RefName = new XmlQualifiedName("cat"); // <xs:element ref="dog"/> XmlSchemaElement dogRef = new XmlSchemaElement(); choice.Items.Add(dogRef); dogRef.RefName = new XmlQualifiedName("dog"); XmlSchemaSet schemaSet = new XmlSchemaSet(); schemaSet.ValidationEventHandler += new ValidationEventHandler(ValidationCallbackOne); schemaSet.Add(schema); schemaSet.Compile(); XmlSchema compiledSchema = null; foreach (XmlSchema schema1 in schemaSet.Schemas()) { compiledSchema = schema1; } XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable()); nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema"); compiledSchema.Write(Console.Out, nsmgr); } public static void ValidationCallbackOne(object sender, ValidationEventArgs args) { Console.WriteLine(args.Message); } }
前述のコード例に対して生成される XML ファイルを次に示します。
<?xml version="1.0" encoding="IBM437"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="cat" type="xs:string"/> <xs:element name="dog" type="xs:string"/> <xs:element name="redDog" type="xs:string" substitutionGroup="dog"/> <xs:element name="brownDog" type="xs:string" substitutionGroup ="dog" /> <xs:element name="pets"> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="cat"/> <xs:element ref="dog"/> </xs:choice> </xs:complexType> </xs:element> </xs:schema>
継承階層System.Xml.Schema.XmlSchemaObject
System.Xml.Schema.XmlSchema
スレッド セーフ
プラットフォームWindows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
参照XmlSchema コンストラクタ
アセンブリ: System.Xml (system.xml.dll 内)
構文
プラットフォームWindows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
参照XmlSchema フィールド
XmlSchema プロパティ
パブリック プロパティ| 名前 | 説明 | |
|---|---|---|
| LineNumber | schema 要素が参照するファイルの行番号を取得または設定します。 ( XmlSchemaObject から継承されます。) |
| LinePosition | schema 要素が参照するファイルの行番号を取得または設定します。 ( XmlSchemaObject から継承されます。) |
| Namespaces | このスキーマ オブジェクトと一緒に使用する XmlSerializerNamespaces を取得または設定します。 ( XmlSchemaObject から継承されます。) |
| Parent | この XmlSchemaObject の親を取得または設定します。 ( XmlSchemaObject から継承されます。) |
| SourceUri | スキーマを読み込んだファイルのソース位置を取得または設定します。 ( XmlSchemaObject から継承されます。) |
| Version | スキーマのバージョンを取得または設定します。 |
参照XmlSchema メソッド
パブリック メソッド| 名前 | 説明 | |
|---|---|---|
| Compile | オーバーロードされます。 XML SOM (Schema Object Model) を検証用のスキーマ情報にコンパイルします。プログラムによって構築された SOM の構文および意味構造をチェックするために使用します。意味検証チェックは、コンパイル時に実行されます。 |
| Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
| GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
| GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
| Read | オーバーロードされます。 XML スキーマを読み込みます。 |
| ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
| ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |
| Write | オーバーロードされます。 XML スキーマを書き込みます。 |
プロテクト メソッド| 名前 | 説明 | |
|---|---|---|
| Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
| MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |
参照XmlSchema メンバ
W3C (World Wide Web Consortium) の『XML Schema Part 1: Structures』および『XML Schema Part 2: Datatypes』の仕様で指定されている XML スキーマのインメモリ表現です。
XmlSchema データ型で公開されるメンバを以下の表に示します。
パブリック コンストラクタ
パブリック フィールド
パブリック プロパティ| 名前 | 説明 | |
|---|---|---|
| LineNumber | schema 要素が参照するファイルの行番号を取得または設定します。(XmlSchemaObject から継承されます。) |
| LinePosition | schema 要素が参照するファイルの行番号を取得または設定します。(XmlSchemaObject から継承されます。) |
| Namespaces | このスキーマ オブジェクトと一緒に使用する XmlSerializerNamespaces を取得または設定します。(XmlSchemaObject から継承されます。) |
| Parent | この XmlSchemaObject の親を取得または設定します。(XmlSchemaObject から継承されます。) |
| SourceUri | スキーマを読み込んだファイルのソース位置を取得または設定します。(XmlSchemaObject から継承されます。) |
| Version | スキーマのバージョンを取得または設定します。 |
パブリック メソッド| 名前 | 説明 | |
|---|---|---|
| Compile | オーバーロードされます。 XML SOM (Schema Object Model) を検証用のスキーマ情報にコンパイルします。プログラムによって構築された SOM の構文および意味構造をチェックするために使用します。意味検証チェックは、コンパイル時に実行されます。 |
| Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
| GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
| GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
| Read | オーバーロードされます。 XML スキーマを読み込みます。 |
| ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
| ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |
| Write | オーバーロードされます。 XML スキーマを書き込みます。 |
プロテクト メソッド| 名前 | 説明 | |
|---|---|---|
| Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
| MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |
参照Weblioに収録されているすべての辞書からXML Schemaを検索する場合は、下記のリンクをクリックしてください。
全ての辞書からXML Schema
を検索
- XML Schemaのページへのリンク
.gif)