XML Schema Documentation

Schema Document Properties

Target Namespace None
Version 5.1
Element and Attribute Namespaces
  • Global element and attribute declarations belong to this schema's target namespace.
  • By default, local element declarations have no namespace.
  • By default, local attribute declarations have no namespace.
No documentation provided.
Prefix Namespace
xml http://www.w3.org/XML/1998/namespace
xs http://www.w3.org/2001/XMLSchema
<xs:schema version="5.1">
...
</xs:schema>

Global Declarations

Element: config

Name config
Type Locally-defined complex type
Nillable no
Abstract no
<config>
   <moduleName> moduleTitle </moduleName> [1] 
   <moduleImage> headerImage </moduleImage> [0..1] 
   <moduleDependencies> compositeDependency </moduleDependencies> [0..1] 
   <requiredInstallFiles> fileList </requiredInstallFiles> [0..1] 
   <installSteps> stepList </installSteps> [0..1] 
   <conditionalFileInstalls> conditionalFileInstallList </conditionalFileInstalls> [0..1] 
</config>
<xs:element name="config">
   <xs:complexType>
      <xs:sequence>
         <xs:element name="moduleName" type="moduleTitle"/>
         <xs:element name="moduleImage" type="headerImage" minOccurs="0"/>
         <xs:element name="moduleDependencies" type="compositeDependency" minOccurs="0"/>
         <xs:element name="requiredInstallFiles" type="fileList" minOccurs="0"/>
         <xs:element name="installSteps" type="stepList" minOccurs="0"/>
         <xs:element name="conditionalFileInstalls" type="conditionalFileInstallList" minOccurs="0"/>
      </xs:sequence>
   </xs:complexType>
</xs:element>

Global Definitions

Attribute Group: systemItemAttributes

Name systemItemAttributes
No documentation provided.
destination="folderPath" [0..1] 
alwaysInstall="xs:boolean" [0..1] 
installIfUsable="xs:boolean" [0..1] 
priority="xs:integer" [0..1] 
<xs:attributeGroup name="systemItemAttributes">
   <xs:attribute name="destination" type="folderPath"/>
   <xs:attribute name="alwaysInstall" type="xs:boolean" default="false"/>
   <xs:attribute name="installIfUsable" type="xs:boolean" default="false"/>
   <xs:attribute name="priority" type="xs:integer" default="0"/>
</xs:attributeGroup>

Complex Type: compositeDependency

Super-types: None
Sub-types: None
Name compositeDependency
Abstract no
<...
 operator="xs:string (value comes from list: {'And'|'Or'})" [0..1] 
>
   Start Choice [1..*]
      <fileDependency> fileDependency </fileDependency> [1..*] 
      <flagDependency> flagDependency </flagDependency> [1..*] 
      <gameDependency> versionDependency </gameDependency> [0..1] 
      <fommDependency> versionDependency </fommDependency> [0..1] 
      <dependencies> compositeDependency </dependencies> [1] 
   End Choice
</...>
<xs:complexType name="compositeDependency">
   <xs:sequence>
      <xs:choice maxOccurs="unbounded">
         <xs:element name="fileDependency" type="fileDependency" maxOccurs="unbounded"/>
         <xs:element name="flagDependency" type="flagDependency" maxOccurs="unbounded"/>
         <xs:element name="gameDependency" type="versionDependency" minOccurs="0" maxOccurs="1"/>
         <xs:element name="fommDependency" type="versionDependency" minOccurs="0" maxOccurs="1"/>
         <xs:element name="dependencies" type="compositeDependency"/>
      </xs:choice>
   </xs:sequence>
   <xs:attribute name="operator" default="And">
      <xs:simpleType>
         <xs:restriction base="xs:string">
            <xs:enumeration value="And"/>
            <xs:enumeration value="Or"/>
         </xs:restriction>
      </xs:simpleType>
   </xs:attribute>
</xs:complexType>

Complex Type: conditionFlagList

Super-types: None
Sub-types: None
Name conditionFlagList
Abstract no
No documentation provided.
<...>
   <flag> setConditionFlag </flag> [1..*] 
</...>
<xs:complexType name="conditionFlagList">
   <xs:sequence>
      <xs:element name="flag" type="setConditionFlag" maxOccurs="unbounded"/>
   </xs:sequence>
</xs:complexType>

Complex Type: conditionalFileInstallList

Super-types: None
Sub-types: None
Name conditionalFileInstallList
Abstract no
No documentation provided.
<...>
   <patterns> conditionalInstallPatternList </patterns> [1] 
</...>
<xs:complexType name="conditionalFileInstallList">
   <xs:sequence>
      <xs:element name="patterns" type="conditionalInstallPatternList"/>
   </xs:sequence>
</xs:complexType>

Complex Type: conditionalInstallPattern

Super-types: None
Sub-types: None
Name conditionalInstallPattern
Abstract no
No documentation provided.
<...>
   <dependencies> compositeDependency </dependencies> [1] 
   <files> fileList </files> [1] 
</...>
<xs:complexType name="conditionalInstallPattern">
   <xs:sequence>
      <xs:element name="dependencies" type="compositeDependency"/>
      <xs:element name="files" type="fileList"/>
   </xs:sequence>
</xs:complexType>

Complex Type: conditionalInstallPatternList

Super-types: None
Sub-types: None
Name conditionalInstallPatternList
Abstract no
No documentation provided.
<...>
   <pattern> conditionalInstallPattern </pattern> [1..*] 
</...>
<xs:complexType name="conditionalInstallPatternList">
   <xs:sequence>
      <xs:element name="pattern" type="conditionalInstallPattern" maxOccurs="unbounded"/>
   </xs:sequence>
</xs:complexType>

Complex Type: dependencyPattern

Super-types: None
Sub-types: None
Name dependencyPattern
Abstract no
No documentation provided.
<...>
   <dependencies> compositeDependency </dependencies> [1] 
   <type> pluginType </type> [1] 
</...>
<xs:complexType name="dependencyPattern">
   <xs:sequence>
      <xs:element name="dependencies" type="compositeDependency"/>
      <xs:element name="type" type="pluginType"/>
   </xs:sequence>
</xs:complexType>

Complex Type: dependencyPatternList

Super-types: None
Sub-types: None
Name dependencyPatternList
Abstract no
No documentation provided.
<...>
   <pattern> dependencyPattern </pattern> [1..*] 
</...>
<xs:complexType name="dependencyPatternList">
   <xs:sequence>
      <xs:element name="pattern" type="dependencyPattern" maxOccurs="unbounded"/>
   </xs:sequence>
</xs:complexType>

Complex Type: dependencyPluginType

Super-types: None
Sub-types: None
Name dependencyPluginType
Abstract no
No documentation provided.
<...>
   <defaultType> pluginType </defaultType> [1] 
   <patterns> dependencyPatternList </patterns> [1] 
</...>
<xs:complexType name="dependencyPluginType">
   <xs:sequence>
      <xs:element name="defaultType" type="pluginType"/>
      <xs:element name="patterns" type="dependencyPatternList"/>
   </xs:sequence>
</xs:complexType>

Complex Type: fileDependency

Super-types: None
Sub-types: None
Name fileDependency
Abstract no
No documentation provided.
<...
 file="xs:string" [1] 
 state="xs:string (value comes from list: {'Missing'|'Inactive'|'Active'})" [1] 
/> 

<xs:complexType name="fileDependency">
   <xs:attribute name="file" type="xs:string" use="required"/>
   <xs:attribute name="state" use="required">
      <xs:simpleType>
         <xs:restriction base="xs:string">
            <xs:enumeration value="Missing"/>
            <xs:enumeration value="Inactive"/>
            <xs:enumeration value="Active"/>
         </xs:restriction>
      </xs:simpleType>
   </xs:attribute>
</xs:complexType>

Complex Type: fileList

Super-types: None
Sub-types: None
Name fileList
Abstract no
No documentation provided.
<...>
   Start Choice [1..*]
      <file> fileType </file> [0..*] 
      <folder> folderType </folder> [0..*] 
   End Choice
</...>
<xs:complexType name="fileList">
   <xs:sequence>
      <xs:choice minOccurs="1" maxOccurs="unbounded">
         <xs:element name="file" type="fileType" minOccurs="0" maxOccurs="unbounded"/>
         <xs:element name="folder" type="folderType" minOccurs="0" maxOccurs="unbounded"/>
      </xs:choice>
   </xs:sequence>
</xs:complexType>

Complex Type: fileType

Super-types: None
Sub-types: None
Name fileType
Abstract no
No documentation provided.
<...
 source="filePath" [1] 
 destination="folderPath" [0..1] 
 alwaysInstall="xs:boolean" [0..1] 
 installIfUsable="xs:boolean" [0..1] 
 priority="xs:integer" [0..1] 
/> 

<xs:complexType name="fileType">
   <xs:attribute name="source" type="filePath" use="required"/>
   <xs:attributeGroup ref="systemItemAttributes"/>
</xs:complexType>

Complex Type: flagDependency

Super-types: None
Sub-types: None
Name flagDependency
Abstract no
No documentation provided.
<...
 flag="flagName" [1] 
 value="flagValue" [1] 
/> 

<xs:complexType name="flagDependency">
   <xs:attribute name="flag" type="flagName" use="required"/>
   <xs:attribute name="value" type="flagValue" use="required"/>
</xs:complexType>

Complex Type: folderType

Super-types: None
Sub-types: None
Name folderType
Abstract no
No documentation provided.
<...
 source="folderPath" [1] 
 destination="folderPath" [0..1] 
 alwaysInstall="xs:boolean" [0..1] 
 installIfUsable="xs:boolean" [0..1] 
 priority="xs:integer" [0..1] 
/> 

<xs:complexType name="folderType">
   <xs:attribute name="source" type="folderPath" use="required"/>
   <xs:attributeGroup ref="systemItemAttributes"/>
</xs:complexType>

Complex Type: group

Super-types: None
Sub-types: None
Name group
Abstract no
No documentation provided.
<...
 name="xs:string" [1] 
 type="xs:string (value comes from list: {'SelectAtLeastOne'|'SelectAtMostOne'|'SelectExactlyOne'|'SelectAll'|'SelectAny'})" [1] 
>
   <plugins> pluginList </plugins> [1] 
</...>
<xs:complexType name="group">
   <xs:sequence>
      <xs:element name="plugins" type="pluginList"/>
   </xs:sequence>
   <xs:attribute name="name" type="xs:string" use="required"/>
   <xs:attribute name="type" use="required">
      <xs:simpleType>
         <xs:restriction base="xs:string">
            <xs:enumeration value="SelectAtLeastOne"/>
            <xs:enumeration value="SelectAtMostOne"/>
            <xs:enumeration value="SelectExactlyOne"/>
            <xs:enumeration value="SelectAll"/>
            <xs:enumeration value="SelectAny"/>
         </xs:restriction>
      </xs:simpleType>
   </xs:attribute>
</xs:complexType>

Complex Type: groupList

Super-types: None
Sub-types: None
Name groupList
Abstract no
No documentation provided.
<...
 order="orderEnum" [0..1] 
>
   <group> group </group> [1..*] 
</...>
<xs:complexType name="groupList">
   <xs:sequence>
      <xs:element name="group" type="group" maxOccurs="unbounded"/>
   </xs:sequence>
   <xs:attribute name="order" type="orderEnum" use="optional" default="Ascending"/>
</xs:complexType>

Complex Type: headerImage

Super-types: None
Sub-types: None
Name headerImage
Abstract no
No documentation provided.
<...
 path="imagePath" [0..1] 
 showImage="xs:boolean" [0..1] 
 showFade="xs:boolean" [0..1] 
 height="xs:int" [0..1] 
/> 

<xs:complexType name="headerImage">
   <xs:attribute name="path" type="imagePath" use="optional"/>
   <xs:attribute name="showImage" type="xs:boolean" default="true" use="optional"/>
   <xs:attribute name="showFade" type="xs:boolean" default="true" use="optional"/>
   <xs:attribute name="height" type="xs:int" default="-1" use="optional"/>
</xs:complexType>

Complex Type: image

Super-types: None
Sub-types: None
Name image
Abstract no
No documentation provided.
<xs:complexType name="image">
   <xs:attribute name="path" type="imagePath" use="required"/>
</xs:complexType>

Complex Type: installStep

Super-types: None
Sub-types: None
Name installStep
Abstract no
No documentation provided.
<...
 name="xs:string" [1] 
>
   <visible> compositeDependency </visible> [0..1] 
   <optionalFileGroups> groupList </optionalFileGroups> [1] 
</...>
<xs:complexType name="installStep">
   <xs:sequence>
      <xs:element name="visible" type="compositeDependency" minOccurs="0"/>
      <xs:element name="optionalFileGroups" type="groupList" minOccurs="1"/>
   </xs:sequence>
   <xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>

Complex Type: moduleTitle

Super-types: xs:string < moduleTitle (by extension)
Sub-types: None
Name moduleTitle
Abstract no
No documentation provided.
<...
 position="xs:string (value comes from list: {'Left'|'Right'|'RightOfImage'})" [0..1] 
 colour="xs:hexBinary" [0..1] 
>
    xs:string
</...>
<xs:complexType name="moduleTitle">
   <xs:simpleContent>
      <xs:extension base="xs:string">
         <xs:attribute name="position" use="optional" default="Left">
            <xs:simpleType>
               <xs:restriction base="xs:string">
                  <xs:enumeration value="Left"/>
                  <xs:enumeration value="Right"/>
                  <xs:enumeration value="RightOfImage"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:attribute>
         <xs:attribute name="colour" type="xs:hexBinary" use="optional" default="000000"/>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>

Complex Type: plugin

Super-types: None
Sub-types: None
Name plugin
Abstract no
No documentation provided.
<...
 name="xs:string" [1] 
>
   <description> xs:string </description> [1] 
   <image> image </image> [0..1] 
   Start Choice [1]
      <files> fileList </files> [1] 
      <conditionFlags> conditionFlagList </conditionFlags> [0..1] 
      <conditionFlags> conditionFlagList </conditionFlags> [1] 
      <files> fileList </files> [0..1] 
   End Choice
   <typeDescriptor> pluginTypeDescriptor </typeDescriptor> [1] 
</...>
<xs:complexType name="plugin">
   <xs:sequence>
      <xs:element name="description" type="xs:string"/>
      <xs:element name="image" type="image" minOccurs="0"/>
      <xs:choice>
         <xs:sequence>
            <xs:element name="files" type="fileList"/>
            <xs:element name="conditionFlags" type="conditionFlagList" minOccurs="0"/>
         </xs:sequence>
         <xs:sequence>
            <xs:element name="conditionFlags" type="conditionFlagList"/>
            <xs:element name="files" type="fileList" minOccurs="0"/>
         </xs:sequence>
      </xs:choice>
      <xs:element name="typeDescriptor" type="pluginTypeDescriptor"/>
   </xs:sequence>
   <xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>

Complex Type: pluginList

Super-types: None
Sub-types: None
Name pluginList
Abstract no
No documentation provided.
<...
 order="orderEnum" [0..1] 
>
   <plugin> plugin </plugin> [1..*] 
</...>
<xs:complexType name="pluginList">
   <xs:sequence>
      <xs:element name="plugin" type="plugin" maxOccurs="unbounded"/>
   </xs:sequence>
   <xs:attribute name="order" type="orderEnum" use="optional" default="Ascending"/>
</xs:complexType>

Complex Type: pluginType

Super-types: None
Sub-types: None
Name pluginType
Abstract no
No documentation provided.
<xs:complexType name="pluginType">
   <xs:attribute name="name" type="pluginTypeEnum" use="required"/>
</xs:complexType>

Complex Type: pluginTypeDescriptor

Super-types: None
Sub-types: None
Name pluginTypeDescriptor
Abstract no
No documentation provided.
<...>
   Start Choice [1]
      <dependencyType> dependencyPluginType </dependencyType> [1] 
      <type> pluginType </type> [1] 
   End Choice
</...>
<xs:complexType name="pluginTypeDescriptor">
   <xs:choice>
      <xs:element name="dependencyType" type="dependencyPluginType"/>
      <xs:element name="type" type="pluginType"/>
   </xs:choice>
</xs:complexType>

Complex Type: setConditionFlag

Super-types: xs:string < flagValue (by restriction) < setConditionFlag (by extension)
Sub-types: None
Name setConditionFlag
Abstract no
No documentation provided.
<xs:complexType name="setConditionFlag">
   <xs:simpleContent>
      <xs:extension base="flagValue">
         <xs:attribute name="name" type="flagName" use="required"/>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>

Complex Type: stepList

Super-types: None
Sub-types: None
Name stepList
Abstract no
No documentation provided.
<...
 order="orderEnum" [0..1] 
>
   <installStep> installStep </installStep> [1..*] 
</...>
<xs:complexType name="stepList">
   <xs:sequence>
      <xs:element name="installStep" type="installStep" minOccurs="1" maxOccurs="unbounded"/>
   </xs:sequence>
   <xs:attribute name="order" type="orderEnum" use="optional" default="Ascending"/>
</xs:complexType>

Complex Type: versionDependency

Super-types: None
Sub-types: None
Name versionDependency
Abstract no
No documentation provided.
<xs:complexType name="versionDependency">
   <xs:attribute name="version" type="versionString" use="required"/>
</xs:complexType>

Simple Type: filePath

Super-types: xs:string < filePath (by restriction)
Sub-types: None
Name filePath
Content
  • Base XSD Type: string
No documentation provided.
<xs:simpleType name="filePath">
   <xs:restriction base="xs:string"/>
</xs:simpleType>

Simple Type: flagName

Super-types: xs:string < flagName (by restriction)
Sub-types: None
Name flagName
Content
  • Base XSD Type: string
No documentation provided.
<xs:simpleType name="flagName">
   <xs:restriction base="xs:string"/>
</xs:simpleType>

Simple Type: flagValue

Super-types: xs:string < flagValue (by restriction)
Sub-types:
Name flagValue
Content
  • Base XSD Type: string
No documentation provided.
<xs:simpleType name="flagValue">
   <xs:restriction base="xs:string"/>
</xs:simpleType>

Simple Type: folderPath

Super-types: xs:string < folderPath (by restriction)
Sub-types: None
Name folderPath
Content
  • Base XSD Type: string
No documentation provided.
<xs:simpleType name="folderPath">
   <xs:restriction base="xs:string"/>
</xs:simpleType>

Simple Type: imagePath

Super-types: xs:string < imagePath (by restriction)
Sub-types: None
Name imagePath
Content
  • Base XSD Type: string
No documentation provided.
<xs:simpleType name="imagePath">
   <xs:restriction base="xs:string"/>
</xs:simpleType>

Simple Type: orderEnum

Super-types: xs:string < orderEnum (by restriction)
Sub-types: None
Name orderEnum
Content
  • Base XSD Type: string
  • value comes from list: {'Ascending'|'Descending'|'Explicit'}
<xs:simpleType name="orderEnum">
   <xs:restriction base="xs:string">
      <xs:enumeration value="Ascending"/>
      <xs:enumeration value="Descending"/>
      <xs:enumeration value="Explicit"/>
   </xs:restriction>
</xs:simpleType>

Simple Type: pluginTypeEnum

Super-types: xs:string < pluginTypeEnum (by restriction)
Sub-types: None
Name pluginTypeEnum
Content
  • Base XSD Type: string
  • value comes from list: {'Required'|'Optional'|'Recommended'|'NotUsable'|'CouldBeUsable'}
<xs:simpleType name="pluginTypeEnum">
   <xs:restriction base="xs:string">
      <xs:enumeration value="Required"/>
      <xs:enumeration value="Optional"/>
      <xs:enumeration value="Recommended"/>
      <xs:enumeration value="NotUsable"/>
      <xs:enumeration value="CouldBeUsable"/>
   </xs:restriction>
</xs:simpleType>

Simple Type: versionString

Super-types: xs:string < versionString (by restriction)
Sub-types: None
Name versionString
Content
  • Base XSD Type: string
No documentation provided.
<xs:simpleType name="versionString">
   <xs:restriction base="xs:string"/>
</xs:simpleType>

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.