次の方法で共有


XmlSchemaComplexType クラス

複合型のクラス。要素の属性およびコンテンツのセットを決定する複合型を定義します。W3C (World Wide Web Consortium) complexType 要素を表します。

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

System.Object
   System.Xml.Schema.XmlSchemaObject
      System.Xml.Schema.XmlSchemaAnnotated
         System.Xml.Schema.XmlSchemaType
            System.Xml.Schema.XmlSchemaComplexType

Public Class XmlSchemaComplexType
   Inherits XmlSchemaType
[C#]
public class XmlSchemaComplexType : XmlSchemaType
[C++]
public __gc class XmlSchemaComplexType : public XmlSchemaType
[JScript]
public class XmlSchemaComplexType extends XmlSchemaType

スレッドセーフ

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

解説

要素は、その要素の構造体、コンテンツ、および属性を定義する complexType 要素を参照する型属性で宣言できます。

使用例

[Visual Basic, C#, C++] complexType 要素を作成する例を次に示します。

 
Imports System
Imports System.Xml  
Imports System.Xml.Schema

Class XMLSchemaExamples 
    Public Shared Sub Main()

        Dim schema as New XmlSchema()

        ' <xs:element name="stringElementWithAnyAttribute">
        Dim element as New XmlSchemaElement()
        schema.Items.Add(element)
        element.Name = "stringElementWithAnyAttribute"
        
        ' <xs:complexType>
        Dim complexType as New XmlSchemaComplexType()
        element.SchemaType = complexType
        
                ' <xs:simpleContent>
        Dim simpleContent as New XmlSchemaSimpleContent()
        complexType.ContentModel = simpleContent
        
        ' <extension base="xs:string">
        Dim extension as New XmlSchemaSimpleContentExtension()
        simpleContent.Content = extension
        extension.BaseTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")
        
        ' <xs:anyAttribute namespace="##targetNamespace"/>
        Dim anyAttribute as New XmlSchemaAnyAttribute()
        extension.AnyAttribute = anyAttribute
                anyAttribute.Namespace = "##targetNamespace"
 
        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:element name="stringElementWithAnyAttribute">
        XmlSchemaElement element = new XmlSchemaElement();
        schema.Items.Add(element);
        element.Name = "stringElementWithAnyAttribute";
        
        // <xs:complexType>
        XmlSchemaComplexType complexType = new XmlSchemaComplexType();
        element.SchemaType = complexType;
        
        // <xs:simpleContent>
        XmlSchemaSimpleContent simpleContent = new XmlSchemaSimpleContent();
        complexType.ContentModel = simpleContent;
        
        // <extension base= "xs:string">
        XmlSchemaSimpleContentExtension extension = new XmlSchemaSimpleContentExtension();
        simpleContent.Content = extension;
        extension.BaseTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
        
        // <xs:anyAttribute namespace="##targetNamespace"/>
        XmlSchemaAnyAttribute anyAttribute = new XmlSchemaAnyAttribute();
        extension.AnyAttribute = anyAttribute;
        anyAttribute.Namespace = "##targetNamespace";
 
        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:element name="stringElementWithAnyAttribute">
    XmlSchemaElement* element = new XmlSchemaElement();
    schema->Items->Add(element);
    element->Name = S"stringElementWithAnyAttribute";

    // <xs:complexType>
    XmlSchemaComplexType* complexType = new XmlSchemaComplexType();
    element->SchemaType = complexType;

    // <xs:simpleContent>
    XmlSchemaSimpleContent* simpleContent = new XmlSchemaSimpleContent();
    complexType->ContentModel = simpleContent;

    // <extension base= "xs:String*">
    XmlSchemaSimpleContentExtension* extension = new XmlSchemaSimpleContentExtension();
    simpleContent->Content = extension;
    extension->BaseTypeName = new XmlQualifiedName(S"String*", S"http://www.w3.org/2001/XMLSchema");

    // <xs:anyAttribute namespace=S"##targetNamespace"/>
    XmlSchemaAnyAttribute* anyAttribute = new XmlSchemaAnyAttribute();
    extension->AnyAttribute = anyAttribute;
    anyAttribute->Namespace = S"##targetNamespace";

    schema->Compile(new ValidationEventHandler(0, 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:element name="stringElementWithAnyAttribute">
        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base="xs:string">
                    <xs:anyAttribute namespace="##targetNamespace"/>
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
    </xs:element>
</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 内)

参照

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