====== XML Schema complexType Element ======
===== Definition and Usage =====
The complexType element defines a complex type. A complex type element is an XML element that contains other elements and/or attributes.
===== Element Information =====
* **Parent elements:** element, redefine, schema
===== Syntax =====
(annotation?,(simpleContent|complexContent|((group|all|
choice|sequence)?,((attribute|attributeGroup)*,anyAttribute?))))
(The ? sign declares that the element can occur zero or one time, and the * sign declares that the element can occur zero or more times inside the complexType element)
* **id** - Optional. Specifies a unique ID for the element
* **name** - Optional. Specifies a name for the element
* **abstract** - Optional. Specifies whether the complex type can be used in an instance document. True indicates that an element cannot use this complex type directly but must use a complex type derived from this complex type. Default is false
* **mixed** - Optional. Specifies whether character data is allowed to appear between the child elements of this complexType element. Default is false. If a simpleContent element is a child element, the mixed attribute is not allowed!
* **block** - Optional. Prevents a complex type that has a specified type of derivation from being used in place of this complex type. This value can contain #all or a list that is a subset of extension or restriction:
* extension - prevents complex types derived by extension
* restriction - prevents complex types derived by restriction
* #all - prevents all derived complex types
* **final** - Optional. Prevents a specified type of derivation of this complex type element. Can contain #all or a list that is a subset of extension or restriction.
* extension - prevents derivation by extension
* restriction - prevents derivation by restriction
* #all - prevents all derivation
* **//any attributes//** - Optional. Specifies any other attributes with non-schema namespace
===== Example 1 =====
The following example has an element named "note" that is of a complex type:
===== Example 2 =====
The following example has a complex type, "fullpersoninfo", that derives from another complex type, "personinfo", by extending the inherited type with three additional elements (address, city and country):
In the example above the "employee" element must contain, in sequence, the following elements: "firstname", "lastname", "address", "city", and "country".