<?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/Common/Components.xsd"/>

    <xsd:element name="Alert" type="AlertType">
        <xsd:annotation>
            <xsd:documentation> Alert used for providing information about events that occurred in a
                system when users need to be aware.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>

    <xsd:complexType name="AlertType">
        <xsd:sequence>
            <xsd:element ref="DocumentID" maxOccurs="unbounded"/>
            <xsd:element ref="AlertCode" minOccurs="0"/>
            <xsd:element ref="AlertCategoryCode" minOccurs="0"/>
            <xsd:element ref="Priority" minOccurs="0"/>
            <xsd:element ref="CancelMode" minOccurs="0"/>
            <xsd:element ref="Status" minOccurs="0"/>
            <xsd:element ref="TimeToLiveDuration" minOccurs="0"/>
            <xsd:element ref="AlertDateTime" minOccurs="0"/>
            <xsd:group ref="FreeFormTextGroup" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element ref="DistributionListCode" minOccurs="0"/>
            <xsd:element ref="SourceReference" minOccurs="0"/>
            <xsd:element ref="DistributionList" minOccurs="0"/>
            <xsd:element ref="AlertDetail" minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="AlertDetailType">
        <xsd:sequence>
            <xsd:element ref="Description" minOccurs="0"/>
            <xsd:element ref="Note" minOccurs="0"/>
            <xsd:element ref="DocumentReference" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element ref="TreeNode" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element ref="OutputSequence" minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:element name="AlertDetail" type="AlertDetailType"/>

    <xsd:element name="AlertCode" type="CodeType">
        <xsd:annotation>
            <xsd:documentation> This is the error code provided by the application. The listID for
                this code is AlertCode. </xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    <xsd:element name="AlertCategoryCode" type="CodeType">
        <xsd:annotation>
            <xsd:documentation> This is the error code provided by the application. The listID for
                this code is AlertCategoryCode. </xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    <xsd:element name="CancelMode" type="NormalizedStringType">
        <xsd:annotation>
            <xsd:documentation>Valid values are USER and APPLICATION</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    <xsd:element name="Priority" type="CodeType">
        <xsd:annotation>
            <xsd:documentation>Priority of Alerts is fixed to the value "High". Future: The Priority
                is read from the Infor Codelist "Priorities".</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    <xsd:element name="TimeToLiveDuration" type="DurationMeasureType"/>

    <xsd:element name="AlertDateTime" type="DateTimeType">
        <xsd:annotation>
            <xsd:documentation> Timestamp when the Alert was detected. </xsd:documentation>
        </xsd:annotation>
    </xsd:element>

    <xsd:complexType name="SourceReferenceType">
        <xsd:sequence>
            <xsd:element ref="LID" minOccurs="0"/>
            <xsd:element ref="ReferenceURL" minOccurs="0"/>
            <xsd:element ref="DocumentReference" minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:element name="SourceReference" type="SourceReferenceType"/>

    <xsd:element name="DistributionListCode" type="CodeType">
        <xsd:annotation>
            <xsd:documentation> Alerts a business conditions that needs attention from a user.
                Specify the ListID where the user names that should be informed about this Alert are
                saved. In version 1.0 this is filled with a Role code from Infor Security. If no
                users are defined for this role, the Alert will be distributed to the Worklist
                Administrator. </xsd:documentation>
        </xsd:annotation>
    </xsd:element>

    <xsd:complexType name="DistributionListType">
        <xsd:sequence>
            <xsd:element ref="UserID" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element ref="RoleID" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element ref="HierarchyNodeReference" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:element name="DistributionList" type="DistributionListType"/>

    <xsd:complexType name="TreeNodeType">
        <xsd:sequence>
            <xsd:element ref="NodeID" minOccurs="0"/>
            <xsd:element ref="NodeName" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element ref="ParentNodeID" minOccurs="0"/>
            <xsd:element ref="Property" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:element name="TreeNode" type="TreeNodeType"/>

    <xsd:complexType name="OutputSequenceType">
        <xsd:sequence>
            <xsd:element ref="OutputGroup" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:element name="OutputSequence" type="OutputSequenceType"/>

    <xsd:complexType name="OutputGroupType">
        <xsd:sequence>
            <xsd:element ref="ReferenceString" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element ref="NodeID" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:element name="OutputGroup" type="OutputGroupType"/>

    <xsd:element name="NodeName" type="NameType"/>
    <xsd:element name="ParentNodeID" type="IdentifierType"/>
    <xsd:element name="UserID" type="NormalizedStringType"/>
    <xsd:element name="RoleID" type="NormalizedStringType"/>
</xsd:schema>
