次の方法で共有


XmlSchemaSimpleTypeUnion クラス

simpleType 要素の和集合のクラス。simpleType 要素を指定したデータ型の値のリストとして定義します。W3C (World Wide Web Consortium) union 要素を表します。

この型のすべてのメンバの一覧については、XmlSchemaSimpleTypeUnion メンバ を参照してください。

System.Object
   System.Xml.Schema.XmlSchemaObject
      System.Xml.Schema.XmlSchemaAnnotated
         System.Xml.Schema.XmlSchemaSimpleTypeContent
            System.Xml.Schema.XmlSchemaSimpleTypeUnion

Public Class XmlSchemaSimpleTypeUnion
   Inherits XmlSchemaSimpleTypeContent
[C#]
public class XmlSchemaSimpleTypeUnion : XmlSchemaSimpleTypeContent
[C++]
public __gc class XmlSchemaSimpleTypeUnion : public
   XmlSchemaSimpleTypeContent
[JScript]
public class XmlSchemaSimpleTypeUnion extends
   XmlSchemaSimpleTypeContent

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

union 型を使用すると、要素値または属性値を、複数の分割不可能な型およびリスト型の和集合から得られる 1 つの型の 1 つ以上のインスタンスにすることができます。

使用例

[Visual Basic, C#, C++] XmlSchemaSimpleTypeUnion クラスを使用する例を次に示します。

 
Imports System
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)
        
    schema.Compile(AddressOf ValidationCallbackOne)
    Dim nsmgr As New XmlNamespaceManager(New NameTable())
    nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema")
    schema.Write(Console.Out, nsmgr)
  End Sub

    Public Shared Sub ValidationCallbackOne(sender As object, args as ValidationEventArgs)
        Console.WriteLine(args.Message)
    End Sub
End class

[C#] 
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);
        
        schema.Compile(new ValidationEventHandler(ValidationCallbackOne));
     XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable());
        nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema");
        schema.Write(Console.Out, nsmgr);
    }

    public static void ValidationCallbackOne(object sender, ValidationEventArgs args) {
        Console.WriteLine(args.Message);
    }
}

[C++] 
#using <mscorlib.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::Xml;  
using namespace System::Xml::Schema;

__gc class XMLSchemaExamples 
{
public:
   static void ValidationCallbackOne(Object* sender, ValidationEventArgs * args) 
   {
      Console::WriteLine(args -> Message);
   }
};

int main() 
{
   XmlSchema* schema = new XmlSchema();

   //<xs:simpleType name=S"StringOrIntType">
   XmlSchemaSimpleType* StringOrIntType = new XmlSchemaSimpleType();
   StringOrIntType -> Name = S"StringOrIntType";
   schema -> Items->Add(StringOrIntType);

   // <xs:union>
   XmlSchemaSimpleTypeUnion* MyUnion = new XmlSchemaSimpleTypeUnion();
   StringOrIntType -> Content = MyUnion;

   // <xs:simpleType>
   XmlSchemaSimpleType* simpleType1 = new XmlSchemaSimpleType();
   MyUnion -> BaseTypes->Add(simpleType1);

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

   // <xs:simpleType>
   XmlSchemaSimpleType* simpleType2 = new XmlSchemaSimpleType();
   MyUnion -> BaseTypes->Add(simpleType2);

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

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

   schema -> Compile(new ValidationEventHandler(schema, XMLSchemaExamples::ValidationCallbackOne));
   XmlNamespaceManager* nsmgr = new XmlNamespaceManager(new NameTable());
   nsmgr -> AddNamespace(S"xs", S"http://www.w3.org/2001/XMLSchema");
   schema -> Write(Console::Out, nsmgr);
}

[Visual Basic, C#, C++] このコード例に対して生成される 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>

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Xml.Schema

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: System.Xml (System.Xml.dll 内)

参照

XmlSchemaSimpleTypeUnion メンバ | System.Xml.Schema 名前空間