XmlSchemaComplexContentRestriction Clase

Definición

Representa el elemento restriction del esquema XML como especificado por el Consorcio WWC (W3C). Esta clase es para tipos complejos con un modelo de contenido complejo derivado mediante Restriction. Restringe el contenido del tipo complejo a un subconjunto del tipo complejo heredado.

public ref class XmlSchemaComplexContentRestriction : System::Xml::Schema::XmlSchemaContent
public class XmlSchemaComplexContentRestriction : System.Xml.Schema.XmlSchemaContent
type XmlSchemaComplexContentRestriction = class
    inherit XmlSchemaContent
Public Class XmlSchemaComplexContentRestriction
Inherits XmlSchemaContent
Herencia
XmlSchemaComplexContentRestriction

Ejemplos

En el ejemplo siguiente se crea un complexContent elemento extendido por restricción.

#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

El siguiente archivo XML se genera para el ejemplo de código anterior.

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

Constructores

XmlSchemaComplexContentRestriction()

Inicializa una nueva instancia de la clase XmlSchemaComplexContentRestriction.

Propiedades

Annotation

Obtiene o establece la propiedad annotation.

(Heredado de XmlSchemaAnnotated)
AnyAttribute

Obtiene o establece el componente XmlSchemaAnyAttribute del modelo de contenido complejo.

Attributes

Obtiene la colección de atributos del tipo complejo. Contiene los elementos XmlSchemaAttribute y XmlSchemaAttributeGroupRef.

BaseTypeName

Obtiene o establece el nombre de un tipo complejo del que se deriva este tipo mediante Restriction.

Id

Obtiene o establece el identificador de cadena.

(Heredado de XmlSchemaAnnotated)
LineNumber

Obtiene o establece el número de línea del archivo al que hace referencia el elemento schema.

(Heredado de XmlSchemaObject)
LinePosition

Obtiene o establece la posición de la línea en el archivo al que hace referencia el elemento schema.

(Heredado de XmlSchemaObject)
Namespaces

Obtiene o establece el objeto XmlSerializerNamespaces que se va a utilizar con este objeto de esquema.

(Heredado de XmlSchemaObject)
Parent

Obtiene o establece el elemento primario de este XmlSchemaObject.

(Heredado de XmlSchemaObject)
Particle

Obtiene o establece una de estas clases: XmlSchemaGroupRef, XmlSchemaChoice, XmlSchemaAll o XmlSchemaSequence.

SourceUri

Obtiene o establece la ubicación de origen del archivo que cargó el esquema.

(Heredado de XmlSchemaObject)
UnhandledAttributes

Obtiene o establece los atributos calificados que no pertenecen al espacio de nombres de destino del esquema actual.

(Heredado de XmlSchemaAnnotated)

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a