Partager via


XmlSchemaSimpleTypeUnion Classe

Définition

Représente l’élément union de types simples issu d’un schéma XML comme spécifié par le W3C (World Wide Web Consortium). Un type de données union peut être utilisé pour spécifier le contenu d'un simpleType. La valeur de l'élément simpleType doit faire partie d'un jeu de types de données de remplacement spécifié dans l'union. Les types d'union sont toujours des types dérivés et doivent comprendre au moins deux types de données de remplacement.

public ref class XmlSchemaSimpleTypeUnion : System::Xml::Schema::XmlSchemaSimpleTypeContent
public class XmlSchemaSimpleTypeUnion : System.Xml.Schema.XmlSchemaSimpleTypeContent
type XmlSchemaSimpleTypeUnion = class
    inherit XmlSchemaSimpleTypeContent
Public Class XmlSchemaSimpleTypeUnion
Inherits XmlSchemaSimpleTypeContent
Héritage

Exemples

L’exemple suivant montre l’utilisation de XmlSchemaSimpleTypeUnion la classe.

#using <System.Xml.dll>

using namespace System;
using namespace System::Xml;
using namespace System::Xml::Schema;

ref class XMLSchemaExamples
{
private:
    static void ValidationCallbackOne(Object^ sender, ValidationEventArgs^ args)
    {
        Console::WriteLine(args->Message);
    }
    
public:
    static void Main()
    {
        XmlSchema^ schema = gcnew XmlSchema();

        //<xs:simpleType name="StringOrIntType">
        XmlSchemaSimpleType^ StringOrIntType = gcnew XmlSchemaSimpleType();
        StringOrIntType->Name = "StringOrIntType";
        schema->Items->Add(StringOrIntType);

        // <xs:union>
        XmlSchemaSimpleTypeUnion^ union1 = gcnew XmlSchemaSimpleTypeUnion();
        StringOrIntType->Content = union1;

        // <xs:simpleType>
        XmlSchemaSimpleType^ simpleType1 = gcnew XmlSchemaSimpleType();
        union1->BaseTypes->Add(simpleType1);

        // <xs:restriction base="xs:string"/>
        XmlSchemaSimpleTypeRestriction^ restriction1 = gcnew XmlSchemaSimpleTypeRestriction();
        restriction1->BaseTypeName = gcnew XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
        simpleType1->Content = restriction1;

        // <xs:simpleType>
        XmlSchemaSimpleType^ simpleType2 = gcnew XmlSchemaSimpleType();
        union1->BaseTypes->Add(simpleType2);

        // <xs:restriction base="xs:int"/>
        XmlSchemaSimpleTypeRestriction^ restriction2 = gcnew XmlSchemaSimpleTypeRestriction();
        restriction2->BaseTypeName = gcnew XmlQualifiedName("int", "http://www.w3.org/2001/XMLSchema");
        simpleType2->Content = restriction2;


        // <xs:element name="size" type="StringOrIntType"/>
        XmlSchemaElement^ elementSize = gcnew XmlSchemaElement();
        elementSize->Name = "size";
        elementSize->SchemaTypeName = gcnew XmlQualifiedName("StringOrIntType");
        schema->Items->Add(elementSize);

        XmlSchemaSet^ schemaSet = gcnew XmlSchemaSet();
        schemaSet->ValidationEventHandler += gcnew ValidationEventHandler(ValidationCallbackOne);
        schemaSet->Add(schema);
        schemaSet->Compile();

        XmlSchema^ compiledSchema = nullptr;

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

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:simpleType name="StringOrIntType">
        XmlSchemaSimpleType StringOrIntType = new XmlSchemaSimpleType();
        StringOrIntType.Name = "StringOrIntType";
        schema.Items.Add(StringOrIntType);

        // <xs:union>
        XmlSchemaSimpleTypeUnion union = new XmlSchemaSimpleTypeUnion();
        StringOrIntType.Content = union;

        // <xs:simpleType>
        XmlSchemaSimpleType simpleType1 = new XmlSchemaSimpleType();
        union.BaseTypes.Add(simpleType1);

        // <xs:restriction base="xs:string"/>
        XmlSchemaSimpleTypeRestriction restriction1 = new XmlSchemaSimpleTypeRestriction();
        restriction1.BaseTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
        simpleType1.Content = restriction1;

        // <xs:simpleType>
        XmlSchemaSimpleType simpleType2 = new XmlSchemaSimpleType();
        union.BaseTypes.Add(simpleType2);

        // <xs:restriction base="xs:int"/>
        XmlSchemaSimpleTypeRestriction restriction2 = new XmlSchemaSimpleTypeRestriction();
        restriction2.BaseTypeName = new XmlQualifiedName("int", "http://www.w3.org/2001/XMLSchema");
        simpleType2.Content = restriction2;

        // <xs:element name="size" type="StringOrIntType"/>
        XmlSchemaElement elementSize = new XmlSchemaElement();
        elementSize.Name = "size";
        elementSize.SchemaTypeName = new XmlQualifiedName("StringOrIntType");
        schema.Items.Add(elementSize);

        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:simpleType name="StringOrIntType">
        Dim StringOrIntType As New XmlSchemaSimpleType()
        StringOrIntType.Name = "StringOrIntType"
        schema.Items.Add(StringOrIntType)

        ' <xs:union>
        Dim union As New XmlSchemaSimpleTypeUnion
        StringOrIntType.Content = union

        ' <xs:simpleType>
        Dim simpleType1 As New XmlSchemaSimpleType
        union.BaseTypes.Add(simpleType1)

        ' <xs:restriction base="xs:string"/>
        Dim restriction1 As New XmlSchemaSimpleTypeRestriction()
        restriction1.BaseTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")
        simpleType1.Content = restriction1

        ' <xs:simpleType>
        Dim simpleType2 As New XmlSchemaSimpleType()
        union.BaseTypes.Add(simpleType2)

        ' <xs:restriction base="xs:int"/>
        Dim restriction2 As New XmlSchemaSimpleTypeRestriction()
        restriction2.BaseTypeName = New XmlQualifiedName("int", "http://www.w3.org/2001/XMLSchema")
        simpleType2.Content = restriction2


        ' <xs:element name="size" type="StringOrIntType"/>
        Dim elementSize As New XmlSchemaElement()
        elementSize.Name = "size"
        elementSize.SchemaTypeName = New XmlQualifiedName("StringOrIntType")
        schema.Items.Add(elementSize)

        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

Le fichier XML suivant est généré pour cet exemple de code.

<?xml version="1.0" encoding="IBM437"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <xs:simpleType name="StringOrIntType">
        <xs:union>
            <xs:simpleType>
                <xs:restriction base="xs:string"/>
            </xs:simpleType>
    
            <xs:simpleType>
                <xs:restriction base="xs:int"/>
            </xs:simpleType>
        </xs:union>
    </xs:simpleType>
    
    <xs:element name="size" type="StringOrIntType"/>
</xs:schema>

Remarques

Un union type permet à un élément ou une valeur d’attribut d’être une ou plusieurs instances d’un type dessiné à partir de l’union de plusieurs types atomiques et de listes.

Constructeurs

XmlSchemaSimpleTypeUnion()

Initialise une nouvelle instance de la classe XmlSchemaSimpleTypeUnion.

Propriétés

Annotation

Obtient ou définit la propriété annotation.

(Hérité de XmlSchemaAnnotated)
BaseMemberTypes

Obtient un tableau d'objets XmlSchemaSimpleType qui représentent le type de l'élément simpleType basé sur les valeurs BaseTypes et MemberTypes du type simple.

BaseTypes

Obtient la collection des types de base.

Id

Obtient ou définit l'ID de chaîne.

(Hérité de XmlSchemaAnnotated)
LineNumber

Obtient ou définit le numéro de la ligne du fichier à laquelle l'élément schema fait référence.

(Hérité de XmlSchemaObject)
LinePosition

Obtient ou définit la position de la ligne du fichier à laquelle l'élément schema fait référence.

(Hérité de XmlSchemaObject)
MemberTypes

Obtient ou définit le tableau des noms de membres qualifiés des types de données intégrés ou des éléments simpleType définis dans ce schéma (ou dans un autre schéma indiqué par l'espace de noms spécifié).

Namespaces

Obtient ou définit le XmlSerializerNamespaces à utiliser avec cet objet de schéma.

(Hérité de XmlSchemaObject)
Parent

Obtient ou définit le parent de ce XmlSchemaObject.

(Hérité de XmlSchemaObject)
SourceUri

Obtient ou définit l'emplacement de la source pour le fichier qui a chargé le schéma.

(Hérité de XmlSchemaObject)
UnhandledAttributes

Obtient ou définit les attributs qualifiés qui n'appartiennent pas à l'espace de noms cible du schéma en cours.

(Hérité de XmlSchemaAnnotated)

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à