<?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.
 
        *****     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"
    attributeFormDefault="unqualified">

    <xsd:include schemaLocation="../Components/Financial/Components.xsd"/>

    <xsd:element name="ChartsOfAccountsMap" type="ChartsOfAccountsMapType">
        <xsd:annotation>
            <xsd:documentation/>
        </xsd:annotation>
    </xsd:element>

    <xsd:complexType name="ChartsOfAccountsMapType">
        <xsd:complexContent>
            <xsd:extension base="StatusEnabledStandardHeaderType">
                <xsd:sequence>
                    <xsd:element ref="SourceDetails" minOccurs="0"/>
                    <xsd:element ref="TargetDetails" minOccurs="0"/>
                    <xsd:element ref="MappingTypeCode" minOccurs="0"/>
                    <xsd:element ref="UserArea" minOccurs="0"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:complexType name="SourceDetailsType">
        <xsd:sequence>
            <xsd:element ref="AccountingChartReference" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation> This is the source chart of accounts for which the mapping
                        rule is being set up for </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:choice>
            <xsd:element ref="ChartOfAccountsReference" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation> This is the source account code. </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element ref="ChartOfAccountsRange" minOccurs="0"/>
            </xsd:choice>
            <xsd:element ref="AccountingJournalReference" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>A Journal can be used to identify how two accounts may
                        be mapped. i.e. we can have A/C 11001. For J1 it maps to A/C 20000, For J2
                        it would map to A/C 30000</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element ref="DimensionCode" minOccurs="0"/>
            <xsd:element ref="JournalPrecedenceIndicator" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation> This flag represents if the journal type or dimension
                        defined take precedence in the mapping. True indicates Journal Type
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:element name="SourceDetails" type="SourceDetailsType"/>

    <xsd:complexType name="TargetDetailsType">
        <xsd:sequence>
            <xsd:element ref="AccountingChartReference" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation> This is the target chart of accounts for which the mapping
                        rule is being set up for </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element ref="ChartOfAccountsReference" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation> The target account code in the mapping </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element ref="SuspenseAccountReference" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation> This references the account an account code in the target
                        chart of accounts to use if any mapping between the two charts fails
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="ChartOfAccountsRangeType">
        <xsd:sequence>
            <xsd:element ref="BeginningChartOfAccountsReference" minOccurs="0"/>
            <xsd:element ref="EndingChartOfAccountsReference" minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:element name="ChartOfAccountsRange" type="ChartOfAccountsRangeType"/>

    <xsd:element name="TargetDetails" type="TargetDetailsType"/>

    <xsd:element name="SuspenseAccountReference" type="GLAccountType"/>
    <xsd:element name="BeginningChartOfAccountsReference" type="GLAccountType"/>
    <xsd:element name="EndingChartOfAccountsReference" type="GLAccountType"/>
    
    <xsd:element name="MappingTypeCode" type="CodeType">
        <xsd:annotation>
            <xsd:documentation> Can be either explicit simple, range simple, explicit conditional,
                range conditional </xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    <xsd:element name="JournalPrecedenceIndicator" type="IndicatorType"/>

</xsd:schema>
