XmlSchemaComplexType Class

 

Represents the complexType element from XML Schema as specified by the World Wide Web Consortium (W3C). This class defines a complex type that determines the set of attributes and content of an element.

Namespace:   System.Xml.Schema
Assembly:  System.Xml (in System.Xml.dll)

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

public class XmlSchemaComplexType : XmlSchemaType

NameDescription
System_CAPS_pubmethodXmlSchemaComplexType()

Initializes a new instance of the XmlSchemaComplexType class.

NameDescription
System_CAPS_pubpropertyAnnotation

Gets or sets the annotation property.(Inherited from XmlSchemaAnnotated.)

System_CAPS_pubpropertyAnyAttribute

Gets or sets the value for the XmlSchemaAnyAttribute component of the complex type.

System_CAPS_pubpropertyAttributes

Gets the collection of attributes for the complex type.

System_CAPS_pubpropertyAttributeUses

Gets the collection of all the complied attributes of this complex type and its base types.

System_CAPS_pubpropertyAttributeWildcard

Gets the post-compilation value for anyAttribute for this complex type and its base type(s).

System_CAPS_pubpropertyBaseSchemaType

Obsolete. Gets the post-compilation object type or the built-in XML Schema Definition Language (XSD) data type, simpleType element, or complexType element. This is a post-schema-compilation infoset property.(Inherited from XmlSchemaType.)

System_CAPS_pubpropertyBaseXmlSchemaType

Gets the post-compilation value for the base type of this schema type.(Inherited from XmlSchemaType.)

System_CAPS_pubpropertyBlock

Gets or sets the block attribute.

System_CAPS_pubpropertyBlockResolved

Gets the value after the type has been compiled to the post-schema-validation information set (infoset). This value indicates how the type is enforced when xsi:type is used in the instance document.

System_CAPS_pubpropertyContentModel

Gets or sets the post-compilation XmlSchemaContentModel of this complex type.

System_CAPS_pubpropertyContentType

Gets the content model of the complex type which holds the post-compilation value.

System_CAPS_pubpropertyContentTypeParticle

Gets the particle that holds the post-compilation value of the ContentType particle.

System_CAPS_pubpropertyDatatype

Gets the post-compilation value for the data type of the complex type.(Inherited from XmlSchemaType.)

System_CAPS_pubpropertyDerivedBy

Gets the post-compilation information on how this element was derived from its base type.(Inherited from XmlSchemaType.)

System_CAPS_pubpropertyFinal

Gets or sets the final attribute of the type derivation that indicates if further derivations are allowed.(Inherited from XmlSchemaType.)

System_CAPS_pubpropertyFinalResolved

Gets the post-compilation value of the Final property.(Inherited from XmlSchemaType.)

System_CAPS_pubpropertyId

Gets or sets the string id.(Inherited from XmlSchemaAnnotated.)

System_CAPS_pubpropertyIsAbstract

Gets or sets the information that determines if the complexType element can be used in the instance document.

System_CAPS_pubpropertyIsMixed

Gets or sets information that determines if the complex type has a mixed content model (markup within the content).(Overrides XmlSchemaType.IsMixed.)

System_CAPS_pubpropertyLineNumber

Gets or sets the line number in the file to which the schema element refers.(Inherited from XmlSchemaObject.)

System_CAPS_pubpropertyLinePosition

Gets or sets the line position in the file to which the schema element refers.(Inherited from XmlSchemaObject.)

System_CAPS_pubpropertyName

Gets or sets the name of the type.(Inherited from XmlSchemaType.)

System_CAPS_pubpropertyNamespaces

Gets or sets the XmlSerializerNamespaces to use with this schema object.(Inherited from XmlSchemaObject.)

System_CAPS_pubpropertyParent

Gets or sets the parent of this XmlSchemaObject.(Inherited from XmlSchemaObject.)

System_CAPS_pubpropertyParticle

Gets or sets the compositor type as one of the XmlSchemaGroupRef, XmlSchemaChoice, XmlSchemaAll, or XmlSchemaSequence classes.

System_CAPS_pubpropertyQualifiedName

Gets the qualified name for the type built from the Name attribute of this type. This is a post-schema-compilation property.(Inherited from XmlSchemaType.)

System_CAPS_pubpropertySourceUri

Gets or sets the source location for the file that loaded the schema.(Inherited from XmlSchemaObject.)

System_CAPS_pubpropertyTypeCode

Gets the XmlTypeCode of the type.(Inherited from XmlSchemaType.)

System_CAPS_pubpropertyUnhandledAttributes

Gets or sets the qualified attributes that do not belong to the current schema's target namespace.(Inherited from XmlSchemaAnnotated.)

NameDescription
System_CAPS_pubmethodEquals(Object)

Determines whether the specified object is equal to the current object.(Inherited from Object.)

System_CAPS_protmethodFinalize()

Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)

System_CAPS_pubmethodGetHashCode()

Serves as the default hash function. (Inherited from Object.)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_protmethodMemberwiseClone()

Creates a shallow copy of the current Object.(Inherited from Object.)

System_CAPS_pubmethodToString()

Returns a string that represents the current object.(Inherited from Object.)

An element can be declared with a type attribute that refers to a complexType element that defines the structure, content, and attributes of that element.

The following example creates a complexType element.

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";

        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);
    }
}

The following XML file is used for the preceding code example.

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

.NET Framework
Available since 1.1

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show: