XmlSchemaChoice Classe

Definição

Representa o elemento choice (compositor) do Esquema XML, conforme especificado pelo W3C (World Wide Web Consortium). O choice permite que apenas um de seus filhos sejam exibidos em uma instância.

public ref class XmlSchemaChoice : System::Xml::Schema::XmlSchemaGroupBase
public class XmlSchemaChoice : System.Xml.Schema.XmlSchemaGroupBase
type XmlSchemaChoice = class
    inherit XmlSchemaGroupBase
Public Class XmlSchemaChoice
Inherits XmlSchemaGroupBase
Herança

Exemplos

O exemplo a seguir cria um choice elemento .

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

        // <xs:element name="unselected"/>
        XmlSchemaElement^ xeUnselected = gcnew XmlSchemaElement();
        xeUnselected->Name = "unselected";
        schema->Items->Add(xeUnselected);

        // <xs:element name="dimpled"/>
        XmlSchemaElement^ xeDimpled = gcnew XmlSchemaElement();
        xeDimpled->Name = "dimpled";
        schema->Items->Add(xeDimpled);

        // <xs:element name="perforated"/>
        XmlSchemaElement^ xePerforated = gcnew XmlSchemaElement();
        xePerforated->Name = "perforated";
        schema->Items->Add(xePerforated);

        // <xs:complexType name="chadState">
        XmlSchemaComplexType^ chadState = gcnew XmlSchemaComplexType();
        schema->Items->Add(chadState);
        chadState->Name = "chadState";

        // <xs:choice minOccurs="1" maxOccurs="1">
        XmlSchemaChoice^ choice = gcnew XmlSchemaChoice();
        chadState->Particle = choice;
        choice->MinOccurs = 1;
        choice->MaxOccurs = 1;

        // <xs:element ref="selected"/>
        XmlSchemaElement^ elementSelected = gcnew XmlSchemaElement();
        choice->Items->Add(elementSelected);
        elementSelected->RefName = gcnew XmlQualifiedName("selected");

        // <xs:element ref="unselected"/>
        XmlSchemaElement^ elementUnselected = gcnew XmlSchemaElement();
        choice->Items->Add(elementUnselected);
        elementUnselected->RefName = gcnew XmlQualifiedName("unselected");

        // <xs:element ref="dimpled"/>
        XmlSchemaElement^ elementDimpled = gcnew XmlSchemaElement();
        choice->Items->Add(elementDimpled);
        elementDimpled->RefName = gcnew XmlQualifiedName("dimpled");

        // <xs:element ref="perforated"/>
        XmlSchemaElement^ elementPerforated = gcnew XmlSchemaElement();
        choice->Items->Add(elementPerforated);
        elementPerforated->RefName = gcnew XmlQualifiedName("perforated");

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

        // <xs:element name="unselected"/>
        XmlSchemaElement xeUnselected = new XmlSchemaElement();
        xeUnselected.Name = "unselected";
        schema.Items.Add(xeUnselected);

        // <xs:element name="dimpled"/>
        XmlSchemaElement xeDimpled = new XmlSchemaElement();
        xeDimpled.Name = "dimpled";
        schema.Items.Add(xeDimpled);

        // <xs:element name="perforated"/>
        XmlSchemaElement xePerforated = new XmlSchemaElement();
        xePerforated.Name = "perforated";
        schema.Items.Add(xePerforated);

        // <xs:complexType name="chadState">
        XmlSchemaComplexType chadState = new XmlSchemaComplexType();
        schema.Items.Add(chadState);
        chadState.Name = "chadState";

        // <xs:choice minOccurs="1" maxOccurs="1">
        XmlSchemaChoice choice = new XmlSchemaChoice();
        chadState.Particle = choice;
        choice.MinOccurs = 1;
        choice.MaxOccurs = 1;

        // <xs:element ref="selected"/>
        XmlSchemaElement elementSelected = new XmlSchemaElement();
        choice.Items.Add(elementSelected);
        elementSelected.RefName = new XmlQualifiedName("selected");

        // <xs:element ref="unselected"/>
        XmlSchemaElement elementUnselected = new XmlSchemaElement();
        choice.Items.Add(elementUnselected);
        elementUnselected.RefName = new XmlQualifiedName("unselected");

        // <xs:element ref="dimpled"/>
        XmlSchemaElement elementDimpled = new XmlSchemaElement();
        choice.Items.Add(elementDimpled);
        elementDimpled.RefName = new XmlQualifiedName("dimpled");

        // <xs:element ref="perforated"/>
        XmlSchemaElement elementPerforated = new XmlSchemaElement();
        choice.Items.Add(elementPerforated);
        elementPerforated.RefName = new XmlQualifiedName("perforated");

        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 Strict On
Option Explicit On

Imports System.Xml
Imports System.Xml.Schema

Class XMLSchemaExamples
    Public Shared Sub Main()
        Dim schema As New XmlSchema()

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

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

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

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

        ' <xs:complexType name="chadState">
        Dim chadState As New XmlSchemaComplexType()
        schema.Items.Add(chadState)
        chadState.Name = "chadState"

        ' <xs:choice minOccurs="1" maxOccurs="1">
        Dim choice As New XmlSchemaChoice()
        chadState.Particle = choice
        choice.MinOccurs = 1
        choice.MaxOccurs = 1

        ' <xs:element ref="selected"/>
        Dim elementSelected As New XmlSchemaElement()
        choice.Items.Add(elementSelected)
        elementSelected.RefName = New XmlQualifiedName("selected")

        ' <xs:element ref="unselected"/>
        Dim elementUnselected As New XmlSchemaElement()
        choice.Items.Add(elementUnselected)
        elementUnselected.RefName = New XmlQualifiedName("unselected")

        ' <xs:element ref="dimpled"/>
        Dim elementDimpled As New XmlSchemaElement()
        choice.Items.Add(elementDimpled)
        elementDimpled.RefName = New XmlQualifiedName("dimpled")

        ' <xs:element ref="perforated"/>
        Dim elementPerforated As New XmlSchemaElement()
        choice.Items.Add(elementPerforated)
        elementPerforated.RefName = New XmlQualifiedName("perforated")

        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

O arquivo XML a seguir é gerado para o exemplo de código anterior.


<?xml version="1.0" encoding="IBM437"?>
<xs:schema  xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="selected"/>
    <xs:element name="unselected"/>
    <xs:element name="dimpled"/>
    <xs:element name="perforated"/>
    
    <xs:complexType name="chadState">
        <xs:choice minOccurs="1" maxOccurs="1">
            <xs:element ref="selected"/>
            <xs:element ref="unselected"/>
            <xs:element ref="dimpled"/>
            <xs:element ref="perforated"/>
        </xs:choice>
    </xs:complexType>
</xs:schema>

Construtores

XmlSchemaChoice()

Inicializa uma nova instância da classe XmlSchemaChoice.

Propriedades

Annotation

Obtém ou define a propriedade annotation.

(Herdado de XmlSchemaAnnotated)
Id

Obtém ou define a ID de cadeia de caracteres.

(Herdado de XmlSchemaAnnotated)
Items

Obtém a coleção de elementos contidos com o compositor (choice): XmlSchemaElement, XmlSchemaGroupRef, XmlSchemaChoice, XmlSchemaSequence ou XmlSchemaAny.

LineNumber

Obtém ou define o número de linha no arquivo ao qual o elemento schema se refere.

(Herdado de XmlSchemaObject)
LinePosition

Obtém ou define a posição da linha no arquivo ao qual o elemento schema se refere.

(Herdado de XmlSchemaObject)
MaxOccurs

Obtém ou define o número máximo de vezes que a partícula pode ocorrer.

(Herdado de XmlSchemaParticle)
MaxOccursString

Obtém ou define o número como um valor de cadeia de caracteres. Número máximo de vezes que a partícula pode ocorrer.

(Herdado de XmlSchemaParticle)
MinOccurs

Obtém ou define o número mínimo de vezes que a partícula pode ocorrer.

(Herdado de XmlSchemaParticle)
MinOccursString

Obtém ou define o número como um valor de cadeia de caracteres. O número mínimo de vezes que a partícula pode ocorrer.

(Herdado de XmlSchemaParticle)
Namespaces

Obtém ou define o XmlSerializerNamespaces a ser usado com esse objeto de esquema.

(Herdado de XmlSchemaObject)
Parent

Obtém ou define o pai deste XmlSchemaObject.

(Herdado de XmlSchemaObject)
SourceUri

Obtém ou define o local de origem para o arquivo que carregou o esquema.

(Herdado de XmlSchemaObject)
UnhandledAttributes

Obtém ou define os atributos qualificados que não pertencem ao namespace de destino do esquema atual.

(Herdado de XmlSchemaAnnotated)

Métodos

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a