XmlSchemaSimpleTypeUnion クラス

定義

W3C (World Wide Web Consortium) によって指定された XML スキーマの単純型に対する union 要素を表します。 union データ型を使用すると、simpleType の内容を設定できます。 simpleType 要素の値は、この共用体で指定されている複数のデータ型のうちの、いずれか 1 つであることが必要です。 共用体型は常に派生型であり、許容するデータ型が複数指定されている必要があります。

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
継承

次の例は、クラスの XmlSchemaSimpleTypeUnion 使用を示しています。

#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

このコード例では、次の XML ファイルが生成されます。

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

注釈

union型を使用すると、要素または属性値を、複数のアトミック型とリスト型の和集合から描画された 1 つの型の 1 つ以上のインスタンスにすることができます。

コンストラクター

XmlSchemaSimpleTypeUnion()

XmlSchemaSimpleTypeUnion クラスの新しいインスタンスを初期化します。

プロパティ

Annotation

annotation プロパティを取得または設定します。

(継承元 XmlSchemaAnnotated)
BaseMemberTypes

simpleType 要素の型を表す XmlSchemaSimpleType オブジェクトの配列を、単純型の BaseTypes 値および MemberTypes 値に基づいて取得します。

BaseTypes

基本型のコレクションを取得します。

Id

文字列 ID を取得または設定します。

(継承元 XmlSchemaAnnotated)
LineNumber

schema 要素が参照するファイルの行番号を取得または設定します。

(継承元 XmlSchemaObject)
LinePosition

schema 要素が参照するファイルの行番号を取得または設定します。

(継承元 XmlSchemaObject)
MemberTypes

このスキーマまたは指定した名前空間で示された別のスキーマで定義された組み込みデータ型または simpleType 要素の限定メンバー名の配列を取得または設定します。

Namespaces

このスキーマ オブジェクトと一緒に使用する XmlSerializerNamespaces を取得または設定します。

(継承元 XmlSchemaObject)
Parent

この XmlSchemaObject の親を取得または設定します。

(継承元 XmlSchemaObject)
SourceUri

スキーマを読み込んだファイルのソース位置を取得または設定します。

(継承元 XmlSchemaObject)
UnhandledAttributes

現在のスキーマのターゲット名前空間に属さない、修飾された属性を取得または設定します。

(継承元 XmlSchemaAnnotated)

メソッド

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象