XmlSchemaDatatype 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
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 规范中指定的 |
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) 方法始终返回 |
MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
ParseValue(String, XmlNameTable, IXmlNamespaceResolver) |
当在派生类中重写时,根据内置或用户定义的简单类型验证指定的 |
ParseValue(String, XmlNameTable, XmlNamespaceManager) |
在派生类中重写时,根据内置或用户定义的简单类型验证指定的字符串。 |
ToString() |
返回表示当前对象的字符串。 (继承自 Object) |