A Schema for AIML 1.0.1

Table of Contents

top

Schema Document Properties

Target Namespace http://alicebot.org/2001/AIML-1.0.1
Version 1.0
Language EN
Element and Attribute Namespaces
  • Global element and attribute declarations belong to this schema's target namespace.
  • By default, local element declarations belong to this schema's target namespace.
  • By default, local attribute declarations have no namespace.

Declared Namespaces

Prefix Namespace
Default namespace http://alicebot.org/2001/AIML-1.0.1
xml http://www.w3.org/XML/1998/namespace
xs http://www.w3.org/2001/XMLSchema
xsi http://www.w3.org/2001/XMLSchema-instance
sch http://www.ascc.net/xml/schematron
Schema Component Representation
<xs:schema xml:lang="EN" targetNamespace="http://alicebot.org/2001/AIML-1.0.1" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
...
</xs:schema>
top

Global Schema Components

Element: aiml

Name aiml
Type Locally-defined complex type
Nillable no
Abstract no
Documentation An AIML object is represented by an aiml element in an XML document.
Application Data <sch:title>
Schematron validation
</sch:title>
<sch:ns prefix="aiml" uri="http://alicebot.org/2001/AIML-1.0.1"/>
XML Instance Representation
<aiml>
Start Choice [1..*]
<topic> [1]
Start Sequence [1..*]
<category> Category </category> [1]
End Sequence
</topic>
<category> Category </category> [1]
End Choice
</aiml>
Schema Component Representation
<xs:element name="aiml">
<xs:complexType>
<xs:choice minOccurs="1" maxOccurs="unbounded">
<xs:element name="topic">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element name="category" type=" Category "/>
</xs:sequence>
<xs:attribute name="name" type=" SimplePatternExpression " use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="category" type=" Category "/>
</xs:choice>
<xs:attribute name="version" use="required">
<xs:simpleType>
<xs:restriction base=" xs:string ">
<xs:enumeration value="1.0.1"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
top

Complex Type: Category

Super-types: None
Sub-types: None
Name Category
Abstract no
Documentation A category is a top-level (or second-level, if contained within a topic) element that contains exactly one pattern and exactly one template. A category does not have any attributes. All category elements that do not occur as children of an explicit topic element must be assumed by the AIML interpreter to occur as children of an "implied" topic whose name attribute has the value * (single asterisk wildcard).
XML Instance Representation
<...>
<pattern> MixedPatternExpression </pattern> [1] ?
<that> MixedPatternExpression </that> [0..1] ?
<template> MixedTemplateContentContainer </template> [1] ?
</...>
Schema Component Representation
<xs:complexType name="Category">
<xs:sequence>
<xs:element name="pattern" type=" MixedPatternExpression "/>
<xs:element name="that" type=" MixedPatternExpression " minOccurs="0"/>
<xs:element name="template" type=" MixedTemplateContentContainer "/>
</xs:sequence>
</xs:complexType>
top

Complex Type: MixedPatternExpression

Super-types: None
Sub-types: None
Name MixedPatternExpression
Abstract no
Documentation A mixed pattern expression is composed from one or more mixed pattern expression constituents, separated by XML spaces (&#x20).
XML Instance Representation
<...>
<!-- Mixed content -->
Start Choice [0..*]
<bot> PredicateName </bot> [1]
End Choice
</...>
Schema Component Representation
<xs:complexType name="MixedPatternExpression" mixed="true">
<--<xs:complexContent mixed="true"> <xs:extension base="SimplePatternExpression">-->
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="bot" type=" PredicateName "/>
</xs:choice>
<--</xs:extension> </xs:complexContent>-->
</xs:complexType>
top

Simple Type: SimplePatternExpression

Super-types: xs:string < SimplePatternExpression (by restriction)
Sub-types: None
Name SimplePatternExpression
Content
  • Base XSD Type: string
  • pattern = ((\d|\p{Lu})+|\*|_)( +((\d|\p{Lu})+|\*|_))*
  • length >= 1
Documentation A simple pattern expression is composed from one or more simple pattern expression constituents, separated by XML spaces (#x20).
Schema Component Representation
<xs:simpleType name="SimplePatternExpression">
<xs:restriction base=" xs:string ">
<xs:minLength value="1"/>
<xs:pattern value="((\d|\p{Lu})+|\*|_)( +((\d|\p{Lu})+|\*|_))*"/>
</xs:restriction>
</xs:simpleType>
top

Complex Type: MixedTemplateContentContainer

Super-types: None
Sub-types: None
Name MixedTemplateContentContainer
Abstract no
XML Instance Representation
<...>
<!-- Mixed content -->
Start Choice [0..*]
Start Choice [1]
<star> IndexedElement </star> [1] ?
<that> OneOrTwoDIndexedElement </that> [1] ?
<input> OneOrTwoDIndexedElement </input> [1] ?
<thatstar> IndexedElement </thatstar> [1] ?
<topicstar> IndexedElement </topicstar> [1] ?
<get/> [1] ?
<bot/> [1] ?
Start Choice [1]
<sr> ... </sr> [1] ?
End Choice
Start Choice [1]
<date> ... </date> [1] ?
<id> ... </id> [1] ?
<size> ... </size> [1] ?
<version> ... </version> [1] ?
End Choice
End Choice
Start Choice [1]
<uppercase> MixedTemplateContentContainer </uppercase> [1]
<lowercase> MixedTemplateContentContainer </lowercase> [1]
<formal> MixedTemplateContentContainer </formal> [1]
<sentence> MixedTemplateContentContainer </sentence> [1]
End Choice
Start Choice [1]
<condition> [1] ?
<!-- Mixed content -->
Start Sequence [0..*]
Allow any elements from any namespace (lax validation). [1]
End Sequence
</condition>
<random> [1] ?
<li> MixedTemplateContentContainer </li> [1..*]
</random>
End Choice
Start Choice [1]
<set
name=" PredicateName [0..1]"> [1] ?
<-- Extends: MixedTemplateContentContainer (Circular type hierarchy) -->
</set>
<gossip> MixedTemplateContentContainer </gossip> [1] ?
End Choice
Start Choice [1]
<srai> MixedTemplateContentContainer </srai> [1] ?
End Choice
Start Choice [1]
<person> MixedTemplateContentContainer </person> [1] ?
<person2> MixedTemplateContentContainer </person2> [1] ?
<gender> MixedTemplateContentContainer </gender> [1] ?
End Choice
Start Choice [1]
<think> MixedTemplateContentContainer </think> [1] ?
<learn> xs:anyURI </learn> [1]
End Choice
Start Choice [1]
<system> MixedTemplateContentContainer </system> [1] ?
<javascript> MixedTemplateContentContainer </javascript> [1] ?
End Choice
Allow any elements from a namespace other than this schema's namespace (lax validation). [1]
End Choice
</...>
Schema Component Representation
<xs:complexType name="MixedTemplateContentContainer" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref=" atomicElements "/>
<xs:group ref=" textFormattingElements "/>
<xs:group ref=" conditionalElements "/>
<xs:group ref=" captureElements "/>
<xs:group ref=" symbolicReductionElements "/>
<xs:group ref=" transformationalElements "/>
<xs:group ref=" covertElements "/>
<xs:group ref=" externalProcessorElements "/>
<xs:any namespace="##other" processContents="lax"/>
</xs:choice>
</xs:complexType>
top

Model Group: atomicElements

Name atomicElements
Documentation An atomic template element in AIML indicates to an AIML interpreter that it must return a value according to the functional meaning of the element. Atomic elements do not have any content.
XML Instance Representation
Start Choice [1]
<star> IndexedElement </star> [1] ?
<that> OneOrTwoDIndexedElement </that> [1] ?
<input> OneOrTwoDIndexedElement </input> [1] ?
<thatstar> IndexedElement </thatstar> [1] ?
<topicstar> IndexedElement </topicstar> [1] ?
<get/> [1] ?
<bot/> [1] ?
Start Choice [1]
<sr> ... </sr> [1] ?
End Choice
Start Choice [1]
<date> ... </date> [1] ?
<id> ... </id> [1] ?
<size> ... </size> [1] ?
<version> ... </version> [1] ?
End Choice
End Choice
Schema Component Representation
<xs:group name="atomicElements">
<xs:choice>
<xs:element name="star" type=" IndexedElement "/>
<xs:element name="that" type=" OneOrTwoDIndexedElement "/>
<xs:element name="input" type=" OneOrTwoDIndexedElement "/>
<xs:element name="thatstar" type=" IndexedElement "/>
<xs:element name="topicstar" type=" IndexedElement "/>
<xs:element name="get">
<xs:complexType>
<xs:attribute name="name" type=" PredicateName "/>
</xs:complexType>
</xs:element>
<xs:element name="bot">
<xs:complexType>
<xs:attribute name="name" type=" PredicateName "/>
</xs:complexType>
</xs:element>
<xs:group ref=" shortcutElements "/>
<xs:group ref=" systemDefinedPredicates "/>
</xs:choice>
</xs:group>
top

Model Group: shortcutElements

Name shortcutElements
Documentation Several atomic AIML elements are "short-cuts" for combinations of other AIML elements.
XML Instance Representation
Start Choice [1]
<sr> ... </sr> [1] ?
End Choice
Schema Component Representation
<xs:group name="shortcutElements">
<xs:choice>
<xs:element name="sr"/>
<-- <xs:element name="person" xsi:type="IndexedElement"> <xs:annotation> <xs:documentation>The atomic version of the person element is a shortcut for: &lt;person&gt;&lt;star/&gt;&lt;/person&gt; The atomic person does not have any content. </xs:documentation> </xs:annotation> </xs:element> <xs:element name="person2" xsi:type="IndexedElement"> <xs:annotation> <xs:documentation>The atomic version of the person2 element is a shortcut for: &lt;person2&gt;&lt;star/&gt;&lt;/person2&gt; The atomic person does not have any content. </xs:documentation> </xs:annotation> </xs:element> <xs:element name="gender" xsi:type="IndexedElement"> <xs:annotation> <xs:documentation>The atomic version of the gender element is a shortcut for: &lt;gender&gt;&lt;star/&gt;&lt;/gender&gt; The atomic gender does not have any content. </xs:documentation> </xs:annotation> </xs:element> -->
</xs:choice>
</xs:group>
top

Model Group: systemDefinedPredicates

Name systemDefinedPredicates
Documentation Several atomic AIML elements require the AIML interpreter to substitute a value that is determined from the system, independently of the AIML content.
XML Instance Representation
Start Choice [1]
<date> ... </date> [1] ?
<id> ... </id> [1] ?
<size> ... </size> [1] ?
<version> ... </version> [1] ?
End Choice
Schema Component Representation
<xs:group name="systemDefinedPredicates">
<xs:choice>
<xs:element name="date"/>
<xs:element name="id"/>
<xs:element name="size"/>
<xs:element name="version"/>
</xs:choice>
</xs:group>
top

Model Group: textFormattingElements

Name textFormattingElements
Documentation Text-formatting elements instruct an AIML interpreter to perform locale-specific post-processing of the textual results of the processing of their contents.
XML Instance Representation
Start Choice [1]
<uppercase> MixedTemplateContentContainer </uppercase> [1]
<lowercase> MixedTemplateContentContainer </lowercase> [1]
<formal> MixedTemplateContentContainer </formal> [1]
<sentence> MixedTemplateContentContainer </sentence> [1]
End Choice
Schema Component Representation
<xs:group name="textFormattingElements">
<xs:choice>
<xs:element name="uppercase" type=" MixedTemplateContentContainer "/>
<xs:element name="lowercase" type=" MixedTemplateContentContainer "/>
<xs:element name="formal" type=" MixedTemplateContentContainer "/>
<xs:element name="sentence" type=" MixedTemplateContentContainer "/>
</xs:choice>
</xs:group>
top

Model Group: conditionalElements

Name conditionalElements
XML Instance Representation
Start Choice [1]
<condition> [1] ?
<!-- Mixed content -->
Start Sequence [0..*]
Allow any elements from any namespace (lax validation). [1]
End Sequence
</condition>
<random> [1] ?
<li> MixedTemplateContentContainer </li> [1..*]
</random>
End Choice
Schema Component Representation
<xs:group name="conditionalElements">
<xs:choice>
<xs:element name="condition">
<xs:complexType mixed="true">
<-- <xs:choice> <xs:sequence minOccurs="0" maxOccurs="unbounded"> <xs:element name="li"> <xs:complexType> <xs:complexContent> <xs:extension base="MixedTemplateContentContainer"> <xs:attribute name="name" type="PredicateName"/> <xs:attribute name="value" type="SimplePatternExpression"/> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> </xs:sequence> -->
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:any namespace="##any" processContents="lax"/>
</xs:sequence>
<-- </xs:choice> -->
<xs:attribute name="name" type=" PredicateName "/>
<xs:attribute name="value" type=" SimplePatternExpression "/>
</xs:complexType>
</xs:element>
<xs:element name="random">
<xs:complexType>
<xs:sequence>
<xs:element name="li" type=" MixedTemplateContentContainer " maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:group>
top

Model Group: captureElements

Name captureElements
Documentation AIML defines two content-capturing elements, which tell the AIML interpreter to capture their processed contents and perform some storage operation with them.
XML Instance Representation
Start Choice [1]
<set
name=" PredicateName [0..1]"> [1] ?
Start Choice [0..*]
Start Choice [1]
<star> IndexedElement </star> [1] ?
<that> OneOrTwoDIndexedElement </that> [1] ?
<input> OneOrTwoDIndexedElement </input> [1] ?
<thatstar> IndexedElement </thatstar> [1] ?
<topicstar> IndexedElement </topicstar> [1] ?
<get/> [1] ?
<bot/> [1] ?
Start Choice [1]
<sr> ... </sr> [1] ?
End Choice
Start Choice [1]
<date> ... </date> [1] ?
<id> ... </id> [1] ?
<size> ... </size> [1] ?
<version> ... </version> [1] ?
End Choice
End Choice
Start Choice [1]
<uppercase> MixedTemplateContentContainer </uppercase> [1]
<lowercase> MixedTemplateContentContainer </lowercase> [1]
<formal> MixedTemplateContentContainer </formal> [1]
<sentence> MixedTemplateContentContainer </sentence> [1]
End Choice
Start Choice [1]
<condition> [1] ?
<!-- Mixed content -->
Start Sequence [0..*]
Allow any elements from any namespace (lax validation). [1]
End Sequence
</condition>
<random> [1] ?
<li> MixedTemplateContentContainer </li> [1..*]
</random>
End Choice
Start Choice [1]
<set
name=" PredicateName [0..1]"> [1] ?
<-- Extends: MixedTemplateContentContainer (Circular type hierarchy) -->
</set>
<gossip> MixedTemplateContentContainer </gossip> [1] ?
End Choice
Start Choice [1]
<srai> MixedTemplateContentContainer </srai> [1] ?
End Choice
Start Choice [1]
<person> MixedTemplateContentContainer </person> [1] ?
<person2> MixedTemplateContentContainer </person2> [1] ?
<gender> MixedTemplateContentContainer </gender> [1] ?
End Choice
Start Choice [1]
<think> MixedTemplateContentContainer </think> [1] ?
<learn> xs:anyURI </learn> [1]
End Choice
Start Choice [1]
<system> MixedTemplateContentContainer </system> [1] ?
<javascript> MixedTemplateContentContainer </javascript> [1] ?
End Choice
Allow any elements from a namespace other than this schema's namespace (lax validation). [1]
End Choice
</set>
<gossip> MixedTemplateContentContainer </gossip> [1] ?
End Choice
Schema Component Representation
<xs:group name="captureElements">
<xs:choice>
<xs:element name="set">
<xs:complexType>
<xs:complexContent>
<xs:extension base=" MixedTemplateContentContainer ">
<xs:attribute name="name" type=" PredicateName "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="gossip" type=" MixedTemplateContentContainer "/>
</xs:choice>
</xs:group>
top

Model Group: symbolicReductionElements

Name symbolicReductionElements
XML Instance Representation
Start Choice [1]
<srai> MixedTemplateContentContainer </srai> [1] ?
End Choice
Schema Component Representation
<xs:group name="symbolicReductionElements">
<xs:choice>
<xs:element name="srai" type=" MixedTemplateContentContainer "/>
</xs:choice>
</xs:group>
top

Model Group: transformationalElements

Name transformationalElements
XML Instance Representation
Start Choice [1]
<person> MixedTemplateContentContainer </person> [1] ?
<person2> MixedTemplateContentContainer </person2> [1] ?
<gender> MixedTemplateContentContainer </gender> [1] ?
End Choice
Schema Component Representation
<xs:group name="transformationalElements">
<xs:choice>
<xs:element name="person" type=" MixedTemplateContentContainer "/>
<xs:element name="person2" type=" MixedTemplateContentContainer "/>
<xs:element name="gender" type=" MixedTemplateContentContainer "/>
</xs:choice>
</xs:group>
top

Model Group: covertElements

Name covertElements
Documentation AIML defines two "covert" elements that instruct the AIML interpreter to perform some processing on their contents, but to not return any value.
XML Instance Representation
Start Choice [1]
<think> MixedTemplateContentContainer </think> [1] ?
<learn> xs:anyURI </learn> [1]
End Choice
Schema Component Representation
<xs:group name="covertElements">
<xs:choice>
<xs:element name="think" type=" MixedTemplateContentContainer "/>
<xs:element name="learn">
<xs:simpleType>
<xs:restriction base=" xs:anyURI "/>
</xs:simpleType>
</xs:element>
</xs:choice>
</xs:group>
top

Model Group: externalProcessorElements

Name externalProcessorElements
Documentation AIML defines two external processor elements, which instruct the AIML interpreter to pass the contents of the elements to an external processor. External processor elements may return a value, but are not required to do so. Contents of external processor elements may consist of character data as well as AIML template elements. If AIML template elements in the contents of an external processor element are not enclosed as CDATA, then the AIML interpreter is required to substitute the results of processing those elements before passing the contents to the external processor. AIML does not require that any contents of an external processor element are enclosed as CDATA. An AIML interpreter should assume that any unrecognized content is character data, and simply pass it to the appropriate external processor as-is, following any processing of AIML template elements not enclosed as CDATA. If an external processor is not available to process the contents of an external processor element, the AIML interpreter may return an error, but this is not required.
XML Instance Representation
Start Choice [1]
<system> MixedTemplateContentContainer </system> [1] ?
<javascript> MixedTemplateContentContainer </javascript> [1] ?
End Choice
Schema Component Representation
<xs:group name="externalProcessorElements">
<xs:choice>
<xs:element name="system" type=" MixedTemplateContentContainer "/>
<xs:element name="javascript" type=" MixedTemplateContentContainer "/>
</xs:choice>
</xs:group>
top

Complex Type: OneOrTwoDIndexedElement

Super-types: None
Sub-types: None
Name OneOrTwoDIndexedElement
Abstract no
XML Instance Representation
<...
index=" xs:string (pattern = \d+|\d+,\d+) (length >= 1) [0..1]"/>
Schema Component Representation
<xs:complexType name="OneOrTwoDIndexedElement">
<xs:attribute name="index">
<xs:simpleType>
<xs:restriction base=" xs:string ">
<xs:minLength value="1"/>
<xs:pattern value="\d+|\d+,\d+"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
top

Complex Type: IndexedElement

Super-types: None
Sub-types: None
Name IndexedElement
Abstract no
XML Instance Representation
<...
index=" xs:integer [0..1]"/>
Schema Component Representation
<xs:complexType name="IndexedElement">
<xs:attribute name="index" type=" xs:integer "/>
</xs:complexType>
top

Simple Type: PredicateName

Super-types: xs:string < PredicateName (by restriction)
Sub-types: None
Name PredicateName
Content
  • Base XSD Type: string
  • pattern = \c+
Schema Component Representation
<xs:simpleType name="PredicateName">
<xs:restriction base=" xs:string ">
<xs:pattern value="\c+"/>
</xs:restriction>
</xs:simpleType>
top

Legend

Complex Type:

Schema Component Type

AusAddress

Schema Component Name
Super-types: Address < AusAddress (by extension)
Sub-types:
  • QLDAddress (by restriction)
If this schema component is a type definition, its type hierarchy is shown in a gray-bordered box.
Name AusAddress
Abstract no
The table above displays the properties of this schema component.
XML Instance Representation
<... country="Australia" >
<unitNo> string </unitNo> [0..1]
<houseNo> string </houseNo> [1]
<street> string </street> [1]
Start Choice [1]
<city> string </city> [1]
<town> string </town> [1]
End Choice
<state> AusStates </state> [1]
<postcode> string <<pattern = [1-9][0-9]{3}>> </postcode> [1] ?
</...>

The XML Instance Representation table above shows the schema component's content as an XML instance.

Schema Component Representation
<complexType name="AusAddress">
<complexContent>
<extension base=" Address ">
<sequence>
<element name="state" type=" AusStates "/>
<element name="postcode">
<simpleType>
<restriction base=" string ">
<pattern value="[1-9][0-9]{3}"/>
</restriction>
</simpleType>
</element>
</sequence>
<attribute name="country" type=" string " fixed="Australia"/>
</extension>
</complexContent>
</complexType>
The Schema Component Representation table above displays the underlying XML representation of the schema component. (Annotations are not shown.)
top

Glossary

Abstract (Applies to complex type definitions and element declarations). An abstract element or complex type cannot used to validate an element instance. If there is a reference to an abstract element, only element declarations that can substitute the abstract element can be used to validate the instance. For references to abstract type definitions, only derived types can be used.

All Model Group Child elements can be provided in any order in instances. See: http://www.w3.org/TR/xmlschema-1/#element-all.

Choice Model Group Only one from the list of child elements and model groups can be provided in instances. See: http://www.w3.org/TR/xmlschema-1/#element-choice.

Collapse Whitespace Policy Replace tab, line feed, and carriage return characters with space character (Unicode character 32). Then, collapse contiguous sequences of space characters into single space character, and remove leading and trailing space characters.

Disallowed Substitutions (Applies to element declarations). If substitution is specified, then substitution group members cannot be used in place of the given element declaration to validate element instances. If derivation methods, e.g. extension, restriction, are specified, then the given element declaration will not validate element instances that have types derived from the element declaration's type using the specified derivation methods. Normally, element instances can override their declaration's type by specifying an xsi:type attribute.

Key Constraint Like Uniqueness Constraint, but additionally requires that the specified value(s) must be provided. See: http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions.

Key Reference Constraint Ensures that the specified value(s) must match value(s) from a Key Constraint or Uniqueness Constraint. See: http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions.

Model Group Groups together element content, specifying the order in which the element content can occur and the number of times the group of element content may be repeated. See: http://www.w3.org/TR/xmlschema-1/#Model_Groups.

Nillable (Applies to element declarations). If an element declaration is nillable, instances can use the xsi:nil attribute. The xsi:nil attribute is the boolean attribute, nil, from the http://www.w3.org/2001/XMLSchema-instance namespace. If an element instance has an xsi:nil attribute set to true, it can be left empty, even though its element declaration may have required content.

Notation A notation is used to identify the format of a piece of data. Values of elements and attributes that are of type, NOTATION, must come from the names of declared notations. See: http://www.w3.org/TR/xmlschema-1/#cNotation_Declarations.

Preserve Whitespace Policy Preserve whitespaces exactly as they appear in instances.

Prohibited Derivations (Applies to type definitions). Derivation methods that cannot be used to create sub-types from a given type definition.

Prohibited Substitutions (Applies to complex type definitions). Prevents sub-types that have been derived using the specified derivation methods from validating element instances in place of the given type definition.

Replace Whitespace Policy Replace tab, line feed, and carriage return characters with space character (Unicode character 32).

Sequence Model Group Child elements and model groups must be provided in the specified order in instances. See: http://www.w3.org/TR/xmlschema-1/#element-sequence.

Substitution Group Elements that are members of a substitution group can be used wherever the head element of the substitution group is referenced.

Substitution Group Exclusions (Applies to element declarations). Prohibits element declarations from nominating themselves as being able to substitute a given element declaration, if they have types that are derived from the original element's type using the specified derivation methods.

Target Namespace The target namespace identifies the namespace that components in this schema belongs to. If no target namespace is provided, then the schema components do not belong to any namespace.

Uniqueness Constraint Ensures uniqueness of an element/attribute value, or a combination of values, within a specified scope. See: http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions.

top