複合型の複合コンテンツ モデルを表すクラス。混合コンテンツまたは要素だけを持つ複合型の拡張子または制限を格納します。W3C (World Wide Web Consortium) complexContent 要素を表します。
この型のすべてのメンバの一覧については、XmlSchemaComplexContent メンバ を参照してください。
System.Object
System.Xml.Schema.XmlSchemaObject
System.Xml.Schema.XmlSchemaAnnotated
System.Xml.Schema.XmlSchemaContentModel
System.Xml.Schema.XmlSchemaComplexContent
Public Class XmlSchemaComplexContent
Inherits XmlSchemaContentModel
[C#]
public class XmlSchemaComplexContent : XmlSchemaContentModel
[C++]
public __gc class XmlSchemaComplexContent : public
XmlSchemaContentModel
[JScript]
public class XmlSchemaComplexContent extends XmlSchemaContentModel
スレッドセーフ
この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。
使用例
[Visual Basic, C#, C++] complexContent 要素を作成する例を次に示します。
Option Strict
Option Explicit
Imports System
Imports System.Xml
Imports System.Xml.Schema
Class XMLSchemaExamples
Public Shared Sub Main()
Dim schema As New XmlSchema()
' <xs:complexType name="address">
Dim address As New XmlSchemaComplexType()
schema.Items.Add(address)
address.Name = "address"
' <xs:sequence>
Dim sequence As New XmlSchemaSequence()
address.Particle = sequence
' <xs:element name="name" type="xs:string"/>
Dim elementName As New XmlSchemaElement()
sequence.Items.Add(elementName)
elementName.Name = "name"
elementName.SchemaTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")
' <xs:element name="street" type="xs:string"/>
Dim elementStreet As New XmlSchemaElement()
sequence.Items.Add(elementStreet)
elementStreet.Name = "street"
elementStreet.SchemaTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")
' <xs:element name="city" type="xs:string"/>
Dim elementCity As New XmlSchemaElement()
sequence.Items.Add(elementCity)
elementCity.Name = "city"
elementCity.SchemaTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")
' <xs:complexType name="USAddress">
Dim USAddress As New XmlSchemaComplexType()
schema.Items.Add(USAddress)
USAddress.Name = "USAddress"
' <xs:complexContent>
Dim complexContent As New XmlSchemaComplexContent()
USAddress.ContentModel = complexContent
' <xs:extension base="address">
Dim extensionAddress As New XmlSchemaComplexContentExtension()
complexContent.Content = extensionAddress
extensionAddress.BaseTypeName = New XmlQualifiedName("address")
' <xs:sequence>
Dim sequence2 As New XmlSchemaSequence()
extensionAddress.Particle = sequence2
' <xs:element name="state" type="xs:string"/>
Dim elementUSState As New XmlSchemaElement()
sequence2.Items.Add(elementUSState)
elementUSState.Name = "state"
elementUSState.SchemaTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")
' <xs:element name="zipcode" type="xs:positiveInteger"/>
Dim elementZipcode As New XmlSchemaElement()
sequence2.Items.Add(elementZipcode)
elementZipcode.Name = "zipcode"
elementZipcode.SchemaTypeName = New XmlQualifiedName("positiveInteger", "http://www.w3.org/2001/XMLSchema")
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 'Main
Public Shared Sub ValidationCallbackOne(sender As Object, args As ValidationEventArgs)
Console.WriteLine(args.Message)
End Sub 'ValidationCallbackOne
End Class 'XMLSchemaExamples
[C#]
using System;
using System.Xml;
using System.Xml.Schema;
class XMLSchemaExamples {
public static void Main() {
XmlSchema schema = new XmlSchema();
// <xs:complexType name="address">
XmlSchemaComplexType address = new XmlSchemaComplexType();
schema.Items.Add(address);
address.Name = "address";
// <xs:sequence>
XmlSchemaSequence sequence = new XmlSchemaSequence();
address.Particle = sequence;
// <xs:element name="name" type="xs:string"/>
XmlSchemaElement elementName = new XmlSchemaElement();
sequence.Items.Add(elementName);
elementName.Name = "name";
elementName.SchemaTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:element name="street" type="xs:string"/>
XmlSchemaElement elementStreet = new XmlSchemaElement();
sequence.Items.Add(elementStreet);
elementStreet.Name = "street";
elementStreet.SchemaTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:element name="city" type="xs:string"/>
XmlSchemaElement elementCity = new XmlSchemaElement();
sequence.Items.Add(elementCity);
elementCity.Name = "city";
elementCity.SchemaTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:complexType name="USAddress">
XmlSchemaComplexType USAddress = new XmlSchemaComplexType();
schema.Items.Add(USAddress);
USAddress.Name = "USAddress";
// <xs:complexContent>
XmlSchemaComplexContent complexContent = new XmlSchemaComplexContent();
USAddress.ContentModel = complexContent;
// <xs:extension base="address">
XmlSchemaComplexContentExtension extensionAddress = new XmlSchemaComplexContentExtension();
complexContent.Content = extensionAddress;
extensionAddress.BaseTypeName = new XmlQualifiedName("address");
// <xs:sequence>
XmlSchemaSequence sequence2 = new XmlSchemaSequence();
extensionAddress.Particle = sequence2;
// <xs:element name="state" type="xs:string"/>
XmlSchemaElement elementUSState = new XmlSchemaElement();
sequence2.Items.Add(elementUSState);
elementUSState.Name = "state";
elementUSState.SchemaTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:element name="zipcode" type="xs:positiveInteger"/>
XmlSchemaElement elementZipcode = new XmlSchemaElement();
sequence2.Items.Add(elementZipcode);
elementZipcode.Name = "zipcode";
elementZipcode.SchemaTypeName = new XmlQualifiedName("positiveInteger", "http://www.w3.org/2001/XMLSchema");
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 main() {
XmlSchema* schema = new XmlSchema();
// <xs:complexType name="address">
XmlSchemaComplexType* address = new XmlSchemaComplexType();
schema->Items->Add(address);
address->Name = S"address";
// <xs:sequence>
XmlSchemaSequence* sequence = new XmlSchemaSequence();
address->Particle = sequence;
// <xs:element name="name" type="xs:string"/>
XmlSchemaElement* elementName = new XmlSchemaElement();
sequence->Items->Add(elementName);
elementName->Name = S"name";
elementName->SchemaTypeName = new XmlQualifiedName(S"string", S"http://www.w3.org/2001/XMLSchema");
// <xs:element name="street" type="xs:string"/>
XmlSchemaElement* elementStreet = new XmlSchemaElement();
sequence->Items->Add(elementStreet);
elementStreet->Name = S"street";
elementStreet->SchemaTypeName = new XmlQualifiedName(S"string", S"http://www.w3.org/2001/XMLSchema");
// <xs:element name="city" type="xs:string"/>
XmlSchemaElement* elementCity = new XmlSchemaElement();
sequence->Items->Add(elementCity);
elementCity->Name = S"city";
elementCity->SchemaTypeName = new XmlQualifiedName(S"string", S"http://www.w3.org/2001/XMLSchema");
// <xs:complexType name="USAddress">
XmlSchemaComplexType* USAddress = new XmlSchemaComplexType();
schema->Items->Add(USAddress);
USAddress->Name = S"USAddress";
// <xs:complexContent>
XmlSchemaComplexContent* complexContent = new XmlSchemaComplexContent();
USAddress->ContentModel = complexContent;
// <xs:extension base="address">
XmlSchemaComplexContentExtension* extensionAddress = new XmlSchemaComplexContentExtension();
complexContent->Content = extensionAddress;
extensionAddress->BaseTypeName = new XmlQualifiedName(S"address");
// <xs:sequence>
XmlSchemaSequence* sequence2 = new XmlSchemaSequence();
extensionAddress->Particle = sequence2;
// <xs:element name="state" type="xs:string"/>
XmlSchemaElement* elementUSState = new XmlSchemaElement();
sequence2->Items->Add(elementUSState);
elementUSState->Name = S"state";
elementUSState->SchemaTypeName = new XmlQualifiedName(S"string", S"http://www.w3.org/2001/XMLSchema");
// <xs:element name="zipcode" type="xs:positiveInteger"/>
XmlSchemaElement* elementZipcode = new XmlSchemaElement();
sequence2->Items->Add(elementZipcode);
elementZipcode->Name = S"zipcode";
elementZipcode->SchemaTypeName = new XmlQualifiedName(S"positiveInteger", S"http://www.w3.org/2001/XMLSchema");
schema->Compile(new ValidationEventHandler(0, ValidationCallbackOne));
XmlNamespaceManager* nsmgr = new XmlNamespaceManager(new NameTable());
nsmgr->AddNamespace(S"xs", S"http://www.w3.org/2001/XMLSchema");
schema->Write(Console::Out,nsmgr);
}
static void ValidationCallbackOne(Object* /*sender*/, ValidationEventArgs* args) {
Console::WriteLine(args->Message);
}
};
int main()
{
XMLSchemaExamples::main();
}
[Visual Basic, C#, C++] 前述のコード例に対して生成される XML ファイルを次に示します。
<?xml version="1.0" encoding="IBM437"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="address">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="street" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="USAddress">
<xs:complexContent mixed="false">
<xs:extension base="address">
<xs:sequence>
<xs:element name="state" type="xs:string"/>
<xs:element name="zipcode" type="xs:positiveInteger"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</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 内)