<?xml version="1.0" encoding="utf-8"?>
<!--
    
    ** OAGIS® Revision: 9.1  **
    ** Date: 11 May 2007 **
    ** Copyright 1997-2007, All Rights Reserved **
    
    This is an OAGIS® BOD XML Schema (XSD) Definition.
    
    License information for this file is provided in the file **OAGi License Agreement.txt** that is provided with this download package.
    
    For support, more information, or to report implementation bugs, please contact the Open Applications Group at xml@openapplications.org.
    
    XML Schema 
    
-->

<!--
    © Copyright 2007 Infor Global Solutions Technology GmbH and/or its affiliates and subsidiaries. All rights reserved. The 
    word and design marks set forth herein are trademarks and/or registered trademarks of Infor Global Solutions 
    Technology GmbH and/or its affiliates and subsidiaries. All rights reserved. All other trademarks listed herein 
    are the property of their respective owners.
    
-->

<!--    *****     Update Log     *****
    
    Date          By      Note
    10 Apr 2008    JB      Added correct Copyright and update comments to schema.
    08 Apr 2009    JB      Updated per BOD-882
    
    *****     Update End     *****
    
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schema.infor.com/InforOAGIS/2" targetNamespace="http://schema.infor.com/InforOAGIS/2" elementFormDefault="qualified">
    
    <xsd:include schemaLocation="../Components/Common/Components.xsd"/>
    

    <xsd:element name="BISConfig" type="BISConfigType">
        <xsd:annotation>
            <xsd:documentation source="http://schema.infor.com/Infor1.0">BISConfig is used to communicate the configuration of reports and reporting services.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>

    <xsd:complexType name="BISConfigType">
        <xsd:complexContent>
            <xsd:extension base="StatusEnabledHeaderType">
                <xsd:sequence>
                    <xsd:choice>
                        <xsd:element ref="Noun" minOccurs="0"/>
                        <xsd:element ref="ConverterLibrary" minOccurs="0"/>
                        <xsd:element ref="ExportService" minOccurs="0"/>
                        <xsd:element ref="ImportService" minOccurs="0"/>
                        <xsd:element ref="OutputFormat" minOccurs="0"/>
                        <xsd:element ref="OutputMapping" minOccurs="0"/>
                        <xsd:element ref="OutputView" minOccurs="0"/>
                        <xsd:element ref="SchemaDefinition" minOccurs="0"/>
                        <xsd:element ref="ServicesOrganization" minOccurs="0"/>
                        <xsd:element ref="DataCategorisation" minOccurs="0"/>
                    </xsd:choice>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="BaseConfigurationType">
        <xsd:annotation>
            <xsd:documentation>A base type that defines very common element structures used in many other BIS types.</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element ref="LastModification" minOccurs="0"/>
            <xsd:element ref="ToBeDeletedIndicator" minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="ConverterLibraryType">
        <xsd:annotation>
            <xsd:documentation>A converter library is a container for several different types of converters.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="BaseConfigurationType">
                <xsd:sequence>
                    <xsd:element ref="Name" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The multilingual Name of the converter library.</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                    <xsd:element ref="Description" minOccurs="0" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The multilingual Description of the converter library</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                    <xsd:element ref="SystemLibraryIndicator" minOccurs="0"/>
                    <xsd:element ref="IOConverter" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="ShortcutConverter" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="Script" minOccurs="0" maxOccurs="1"/>
                    <xsd:element ref="EditableIndicator" minOccurs="0"/>
                    <xsd:element ref="Implementor" minOccurs="0"/>
                </xsd:sequence>     
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:element name="Script" type="StringType">
        <xsd:annotation>
            <xsd:documentation>The converters implementation is held in beanshell script. This element holds the script contents.</xsd:documentation>
        </xsd:annotation>   
    </xsd:element>
    
    <xsd:complexType name="ConverterType">
        <xsd:annotation>
            <xsd:documentation>Base type for all converters that can be defined in BIS. A converter belongs to a converter library</xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="BaseConfigurationType">
                <xsd:sequence>
                    <xsd:element ref="Name" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The multilingual Name of the converter</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                    <xsd:element ref="Description" minOccurs="0" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The multilingual Description of the converter</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>     
                    <xsd:element ref="ConverterParameter" minOccurs="0" maxOccurs="unbounded"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="ConverterParameterType">
        <xsd:annotation>
            <xsd:documentation>Defines a parameter, any number of which can be used with elements of ConverterType</xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="BaseConfigurationType">
                <xsd:sequence>
                    <xsd:element ref="Name" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The multilingual Name of the parameter</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                    <xsd:element ref="Description" minOccurs="0" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The multilingual Description of the parameter</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                    <xsd:element ref="ConverterParameterValue" minOccurs="0">
                        <xsd:annotation>
                            <xsd:documentation>A type/value pair for the parameter. The absence of any value would indicate a 'null' value for the parameter.</xsd:documentation>
                        </xsd:annotation>     
                    </xsd:element>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="ConverterParameterValueType">
        <xsd:annotation>
            <xsd:documentation>Describes the value and type of a converter parameter</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element ref="Type" />
            <xsd:element ref="Value" />
            <xsd:element ref="ConverterParameterColumnType" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>The converter parameter column type which will be provided if the 'Type' is an input or output column.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="IOConverterType">
        <xsd:annotation>
            <xsd:documentation>A converter that can be used for input, output or both input and output functions in BIS</xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="ConverterType">
                <xsd:sequence>
                    <xsd:element ref="InputConverterIndicator" minOccurs="0" />
                    <xsd:element ref="OutputConverterIndicator" minOccurs="0" />
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="ShortcutConverterType">
        <xsd:annotation>
            <xsd:documentation>A converter that is able to define shortcut values.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="ConverterType">
                <xsd:sequence>
                    <xsd:element ref="Type">
                        <xsd:annotation>
                            <xsd:documentation>The type that the converter and its shortcuts supports. For example Date, Integer etc.</xsd:documentation>
                        </xsd:annotation>      
                    </xsd:element>
                    <!-- Choice is included for backwards compatibility for MyDayGA1.1.x releases, it uses 'Shortcut' but later releases will use the 'ShortcutMethod' -->
                    <xsd:choice>
                        <xsd:element ref="ShortcutMethod" minOccurs="0">
                            <xsd:annotation>
                                <xsd:documentation>The method name used to get a dynamic list of shortcuts available for the converter.</xsd:documentation>
                            </xsd:annotation> 
                        </xsd:element>
                        <xsd:element ref="Shortcut" minOccurs="0" maxOccurs="unbounded"/>
                    </xsd:choice>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <!-- This element is included for backwards compatibility for MyDayGA1.1.x releases-->
    <xsd:complexType name="ShortcutType">
        <xsd:annotation>
            <xsd:documentation>A shortcut is a simple value and description. They belong to shortcut converters within a converter library.</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element ref="Name" maxOccurs="unbounded"/>
            <xsd:element ref="Description" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="RuntimeConverterType">
        <xsd:annotation>
            <xsd:documentation>Defines the use of a specific converter for an import or export service. Decorates a referenced converter with extra usage parameters.</xsd:documentation>
        </xsd:annotation>   
        <xsd:sequence>
            <xsd:choice>
                <xsd:element ref="ConverterReference" minOccurs="0">    
                    <xsd:annotation>
                        <xsd:documentation>A reference to a simple converter, for example an input or output converter.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element ref="ShortcutConverterReference" minOccurs="0">
                    <xsd:annotation>
                        <xsd:documentation>A reference to a shortcut converter.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:choice>
            <xsd:element ref="ConverterParameterValue" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element ref="EnabledIndicator" minOccurs="0"/>
            <xsd:element ref="Description" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="ExportServiceType">
        <xsd:annotation>
            <xsd:documentation>An export service is configuration information for report generation that describes the report and the required parameters to execute it.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="BaseConfigurationType">
                <xsd:sequence>
                    <xsd:element ref="Name" maxOccurs="unbounded"/>
                    <xsd:element ref="Description" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="CommonName" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="RowLimit" minOccurs="0"/>
                    <xsd:element ref="ServicesOrganizationReference" minOccurs="0"/>
                    <xsd:element ref="UnboundExportServiceParameter" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="ColumnBoundExportServiceParameter" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="BusinessReferenceExportServiceParameter" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="RuntimeConverter" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="EnabledIndicator" minOccurs="0"/>
                    <xsd:element ref="ExportServiceOption" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="OutputMappingReference" minOccurs="0"/>
                    <xsd:element ref="EditableIndicator" minOccurs="0"/>
                    <xsd:element ref="Implementor" minOccurs="0"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="ExportServiceParameterType">
        <xsd:annotation>
            <xsd:documentation>Describes a parameter for an export service.</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element ref="Name" maxOccurs="unbounded"/>
            <xsd:element ref="Description" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element ref="CommonName" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element ref="Prompt" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element ref="Condition" minOccurs="0"/>
            <xsd:element ref="RequiredIndicator" minOccurs="0"/>
            <xsd:element ref="FixedIndicator" minOccurs="0"/>
            <xsd:element ref="DateTypeIndicator" minOccurs="0"/>
            <xsd:element ref="ShortcutConverterReference" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>A reference to a shortcut converter to use for the parameter.</xsd:documentation>
                </xsd:annotation>    
            </xsd:element>
            <xsd:element ref="ExportServiceParameterValue" minOccurs="0"/>
            <xsd:element ref="SubServiceReference" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>A reference to an a sub service to indicate that this parameter is as a result of a subservice link.</xsd:documentation>
                </xsd:annotation>   
            </xsd:element>
            <xsd:element ref="UniqueName" minOccurs="0" maxOccurs="1">
                <xsd:annotation>
                    <xsd:documentation>A unique name that will never change so we can identify the parameter</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="SubServiceReferenceType">
        <xsd:annotation>
            <xsd:documentation>
                A sub service reference is for use by export service parameters. It describes the situation where a parameter can refer to a column on a different export service.
                It is not a cascading parameter. Cascading parameters are defined by having parameter values linked to another export service parameter. The column binding
                for the containing export service is gained from the fact that this reference would be part of a column bound parameter and the output view column from the 
                containing export service can be got from there.
            </xsd:documentation>
        </xsd:annotation> 
        <xsd:sequence>
            <xsd:element ref="ExportServiceReference">
                <xsd:annotation>
                    <xsd:documentation>
                        The export service that is the sub-service for the parameter. For example 'OpeningBalance'. This is the export service that would be pointed to by any
                        subservice column.
                    </xsd:documentation>    
                </xsd:annotation>
            </xsd:element>
            <xsd:element ref="OutputViewColumnReference">
                <xsd:annotation>
                    <xsd:documentation>The column reference that the parameter is bound to on the sub-service. For example 'OpeningBalance'.Book.</xsd:documentation>    
                </xsd:annotation>
            </xsd:element>
            <xsd:element ref="SubServiceColumnReference">
                <xsd:annotation>
                    <xsd:documentation>
                        The column reference from the output view of the containing service that defines a link to a subservice.
                        For example if a 'Balance Report' was based on a mapping that had a view that had a column called  'StartBal' that pointed to the 'Opening Balance' export service
                        then this would be the reference to 'StartBal'.
                    </xsd:documentation>    
                </xsd:annotation>
            </xsd:element>
            <xsd:element ref="SubServiceParameterName" minOccurs="0" maxOccurs="1">
                <xsd:annotation>
                    <xsd:documentation>
                        The unique parameter name on the sub service parameters. Would reference UniqueName from a parameter
                    </xsd:documentation>
                </xsd:annotation>
             </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="ExportServiceParameterValueType">
        <xsd:annotation>
            <xsd:documentation>Describes a value for an export service parameter.</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element ref="DefaultValue" minOccurs="0" maxOccurs="unbounded">
                <xsd:annotation>
                    <xsd:documentation>Default values for the parameter. There can be a number of these, for example if describing values for an 'In list' type criteria.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>          
            <xsd:element ref="ExportServiceParameterDefaultValue" minOccurs="0" maxOccurs="1">
                <xsd:annotation>
                    <xsd:documentation>A default value based on the value of a parameter from another export service.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="ColumnBoundExportServiceParameterType">
        <xsd:annotation>
            <xsd:documentation>An export service parameter that is linked to an output view column.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="ExportServiceParameterType">
                <xsd:sequence>               
                    <xsd:element ref="OutputViewColumnReference" />
                </xsd:sequence>           
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="BusinessReferenceExportServiceParameterType">
        <xsd:annotation>
            <xsd:documentation>An export service parameter that is linked to a business reference.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="ExportServiceParameterType">
                <xsd:sequence>
                    <xsd:element ref="BusinessReferenceReference"/>
                    <xsd:element ref="HierarchyReference" minOccurs="0"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="UnboundExportServiceParameterType">
        <xsd:annotation>
            <xsd:documentation>An export service parameter to be used with an export service that is not bound to any column but just is able to provide a value of a given type.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="ExportServiceParameterType">
                <xsd:sequence>
                    <xsd:element ref="Type"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="ExportServiceParameterDefaultValueType">
        <xsd:annotation>
            <xsd:documentation>An export service parameter default value that is based on the value of a parameter from another export service. Output mappings can be shared so an export service reference is also required.</xsd:documentation>
        </xsd:annotation> 
        <xsd:sequence>
            <xsd:element ref="ExportServiceReference"/>
            <xsd:element ref="OutputMappingEntryReference"/>
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="ExportServiceOptionType">
        <xsd:annotation>
            <xsd:documentation>Describes sorting and aggregation options for use with an export service.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="BaseConfigurationType">
                <xsd:sequence>
                    <xsd:element ref="OutputViewColumnReference" minOccurs="0"/>
                    <xsd:element ref="AggregationType" minOccurs="0"/>
                    <xsd:element ref="SortType" minOccurs="0"/>
                    <xsd:element ref="Sequence" minOccurs="0"/>
                    <xsd:element ref="DistinctIndicator" minOccurs="0"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="ImportMappingType">
        <xsd:annotation>
            <xsd:documentation>Maps a BIS schema column to a NounValue (BOD column) for an import service.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="BaseConfigurationType">
                <xsd:sequence>
                    <xsd:element ref="DefaultValue" minOccurs="0"/>
                    <xsd:element ref="XPath" minOccurs="0">
                        <xsd:annotation>
                            <xsd:documentation>An XPath value defining a path to a specific element in a repeating group. This is used as a constraint in the import services column mapping.</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                    <xsd:element ref="SchemaColumnReference" minOccurs="0"/>
                    <xsd:element ref="NounValueReference" minOccurs="0"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="ImportServiceType">
        <xsd:annotation>
            <xsd:documentation>An import service is configuration information on how received BODs will be stored in BIS for reporting purposes.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="BaseConfigurationType">
                <xsd:sequence>
                    <xsd:element ref="Name" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The  Name of the import service. Not multilingual</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                    <xsd:element ref="Description" minOccurs="0" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The multilingual Description of the import service</xsd:documentation>
                        </xsd:annotation>     
                    </xsd:element>
                    <xsd:element ref="CommonName" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="ServicesOrganizationReference" minOccurs="0"/>
                    <xsd:element ref="NounReference" minOccurs="0"/>
                    <xsd:element ref="SchemaDefinitionReference" minOccurs="0"/>
                    <xsd:element ref="ImportMapping" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="RuntimeConverter" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="EditableIndicator" minOccurs="0"/>
                    <xsd:element ref="SupportTranslationsIndicator" minOccurs="0"/>
                    <xsd:element ref="Implementor" minOccurs="0"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
     
    <xsd:complexType name="NounType">
        <xsd:annotation>
            <xsd:documentation>Defines the elements of a Noun that will be imported into BIS. Analgous with a BOD Registration in BIS.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="BaseConfigurationType">
                <xsd:sequence>
                    <xsd:element ref="DocumentCode" minOccurs="0"/>
                    <xsd:element ref="Name" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The Name of the noun (bod registration). Not multilingual.</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                    <xsd:element ref="Description" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="CommonName" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="NounValue" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="SupportGetIndicator" minOccurs="0" maxOccurs="1"/>
                    <xsd:element ref="SupportSyncIndicator" minOccurs="0" maxOccurs="1"/>
                    <xsd:element ref="EditableIndicator" minOccurs="0"/>
                    <xsd:element ref="Implementor" minOccurs="0"/>
                    <xsd:element ref="XPath">
                        <xsd:annotation>
                            <xsd:documentation>A flattening XPath description.</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="NounValueType">
        <xsd:annotation>
            <xsd:documentation>Defines an element in a BOD. Analgous with a BOD Column for a BOD registration in BIS.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="BaseConfigurationType">
                <xsd:sequence>
                    <xsd:element ref="Name" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="XPath" minOccurs="0"/>
                    <xsd:element ref="EnabledIndicator" minOccurs="0"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="OutputFormatType">
        <xsd:annotation>
            <xsd:documentation>An output format to be used with an export service. A format describes the content of an report based on the views it covers.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="BaseConfigurationType">
                <xsd:sequence>
                    <xsd:element ref="Name" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The Name of the mapping. Not multilingual.</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                    <xsd:element ref="Description" minOccurs="0" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The multilingual Description of the mapping.</xsd:documentation>
                        </xsd:annotation>     
                    </xsd:element>
                    <xsd:element ref="CommonName" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="OutputFormatField" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="EditableIndicator" minOccurs="0"/>
                    <xsd:element ref="Implementor" minOccurs="0"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="OutputFormatFieldType">
        <xsd:annotation>
            <xsd:documentation>A field to describe an output value in an output format.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="BaseConfigurationType">
                <xsd:sequence>
                    <xsd:element ref="Name" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The Name of the format field. Not multilingual.</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                    <xsd:element ref="Description" minOccurs="0" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The multilingual Description of the format field.</xsd:documentation>
                        </xsd:annotation>     
                    </xsd:element>
                    <xsd:element ref="CommonName" minOccurs="0" maxOccurs="unbounded"/>    
                    <xsd:element ref="Type"/>
                    <xsd:element ref="OutputFieldType"/>
                    <xsd:element ref="Index" minOccurs="0"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="OutputFieldType">
        <xsd:annotation>
            <xsd:documentation>A type to be used with an output format field.</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element ref="Name" maxOccurs="unbounded">
                <xsd:annotation>
                    <xsd:documentation>The Name of the field type. Not multilingual.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element ref="CommonName" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element ref="JavaClass" minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="OutputMappingType">
        <xsd:annotation>
            <xsd:documentation>An output mapping describes the relationship between an output view and output format for an export service.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="BaseConfigurationType">
                <xsd:sequence>
                    <xsd:element ref="Name" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The Name of the mapping. Not multilingual.</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                    <xsd:element ref="Description" minOccurs="0" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The multilingual Description of the mapping.</xsd:documentation>
                        </xsd:annotation>     
                    </xsd:element>
                    <xsd:element ref="CommonName" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="OutputViewReference"/>   
                    <xsd:element ref="OutputFormatReference"/>
                    <xsd:element ref="OutputMappingEntry" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="EditableIndicator" minOccurs="0"/>
                    <xsd:element ref="Implementor" minOccurs="0"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="OutputMappingEntryType">
        <xsd:annotation>
            <xsd:documentation>An output mapping entry relates an output view column to an output format field for its parent output mapping.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="BaseConfigurationType">
                <xsd:sequence>
                    <xsd:element ref="OutputViewColumnReference" minOccurs="0"/>
                    <xsd:element ref="OutputFormatFieldReference" minOccurs="0"/>
                    <xsd:element ref="DefaultValue" minOccurs="0"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="OutputViewType">
        <xsd:annotation>
            <xsd:documentation>Describes a view across schemas to be used with reporting output.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="BaseConfigurationType">
                <xsd:sequence>
                    <xsd:element ref="Name" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The Name of the output view. Not multilingual.</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                    <xsd:element ref="Description" minOccurs="0" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The multilingual Description of the output view.</xsd:documentation>
                        </xsd:annotation>     
                    </xsd:element>
                    <xsd:element ref="CommonName" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="OutputViewColumn" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="OutputViewCalculatedColumn" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="OutputViewSubServiceColumn" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="OutputViewJoin" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="OutputViewUnion" minOccurs="0" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>Each output view union reference describes a link from this view to a single target view for union purposes.</xsd:documentation>
                        </xsd:annotation>     
                    </xsd:element>
                    <xsd:element ref="EditableIndicator" minOccurs="0"/>
                    <xsd:element ref="Implementor" minOccurs="0"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="OutputViewUnionType">
        <xsd:annotation>
            <xsd:documentation>Defines union information for an output view.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="BaseConfigurationType">
                <xsd:sequence>
                    <xsd:element ref="Type">
                        <xsd:annotation>
                            <xsd:documentation>The type of the union, for example UnionAll.</xsd:documentation>
                        </xsd:annotation>      
                    </xsd:element>
                    <xsd:element ref="OutputViewUnionDetail" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>
                                The reference to the union detail. The union detail describes a pair of column references. All the references in the first column reference
                                of the union detail will be from the owning view, all the references from the second column reference will be for the same target
                                view.
                            </xsd:documentation>
                        </xsd:annotation>     
                    </xsd:element>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="OutputViewUnionDetailType">
        <xsd:annotation>
            <xsd:documentation>The detail of the union. Links a pair of column references to help describe a union.</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element ref="OutputViewColumnReference" minOccurs="2" maxOccurs="2">
                <xsd:annotation>
                    <xsd:documentation>
                        A pair of columns to describe part of a union. The first column will be a column from the view owning the union. 
                        The second column will be a column from the target view.
                    </xsd:documentation>
                </xsd:annotation>     
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="OutputViewJoinType">
        <xsd:annotation>
            <xsd:documentation>Defines join information for an output view.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="BaseConfigurationType">
                <xsd:sequence>
                    <xsd:element ref="Type"/>
                    <xsd:element ref="Sequence"/>
                    <xsd:element ref="BusinessReferenceReference"/>
                    <xsd:element ref="Alias" minOccurs="0"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="OutputViewColumnType">
        <xsd:annotation>
            <xsd:documentation>Defines a column for an output view of report data.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="BaseConfigurationType">
                <xsd:sequence>
                    <xsd:element ref="Name" minOccurs="0" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The Name of the ouptut view column. Not multilingual. If not supplied then the name is sourced from the schema column reference.</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                    <xsd:element ref="Description" minOccurs="0" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The multilingual Description of the output view column.</xsd:documentation>
                        </xsd:annotation>     
                    </xsd:element>
                    <xsd:element ref="CommonName" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="SchemaColumnReference" minOccurs="0"/>
                    <xsd:element ref="DataCategorisationReference" minOccurs="0"/>
                    <xsd:element ref="BusinessReferenceReference" minOccurs="0"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="DataCategorisationType">
        <xsd:annotation>
            <xsd:documentation>
                A data categorisation (breakout) enables definition of ranges of values. The data in each of the ranges or buckets will be of the same
                data type as the categorisation.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="BaseConfigurationType">
                <xsd:sequence>
                    <xsd:annotation>
                        <xsd:documentation>The data type of the categorisation. All buckets will be considered to hold values of the type.</xsd:documentation>
                    </xsd:annotation>
                    <xsd:element ref="Name" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The Name of the categorisation. Not multilingual.</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                    <xsd:element ref="Description" minOccurs="0" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The multilingual Description of the categorisation.</xsd:documentation>
                        </xsd:annotation>     
                    </xsd:element>
                    <xsd:element ref="CommonName" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="Type" />
                    <xsd:element ref="DataCategorisationBucket"  maxOccurs="unbounded"/>
                    <xsd:element ref="Implementor" minOccurs="0"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="CalendarDataCategorisationType">
        <xsd:annotation>
            <xsd:documentation>
                A data categorisation (breakout) enables definition of ranges of values. This element represents data categorisations 
                that can be linked to a calendar by document reference.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="DataCategorisationType">
                <xsd:sequence>
                    <xsd:element ref="FinancialCalendarReference" minOccurs="0">
                        <xsd:annotation>
                            <xsd:documentation>A reference to a calendar that the categorisation is based on.</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="DataCategorisationBucketType">
        <xsd:annotation>
            <xsd:documentation>Holds start and end range values for a data categorisation. Each bucket can have a status to determine whether it is allowed to be used.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="StatusEnabledHeaderType">
                <xsd:sequence>
                    <xsd:element ref="Name" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The Name of the bucket. Not multilingual.</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                    <xsd:element ref="RangeStart" />
                    <xsd:element ref="RangeEnd" />
                    <!-- Choice is included for backwards compatibility for releases that didn't have localisable values -->
                    <xsd:choice>
                        <xsd:element ref="DefaultValue" minOccurs="0" />
                        <xsd:element ref="DataCategorisationBucketValue" minOccurs="0" maxOccurs="unbounded"/>
                    </xsd:choice>
                </xsd:sequence>
            </xsd:extension>
          </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="OutputViewSubServiceColumnType">
        <xsd:annotation>
            <xsd:documentation>An output view column that is linked to an export service.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="OutputViewColumnType">
                <xsd:sequence>
                    <xsd:element ref="ExportServiceReference">
                        <xsd:annotation>
                            <xsd:documentation>The export service that the column is linked to.</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                    <xsd:element ref="SubServiceGroup" minOccurs="0"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="OutputViewCalculatedColumnType">
        <xsd:annotation>
            <xsd:documentation>An output view column that is calculated using a bespoke SQL expression.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="OutputViewColumnType">
                <xsd:sequence>
                    <xsd:element ref="CalculatedDataType"/>
                    <xsd:element ref="SqlExpression" minOccurs="0"/>
                    <xsd:element ref="CalculatedGroup" minOccurs="0"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="BusinessReferenceType">
        <xsd:annotation>
            <xsd:documentation>A business reference is a link that can be defined between tables whose criteria can be determined using a hierarchy</xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="BaseConfigurationType">
                <xsd:sequence>
                    <xsd:element ref="Name" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The Name of the business reference. Not multilingual.</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                    <xsd:element ref="Description" minOccurs="0" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The multilingual Description of the business reference.</xsd:documentation>
                        </xsd:annotation>     
                    </xsd:element>
                    <xsd:element ref="CommonName" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="LastModification" minOccurs="0"/>
                    <!-- Choice is included for backwards compatibility for MyDayGA1.1.x releases, it uses 'Dimension' but later releases will use the 'ReferencedDimension' -->
                    <xsd:choice>
                        <xsd:element ref="ReferencedDimension" minOccurs="0">
                            <xsd:annotation>
                                <xsd:documentation>
                                    The name of any dimension for the business reference. If the reference is linked to a dimension it should be possible to 
                                    use hierarchies to find values.
                                </xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                        <xsd:element ref="Dimension" minOccurs="0"/>
                    </xsd:choice>
                    <xsd:element ref="SchemaDefinitionReference">
                        <xsd:annotation>
                            <xsd:documentation>
                                The reference to the destination schema for the business reference. The parent schema reference is implied from the elements parent.
                            </xsd:documentation>
                        </xsd:annotation>     
                    </xsd:element>
                    <xsd:element ref="Type" >
                        <xsd:annotation>
                            <xsd:documentation>
                                The type of the reference. References may be to Noun types, user defined dimension types, custom types etc.
                            </xsd:documentation>
                        </xsd:annotation>     
                    </xsd:element>
                    <xsd:element ref="BusinessKey" minOccurs="0" maxOccurs="unbounded"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="SchemaIndexType">
        <xsd:annotation>
            <xsd:documentation>Defines a index for a schema definition.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="BaseConfigurationType">
                <xsd:sequence>
                    <xsd:element ref="Name" minOccurs="0" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The Name of the index. Not necessarily multilingual.</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                    <xsd:element ref="Description" minOccurs="0" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The multilingual Description of the index.</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                    <xsd:element ref="CommonName" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="SchemaColumnReference" maxOccurs="unbounded"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="SchemaColumnType">
        <xsd:annotation>
            <xsd:documentation>Defines a column with a schema definition for BIS</xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="BaseConfigurationType">
                <xsd:sequence>
                    <xsd:element ref="Name" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The Name of the schema column. Not multilingual.</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                    <xsd:element ref="Description" minOccurs="0" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The multilingual Description of the schema column.</xsd:documentation>
                        </xsd:annotation>     
                    </xsd:element>
                    <xsd:element ref="CommonName" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="PrimaryKeyIndicator"  minOccurs="0"/>
                    <xsd:element ref="AllowNullIndicator" minOccurs="0"/>
                    <xsd:element ref="Width" minOccurs="0"/>
                    <xsd:element ref="Type" minOccurs="0"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="SchemaDefinitionType">
        <xsd:annotation>
            <xsd:documentation>Defines a table in BIS and the associated columns.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="BaseConfigurationType">
                <xsd:sequence>
                    <xsd:element ref="Name" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The multilingual Name of the schema definition</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                    <xsd:element ref="Description" minOccurs="0" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The multilingual Description of the schema definition</xsd:documentation>
                        </xsd:annotation>     
                    </xsd:element>
                    <xsd:element ref="CommonName" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="SchemaColumn" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="SchemaIndex" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="ApplicationDrillback" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="BusinessReference" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="EditableIndicator" minOccurs="0"/>
                    <xsd:element ref="Implementor" minOccurs="0"/>
                    <xsd:element ref="ViewName" minOccurs="0"/>
                    <xsd:element ref="ArchiveEnabledIndicator" minOccurs="0"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="ApplicationDrillbackType">
        <xsd:annotation>
            <xsd:documentation>
                Application drillback is a mechanism whereby from a role-based homepage, a user can retrieve additional rows of data from a source system 
                from which some of the KPI data comes from.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="BaseConfigurationType">
                <xsd:sequence>
                    <xsd:element ref="Name" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The Name of the drillback. Not multilingual.</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                    <xsd:element ref="Description" minOccurs="0" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The multilingual Description of the drillback.</xsd:documentation>
                        </xsd:annotation>     
                    </xsd:element>
                    <xsd:element ref="CommonName" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="FortressId"/>
                    <xsd:element ref="LogicalIdColumn" minOccurs="0"/>
                    <xsd:element ref="TenantColumn" minOccurs="0"/>
                    <xsd:element ref="LocationColumn" minOccurs="0"/>
                    <xsd:element ref="DocumentIdColumn" minOccurs="0"/>
                    <xsd:element ref="AccountingEntityColumn" minOccurs="0"/>
                    <xsd:element ref="RevisionColumn" minOccurs="0"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="BusinessKeyType">
        <xsd:annotation>
            <xsd:documentation>Associates schema columns for a business reference.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="BaseConfigurationType">
                <xsd:sequence>
                    <xsd:element ref="Name" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The Name of the business key. Not multilingual.</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                    <xsd:element ref="SourceColumn" minOccurs="0"/>
                    <xsd:element ref="DestinationColumn" minOccurs="0"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="ServicesOrganizationType">
        <xsd:annotation>
            <xsd:documentation>A way of categorising import and export services. Can be arranged to create a hierarchy ot service organisations.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="BaseConfigurationType">
                <xsd:sequence>
                    <xsd:element ref="Name" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The Name of the schema column. Not multilingual.</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                    <xsd:element ref="Description" minOccurs="0" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The multilingual Description of the schema column.</xsd:documentation>
                        </xsd:annotation>     
                    </xsd:element>
                    <xsd:element ref="CommonName" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="ParentServiceOrganisationID" minOccurs="0"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="LastModificationType">
        <xsd:annotation>
            <xsd:documentation>A type to describe last modification date and last modified by user details</xsd:documentation>
        </xsd:annotation>     
        <xsd:sequence>
            <xsd:element ref="LastModificationDateTime" minOccurs="0"/>
            <xsd:element ref="LastModifiedBy" minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="OutputFormatFieldReferenceType">
        <xsd:annotation>
            <xsd:documentation>A reference to an output format field.</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element ref="OutputFormatReference"/>    
            <xsd:element ref="Name">
                <xsd:annotation>
                    <xsd:documentation>The unique name of  the output format field for the output format reference. Not multilingual.</xsd:documentation>
                </xsd:annotation>
            </xsd:element> 
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="OutputViewColumnReferenceType">
        <xsd:annotation>
            <xsd:documentation>A type to hold a reference to an output view column within an output view</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element ref="OutputViewReference"/>    
            <xsd:element ref="Name">
                <xsd:annotation>
                    <xsd:documentation>The unique name of  the output view column for the output view reference. Not multilingual.</xsd:documentation>
                </xsd:annotation>
            </xsd:element> 
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="BusinessReferenceReferenceType">
        <xsd:annotation>
            <xsd:documentation>A type to hold a reference to a business reference within a schema definition.</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element ref="SchemaDefinitionReference"/>    
            <xsd:element ref="Name">
                <xsd:annotation>
                    <xsd:documentation>The unique name of  the business reference for the schema definition reference.</xsd:documentation>
                </xsd:annotation>
            </xsd:element> 
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="SchemaColumnReferenceType">
        <xsd:annotation>
            <xsd:documentation>A type to hold a reference to a schema column within a schema definition</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element ref="SchemaDefinitionReference"/>    
            <xsd:element ref="Name">
                <xsd:annotation>
                    <xsd:documentation>The unique name of  the schema column for the schema definition reference</xsd:documentation>
                </xsd:annotation>
            </xsd:element> 
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="ConverterReferenceType">
        <xsd:annotation>
            <xsd:documentation>A type to hold a reference to a converter within a converter library</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element ref="ConverterLibraryReference"/>    
            <xsd:element ref="Name">
                <xsd:annotation>
                    <xsd:documentation>The unique name of  the converter within the converter library</xsd:documentation>
                </xsd:annotation>
            </xsd:element> 
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="NounValueReferenceType">
        <xsd:annotation>
            <xsd:documentation>A type to hold a reference to a noun value (BOD Column) within a Noun (BOD Registration)</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element ref="NounReference"/>    
            <xsd:element ref="Name">
                <xsd:annotation>
                    <xsd:documentation>The unique name of  the noun value for the Noun reference</xsd:documentation>
                </xsd:annotation>
            </xsd:element> 
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="ShortcutConverterReferenceType">
        <xsd:annotation>
            <xsd:documentation>A type to hold a reference to a shortcut converter.</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element ref="ConverterReference"/>
            <xsd:element ref="Value" minOccurs="0" maxOccurs="unbounded">
                <xsd:annotation>
                    <xsd:documentation>An extra values that are relevant to use ot the shortcut converter.</xsd:documentation>
                </xsd:annotation>    
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="OutputMappingEntryReferenceType">
        <xsd:annotation>
            <xsd:documentation>A type to hold a reference to an output mapping entry.</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element ref="OutputMappingReference"/>
            <xsd:element ref="Name">
                <xsd:annotation>
                    <xsd:documentation>The name or similar that descibes an output mapping entry within an OutputMapping uniquely.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="ReferencedDimensionType">
        <xsd:annotation>
            <xsd:documentation>Describes a dimension to link to.</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element ref="DimensionName">
                <xsd:annotation>
                    <xsd:documentation>The name of the dimension.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element ref="Type">
                <xsd:annotation>
                    <xsd:documentation>The type of the dimension.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
    
    <!-- Dimension element is included for backwards compatibility for MyDayGA1.1.x releases-->
    <xsd:element name="Dimension" type="StringType">
        <xsd:annotation>
            <xsd:documentation>
                The name of any dimension for the business reference. If the reference is linked to a dimension it should be possible to 
                use hierarchies to find values.
            </xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    
        <!-- 
        -
        - Element declaration
        -
        -->
    <xsd:element name="ConverterLibrary" type="ConverterLibraryType"/>
    <xsd:element name="IOConverter" type="IOConverterType"/>
    <xsd:element name="ConverterParameter" type="ConverterParameterType"/>
    <xsd:element name="ConverterParameterValue" type="ConverterParameterValueType"/>
    <xsd:element name="ShortcutConverter" type="ShortcutConverterType"/>
    <xsd:element name="RuntimeConverter" type="RuntimeConverterType"/>
    <xsd:element name="ShortcutMethod" type="StringType"/>
    <!-- Shortcut element is included for backwards compatibility for MyDayGA1.1.x releases-->
    <xsd:element name="Shortcut" type="ShortcutType"/>
    <xsd:element name="LastModification" type="LastModificationType"/>
    <xsd:element name="ExportService" type="ExportServiceType"/>
    <xsd:element name="ExportServiceOption" type="ExportServiceOptionType"/>
    <xsd:element name="ExportServiceParameterValue" type="ExportServiceParameterValueType"/>
    <xsd:element name="UnboundExportServiceParameter" type="UnboundExportServiceParameterType"/>
    <xsd:element name="ColumnBoundExportServiceParameter" type="ColumnBoundExportServiceParameterType"/>
    <xsd:element name="BusinessReferenceExportServiceParameter" type="BusinessReferenceExportServiceParameterType"/>
    <xsd:element name="ExportServiceParameterDefaultValue" type="ExportServiceParameterDefaultValueType"/>
    <xsd:element name="ImportMapping" type="ImportMappingType"/>
    <xsd:element name="ImportService" type="ImportServiceType"/>
    <xsd:element name="Noun" type="NounType"/>
    <xsd:element name="NounValue" type="NounValueType"/>
    <xsd:element name="OutputFormat" type="OutputFormatType"/>
    <xsd:element name="OutputFormatField" type="OutputFormatFieldType"/>
    <xsd:element name="OutputFieldType" type="OutputFieldType"/>
    <xsd:element name="OutputMapping" type="OutputMappingType"/>
    <xsd:element name="OutputMappingEntry" type="OutputMappingEntryType"/>
    <xsd:element name="OutputView" type="OutputViewType"/>
    <xsd:element name="OutputViewColumn" type="OutputViewColumnType"/>
    <xsd:element name="OutputViewJoin" type="OutputViewJoinType"/>
    <xsd:element name="OutputViewUnion" type="OutputViewUnionType"/>
    <xsd:element name="OutputViewUnionDetail" type="OutputViewUnionDetailType"/>
    <xsd:element name="OutputViewCalculatedColumn" type="OutputViewCalculatedColumnType"/>
    <xsd:element name="OutputViewSubServiceColumn" type="OutputViewSubServiceColumnType"/>
    <xsd:element name="SchemaColumn" type="SchemaColumnType"/>
    <xsd:element name="SchemaIndex" type="SchemaIndexType"/>
    <xsd:element name="SchemaDefinition" type="SchemaDefinitionType"/>
    <xsd:element name="ServicesOrganization" type="ServicesOrganizationType"/>
    <xsd:element name="ApplicationDrillback" type="ApplicationDrillbackType"/>
    <xsd:element name="BusinessReference" type="BusinessReferenceType"/>
    <xsd:element name="BusinessKey" type="BusinessKeyType"/>
    <xsd:element name="DataCategorisation" type="DataCategorisationType"/>
    <xsd:element name="DataCategorisationBucket" type="DataCategorisationBucketType"/>
    
    <xsd:element name="DataCategorisationReference" type="DocumentReferenceType">
        <xsd:annotation>
            <xsd:documentation>This reference refers to a BISConfig noun that has a RevisionID of 'DataCategorisation'.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    <xsd:element name="ServicesOrganizationReference" type="DocumentReferenceType">
        <xsd:annotation>
            <xsd:documentation>This reference refers to a BISConfig noun that has a RevisionID of 'ServicesOrganization'.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    <xsd:element name="ConverterLibraryReference" type="DocumentReferenceType">
        <xsd:annotation>
           <xsd:documentation>This reference refers to a BISConfig noun that has a RevisionID of 'ConverterLibrary'.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    <xsd:element name="OutputViewReference" type="DocumentReferenceType">
        <xsd:annotation>
            <xsd:documentation>This reference refers to a BISConfig noun that has a RevisionID of 'OutputView'.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    <xsd:element name="OutputMappingReference" type="DocumentReferenceType">
        <xsd:annotation>
            <xsd:documentation>This reference refers to a BISConfig noun that has a RevisionID of 'OutputMapping'.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    <xsd:element name="OutputFormatReference" type="DocumentReferenceType">
        <xsd:annotation>
            <xsd:documentation>This reference refers to a BISConfig noun that has a RevisionID of 'OutputFormat'.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    <xsd:element name="NounReference" type="DocumentReferenceType">
        <xsd:annotation>
            <xsd:documentation>This reference refers to a BISConfig noun that has a RevisionID of 'Noun'.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    <xsd:element name="SchemaDefinitionReference" type="DocumentReferenceType">
        <xsd:annotation>
            <xsd:documentation>This reference refers to a BISConfig noun that has a RevisionID of 'SchemaDefinition'.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    <xsd:element name="ExportServiceReference" type="DocumentReferenceType">
        <xsd:annotation>
            <xsd:documentation>This reference refers to a BISConfig noun that has a RevisionID of 'ExportService'.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    <xsd:element name="SubServiceReference" type="SubServiceReferenceType"/>
    <xsd:element name="OutputMappingEntryReference" type="OutputMappingEntryReferenceType"/>
    <xsd:element name="SchemaColumnReference" type="SchemaColumnReferenceType"/>
    <xsd:element name="ConverterReference" type="ConverterReferenceType"/>
    <xsd:element name="BusinessReferenceReference" type="BusinessReferenceReferenceType"/>
    <xsd:element name="OutputViewColumnReference" type="OutputViewColumnReferenceType"/>
    <xsd:element name="SubServiceColumnReference" type="OutputViewColumnReferenceType"/>
    <xsd:element name="OutputFormatFieldReference" type="OutputFormatFieldReferenceType"/>
    <xsd:element name="NounValueReference" type="NounValueReferenceType"/>
    <xsd:element name="ShortcutConverterReference" type="ShortcutConverterReferenceType"/>
    
    <xsd:element name="ArchiveEnabledIndicator" type="IndicatorType">
        <xsd:annotation>
            <xsd:documentation>An indicator for use with a schema definition to indicate its support for archive of data</xsd:documentation>
        </xsd:annotation>
    </xsd:element>

    <xsd:element name="PrimaryKeyIndicator"  type="IndicatorType">
        <xsd:annotation>
            <xsd:documentation>Indicates that the value located through this XPath expression is the unique key for this object.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    
    <xsd:element name="SystemLibraryIndicator" type="IndicatorType">
        <xsd:annotation>
            <xsd:documentation>An indicator for use with converter library to indicate whether it is a system library</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    
    <xsd:element name="InputConverterIndicator" type="IndicatorType">
        <xsd:annotation>
            <xsd:documentation>An indicator for use with converters to signify that it can be used for input functions</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    
    <xsd:element name="OutputConverterIndicator" type="IndicatorType">
        <xsd:annotation>
            <xsd:documentation>An indicator for use with converters to signify that it can be used for output functions</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    
    <xsd:element name="AllowNullIndicator" type="IndicatorType"/>
    
    <xsd:element name="EnabledIndicator" type="IndicatorType">
        <xsd:annotation>
            <xsd:documentation>An indicator for general use to indicate whether the owner is enabled for use.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    
    <xsd:element name="SupportTranslationsIndicator" type="IndicatorType">
        <xsd:annotation>
            <xsd:documentation>An indicator to show if an element supports translations.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    
    <xsd:element name="EditableIndicator" type="IndicatorType">
        <xsd:annotation>
            <xsd:documentation>An indicator for general use to indicate whether the owner is editable.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    
    <xsd:element name="SupportGetIndicator" type="IndicatorType">
        <xsd:annotation>
            <xsd:documentation>An indicator for use with BOD registrations to define whether the registration supports 'Get' messages.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    
    <xsd:element name="SupportSyncIndicator" type="IndicatorType">
        <xsd:annotation>
            <xsd:documentation>An indicator for use with BOD registrations to define whether the registration supports 'Sync' messages.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    
    <xsd:element name="ToBeDeletedIndicator" type="IndicatorType">
        <xsd:annotation>
            <xsd:documentation>An indicator for general use that holds a value indicating whether the element is to be deleted.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    
    <xsd:element name="ParentServiceOrganisationID" type="IdentifierType">
        <xsd:annotation>
            <xsd:documentation> The Organization ID of the service organization that is the parent of the current service organization.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    
     <xsd:element name="CommonName" type="NameType"/>
     <xsd:element name="UniqueName" type="NameType"/>
    <xsd:element name="SubServiceParameterName" type="NameType"/>
    
    <xsd:element name="Width" type="StringType"/>
    
    <xsd:element name="XPath" type="TokenType"/>
    
    <xsd:element name="Implementor" type="StringType">
        <xsd:annotation>
            <xsd:documentation>The implementor associated with the user for BIS reports.</xsd:documentation>
        </xsd:annotation>      
    </xsd:element>
    
    <xsd:element name="DefaultValue" type="StringType">
        <xsd:annotation>
            <xsd:documentation>Generic default value element.</xsd:documentation>
        </xsd:annotation>    
    </xsd:element>
    
    <xsd:element name="Value" type="StringType">
        <xsd:annotation>
            <xsd:documentation>Generic value element.</xsd:documentation>
        </xsd:annotation>    
    </xsd:element>
    
    <xsd:element name="Index" type="PositiveIntegerNumericType">
        <xsd:annotation>
            <xsd:documentation>A Generic index integer value.</xsd:documentation>
        </xsd:annotation>    
    </xsd:element>
    
    <xsd:element name="RowLimit" type="PositiveIntegerNumericType">
        <xsd:annotation>
            <xsd:documentation>The limit on the number of rows the export service is allowed to produce.</xsd:documentation>
        </xsd:annotation>    
    </xsd:element>
    
    <xsd:element name="Prompt" type="TextType">
        <xsd:annotation>
            <xsd:documentation>A value to be displayed to users as a form of help for how to configure the parameter.</xsd:documentation>
        </xsd:annotation>   
    </xsd:element>
    
    <xsd:element name="Condition" type="StringType">
        <xsd:annotation>
            <xsd:documentation>Describes the condition for the parameter. For example Equal, Between, GreaterThan</xsd:documentation>
        </xsd:annotation>   
    </xsd:element>
    
    <xsd:element name="RequiredIndicator" type="IndicatorType">
        <xsd:annotation>
            <xsd:documentation>An indicator describing if the parameter is required.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    
    <xsd:element name="DistinctIndicator" type="IndicatorType">
        <xsd:annotation>
            <xsd:documentation>An indicator describing if an export service option should have the 'distinct' feature applied.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    
    <xsd:element name="FixedIndicator" type="IndicatorType">
        <xsd:annotation>
            <xsd:documentation>An indicator describing if the parameter is fixed meaning that a value cannot be provided at runtime.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    
    <xsd:element name="DateTypeIndicator" type="IndicatorType">
        <xsd:annotation>
            <xsd:documentation>An indicator describing how the parameter treats date values</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    
    <xsd:element name="AggregationType" type="StringType">
        <xsd:annotation>
            <xsd:documentation>An aggregation type for an export service option.</xsd:documentation>
        </xsd:annotation>     
    </xsd:element>
    
    <xsd:element name="SortType" type="StringType">
        <xsd:annotation>
            <xsd:documentation>A sort type for an export service option.</xsd:documentation>
        </xsd:annotation> 
    </xsd:element>
    
    <xsd:element name="JavaClass"  type="StringType">
        <xsd:annotation>
            <xsd:documentation>The name of a Java class to use for an output field type.</xsd:documentation>
        </xsd:annotation>      
    </xsd:element>
    
    <xsd:element name="RangeStart" type="StringType"/>
    <xsd:element name="RangeEnd" type="StringType"/>
    
    <xsd:element name="CalculatedDataType" type="CodeType">
        <xsd:annotation>
            <xsd:documentation>The data type expected for the result of the calculation.</xsd:documentation>
        </xsd:annotation>     
    </xsd:element>
    
    <xsd:element name="SqlExpression" type="StringType">
        <xsd:annotation>
            <xsd:documentation>A SQL expression describing how this column is calculated.</xsd:documentation>
        </xsd:annotation>      
    </xsd:element>
    
    <xsd:element name="CalculatedGroup" type="StringType">
        <xsd:annotation>
            <xsd:documentation>The group for a calculated column.</xsd:documentation>
        </xsd:annotation>    
    </xsd:element>
    
    <xsd:element name="SubServiceGroup" type="StringType">
        <xsd:annotation>
            <xsd:documentation>The group for a sub service column.</xsd:documentation>
        </xsd:annotation>    
    </xsd:element>
    
    <xsd:element name="ReferencedDimension" type="ReferencedDimensionType">
        <xsd:annotation>
            <xsd:documentation>The details of a dimension.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    
    <xsd:element name="DimensionName" type="StringType">
        <xsd:annotation>
            <xsd:documentation>
                The name of any dimension for the business reference. If the reference is linked to a dimension it should be possible to 
                use hierarchies to find values.
            </xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    
    <xsd:element name="FortressId" type="StringType">
        <xsd:annotation>
            <xsd:documentation>The fortress id to be used with drillbacks.</xsd:documentation>
        </xsd:annotation>   
    </xsd:element>
    
    <xsd:element name="LogicalIdColumn" type="SchemaColumnReferenceType">
        <xsd:annotation>
            <xsd:documentation>Reference to a schema column within a schema definition to identify a logical id column for the drillback</xsd:documentation>
        </xsd:annotation>   
    </xsd:element>
    
    <xsd:element name="TenantColumn" type="SchemaColumnReferenceType">
        <xsd:annotation>
            <xsd:documentation>Reference to a schema column within a schema definition to identify a tenant column for the drillback</xsd:documentation>
        </xsd:annotation>   
    </xsd:element>
    
    <xsd:element name="LocationColumn" type="SchemaColumnReferenceType">
        <xsd:annotation>
            <xsd:documentation>Reference to a schema column within a schema definition to identify a location column for the drillback</xsd:documentation>
        </xsd:annotation>   
    </xsd:element>
    
    <xsd:element name="DocumentIdColumn" type="SchemaColumnReferenceType">
        <xsd:annotation>
            <xsd:documentation>Reference to a schema column within a schema definition to identify a document id column for the drillback</xsd:documentation>
        </xsd:annotation>   
    </xsd:element>
    
    <xsd:element name="AccountingEntityColumn" type="SchemaColumnReferenceType">
        <xsd:annotation>
            <xsd:documentation>Reference to a schema column within a schema definition to identify an accounting entity column for the drillback</xsd:documentation>
        </xsd:annotation>   
    </xsd:element>
    
    <xsd:element name="RevisionColumn" type="SchemaColumnReferenceType">
        <xsd:annotation>
            <xsd:documentation>Reference to a schema column within a schema definition to identify a revision column for the drillback</xsd:documentation>
        </xsd:annotation>   
    </xsd:element>
    
    <xsd:element name="SourceColumn" type="SchemaColumnReferenceType"/>
    <xsd:element name="DestinationColumn" type="SchemaColumnReferenceType"/>
    
    <xsd:element name="LastModifiedBy" type="StringType">
        <xsd:annotation>
            <xsd:documentation>An identifier to indicate the last user or similar to change the owner element. Will be a descriptive value rather than a link to a real user.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    
    <xsd:element name="ConverterParameterColumnType" type="StringType">
        <xsd:annotation>
            <xsd:documentation>An identifier to indicate the type of data expected when a converter parameter is mapped to a column.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    
    <xsd:element name="ViewName" type="StringType">
        <xsd:annotation>
            <xsd:documentation>An element to hold the name of the view associated with a schema definition.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    
    <xsd:element name="Alias" type="StringType">
        <xsd:annotation>
            <xsd:documentation>An element to hold the alias of entities.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    
    <xsd:element name="DataCategorisationBucketValue" type="TextType">
        <xsd:annotation>
            <xsd:documentation>Multi-lingual data bucket default value</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
</xsd:schema>
