XmlSchemaComplexType 类

定义

按 WWW 联合会 (W3C) 指定的方式显示 complexType 来自 XML 架构的元素。 此类定义一个复杂类型,它确定属性集和元素的内容。

public ref class XmlSchemaComplexType : System::Xml::Schema::XmlSchemaType
public class XmlSchemaComplexType : System.Xml.Schema.XmlSchemaType
type XmlSchemaComplexType = class
    inherit XmlSchemaType
Public Class XmlSchemaComplexType
Inherits XmlSchemaType
继承

示例

以下示例创建一个 complexType 元素。

#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="stringElementWithAnyAttribute">
        XmlSchemaElement^ element = gcnew XmlSchemaElement();
        schema->Items->Add(element);
        element->Name = "stringElementWithAnyAttribute";

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

        // <xs:simpleContent>
        XmlSchemaSimpleContent^ simpleContent = gcnew XmlSchemaSimpleContent();
        complexType->ContentModel = simpleContent;

        // <extension base= "xs:string">
        XmlSchemaSimpleContentExtension^ extension = gcnew XmlSchemaSimpleContentExtension();
        simpleContent->Content = extension;
        extension->BaseTypeName = gcnew XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");

        // <xs:anyAttribute namespace="##targetNamespace"/>
        XmlSchemaAnyAttribute^ anyAttribute = gcnew XmlSchemaAnyAttribute();
        extension->AnyAttribute = anyAttribute;
        anyAttribute->Namespace = "##targetNamespace";

        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="stringElementWithAnyAttribute">
        XmlSchemaElement element = new XmlSchemaElement();
        schema.Items.Add(element);
        element.Name = "stringElementWithAnyAttribute";

        // <xs:complexType>
        XmlSchemaComplexType complexType = new XmlSchemaComplexType();
        element.SchemaType = complexType;

        // <xs:simpleContent>
        XmlSchemaSimpleContent simpleContent = new XmlSchemaSimpleContent();
        complexType.ContentModel = simpleContent;

        // <extension base= "xs:string">
        XmlSchemaSimpleContentExtension extension = new XmlSchemaSimpleContentExtension();
        simpleContent.Content = extension;
        extension.BaseTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");

        // <xs:anyAttribute namespace="##targetNamespace"/>
        XmlSchemaAnyAttribute anyAttribute = new XmlSchemaAnyAttribute();
        extension.AnyAttribute = anyAttribute;
        anyAttribute.Namespace = "##targetNamespace";

        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);
    }
}
Imports System.Xml
Imports System.Xml.Schema

Class XMLSchemaExamples
    Public Shared Sub Main()

        Dim schema As New XmlSchema()

        ' <xs:element name="stringElementWithAnyAttribute">
        Dim element As New XmlSchemaElement()
        schema.Items.Add(element)
        element.Name = "stringElementWithAnyAttribute"

        ' <xs:complexType>
        Dim complexType As New XmlSchemaComplexType()
        element.SchemaType = complexType

        ' <xs:simpleContent>
        Dim simpleContent As New XmlSchemaSimpleContent()
        complexType.ContentModel = simpleContent

        ' <extension base="xs:string">
        Dim extension As New XmlSchemaSimpleContentExtension()
        simpleContent.Content = extension
        extension.BaseTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")

        ' <xs:anyAttribute namespace="##targetNamespace"/>
        Dim anyAttribute As New XmlSchemaAnyAttribute()
        extension.AnyAttribute = anyAttribute
        anyAttribute.Namespace = "##targetNamespace"

        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="stringElementWithAnyAttribute">
        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base="xs:string">
                    <xs:anyAttribute namespace="##targetNamespace"/>
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
    </xs:element>
</xs:schema>

注解

可以使用引用该元素的结构、内容和属性的元素的类型属性 complexType 声明元素。

构造函数

XmlSchemaComplexType()

初始化 XmlSchemaComplexType 类的新实例。

属性

Annotation

获取或设置 annotation 属性。

(继承自 XmlSchemaAnnotated)
AnyAttribute

获取或设置复杂类型的 XmlSchemaAnyAttribute 组件的值。

Attributes

获取复杂类型的属性集合。

AttributeUses

获取该复杂类型及其基类型的所有已编译属性的集合。

AttributeWildcard

获取该复杂类型及其基类型的 anyAttribute 的编译后值。

BaseSchemaType
已过时。
已过时。
已过时。

获取编译后对象类型或内置 XML 架构定义语言 (XSD) 数据类型、simpleType 元素或 complexType 元素。 这是一个后架构编译信息集属性。

(继承自 XmlSchemaType)
BaseXmlSchemaType

获取此架构类型的基类型的编译后值。

(继承自 XmlSchemaType)
Block

获取或设置 block 特性。

BlockResolved

在已将类型编译为架构验证后信息集 (infoset) 之后获取值。 该值指示在实例文档中使用 xsi:type 时如何强制类型。

ContentModel

获取或设置该复杂类型的编译后 XmlSchemaContentModel

ContentType

获取复杂类型的内容模型,它保存编译后值。

ContentTypeParticle

获取保存 ContentType 粒子的编译后值的粒子。

Datatype

获取此复杂类型的数据类型的编译后值。

(继承自 XmlSchemaType)
DerivedBy

获取有关此元素如何从其基类型派生的编译后信息。

(继承自 XmlSchemaType)
Final

获取或设置指示是否允许进一步派生的类型派生的最终特性。

(继承自 XmlSchemaType)
FinalResolved

获取 Final 属性的编译后值。

(继承自 XmlSchemaType)
Id

获取或设置字符串 ID。

(继承自 XmlSchemaAnnotated)
IsAbstract

获取或设置信息,该信息确定是否可在实例文档中使用 complexType 元素。

IsMixed

获取或设置确定复杂类型是否具有混合内容模型(内容中的标记)的相关信息。

LineNumber

获取或设置 schema 元素引用的文件中的行号。

(继承自 XmlSchemaObject)
LinePosition

获取或设置 schema 元素引用的文件中的行位置。

(继承自 XmlSchemaObject)
Name

获取或设置类型的名称。

(继承自 XmlSchemaType)
Namespaces

获取或设置用于此架构对象的 XmlSerializerNamespaces

(继承自 XmlSchemaObject)
Parent

获取或设置此 XmlSchemaObject 的父级。

(继承自 XmlSchemaObject)
Particle

获取组合类型或将其设置为 XmlSchemaGroupRefXmlSchemaChoiceXmlSchemaAllXmlSchemaSequence 类之一。

QualifiedName

获取从此类型的 Name 特性中生成的此类型的限定名。 这是一个后架构编译属性。

(继承自 XmlSchemaType)
SourceUri

获取或设置加载了架构的文件的源位置。

(继承自 XmlSchemaObject)
TypeCode

获取类型的 XmlTypeCode

(继承自 XmlSchemaType)
UnhandledAttributes

获取或设置不属于当前架构目标命名空间的限定特性。

(继承自 XmlSchemaAnnotated)

方法

Equals(Object)

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

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()

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

(继承自 Object)

适用于