次の方法で共有


XmlSchemaDatatype クラス

XML スキーマ定義言語 (XSD) 型および .NET Framework 型の割り当ての抽象クラスを表します。

この型のすべてのメンバの一覧については、XmlSchemaDatatype メンバ を参照してください。

System.Object
   System.Xml.Schema.XmlSchemaDatatype

MustInherit Public Class XmlSchemaDatatype
[C#]
public abstract class XmlSchemaDatatype
[C++]
public __gc __abstract class XmlSchemaDatatype
[JScript]
public abstract class XmlSchemaDatatype

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

使用例

[Visual Basic, C#, C++] XmlSchemaDatatype クラスの使用例を次に示します。

 
Imports System
Imports System.Xml
Imports System.Xml.Schema

 _

Class XMLSchemaExamples
   
   Public Shared Sub Main()
      Dim xtr As New XmlTextReader("example.xsd")
      Dim schema As XmlSchema = XmlSchema.Read(xtr, New ValidationEventHandler(AddressOf ValidationCallbackOne))
      
      schema.Compile(New ValidationEventHandler(AddressOf ValidationCallbackOne))
      
      Dim schemaObject As XmlSchemaObject
      For Each schemaObject In  schema.Items
         If schemaObject.GetType() Is GetType(XmlSchemaSimpleType) Then
            Dim simpleType As XmlSchemaSimpleType = CType(schemaObject, XmlSchemaSimpleType)
            Console.WriteLine("{0} {1}", simpleType.Name, simpleType.Datatype.ValueType)
         End If
         If schemaObject.GetType() Is GetType(XmlSchemaComplexType) Then
            Dim complexType As XmlSchemaComplexType = CType(schemaObject, XmlSchemaComplexType)
            Console.WriteLine("{0} {1}", complexType.Name, complexType.Datatype.ValueType)
         End If
      Next schemaObject
      xtr.Close()
   End Sub 'Main
   
   
   Public Shared Sub ValidationCallbackOne(sender As Object, args As ValidationEventArgs)
      Console.WriteLine(args.Message)
   End Sub 'ValidationCallbackOne
End Class 'XMLSchemaExamples

[C#] 
using System;
using System.Xml;  
using System.Xml.Schema;

class XMLSchemaExamples {
    public static void Main() {
        XmlTextReader xtr = new XmlTextReader("example.xsd");
    XmlSchema schema = XmlSchema.Read(xtr, new ValidationEventHandler(ValidationCallbackOne));

        schema.Compile(new ValidationEventHandler(ValidationCallbackOne));
        
        foreach (XmlSchemaObject schemaObject in schema.Items) {
            if (schemaObject.GetType() == typeof(XmlSchemaSimpleType)) {
                XmlSchemaSimpleType simpleType = (XmlSchemaSimpleType) schemaObject;
                Console.WriteLine("{0} {1}", simpleType.Name, simpleType.Datatype.ValueType);
            }
            if (schemaObject.GetType() == typeof(XmlSchemaComplexType)) {
                XmlSchemaComplexType complexType = (XmlSchemaComplexType) schemaObject;
                Console.WriteLine("{0} {1}", complexType.Name, complexType.Datatype.ValueType);
            }
        }
        xtr.Close();
    }

    public static void ValidationCallbackOne(object sender, ValidationEventArgs args) {
        Console.WriteLine(args.Message);
    }
}

[C++] 
#using <mscorlib.dll>
#using <System.Xml.dll>

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

__gc class XMLSchemaExamples {
public:
    static void ValidationCallbackOne(Object* /*sender*/, ValidationEventArgs* args) {
        Console::WriteLine(args->Message);
    }
};

int main() {
    XmlTextReader* xtr = new XmlTextReader(S"example.xsd");
    XmlSchema* schema = XmlSchema::Read(xtr, 
        new ValidationEventHandler(0, XMLSchemaExamples::ValidationCallbackOne));

    schema->Compile(new ValidationEventHandler(0, XMLSchemaExamples::ValidationCallbackOne));

    Collections::IEnumerator* myEnum = schema->Items->GetEnumerator();
    while (myEnum->MoveNext()) {
        XmlSchemaObject* schemaObject = __try_cast<XmlSchemaObject*>(myEnum->Current);

        if (dynamic_cast<XmlSchemaSimpleType*>(schemaObject)) {
            XmlSchemaSimpleType* simpleType = dynamic_cast<XmlSchemaSimpleType*>(schemaObject);
            Console::WriteLine(S" {0} {1}", simpleType->Name, simpleType->Datatype->ValueType);
        }
        if (dynamic_cast<XmlSchemaComplexType*>(schemaObject)) {
            XmlSchemaComplexType* complexType = dynamic_cast<XmlSchemaComplexType*>(schemaObject);
            Console::WriteLine(S" {0} {1}", complexType->Name, complexType->Datatype->ValueType);
        }
    }
    xtr->Close();
}

[Visual Basic, C#, C++] 前述のコード例に対して使用される XML ファイルを次に示します。

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:simpleType name="LotteryNumber">
        <xs:restriction base="xs:int">
            <xs:minInclusive value="1"/>
            <xs:maxInclusive value="99"/>
        </xs:restriction>
    </xs:simpleType>
</xs:schema>

[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 内)

参照

XmlSchemaDatatype メンバ | System.Xml.Schema 名前空間