<?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
30 Sep 2011   PO      New noun
10 Oct 2016   LA      DrawingAttachment and DrawingPosition added, BOD-3242
24 Oct 2016   LA      DrawingAttachemnt made a repeating element, BOD-3242
        *****     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/Operational/ManufacturingComponents.xsd"/>

    <xsd:element name="BillOfMaterials" type="BillOfMaterialsType">
        <xsd:annotation>
            <xsd:documentation source="http://schema.infor.com/InforOAGIS/2">When included in a hierarchy, the Components are
                position dependent for their meaning and applicability to the Bill of Material. The Bill of Material structure is
                broken down into three classifications or ways to represent the Item. An Item may be included by itself as in the
                first sub-grouping, or an Item may be represented as part of a set of options or as an option within a class of
                options. An example of an option would be CD-ROM for a laptop computer. Then each of the types of CD-ROM's for the
                option would be a separate Item. An example of an option class would be memory for a laptop. The options could
                then be 128, 256, or 512 megabytes of RAM. Each of these options would then have separate Item identifiers for
                memory modules that makes up the appropriate amount of memory. For 256 megabytes of RAM, this could be two 128
                megabyte memory modules or one 256 megabyte.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>

    <xsd:element name="BillOfMaterialsHeader" type="BillOfMaterialsHeaderType">
        <xsd:annotation>
            <xsd:documentation source="http://schema.infor.com/InforOAGIS/2">Information that generally describes the Bill of
                Material Structure and its contents.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>

    <xsd:element name="BillOfMaterialsOption" type="BillOfMaterialsOptionType">
        <xsd:annotation>
            <xsd:documentation source="http://schema.infor.com/InforOAGIS/2">Information that describes the attributes of a
                specific Option within a classification. </xsd:documentation>
        </xsd:annotation>
    </xsd:element>

    <xsd:element name="BillOfMaterialsOptionClass" type="BillOfMaterialsOptionClassType">

        <xsd:annotation>
            <xsd:documentation source="http://schema.infor.com/InforOAGIS/2">Information that describes the class of Option for a
                particular Product or Item</xsd:documentation>
        </xsd:annotation>
    </xsd:element>

    <xsd:complexType name="BillOfMaterialsType">
        <xsd:sequence>
            <xsd:element ref="BillOfMaterialsHeader" minOccurs="0"/>
            <xsd:element ref="BillOfMaterialsLine" minOccurs="0" maxOccurs="unbounded">
                <xsd:annotation>
                    <xsd:documentation source="http://schema.infor.com/InforOAGIS/2">Identifies the Items that the
                        Bill-Of-Material creates. There may be other items created as a by-product of this same process. The first
                        occurance is the primary Item of this BillOfMaterials.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element ref="BillOfMaterialsOption" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element ref="BillOfMaterialsOptionClass" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="BillOfMaterialsHeaderType">
        <xsd:complexContent>
            <xsd:extension base="StatusEnabledHeaderType">
                <xsd:sequence>
                    <xsd:element ref="OutputItem" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="BillOfMaterialType" minOccurs="0"/>
                    <xsd:element ref="Classification" minOccurs="0"/>
                    <xsd:element ref="OperationReference" minOccurs="0"/>
                    <xsd:element ref="PhantomIndicator" minOccurs="0"/>
                    <xsd:element ref="AlternateBillOfMaterialsReference" minOccurs="0"
                        maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation source="http://schema.infor.com/InforOAGIS/2">Identifies Alternate BillOfMaterials for the
                                given BillOfMaterials.</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                    <xsd:element ref="ParentBillOfMaterialsReference" minOccurs="0"/>
                    <xsd:element ref="RouteReference" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="Name" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="UsageDescription" minOccurs="0"/>
                    <xsd:element ref="Type" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="EffectiveTimePeriod" minOccurs="0"/>
                    <xsd:element ref="Location" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="TrackingIndicator" minOccurs="0"/>
                    <xsd:element ref="BatchSizeQuantity" minOccurs="0">
                        <xsd:annotation>
                            <xsd:documentation source="http://schema.infor.com/InforOAGIS/2">Identifies the quantity that
                                can be produced in each run of the BillOfMaterials.</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                    <xsd:element ref="BatchSizeBaseUOMQuantity" minOccurs="0"/>
                    <xsd:element ref="YieldPercent" minOccurs="0"/>
                    <xsd:element ref="Yield" minOccurs="0"/>
                    <xsd:element ref="DrawingAttachment" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="ReferenceDesignator" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="ProjectReference" minOccurs="0"/>
                    <xsd:element ref="ProjectEngineerPerson" minOccurs="0"/>
                    <xsd:element ref="EngineeringItemDescription" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="PackagingUnit" minOccurs="0"/>
                    <xsd:element ref="UOMCodeConversion" minOccurs="0"/>
                    <xsd:element ref="DefaultSupplySourceCode" minOccurs="0"/>
                    <xsd:element ref="WeightPerUnit" minOccurs="0"/>
                    <xsd:element ref="UserArea" minOccurs="0"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:complexType name="BillOfMaterialsLineType">
        <xsd:complexContent>
            <xsd:extension base="StatusEnabledLineType">
                <xsd:sequence>
                    <xsd:choice>
                        <xsd:element ref="ConsumedItem" minOccurs="0"/>
                        <xsd:element ref="Instructions" minOccurs="0"/>
                        <xsd:element ref="BillOfMaterialsReference" minOccurs="0"/>

                    </xsd:choice>
                    <xsd:element ref="Supercedes" minOccurs="0"/>
                    <xsd:element ref="Substitutions" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="DrawingPosition" minOccurs="0">
                        <xsd:annotation>
                            <xsd:documentation>
                                Refers to the drawing position of a particular component in 
                                the DrawingAttachment on the header.
                            </xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                    <xsd:element ref="ReferenceDesignator" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element ref="OperationReference" minOccurs="0"/>




                    <xsd:element ref="UserArea" minOccurs="0"/>


                </xsd:sequence>

            </xsd:extension>

        </xsd:complexContent>

    </xsd:complexType>

    <xsd:element name="BillOfMaterialsLine" type="BillOfMaterialsLineType"/>

    <xsd:complexType name="BillOfMaterialsOptionType">
        <xsd:sequence>
            <xsd:element ref="ID" minOccurs="0"/>
            <xsd:element ref="Name" minOccurs="0"/>
            <xsd:group ref="FreeFormTextGroup" minOccurs="0"/>
            <xsd:element ref="DefaultIndicator" minOccurs="0"/>
            <xsd:element ref="ExclusiveIndicator" minOccurs="0"/>
            <xsd:element ref="BillOfMaterialsLine" minOccurs="0" maxOccurs="unbounded"/>

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

    <xsd:complexType name="BillOfMaterialsOptionClassType">
        <xsd:sequence>
            <xsd:element ref="ID" minOccurs="0"/>
            <xsd:element ref="Name" minOccurs="0"/>
            <xsd:element ref="ExclusiveIndicator" minOccurs="0"/>
            <xsd:element ref="MandatoryIndicator" minOccurs="0"/>
            <xsd:group ref="FreeFormTextGroup" minOccurs="0"/>
            <xsd:element ref="BillOfMaterialsOption" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element ref="UserArea" minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:element name="DrawingPosition" type="StringType"/>
</xsd:schema>
