XmlSchemaComplexContentRestriction 类    
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
按 WWW 联合会 (W3C) 指定的方式显示 restriction 来自 XML 架构的元素。 此类用于具有由限制派生出的复杂内容模型的复杂类型。 它将复杂类型的内容限制为继承的复杂类型的子集。
public ref class XmlSchemaComplexContentRestriction : System::Xml::Schema::XmlSchemaContentpublic class XmlSchemaComplexContentRestriction : System.Xml.Schema.XmlSchemaContenttype XmlSchemaComplexContentRestriction = class
    inherit XmlSchemaContentPublic Class XmlSchemaComplexContentRestriction
Inherits XmlSchemaContent- 继承
示例
以下示例创建一个 complexContent 按限制扩展的元素。
#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:complexType name="phoneNumber">
        XmlSchemaComplexType^ phoneNumber = gcnew XmlSchemaComplexType();
        phoneNumber->Name = "phoneNumber";
        // <xs:sequence>
        XmlSchemaSequence^ phoneNumberSequence = gcnew XmlSchemaSequence();
        // <xs:element name="areaCode"/>
        XmlSchemaElement^ areaCode1 = gcnew XmlSchemaElement();
        areaCode1->MinOccurs = 0;
        areaCode1->MaxOccursString = "1";
        areaCode1->Name = "areaCode";
        phoneNumberSequence->Items->Add(areaCode1);
        // <xs:element name="prefix"/>
        XmlSchemaElement^ prefix1 = gcnew XmlSchemaElement();
        prefix1->MinOccurs = 1;
        prefix1->MaxOccursString = "1";
        prefix1->Name = "prefix";
        phoneNumberSequence->Items->Add(prefix1);
        // <xs:element name="number"/>
        XmlSchemaElement^ number1 = gcnew XmlSchemaElement();
        number1->MinOccurs = 1;
        number1->MaxOccursString = "1";
        number1->Name = "number";
        phoneNumberSequence->Items->Add(number1);
        phoneNumber->Particle = phoneNumberSequence;
        schema->Items->Add(phoneNumber);
        // <xs:complexType name="localPhoneNumber">
        XmlSchemaComplexType^ localPhoneNumber = gcnew XmlSchemaComplexType();
        localPhoneNumber->Name = "localPhoneNumber";
        // <xs:complexContent>
        XmlSchemaComplexContent^ complexContent = gcnew XmlSchemaComplexContent();
        // <xs:restriction base="phoneNumber">
        XmlSchemaComplexContentRestriction^ restriction = gcnew XmlSchemaComplexContentRestriction();
        restriction->BaseTypeName = gcnew XmlQualifiedName("phoneNumber", "");
        // <xs:sequence>
        XmlSchemaSequence^ sequence2 = gcnew XmlSchemaSequence();
        // <xs:element name="areaCode" minOccurs="0"/>
        XmlSchemaElement^ areaCode2 = gcnew XmlSchemaElement();
        areaCode2->MinOccurs = 0;
        areaCode2->MaxOccursString = "1";
        areaCode2->Name = "areaCode";
        sequence2->Items->Add(areaCode2);
        // <xs:element name="prefix"/>
        XmlSchemaElement^ prefix2 = gcnew XmlSchemaElement();
        prefix2->MinOccurs = 1;
        prefix2->MaxOccursString = "1";
        prefix2->Name = "prefix";
        sequence2->Items->Add(prefix2);
        // <xs:element name="number"/>
        XmlSchemaElement^ number2 = gcnew XmlSchemaElement();
        number2->MinOccurs = 1;
        number2->MaxOccursString = "1";
        number2->Name = "number";
        sequence2->Items->Add(number2);
        restriction->Particle = sequence2;
        complexContent->Content = restriction;
        localPhoneNumber->ContentModel = complexContent;
        schema->Items->Add(localPhoneNumber);
        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:complexType name="phoneNumber">
        XmlSchemaComplexType phoneNumber = new XmlSchemaComplexType();
        phoneNumber.Name = "phoneNumber";
        // <xs:sequence>
        XmlSchemaSequence phoneNumberSequence = new XmlSchemaSequence();
        // <xs:element name="areaCode"/>
        XmlSchemaElement areaCode1 = new XmlSchemaElement();
        areaCode1.MinOccurs = 0;
        areaCode1.MaxOccursString = "1";
        areaCode1.Name = "areaCode";
        phoneNumberSequence.Items.Add(areaCode1);
        // <xs:element name="prefix"/>
        XmlSchemaElement prefix1 = new XmlSchemaElement();
        prefix1.MinOccurs = 1;
        prefix1.MaxOccursString = "1";
        prefix1.Name = "prefix";
        phoneNumberSequence.Items.Add(prefix1);
        // <xs:element name="number"/>
        XmlSchemaElement number1 = new XmlSchemaElement();
        number1.MinOccurs = 1;
        number1.MaxOccursString = "1";
        number1.Name = "number";
        phoneNumberSequence.Items.Add(number1);
        phoneNumber.Particle = phoneNumberSequence;
        schema.Items.Add(phoneNumber);
        // <xs:complexType name="localPhoneNumber">
        XmlSchemaComplexType localPhoneNumber = new XmlSchemaComplexType();
        localPhoneNumber.Name = "localPhoneNumber";
        // <xs:complexContent>
        XmlSchemaComplexContent complexContent = new XmlSchemaComplexContent();
        // <xs:restriction base="phoneNumber">
        XmlSchemaComplexContentRestriction restriction = new XmlSchemaComplexContentRestriction();
        restriction.BaseTypeName = new XmlQualifiedName("phoneNumber", "");
        // <xs:sequence>
        XmlSchemaSequence sequence2 = new XmlSchemaSequence();
        // <xs:element name="areaCode" minOccurs="0"/>
        XmlSchemaElement areaCode2 = new XmlSchemaElement();
        areaCode2.MinOccurs = 0;
        areaCode2.MaxOccursString = "1";
        areaCode2.Name = "areaCode";
        sequence2.Items.Add(areaCode2);
        // <xs:element name="prefix"/>
        XmlSchemaElement prefix2 = new XmlSchemaElement();
        prefix2.MinOccurs = 1;
        prefix2.MaxOccursString = "1";
        prefix2.Name = "prefix";
        sequence2.Items.Add(prefix2);
        // <xs:element name="number"/>
        XmlSchemaElement number2 = new XmlSchemaElement();
        number2.MinOccurs = 1;
        number2.MaxOccursString = "1";
        number2.Name = "number";
        sequence2.Items.Add(number2);
        restriction.Particle = sequence2;
        complexContent.Content = restriction;
        localPhoneNumber.ContentModel = complexContent;
        schema.Items.Add(localPhoneNumber);
        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);
    }
}
Option Explicit On
Option Strict On
Imports System.Xml
Imports System.Xml.Schema
Class XMLSchemaExamples
    Public Shared Sub Main()
        Dim schema As New XmlSchema()
        ' <xs:complexType name="phoneNumber">
        Dim phoneNumber As New XmlSchemaComplexType()
        phoneNumber.Name = "phoneNumber"
        ' <xs:sequence>
        Dim phoneNumberSequence As New XmlSchemaSequence()
        ' <xs:element name="areaCode"/>
        Dim areaCode1 As New XmlSchemaElement()
        areaCode1.MinOccurs = 0
        areaCode1.MaxOccursString = "1"
        areaCode1.Name = "areaCode"
        phoneNumberSequence.Items.Add(areaCode1)
        ' <xs:element name="prefix"/>
        Dim prefix1 As New XmlSchemaElement()
        prefix1.MinOccurs = 1
        prefix1.MaxOccursString = "1"
        prefix1.Name = "prefix"
        phoneNumberSequence.Items.Add(prefix1)
        ' <xs:element name="number"/>
        Dim number1 As New XmlSchemaElement()
        number1.MinOccurs = 1
        number1.MaxOccursString = "1"
        number1.Name = "number"
        phoneNumberSequence.Items.Add(number1)
        phoneNumber.Particle = phoneNumberSequence
        schema.Items.Add(phoneNumber)
        ' <xs:complexType name="localPhoneNumber">
        Dim localPhoneNumber As New XmlSchemaComplexType()
        localPhoneNumber.Name = "localPhoneNumber"
        ' <xs:complexContent>
        Dim complexContent As New XmlSchemaComplexContent()
        ' <xs:restriction base="phoneNumber">
        Dim restriction As New XmlSchemaComplexContentRestriction()
        restriction.BaseTypeName = New XmlQualifiedName("phoneNumber", "")
        ' <xs:sequence>
        Dim sequence2 As New XmlSchemaSequence()
        ' <xs:element name="areaCode" minOccurs="0"/>
        Dim areaCode2 As New XmlSchemaElement()
        areaCode2.MinOccurs = 0
        areaCode2.MaxOccursString = "1"
        areaCode2.Name = "areaCode"
        sequence2.Items.Add(areaCode2)
        ' <xs:element name="prefix"/>
        Dim prefix2 As New XmlSchemaElement()
        prefix2.MinOccurs = 1
        prefix2.MaxOccursString = "1"
        prefix2.Name = "prefix"
        sequence2.Items.Add(prefix2)
        ' <xs:element name="number"/>
        Dim number2 As New XmlSchemaElement()
        number2.MinOccurs = 1
        number2.MaxOccursString = "1"
        number2.Name = "number"
        sequence2.Items.Add(number2)
        restriction.Particle = sequence2
        complexContent.Content = restriction
        localPhoneNumber.ContentModel = complexContent
        schema.Items.Add(localPhoneNumber)
        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:complexType name="phoneNumber">
        <xs:sequence>
            <xs:element name="areaCode" minOccurs="0" maxOccurs="1"/>
            <xs:element name="prefix" minOccurs="1" maxOccurs="1"/>
            <xs:element name="number" minOccurs="1" maxOccurs="1"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="localPhoneNumber">
        <xs:complexContent mixed="false">
            <xs:restriction base="phoneNumber">
                <xs:sequence>
                    <xs:element name="areaCode" minOccurs="0" maxOccurs="1"/>
                    <xs:element name="prefix" minOccurs="1" maxOccurs="1"/>
                    <xs:element name="number" minOccurs="1" maxOccurs="1"/>
                </xs:sequence>
            </xs:restriction>
        </xs:complexContent>
    </xs:complexType>
    
</xs:schema>
构造函数
| XmlSchemaComplexContentRestriction() | 初始化 XmlSchemaComplexContentRestriction 类的新实例。 | 
属性
| Annotation | 获取或设置  | 
| AnyAttribute | 获取或设置复杂内容模型的 XmlSchemaAnyAttribute 组件。 | 
| Attributes | 获取复杂类型的属性集合。 包含 XmlSchemaAttribute 和 XmlSchemaAttributeGroupRef 元素。 | 
| BaseTypeName | 获取或设置复杂类型(该类型通过它进行限制而派生)的名称。 | 
| Id | 获取或设置字符串 ID。(继承自 XmlSchemaAnnotated) | 
| LineNumber | 获取或设置  | 
| LinePosition | 获取或设置  | 
| Namespaces | 获取或设置用于此架构对象的 XmlSerializerNamespaces。(继承自 XmlSchemaObject) | 
| Parent | 获取或设置此 XmlSchemaObject 的父级。(继承自 XmlSchemaObject) | 
| Particle | 获取或设置 XmlSchemaGroupRef、XmlSchemaChoice、XmlSchemaAll 或 XmlSchemaSequence 类之一。 | 
| SourceUri | 获取或设置加载了架构的文件的源位置。(继承自 XmlSchemaObject) | 
| UnhandledAttributes | 获取或设置不属于当前架构目标命名空间的限定特性。(继承自 XmlSchemaAnnotated) | 
方法
| Equals(Object) | 确定指定对象是否等于当前对象。(继承自 Object) | 
| GetHashCode() | 作为默认哈希函数。(继承自 Object) | 
| GetType() | 获取当前实例的 Type。(继承自 Object) | 
| MemberwiseClone() | 创建当前 Object 的浅表副本。(继承自 Object) | 
| ToString() | 返回表示当前对象的字符串。(继承自 Object) |