XmlSchemaDatatype 类

定义

XmlSchemaDatatype 类是将 XML 架构定义语言 (XSD) 类型映射为公共语言运行时 (CLR) 类型的抽象类。

public ref class XmlSchemaDatatype abstract
public abstract class XmlSchemaDatatype
type XmlSchemaDatatype = class
Public MustInherit Class XmlSchemaDatatype
继承
XmlSchemaDatatype

示例

以下示例演示 了 类的 XmlSchemaDatatype 用法。

#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()
    {
        XmlTextReader^ xtr = gcnew XmlTextReader("example.xsd");
        XmlSchema^ schema = XmlSchema::Read(xtr, gcnew ValidationEventHandler(ValidationCallbackOne));

        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;
        }

        for each (XmlSchemaObject^ schemaObject in compiledSchema->Items)
        {
            if (schemaObject->GetType() == XmlSchemaSimpleType::typeid)
            {
                XmlSchemaSimpleType^ simpleType = dynamic_cast<XmlSchemaSimpleType^>(schemaObject);
                Console::WriteLine("{0} {1}", simpleType->Name, simpleType->Datatype->ValueType);
            }
            if (schemaObject->GetType() == XmlSchemaComplexType::typeid)
            {
                XmlSchemaComplexType^ complexType = dynamic_cast<XmlSchemaComplexType^>(schemaObject);
                Console::WriteLine("{0} {1}", complexType->Name, complexType->Datatype->ValueType);
            }
        }
        xtr->Close();
    }

    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()
    {
        XmlTextReader xtr = new XmlTextReader("example.xsd");
        XmlSchema schema = XmlSchema.Read(xtr, new ValidationEventHandler(ValidationCallbackOne));

        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;
        }

        foreach (XmlSchemaObject schemaObject in compiledSchema.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);
    }
}
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))

        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 schemaObject As XmlSchemaObject
        For Each schemaObject In compiledSchema.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


    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"?>
<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>

构造函数

XmlSchemaDatatype()

初始化 XmlSchemaDatatype 类的新实例。

属性

TokenizedType

当在派生类中重写时,获取在 WWW 联合会 (W3C) XML 1.0 规范中指定的 string 的类型。

TypeCode

获取简单类型的 XmlTypeCode 值。

ValueType

在派生类中重写时,获取项的公共语言运行时 (CLR) 类型。

Variety

获取简单类型的 XmlSchemaDatatypeVariety 值。

方法

ChangeType(Object, Type)

将指定值转换为指定的 CLR 类型,该指定值的类型为由 XmlSchemaDatatype 表示的 XML 架构类型的一种有效公共语言运行时 (CLR) 表示形式。

ChangeType(Object, Type, IXmlNamespaceResolver)

如果 XmlSchemaDatatype 表示 xs:QName 类型或从中派生的类型,将指定值转换为用 IXmlNamespaceResolver 指定的 CLR 类型,该指定值的类型为用 XmlSchemaDatatype 表示的 XML 架构类型的一种有效公共语言运行时 (CLR) 表示形式。

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
IsDerivedFrom(XmlSchemaDatatype)

IsDerivedFrom(XmlSchemaDatatype) 方法始终返回 false

MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ParseValue(String, XmlNameTable, IXmlNamespaceResolver)

当在派生类中重写时,根据内置或用户定义的简单类型验证指定的 string

ParseValue(String, XmlNameTable, XmlNamespaceManager)

在派生类中重写时,根据内置或用户定义的简单类型验证指定的字符串。

ToString()

返回表示当前对象的字符串。

(继承自 Object)

适用于