<?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
11 Mar 2010   PO      Added noun 
        *****     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/Common/Components.xsd"/>

    <xsd:element name="Navigation" type="NavigationType">
        <xsd:annotation>
            <xsd:documentation> Navigation used for associating a chart of accounts, a currency, and
                a calendar.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>

    <xsd:complexType name="NavigationType">
        <xsd:sequence>
            <xsd:element ref="NavigationHeader" minOccurs="0"/>
            <xsd:element ref="NavigationNode" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element ref="NodeRelations" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="NavigationHeaderType">
        <xsd:complexContent>
            <xsd:extension base="StatusEnabledStandardHeaderType">
                <xsd:sequence>

                    <xsd:element ref="UserArea" minOccurs="0"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:element name="NavigationHeader" type="NavigationHeaderType"/>

    <xsd:complexType name="NavigationNodeType">
        <xsd:sequence>
            <xsd:element ref="Sequence" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation> A sequence number to uniquely identify this node in this
                        BOD. These numbers are not required to be sequential. </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element ref="NodePermission" minOccurs="0"/>
            <xsd:element ref="Description" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element ref="Label" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element ref="NodeAction" minOccurs="0"/>
            <xsd:element ref="UserArea" minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:element name="NavigationNode" type="NavigationNodeType"/>

    <xsd:complexType name="NodePermissionType">
        <xsd:simpleContent>
            <xsd:extension base="NormalizedStringType"> </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>
    <xsd:element name="NodePermission" type="NodePermissionType"/>

    <xsd:complexType name="NodeActionType">
        <xsd:annotation>
            <xsd:documentation xml:lang="en"> The URI contains the URL to be displayed. The
                actionType attribute contains the code from the navigationActionType code list that
                details the behavior to be used, new browser, CUX content, new window, ...
            </xsd:documentation>
        </xsd:annotation>
        <xsd:simpleContent>
            <xsd:extension base="URIType">
                <xsd:attribute name="actionType" type="NormalizedStringType">
                    <xsd:annotation>
                        <xsd:documentation> The actionCode will be validated against the
                            NavigationActionCode code list. Initial values will be:
                            cux_main_content_area, browser_new_window, browser_new_tab
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:attribute>
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>
    <xsd:element name="NodeAction" type="NodeActionType"/>

    <xsd:complexType name="NodeRelationsType">
        <xsd:sequence>
            <xsd:element ref="Sequence" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation> Sequence number that identifies a collection of
                        relationships (a tree of nodes). </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element ref="NodeRelation" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:element name="NodeRelations" type="NodeRelationsType"/>

    <xsd:complexType name="NodeRelationType">
        <xsd:sequence>
            <xsd:element ref="Sequence" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation> Sequence number of a node's relationship in a tree.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element ref="NodeSequence" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation> The sequence number assigned to a node inside the Node
                        element. </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element ref="RootNode" minOccurs="0"/>
            <xsd:element ref="ParentNodeSequence" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation> The sequence number assigned to the node that is the parent
                        of the node identified by the NodeSequence. </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element ref="NodeOrder" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>You could see this as an index of the child in the list of
                        children for the same parent. The sequence also is the natural ordering in
                        which nodes will be presented, when the nodes are not grouped, sorted or
                        filtered in any way.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:element name="NodeRelation" type="NodeRelationType"/>

    <xsd:complexType name="RootNodeType">
        <xsd:annotation>
            <xsd:documentation> This element is only populated for root nodes. </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element ref="DefaultRootIndicator" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation> Indicates if this root node is the default root node for all
                        navigation. Default value is false. </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element ref="SecurityUser" minOccurs="0" maxOccurs="unbounded">
                <xsd:annotation>
                    <xsd:documentation> Collection of users who will use this root node when this is
                        not a default root node. There is no need to specify the users that use the
                        defualt root node. </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:element name="RootNode" type="RootNodeType"/>

    <xsd:element name="DefaultRootIndicator" type="IndicatorType"/>
    <xsd:element name="Label" type="TextType"/>
    <xsd:element name="NodeSequence" type="PositiveIntegerNumericType"/>
    <xsd:element name="ParentNodeSequence" type="PositiveIntegerNumericType"/>
    <xsd:element name="NodeOrder" type="PositiveIntegerNumericType"/>



</xsd:schema>
