XmlSchemaDatatype 类

定义

XmlSchemaDatatype 类是将 XML 架构定义语言 (XSD) 类型映射为公共语言运行时 (CLR) 类型的抽象类。The XmlSchemaDatatype class is an abstract class for mapping XML Schema definition language (XSD) types to Common Language Runtime (CLR) types.

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

示例

下面的示例演示如何使用 XmlSchemaDatatype 类。The following example shows use of the XmlSchemaDatatype class.

#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 文件用于前面的代码示例。The following XML file is used for the preceding code example.

<?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 类的新实例。Initializes a new instance of the XmlSchemaDatatype class.

属性

TokenizedType

当在派生类中重写时,获取在 WWW 联合会 (W3C) XML 1.0 规范中指定的 string 的类型。When overridden in a derived class, gets the type for the string as specified in the World Wide Web Consortium (W3C) XML 1.0 specification.

TypeCode

获取简单类型的 XmlTypeCode 值。Gets the XmlTypeCode value for the simple type.

ValueType

在派生类中重写时,获取项的公共语言运行时 (CLR) 类型。When overridden in a derived class, gets the Common Language Runtime (CLR) type of the item.

Variety

获取简单类型的 XmlSchemaDatatypeVariety 值。Gets the XmlSchemaDatatypeVariety value for the simple type.

方法

ChangeType(Object, Type)

将指定值转换为指定的 CLR 类型,该指定值的类型为由 XmlSchemaDatatype 表示的 XML 架构类型的一种有效公共语言运行时 (CLR) 表示形式。Converts the value specified, whose type is one of the valid Common Language Runtime (CLR) representations of the XML schema type represented by the XmlSchemaDatatype, to the CLR type specified.

ChangeType(Object, Type, IXmlNamespaceResolver)

如果 XmlSchemaDatatype 表示 xs:QName 类型或从中派生的类型,将指定值转换为用 IXmlNamespaceResolver 指定的 CLR 类型,该指定值的类型为用 XmlSchemaDatatype 表示的 XML 架构类型的一种有效公共语言运行时 (CLR) 表示形式。Converts the value specified, whose type is one of the valid Common Language Runtime (CLR) representations of the XML schema type represented by the XmlSchemaDatatype, to the CLR type specified using the IXmlNamespaceResolver if the XmlSchemaDatatype represents the xs:QName type or a type derived from it.

Equals(Object)

确定指定对象是否等于当前对象。Determines whether the specified object is equal to the current object.

(继承自 Object)
GetHashCode()

用作默认哈希函数。Serves as the default hash function.

(继承自 Object)
GetType()

获取当前实例的 TypeGets the Type of the current instance.

(继承自 Object)
IsDerivedFrom(XmlSchemaDatatype)

IsDerivedFrom(XmlSchemaDatatype) 方法始终返回 falseThe IsDerivedFrom(XmlSchemaDatatype) method always returns false.

MemberwiseClone()

创建当前 Object 的浅表副本。Creates a shallow copy of the current Object.

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

当在派生类中重写时,根据内置或用户定义的简单类型验证指定的 stringWhen overridden in a derived class, validates the string specified against a built-in or user-defined simple type.

ParseValue(String, XmlNameTable, XmlNamespaceManager)

在派生类中重写时,根据内置或用户定义的简单类型验证指定的字符串。When overridden in a derived class, validates the specified string against a built-in or user-defined simple type.

ToString()

返回表示当前对象的字符串。Returns a string that represents the current object.

(继承自 Object)

适用于