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 内)