Leer en inglés

Compartir vía


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.

C#
public class XmlSchemaComplexContentRestriction : System.Xml.Schema.XmlSchemaContent
Herencia
XmlSchemaComplexContentRestriction

Ejemplos

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

C#
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);
    }
}

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

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>

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

Producto Versiones
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1