<?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
-->
<!--
    (c) COPYRIGHT 2007 INFOR. ALL RIGHTS RESERVED. THE WORD AND DESIGN MARKS
    SET FORTH HEREIN ARE TRADEMARKS AND/OR REGISTERED TRADEMARKS OF INFOR
    AND/OR ITS AFFILIATES AND SUBSIDIARIES. ALL RIGHTS RESERVED. ALL OTHER
    TRADEMARKS LISTED HEREIN ARE THE PROPERTY OF THEIR RESPECTIVE OWNERS.
-->

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:oa="http://www.openapplications.org/oagis/9" xmlns="http://schema.infor.com/Infor1.0"
    targetNamespace="http://schema.infor.com/Infor1.0" elementFormDefault="qualified"
    attributeFormDefault="unqualified">

  <xsd:import namespace="http://www.openapplications.org/oagis/9"
        schemaLocation="../../../../9.0/Resources/Components/Common/Components.xsd"/>
  <xsd:include schemaLocation="../Common/Components.xsd"/>

  <xsd:complexType name="NounMetadataType">
    <xsd:annotation>
      <xsd:documentation/>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element ref="SchemaItems" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation>Top-level Type and Group definitions.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element ref="Customization" minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element ref="LocalizedText" minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element ref="NounData" minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element ref="NounLocalizedText" minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element ref="BusinessKey" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="NounMetadata" type="NounMetadataType"/>

  <xsd:complexType name="NounType">
    <xsd:annotation>
      <xsd:documentation source="http://schema.infor.com/Infor1.0">A ComplexType representing Nouns
        used along with pre-defined verbs to define BOD messages. Essentially an element of a larger
        domain model for an application. </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="ComplexTypeType">
        <xsd:sequence>
          <xsd:element ref="BusinessKey" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
        <xsd:attribute name="version" type="oa:StringType"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Noun" type="NounType"/>

  <xsd:attributeGroup name="LevelAware">
    <xsd:attribute name="path" type="oa:StringType" use="required">
      <xsd:annotation>
        <xsd:documentation source="http://schema.infor.com/Infor1.0">The path includes an indicator
          of the level of the text, either at the noun, instance, level or at the component, class
          level. </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="tenant" type="oa:StringType" use="required"/>
    <xsd:attribute name="level" type="CustomizationLevelEnum" use="required"/>
    <xsd:attribute name="levelDetail" type="oa:StringType" use="optional"/>
    <xsd:attribute name="bodVersion" type="oa:StringType" />
    <xsd:attribute name="nounName" type="oa:StringType" />
  </xsd:attributeGroup>

  <xsd:attributeGroup name="MinMaxOccurs">
    <xsd:attribute name="minOccurs" type="oa:StringType" use="optional" default="1"/>
    <xsd:attribute name="maxOccurs" type="oa:StringType" use="optional" default="1"/>
  </xsd:attributeGroup>

  <xsd:complexType name="LocalizedTextType">
    <xsd:annotation>
      <xsd:documentation source="http://schema.infor.com/Infor1.0">Localized text (labels, help,
        etc.) for a Noun, Type, or use of a Type. </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element ref="Text" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="languageID" type="xsd:language" use="required"/>
    <xsd:attributeGroup ref="LevelAware"/>
  </xsd:complexType>
  <xsd:element name="LocalizedText" type="LocalizedTextType"/>
  <xsd:element name="NounLocalizedText" type="LocalizedTextType"/>

  <xsd:complexType name="TextItemType">
    <xsd:simpleContent>
      <xsd:extension base="xsd:string">
        <xsd:attribute name="kind" type="TextEnum" use="required"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:element name="Text" type="TextItemType"/>

  <xsd:complexType name="GeneralizationType">
    <xsd:annotation>
      <xsd:documentation source="http://schema.infor.com/Infor1.0">Describes how a sub-type derives
        from a super-type. </xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="general" type="oa:StringType" use="required"/>
    <xsd:attribute name="kind" type="GeneralizationEnum" use="required"/>
  </xsd:complexType>
  <xsd:element name="Generalization" type="GeneralizationType"/>

  <xsd:complexType name="CodesType">
    <xsd:annotation>
      <xsd:documentation source="http://schema.infor.com/Infor1.0">A name-value element within a
        CodeList. </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element ref="ListID"/>
      <xsd:element ref="CodeValidationType"/>
      <xsd:element ref="CodeValue" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="Codes" type="CodesType"/>

  <xsd:complexType name="SchemaItemCollectionType">
    <xsd:choice maxOccurs="unbounded">
      <xsd:element ref="ComplexType"/>
      <xsd:element ref="SimpleType"/>
      <xsd:element ref="GroupDef"/>
      <xsd:element ref="AttributeGroupDef"/>
      <xsd:element ref="SubstitutionGroup"/>
      <xsd:element ref="Noun"/>
    </xsd:choice>
    <xsd:attribute name="namespace" type="xsd:string" use="optional"/>
  </xsd:complexType>
  <xsd:element name="SchemaItems" type="SchemaItemCollectionType"/>

  <xsd:complexType name="SchemaItemType" abstract="true">
    <xsd:sequence>
      <xsd:element ref="oa:Description" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="name" type="xsd:string" use="required"/>
    <xsd:attribute name="namespace" type="xsd:string" use="optional"/>
    <xsd:attribute name="schemaFile" type="xsd:string" use="required">
      <xsd:annotation>
        <xsd:documentation source="http://schema.infor.com/Infor1.0">The pointer to the file that
          contains the schema element. </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>

  <xsd:complexType name="SimpleTypeType">
    <xsd:complexContent>
      <xsd:extension base="SchemaItemType">
        <xsd:sequence>
          <xsd:element ref="Generalization" minOccurs="0"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="SimpleType" type="SimpleTypeType"/>

  <xsd:group name="ContainerGroup">
    <xsd:choice>
      <xsd:element ref="Choice" minOccurs="0"/>
      <xsd:element ref="Group" minOccurs="0"/>
      <xsd:element ref="Element" minOccurs="0"/>
      <xsd:element ref="Sequence" minOccurs="0"/>
    </xsd:choice>
  </xsd:group>

  <xsd:complexType name="ComplexTypeType">
    <!-- as POJO will implement INodeContainer -->
    <xsd:annotation>
      <xsd:documentation source="http://schema.infor.com/Infor1.0"> Describes a complexType of a
        schema. </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="SimpleTypeType">
        <xsd:sequence>
          <xsd:element ref="Attribute" minOccurs="0" maxOccurs="unbounded"/>
          <xsd:element ref="AttributeGroup" minOccurs="0" maxOccurs="unbounded"/>
          <xsd:group ref="ContainerGroup" maxOccurs="unbounded"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="ComplexType" type="ComplexTypeType"/>

  <xsd:group name="CustomizeGroup">
    <xsd:sequence>
      <xsd:element ref="Customization" minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element ref="LocalizedText" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:group>

  <xsd:complexType name="PropertyNode" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="NodeType">
        <xsd:sequence>
          <xsd:group ref="CustomizeGroup"/>
        </xsd:sequence>
        <xsd:attribute name="minOccurs" type="oa:StringType" use="optional" default="1"/>
        <xsd:attribute name="name" type="oa:StringType" use="required"/>
        <xsd:attribute name="type" type="oa:StringType" use="required"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:complexType name="AttributeType">
    <xsd:complexContent>
      <xsd:extension base="PropertyNode"/>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Attribute" type="AttributeType"/>

  <xsd:complexType name="Element">
    <xsd:complexContent>
      <xsd:extension base="PropertyNode">
        <xsd:attribute name="maxOccurs" type="oa:StringType" use="optional" default="1"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Element" type="Element"/>

  <xsd:complexType name="NodeType" abstract="true"> </xsd:complexType>

  <xsd:complexType name="ReferenceNodeType">
    <xsd:complexContent>
      <xsd:extension base="NodeType">
        <xsd:attribute name="ref" type="oa:StringType" use="required"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:element name="AttributeGroup" type="ReferenceNodeType"/>
  <xsd:element name="Group" type="ReferenceNodeType"/>

  <xsd:complexType name="ContainerNodeType" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="NodeType">
        <xsd:group ref="ContainerGroup" maxOccurs="unbounded"/>
        <xsd:attributeGroup ref="MinMaxOccurs"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:complexType name="ChoiceType">
    <xsd:annotation>
      <xsd:documentation source="http://schema.infor.com/Infor1.0">A container in which a choice of
        only one of the items can appear. </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="ContainerNodeType"/>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Choice" type="ChoiceType"/>

  <xsd:complexType name="SequenceType">
    <xsd:annotation>
      <xsd:documentation source="http://schema.infor.com/Infor1.0"> Container in which all elements
        must appear in the order listed. </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="ContainerNodeType"/>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Sequence" type="SequenceType"/>

  <xsd:complexType name="GroupType">
    <xsd:annotation>
      <xsd:documentation source="http://schema.infor.com/Infor1.0">Defines a named group of elements
        to be defined once and references from many places by name (like a macro.)
      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="SchemaItemType">
        <xsd:choice minOccurs="0" maxOccurs="unbounded">
          <xsd:element ref="Sequence"/>
          <xsd:element ref="Choice"/>
        </xsd:choice>
        <xsd:attributeGroup ref="MinMaxOccurs"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="GroupDef" type="GroupType"/>

  <xsd:complexType name="AttributeGroupType">
    <xsd:annotation>
      <xsd:documentation source="http://schema.infor.com/Infor1.0">Defines a named group of
        attributes to be defined once and references from many places by name (like a macro.)
      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="SchemaItemType">
        <xsd:choice minOccurs="0" maxOccurs="unbounded">
          <xsd:element ref="Attribute"/>
          <xsd:element ref="AttributeGroup"/>
        </xsd:choice>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="AttributeGroupDef" type="AttributeGroupType"/>

  <xsd:complexType name="CustomizationType">
    <xsd:annotation>
      <xsd:documentation source="http://schema.infor.com/Infor1.0"> A customization to the available
        metadata about a Type or usage of a Type. Metadata is merged from various sources. Any
        "global" metadata associated with a Type definition is applied first. Next any point-of-use
        metadata is overlaid. Each kind of metadata also can be defined at various levels. From the
        most general standard OAGIS to the most specific for a given customer deployment. We start
        with general and overlay each available level up to the most specific. </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element ref="Mandatory" minOccurs="0"/>
      <xsd:element ref="NotUsed" minOccurs="0"/>
      <xsd:element ref="MinInclusive" minOccurs="0"/>
      <xsd:element ref="MaxInclusive" minOccurs="0"/>
      <xsd:element ref="DefaultValue" minOccurs="0"/>
      <xsd:element ref="Length" minOccurs="0"/>
      <xsd:element ref="MaxLength" minOccurs="0"/>
      <xsd:element ref="MinLength" minOccurs="0"/>
      <xsd:element ref="Pattern" minOccurs="0"/>
      <xsd:element ref="Enumeration" minOccurs="0"/>
      <xsd:element ref="TotalDigits" minOccurs="0"/>
      <xsd:element ref="FractionDigits" minOccurs="0"/>
      <xsd:element ref="FlattenPoint" minOccurs="0"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="LevelAware"/>
  </xsd:complexType>
  <xsd:element name="Customization" type="CustomizationType"/>

  <xsd:complexType name="BusinessKeyType">
    <xsd:annotation>
      <xsd:documentation source="http://schema.infor.com/Infor1.0"> Gives details on the business
        key(s) of a Noun. </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element ref="KeyProperty" minOccurs="1" maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="name" type="oa:StringType" use="required"/>
    <xsd:attributeGroup ref="LevelAware"/>
    <xsd:attribute name="kind" type="KeyKindEnum" use="required"/>
    <xsd:attribute name="unique" type="xsd:boolean" use="required"/>
  </xsd:complexType>
  <xsd:element name="BusinessKey" type="BusinessKeyType"/>

  <xsd:complexType name="KeyPropertyType">
    <xsd:annotation>
      <xsd:documentation source="http://schema.infor.com/Infor1.0"> Identifies a property that is
        part of a Key. </xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="sequence" type="xsd:int" use="required"/>
    <xsd:attribute name="path" type="oa:StringType"/>
  </xsd:complexType>
  <xsd:element name="KeyProperty" type="KeyPropertyType"/>

  <xsd:complexType name="NounDataType">
    <xsd:annotation>
      <xsd:documentation source="http://schema.infor.com/Infor1.0">Customized (Infor-level only)
        metadata about a Noun. Must be kept in sync with the POJO:
        com.infor.oagis.nouns.metadata.NounData
        </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CodePropertyPath" type="oa:StringType" minOccurs="0" />
      <xsd:element name="DocumentIdPropertyPath" type="oa:StringType" minOccurs="0" />
      <xsd:element name="NamePropertyPath" type="oa:StringType" minOccurs="0" />
      <xsd:element name="ShortNamePropertyPath" type="oa:StringType" minOccurs="0" />
      <xsd:element name="EffectiveDatePropertyPath" type="oa:StringType" minOccurs="0" />
      <xsd:element name="StatusPropertyPath" type="oa:StringType" minOccurs="0" />
      <xsd:element name="DimensionRequired" type="oa:IndicatorType" minOccurs="0"/>
      <xsd:element name="DimensionRequiredPerInstance" type="oa:IndicatorType" minOccurs="0"/>
    </xsd:sequence>
    <xsd:attribute name="tenant" type="oa:StringType" use="required"/>
    <xsd:attribute name="bodVersion" type="oa:StringType" />
    <xsd:attribute name="nounName" type="oa:StringType" />
    <xsd:attribute name="nounKind" type="NounKindEnum" />
  </xsd:complexType>
  <xsd:element name="NounData" type="NounDataType"/>

  <xsd:complexType name="SubstitutionGroupType">
    <xsd:annotation>
      <xsd:documentation source="http://schema.infor.com/Infor1.0"> Describes situation in which an
        alternate element is allowed to appear. </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="SchemaItemType">
        <xsd:sequence>
          <xsd:element name="NewElement" type="oa:StringType"/>
          <xsd:element name="SubstitutedElement" type="oa:StringType"/>
          <xsd:element name="NewElementType" type="oa:StringType"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="SubstitutionGroup" type="SubstitutionGroupType"/>

  <!-- Simple element defintions -->

  <xsd:element name="Enumeration" type="oa:IndicatorType">
    <xsd:annotation>
      <xsd:documentation source="http://schema.infor.com/Infor1.0">Indicates if this elements values
        myust come from an enumerated list.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="Mandatory" type="oa:IndicatorType">
    <xsd:annotation>
      <xsd:documentation source="http://schema.infor.com/Infor1.0">Default is False. Mandatory
        indicates that the element is required for a Sync BOD only. </xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="NotUsed" type="oa:IndicatorType">
    <xsd:annotation>
      <xsd:documentation source="http://schema.infor.com/Infor1.0">Default is False. Indicates that
        this element should never be used in an Infor BOD.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="FlattenPoint" type="oa:StringType">
    <xsd:annotation>
      <xsd:documentation source="http://schema.infor.com/Infor1.0">If set indicates that
        this element represents a sensible point at which to flatten for creating a simpler view of the data.
        The value is the path within the Noun to the key property that, when combined with key data "above"
        the flattening point, make the data below the flattening point unique.  For example consider a
        SalesOrder Noun with a OrderLine Element as a flattening point that calls out the LineNumber property as
        it key.
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="Length" type="oa:PositiveIntegerNumericType">
    <xsd:annotation>
      <xsd:documentation source="http://schema.infor.com/Infor1.0">Only used when the value has a
        fixed length.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="FractionDigits" type="oa:PositiveIntegerNumericType">
    <xsd:annotation>
      <xsd:documentation source="http://schema.infor.com/Infor1.0">Total number of digits to the
        right of the decimal indicator.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="MaxLength" type="oa:PositiveIntegerNumericType"/>
  <xsd:element name="MinLength" type="oa:PositiveIntegerNumericType"/>
  <xsd:element name="TotalDigits" type="oa:PositiveIntegerNumericType">
    <xsd:annotation>
      <xsd:documentation source="http://schema.infor.com/Infor1.0">Total number of digits allowed in
        a numeric value.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="CodeValue" type="oa:StringType">
    <xsd:annotation>
      <xsd:documentation source="http://schema.infor.com/Infor1.0">This element is not used when the
        valid values of the code are defined in the code fortress. They are only used when the codes
        are defined in a code list or through documentation.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="DefaultValue" type="oa:StringType">
    <xsd:annotation>
      <xsd:documentation source="http://schema.infor.com/Infor1.0">The default value for an element
        when the element is not included.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="MaxInclusive" type="oa:StringType">
    <xsd:annotation>
      <xsd:documentation source="http://schema.infor.com/Infor1.0">Minimum value for an element. The
        value entered is valid.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="MinInclusive" type="oa:StringType">
    <xsd:annotation>
      <xsd:documentation source="http://schema.infor.com/Infor1.0">Minimum value for an element. The
        value entered is valid.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="Pattern" type="oa:StringType">
    <xsd:annotation>
      <xsd:documentation source="http://schema.infor.com/Infor1.0">A regular expression that can be
        used to validate data on input.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <!-- Enumerations -->

  <xsd:simpleType name="CodeValidationEnum">
    <xsd:annotation>
      <xsd:documentation source="http://schema.infor.com/Infor1.0">Identifies the source of the
        valid values for a code. Local means that the customer can define the values, CodeList means
        that the valid values are in either the Infor or OAGIS CodeList.xsd file, Documentation
        means that the values are by convention and are only documented as the valid
      values.</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Local"/>
      <xsd:enumeration value="CodeList"/>
      <xsd:enumeration value="Documentation"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:element name="CodeValidationType" type="CodeValidationEnum"/>

  <xsd:simpleType name="CustomizationLevelEnum">
    <xsd:annotation>
      <xsd:documentation source="http://schema.infor.com/Infor1.0">Metadata customizations can be
        defined at various levels. INFOR - Additional standard metadata as defined by Infor BOD
        Librarians. APPLICATION - Metadata used by a specific application. CUSTOMER - Metadata
        specific to a given customer deployment. This is typically added by Infor PSO, but may
        possibily be added by the customer themselves.</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="OAGIS"/>
      <!-- read-only -->
      <xsd:enumeration value="Infor"/>
      <xsd:enumeration value="Application"/>
      <xsd:enumeration value="Customer"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="GeneralizationEnum">
    <xsd:annotation>
      <xsd:documentation source="http://schema.infor.com/Infor1.0"> Kind of generalization possible
        in XSD schemas. Extension in which additions to base are listed. Restriction in which
        differences from base are listed.</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Extension"/>
      <xsd:enumeration value="Restriction"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="TextEnum">
    <xsd:annotation>
      <xsd:documentation source="http://schema.infor.com/Infor1.0"> Different kinds of localized
        text that can be defined. Label - UI label. ColumnLabel - UI grid column header. Description
        - General description. Help - Help text. </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Label"/>
      <xsd:enumeration value="ColumnLabel"/>
      <xsd:enumeration value="Description"/>
      <xsd:enumeration value="Help"/>
      <xsd:enumeration value="FlattenPoint"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="NounKindEnum">
    <xsd:annotation>
      <xsd:documentation source="http://schema.infor.com/Infor1.0">Category of noun.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Master"><xsd:annotation><xsd:documentation
          source="http://schema.infor.com/Infor1.0">Master data such as ItemMaster.</xsd:documentation>
        </xsd:annotation>
      </xsd:enumeration>
      <xsd:enumeration value="Transactional"><xsd:annotation><xsd:documentation
          source="http://schema.infor.com/Infor1.0">Transactional data such as PurchaseOrder.</xsd:documentation>
        </xsd:annotation>
      </xsd:enumeration>
      <xsd:enumeration value="Balance"><xsd:annotation><xsd:documentation
          source="http://schema.infor.com/Infor1.0">Balance data such as InventoryBalance.</xsd:documentation>
        </xsd:annotation>
      </xsd:enumeration>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="KeyKindEnum">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="User"/>
      <xsd:enumeration value="System"/>
      <xsd:enumeration value="ParentToChild"/>
      <xsd:enumeration value="ChildToParent"/>
      <xsd:enumeration value="FlattenPoint"/>
    </xsd:restriction>
  </xsd:simpleType>

</xsd:schema>