次の方法で共有


XmlSchema クラス

定義

World Wide Web コンソーシアム (W3C) の『XML スキーマ、パート 1: 構造体』および『XML スキーマ、パート 2: データ型]』で指定されている XML スキーマのメモリ内表現です。

public ref class XmlSchema
public ref class XmlSchema : System::Xml::Schema::XmlSchemaObject
public class XmlSchema
public class XmlSchema : System.Xml.Schema.XmlSchemaObject
type XmlSchema = class
type XmlSchema = class
    inherit XmlSchemaObject
Public Class XmlSchema
Public Class XmlSchema
Inherits XmlSchemaObject
継承
XmlSchema
継承

次の例では、スキーマ定義を作成します。

#using <mscorlib.dll>
#using <System.Xml.dll>

using namespace System;
using namespace System::Xml;
using namespace System::Xml::Schema;

class XmlSchemaExamples
{
public:
    static void Main()
    {

        XmlSchema^ schema = gcnew XmlSchema();

        // <xs:element name="cat" type="xs:string"/>
        XmlSchemaElement^ elementCat = gcnew XmlSchemaElement();
        schema->Items->Add(elementCat);
        elementCat->Name = "cat";
        elementCat->SchemaTypeName = gcnew XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");

        // <xs:element name="dog" type="xs:string"/>
        XmlSchemaElement^ elementDog = gcnew XmlSchemaElement();
        schema->Items->Add(elementDog);
        elementDog->Name = "dog";
        elementDog->SchemaTypeName = gcnew XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");

        // <xs:element name="redDog" substitutionGroup="dog" />
        XmlSchemaElement^ elementRedDog = gcnew XmlSchemaElement();
        schema->Items->Add(elementRedDog);
        elementRedDog->Name = "redDog";
        elementRedDog->SubstitutionGroup = gcnew XmlQualifiedName("dog");

        // <xs:element name="brownDog" substitutionGroup ="dog" />
        XmlSchemaElement^ elementBrownDog = gcnew XmlSchemaElement();
        schema->Items->Add(elementBrownDog);
        elementBrownDog->Name = "brownDog";
        elementBrownDog->SubstitutionGroup = gcnew XmlQualifiedName("dog");


        // <xs:element name="pets">
        XmlSchemaElement^ elementPets = gcnew XmlSchemaElement();
        schema->Items->Add(elementPets);
        elementPets->Name = "pets";

        // <xs:complexType>
        XmlSchemaComplexType^ complexType = gcnew XmlSchemaComplexType();
        elementPets->SchemaType = complexType;

        // <xs:choice minOccurs="0" maxOccurs="unbounded">
        XmlSchemaChoice^ choice = gcnew XmlSchemaChoice();
        complexType->Particle = choice;
        choice->MinOccurs = 0;
        choice->MaxOccursString = "unbounded";

        // <xs:element ref="cat"/>
        XmlSchemaElement^ catRef = gcnew XmlSchemaElement();
        choice->Items->Add(catRef);
        catRef->RefName = gcnew XmlQualifiedName("cat");

        // <xs:element ref="dog"/>
        XmlSchemaElement^ dogRef = gcnew XmlSchemaElement();
        choice->Items->Add(dogRef);
        dogRef->RefName = gcnew XmlQualifiedName("dog");

        XmlSchemaSet^ schemaSet = gcnew XmlSchemaSet();
        schemaSet->ValidationEventHandler += gcnew ValidationEventHandler(ValidationCallbackOne);
        schemaSet->Add(schema);
        schemaSet->Compile();

        XmlSchema^ compiledSchema;

        for each (XmlSchema^ schema1 in schemaSet->Schemas())
        {
            compiledSchema = schema1;
        }

        XmlNamespaceManager^ nsmgr = gcnew XmlNamespaceManager(gcnew NameTable());
        nsmgr->AddNamespace("xs", "http://www.w3.org/2001/XMLSchema");
        compiledSchema->Write(Console::Out, nsmgr);
    }

    static void ValidationCallbackOne(Object^ sender, ValidationEventArgs^ args)
    {
        Console::WriteLine(args->Message);
    }
};

int main()
{
    XmlSchemaExamples::Main();
    return 0;
};
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);
    }
}
Option Explicit On
Option Strict On

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


    Public Shared Sub ValidationCallbackOne(ByVal sender As Object, ByVal args As ValidationEventArgs)
        Console.WriteLine(args.Message)
    End Sub
End Class

前のコード例では、次の 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>

注釈

重要

  • 不明または信頼されていないソースまたは場所のスキーマは使用しないでください。 これにより、コードのセキュリティが損なわれます。
  • XML スキーマ (インライン スキーマを含む) は、本質的にサービス拒否攻撃に対して脆弱です。信頼されていないシナリオでは受け入れないでください。
  • クラス (クラスなど) を使用した結果として発生するXmlSchemaXmlSchemaException例外には、信頼されていないシナリオで公開すべきではない機密情報が含まれている場合があります。 たとえば、 の XmlSchemaException プロパティはSourceUri、例外の原因となったスキーマ ファイルへの URI パスを返します。 SourceUri信頼されていないシナリオでは、 プロパティを公開しないでください。 この機密情報が信頼されていないシナリオで公開されないように、例外を適切に処理する必要があります。

コンストラクター

XmlSchema()

XmlSchema クラスの新しいインスタンスを初期化します。

フィールド

InstanceNamespace

XML スキーマ インスタンスの名前空間。 このフィールドは定数です。

Namespace

XML スキーマの名前空間。 このフィールドは定数です。

プロパティ

AttributeFormDefault

スキーマのターゲット名前空間で宣言された属性の形式を取得または設定します。

AttributeGroups

スキーマ内のすべてのグローバル属性グループについて、スキーマ コンパイル後の値を取得します。

Attributes

スキーマ内のすべての属性について、スキーマ コンパイル後の値を取得します。

BlockDefault

スキーマの blockDefault の要素および複合型に対し、block 属性の既定値を設定する targetNamespace 属性を取得または設定します。

ElementFormDefault

スキーマのターゲット名前空間で宣言された要素の形式を取得または設定します。

Elements

スキーマ内のすべての要素について、スキーマ コンパイル後の値を取得します。

FinalDefault

スキーマのターゲット名前空間の要素および複合型に対し、finalDefault 属性の既定値を設定する final 属性を取得または設定します。

Groups

スキーマ内のすべてのグループについて、スキーマ コンパイル後の値を取得します。

Id

文字列 ID を取得または設定します。

Includes

インクルードされたスキーマとインポートされたスキーマのコレクションを取得します。

IsCompiled

スキーマがコンパイル済みかどうかを示します。

Items

スキーマに含まれるスキーマ要素コレクションを取得します。新しい要素型を schema 要素レベルで追加する場合に使用します。

LineNumber

schema 要素が参照するファイルの行番号を取得または設定します。

(継承元 XmlSchemaObject)
LinePosition

schema 要素が参照するファイルの行番号を取得または設定します。

(継承元 XmlSchemaObject)
Namespaces

このスキーマ オブジェクトと一緒に使用する XmlSerializerNamespaces を取得または設定します。

(継承元 XmlSchemaObject)
Notations

スキーマ内のすべての注釈について、スキーマ コンパイル後の値を取得します。

Parent

この XmlSchemaObject の親を取得または設定します。

(継承元 XmlSchemaObject)
SchemaTypes

スキーマ内のすべてのスキーマ型について、スキーマ コンパイル後の値を取得します。

SourceUri

スキーマを読み込んだファイルのソース位置を取得または設定します。

(継承元 XmlSchemaObject)
TargetNamespace

スキーマのターゲット名前空間の URI (Uniform Resource Identifier) を取得または設定します。

UnhandledAttributes

スキーマのターゲット名前空間に属さない、修飾された属性を取得または設定します。

Version

スキーマのバージョンを取得または設定します。

メソッド

Compile(ValidationEventHandler)
古い.
古い.
古い.

XML SOM (Schema Object Model) を検証用のスキーマ情報にコンパイルします。 プログラムによって構築された SOM の構文および意味構造をチェックするために使用します。 意味検証チェックは、コンパイル時に実行されます。

Compile(ValidationEventHandler, XmlResolver)
古い.
古い.
古い.

XML SOM (Schema Object Model) を検証用のスキーマ情報にコンパイルします。 プログラムによって構築された SOM の構文および意味構造をチェックするために使用します。 意味検証チェックは、コンパイル時に実行されます。

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
Read(Stream, ValidationEventHandler)

指定されたストリームから XML スキーマを読み取ります。

Read(TextReader, ValidationEventHandler)

提供された TextReader から XML スキーマを読み込みます。

Read(XmlReader, ValidationEventHandler)

提供された XmlReader から XML スキーマを読み込みます。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)
Write(Stream)

提供されたデータ ストリームに XML スキーマを書き込みます。

Write(Stream, XmlNamespaceManager)

指定された Stream を使用し、指定された XmlNamespaceManager に XML スキーマを書き込みます。

Write(TextWriter)

提供された TextWriter に XML スキーマを書き込みます。

Write(TextWriter, XmlNamespaceManager)

提供された TextWriter に XML スキーマを書き込みます。

Write(XmlWriter)

提供された XmlWriter に XML スキーマを書き込みます。

Write(XmlWriter, XmlNamespaceManager)

提供された XmlWriter に XML スキーマを書き込みます。

適用対象

こちらもご覧ください