Tekla PowerFab API Request Schema

Updated: 13 Apr 2023

<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.fabsuite.com/xml/fabsuite-xml-request-v0108.xsd"
    xmlns="http://www.fabsuite.com/xml/fabsuite-xml-request-v0108.xsd"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified">
    <xsd:annotation>
        <xsd:documentation>
        
        </xsd:documentation>
    </xsd:annotation>

<!--CUSTOM SIMPLE TYPE DEFINITIONS-->
<!--Unit of Measurement formats-->
    <xsd:simpleType name="fsMetric">
        <xsd:annotation>
            <xsd:documentation>
                Indicates if the value is specified in metric or imperial units.
                
                1 - Metric
                0 - Imperial
                
                Example (Metric): <Shape>W</Shape><Dimensions Metric="1">410 x 53</Dimensions>
                Example (Imperial): <Shape>W</Shape><Dimensions Metric="0">16 x 36</Dimensions>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:boolean"/>
    </xsd:simpleType>
    <xsd:simpleType name="fsPriceUnits">
        <xsd:annotation>
            <xsd:documentation>
                Indicates the price units.
                
                /LB - per pound
                /CWT - per 100 pounds
                /FT - per foot
                /CFT - per 100 feet
                /SQFT - per square foot
                /SQFT-SA - per square foot of surface area
                
                /KG - per kilogram
                /M - per meter
                /SQM - per square meter
                /SQM-SA - per square meter of surface area
                
                /ITEM - per item
                /100 - per 100 items
                /1000 - per 1000 items
                
                Example (50.75/CWT): <CurrentPrice PriceUnits="/CWT">50.75</CurrentPrice>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:token">
            <xsd:enumeration value="/LB"/>
            <xsd:enumeration value="/lb"/>
            <xsd:enumeration value="/Lb"/>
            <xsd:enumeration value="/CWT"/>
            <xsd:enumeration value="/cwt"/>
            <xsd:enumeration value="/FT"/>
            <xsd:enumeration value="/ft"/>
            <xsd:enumeration value="/Ft"/>
            <xsd:enumeration value="/CFT"/>
            <xsd:enumeration value="/cft"/>
            <xsd:enumeration value="/SQFT"/>
            <xsd:enumeration value="/sqft"/>
            <xsd:enumeration value="/SqFt"/>
            <xsd:enumeration value="/SQFT-SA"/>
            <xsd:enumeration value="/sqft-sa"/>
            <xsd:enumeration value="/SqFt-SA"/>
            <xsd:enumeration value="/KG"/>
            <xsd:enumeration value="/kg"/>
            <xsd:enumeration value="/Kg"/>
            <xsd:enumeration value="/M"/>
            <xsd:enumeration value="/m"/>
            <xsd:enumeration value="/SQM"/>
            <xsd:enumeration value="/sqm"/>
            <xsd:enumeration value="/SqM"/>
            <xsd:enumeration value="/SQM-SA"/>
            <xsd:enumeration value="/sqm-sa"/>
            <xsd:enumeration value="/SqM-SA"/>
            <xsd:enumeration value="/ITEM"/>
            <xsd:enumeration value="/item"/>
            <xsd:enumeration value="/Item"/>
            <xsd:enumeration value="/100"/>
            <xsd:enumeration value="/1000"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="fsUOM">
        <xsd:annotation>
            <xsd:documentation>
                Indicates the units of the value.
                
                IN - Inches
                MM - Millimeters
                LB - Pounds
                KG - Kilograms
                
                Example (40'-2 1/2): <Length UOM="IN">482.5</Length>
                Example (12m): <Length UOM="MM">12000</Length>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:token">
            <xsd:enumeration value="in"/>
            <xsd:enumeration value="IN"/>
            <xsd:enumeration value="mm"/>
            <xsd:enumeration value="MM"/>
            <xsd:enumeration value="lb"/>
            <xsd:enumeration value="LB"/>
            <xsd:enumeration value="kg"/>
            <xsd:enumeration value="KG"/>
            <xsd:enumeration value="sqin"/>
            <xsd:enumeration value="SQIN"/>
            <xsd:enumeration value="sqft"/>
            <xsd:enumeration value="SQFT"/>
            <xsd:enumeration value="sqmm"/>
            <xsd:enumeration value="SQMM"/>
            <xsd:enumeration value="sqm"/>
            <xsd:enumeration value="SQM"/>
        </xsd:restriction>
    </xsd:simpleType>
    
    <xsd:complexType name="fsDecimalWithUOM">
        <xsd:annotation>
            <xsd:documentation>An element with a decimal value and a fsUOM attribute, such as a length, width, etc.</xsd:documentation>
        </xsd:annotation>
        <xsd:simpleContent>
            <xsd:extension base="xsd:decimal">
                <xsd:attribute name="UOM" type="fsUOM" use="required"/>
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>
    
    <xsd:complexType name="fsDimensionsWithMetric">
        <xsd:annotation>
            <xsd:documentation>An element with a text value and a fsMetric attribute, such as for dimensions.</xsd:documentation>
        </xsd:annotation>
        <xsd:simpleContent>
            <xsd:extension base="xsd:token">
                <xsd:attribute name="Metric" type="fsMetric" use="required"/>
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>

    <xsd:complexType name="fsBoolWithBool">
        <xsd:annotation>
            <xsd:documentation>A boolean element with an optional boolean attribute SharedOnly, such as IncludeCutList with attribute SharedOnly.</xsd:documentation>
        </xsd:annotation>
        <xsd:simpleContent>
            <xsd:extension base="xsd:boolean">
                <xsd:attribute name="SharedOnly" type="xsd:boolean"/>
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>

    
    <xsd:complexType name="fsCurrency">
        <xsd:annotation>
            <xsd:documentation>An element with a decimal value and a Currency attribute.</xsd:documentation>
        </xsd:annotation>
        <xsd:simpleContent>
            <xsd:extension base="xsd:decimal">
                <xsd:attribute name="Currency" type="xsd:token" use="required"/>
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>
    
    <xsd:complexType name="fsCurrencyValue">
        <xsd:annotation>
            <xsd:documentation>An element with a decimal value and a Currency attribute.</xsd:documentation>
        </xsd:annotation>
        <xsd:simpleContent>
            <xsd:extension base="xsd:decimal">
                <xsd:attribute name="CurrencyID" type="xsd:integer" use="required"/>
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>
    
    <xsd:complexType name="fsCurrencyUnit">
        <xsd:annotation>
            <xsd:documentation>An element with a decimal value and Currency and PriceUnits attributes.</xsd:documentation>
        </xsd:annotation>
        <xsd:simpleContent>
            <xsd:extension base="fsCurrency">
                <xsd:attribute name="Units" type="fsPriceUnits" use="required"/>
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>
    
    <xsd:complexType name="fsCurrencyUnitValue">
        <xsd:annotation>
            <xsd:documentation>An element with a decimal value and Currency and PriceUnits attributes.</xsd:documentation>
        </xsd:annotation>
        <xsd:simpleContent>
            <xsd:extension base="fsCurrencyValue">
                <xsd:attribute name="Format" type="xsd:integer" use="required"/>
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>
    
    <xsd:complexType name="fsDimensionValue">
        <xsd:simpleContent>
            <xsd:extension base="integer-or-empty">
                <xsd:attribute name="DimDepth" type="xsd:decimal" use="optional"/>
                <xsd:attribute name="DimWidth" type="xsd:decimal" use="optional"/>
                <xsd:attribute name="DimWeight" type="xsd:decimal" use="optional"/>
                <xsd:attribute name="DimThickness" type="xsd:decimal" use="optional"/>
                <xsd:attribute name="DimGage" type="xsd:decimal" use="optional"/>
                <xsd:attribute name="DimDiameter" type="xsd:decimal" use="optional"/>
                <xsd:attribute name="DimComment" type="xsd:token" use="optional"/>
                <xsd:attribute name="TrueShapeSquareMetersOverride" type="xsd:decimal" use="optional"/>
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>
    
    <xsd:complexType name="fsDimensionValueDisplay">
        <xsd:simpleContent>
            <xsd:extension base="xsd:token">
                <xsd:attribute name="Metric" type="xsd:boolean" use="required"/>
                <xsd:attribute name="SizeID" type="xsd:integer" use="optional"/>
                <xsd:attribute name="DimDepth" type="xsd:decimal" use="optional"/>
                <xsd:attribute name="DimWidth" type="xsd:decimal" use="optional"/>
                <xsd:attribute name="DimWeight" type="xsd:decimal" use="optional"/>
                <xsd:attribute name="DimThickness" type="xsd:decimal" use="optional"/>
                <xsd:attribute name="DimGage" type="xsd:decimal" use="optional"/>
                <xsd:attribute name="DimDiameter" type="xsd:decimal" use="optional"/>
                <xsd:attribute name="DimComment" type="xsd:token" use="optional"/>
                <xsd:attribute name="TrueShapeSquareMetersOverride" type="xsd:decimal" use="optional"/>
                <xsd:attribute name="AlternateDisplay" type="xsd:token" use="optional"/>
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>
                        
    <xsd:complexType name="fsStringID">
        <xsd:annotation>
            <xsd:documentation>A string element with an optional integer ID.</xsd:documentation>
        </xsd:annotation>
        <xsd:simpleContent>
            <xsd:extension base="xsd:token">
                <xsd:attribute name="ID" type="xsd:integer" use="optional"/>
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>
    <xsd:complexType name="fsStringIDHold">
        <xsd:annotation>
            <xsd:documentation>A string element with an optional integer ID and Hold flag.</xsd:documentation>
        </xsd:annotation>
        <xsd:simpleContent>
            <xsd:extension base="xsd:token">
                <xsd:attribute name="ID" type="xsd:integer" use="optional"/>
                <xsd:attribute name="Hold" type="xsd:boolean" use="optional" />
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>

    <xsd:simpleType name="emptyType">
        <xsd:restriction base="xsd:string">
            <xsd:length value="0"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="decimal-or-empty">
        <xsd:union memberTypes="xsd:decimal emptyType"/>
    </xsd:simpleType>
    <xsd:simpleType name="date-or-empty">
        <xsd:union memberTypes="xsd:date emptyType"/>
    </xsd:simpleType>
    <xsd:simpleType name="integer-or-empty">
        <xsd:union memberTypes="xsd:integer emptyType"/>
    </xsd:simpleType>
    
    
<!-- Common elements -->

<xsd:complexType name="fsreqFilters">
    <xsd:annotation>
        <xsd:documentation>
            A set of filters specifying the data that should be processed by the command.
            
            If more than one Filter element specify the same FilterType then an 'or' condition is applied.
            
            An 'and' condition is applied to different FilterType fields.
            
            Ex.
                <Filters>
                    <Filter><FilterType>DrawingNumber</FilterType><FilterValue>100</FilterValue></Filter>
                    <Filter><FilterType>DrawingNumber</FilterType><FilterValue>101</FilterValue></Filter>
                    <Filter><FilterType>Sequence</FilterType><FilterValue>5</FilterValue></Filter>
                </Filters>
                
                Processed as DrawingNumber IN (100, 101) AND Sequence=5.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
        <xsd:element name="Filter" type="fsreqFilter" minOccurs="1" maxOccurs="unbounded" >
            <xsd:annotation><xsd:documentation>A list of filter objects</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="Unused" type="xsd:boolean" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    This element is not intended to actually be used.  It's sole purpose is to work around a
                    problem with MS Visual Studio's xsd tool that generates c# classes from an xsd schema.
                    With this tool if an element consists solely of a single element that may occur 1-many times
                    then that parent element is ignored and the classes are generated with a multi-dimensional array
                    of the inner element.
                    
                    In this case, where fsreqFilters is used it would appear in the classes instead as being
                    a multi-dimensional array of fsreqFilter.  Adding a second element, titled Unused here, avoids
                    this issue.
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqFilter">
    <xsd:annotation>
        <xsd:documentation>A filter type and value.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
        <xsd:element name="FilterType" type="xsd:token" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>The field that the filter applies to.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="FilterValue" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>The value that the field should be restricted to.</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                <xsd:simpleContent>
                    <xsd:extension base="xsd:token">
                        <xsd:attribute name="UOM" type="fsUOM" use="optional"/>
                    </xsd:extension>
                </xsd:simpleContent>
            </xsd:complexType>
        </xsd:element>
        <xsd:element name="FilterValueMax" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    If specified then this becomes a range filter with FilterValue being the bottom value of the range
                    and FilterValueMax being the upper value.
                </xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                <xsd:simpleContent>
                    <xsd:extension base="xsd:token">
                        <xsd:attribute name="UOM" type="fsUOM" use="optional"/>
                    </xsd:extension>
                </xsd:simpleContent>
            </xsd:complexType>
        </xsd:element>
        <xsd:element name="FilterDisplay" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>The value that the field should be restricted to.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="MatchType" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    The type of match that should be used to apply the filter.
                    
                    The default match type if this element is not specified is EXACT.
                    
                    Not all match types are valid for every filter.  The PREFIX, SUFFIX, and ANY
                    match types are only valid for the filter types:
                        MainMark
                        DrawingNumber
                        Sequence
                        LotNumber
                        Category
                        SubCategory
                </xsd:documentation>
            </xsd:annotation>
            <xsd:simpleType>
                <xsd:restriction base="xsd:token">
                    <xsd:enumeration value="EXACT">
                        <xsd:annotation>
                            <xsd:documentation>
                                Apply the filter to the full value in the field.
                            </xsd:documentation>
                        </xsd:annotation>
                    </xsd:enumeration>
                    <xsd:enumeration value="PREFIX">
                        <xsd:annotation>
                            <xsd:documentation>
                                Apply the filter to find records where the filter value matches the prefix of the field.
                            </xsd:documentation>
                        </xsd:annotation>
                    </xsd:enumeration>
                    <xsd:enumeration value="SUFFIX">
                        <xsd:annotation>
                            <xsd:documentation>
                                Apply the filter to find records where the filter value matches the suffix of the field.
                            </xsd:documentation>
                        </xsd:annotation>
                    </xsd:enumeration>
                    <xsd:enumeration value="ANY">
                        <xsd:annotation>
                            <xsd:documentation>
                                Apply the filter to find records where the filter value is contained anywhere in the field.
                            </xsd:documentation>
                        </xsd:annotation>
                    </xsd:enumeration>
                </xsd:restriction>
            </xsd:simpleType>
        </xsd:element>
        <xsd:element name="Filters" type="fsreqFilters" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>
                    The set of nested filter conditions.  If specified then it will be considered to be an 'AND'
                    condition on top of the current filter.  If multiple nested filters are specified then each of
                    the Filters elements are considered to be an 'OR' condition with respect to each other.
                    
                    For example, this set of filters:                    
<![CDATA[            
                        <Filters>
                            <Filter>
                                <FilterType>Shape</FilterType>
                                <FilterValue>W</FilterValue>
                                <Filters>
                                    <Filter>
                                        <FilterType>JobNumber</FilterType>
                                        <FilterValue>ABC</FilterValue>
                                    </Filter>
                                    <Filter>
                                        <FilterType>JobNumber</FilterType>
                                        <FilterValue>DEF</FilterValue>
                                    </Filter>
                                    <Filter>
                                        <FilterType>OnOrder</FilterType>
                                        <FilterValue>0</FilterValue>
                                    </Filter>
                                </Filters>
                                <Filters>
                                    <Filter>
                                        <FilterType>PONumber</FilterType>
                                        <FilterValue>123456</FilterValue>
                                    </Filter>
                                </Filters>
                            </Filter>
                        </Filters>
]]>
                        
                    Could be considered to be equivalent to the sql expression:
                        Shape='W' AND 
                            (
                                (JobNumber IN ('ABC', 'DEF') AND OnOrder=0)
                                OR
                                PONumber='123456'
                            )
                            
                    Nested Filters elements are accepted but is currently only processed by the GetInventory, and GetPricingInformation commands.
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqInputDisplayUnits">
    <xsd:annotation>
        <xsd:documentation>Specify the unit-of-measure values to use for input and display purposes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
        <xsd:element name="SizeUOM" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Dimension display and input.
                </xsd:documentation>
            </xsd:annotation>
            <xsd:simpleType>
                <xsd:restriction base="xsd:token">
                    <xsd:enumeration value="Metric" />
                    <xsd:enumeration value="Imperial" />
                </xsd:restriction>
            </xsd:simpleType>
        </xsd:element>
        <xsd:element name="LengthUOM" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Length display and input.
                </xsd:documentation>
            </xsd:annotation>
            <xsd:simpleType>
                <xsd:restriction base="xsd:token">
                    <xsd:enumeration value="Metric" />
                    <xsd:enumeration value="Imperial" />
                </xsd:restriction>
            </xsd:simpleType>
        </xsd:element>
        <xsd:element name="LengthInputTypeIDMetric" type="xsd:integer" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Length format when in metric mode:
                    
                        1 - Meters
                        2 - Centimeters
                        3 - Millimeters
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="LengthInputTypeIDImperial" type="xsd:integer" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Length format when in imperial mode:
                    
                        1 - Feet, Inches, 16ths
                        2 - Feet, Inches
                        3 - Inches, 16ths
                        4 - Decimal Feet
                        5 - Decimal Inches (2 Places)
                        6 - Decimal Inches
                        7 - Feet, Inches, 16ths (Free-Form)
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="WeightUOM" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Weight display and input.
                </xsd:documentation>
            </xsd:annotation>
            <xsd:simpleType>
                <xsd:restriction base="xsd:token">
                    <xsd:enumeration value="Metric" />
                    <xsd:enumeration value="Imperial" />
                </xsd:restriction>
            </xsd:simpleType>
        </xsd:element>
        <xsd:element name="PriceUOM" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Unit Price display and input.
                </xsd:documentation>
            </xsd:annotation>
            <xsd:simpleType>
                <xsd:restriction base="xsd:token">
                    <xsd:enumeration value="Metric" />
                    <xsd:enumeration value="Imperial" />
                </xsd:restriction>
            </xsd:simpleType>
        </xsd:element>
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqDrawingLog">
    <xsd:sequence>
        <xsd:element name="DrawingLogID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
        <xsd:element name="ProjectID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
        <xsd:element name="DrawingType" type="xsd:token" minOccurs="1" maxOccurs="1" />
        <xsd:element name="DrawingLogName" type="xsd:token" minOccurs="1" maxOccurs="1" />
        <xsd:element name="PDCLink" type="xsd:integer" minOccurs="1" maxOccurs="1" />
        <xsd:element name="SubdirectoryPath" type="xsd:token" minOccurs="1" maxOccurs="1" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqDrawing">
    <xsd:sequence>
        <xsd:element name="DrawingID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
        <xsd:element name="ProjectID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
        <xsd:element name="DrawingLogID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
        <xsd:element name="DrawingNumberDisplay" type="xsd:token" minOccurs="1" maxOccurs="1" />
        <xsd:element name="Description" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="ApprovalStatusID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
        <xsd:element name="DetailedBy" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="DateDetailed" type="xsd:date" minOccurs="0" maxOccurs="1" />
        <xsd:element name="DetailingHours" type="xsd:decimal" minOccurs="0" maxOccurs="1" />
        <xsd:element name="DateReceived" type="xsd:date" minOccurs="0" maxOccurs="1" />
        <xsd:element name="CheckedBy" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="DateChecked" type="xsd:date" minOccurs="0" maxOccurs="1" />
        <xsd:element name="ReleaseNumber" type="xsd:decimal" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Category" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="PackageNumber" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="ShopIssueDate" type="xsd:date" minOccurs="0" maxOccurs="1" />
        <xsd:element name="ReSubmit" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
        <xsd:element name="DrawingRevision" type="fsreqDrawingRevision" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="DrawingTransmittal" type="fsreqDrawingTransmittal" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="DrawingProduction" type="fsreqDrawingProduction" minOccurs="0" maxOccurs="1" />
        <xsd:element name="DrawingFile" type="fsreqDrawingFile" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqDrawingRevision">
    <xsd:sequence>
        <xsd:element name="DrawingRevisionID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
        <xsd:element name="DrawingID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
        <xsd:element name="Revision" type="xsd:token" minOccurs="1" maxOccurs="1" />
        <xsd:element name="Description" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="RevisedBy" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="DateRevised" type="xsd:date" minOccurs="0" maxOccurs="1" />
        <xsd:element name="DateReceived" type="xsd:date" minOccurs="0" maxOccurs="1" />
        <xsd:element name="CheckedBy" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="DateChecked" type="xsd:date" minOccurs="0" maxOccurs="1" />
        <xsd:element name="ReleaseNumber" type="xsd:decimal" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqDrawingTransmittal">
    <xsd:sequence>
        <xsd:element name="TransmittalID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
        <xsd:element name="DrawingRevisionID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
        <xsd:element name="DateReceived" type="xsd:date" minOccurs="0" maxOccurs="1" />
        <xsd:element name="ApprovalStatusID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
        <xsd:element name="ReSubmit" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqDrawingProduction">
    <xsd:sequence>
        <xsd:element name="TotalQuantity" type="xsd:integer" minOccurs="0" maxOccurs="1" />
        <xsd:element name="AssemblyQuantity" type="xsd:integer" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Weight" type="xsd:decimal" minOccurs="0" maxOccurs="1" />
        <xsd:element name="ManHours" type="xsd:decimal" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Category" type="xsd:token" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="SubCategory" type="xsd:token" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="PayCategory" type="xsd:token" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="Sequence" type="xsd:token" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="LotNumber" type="xsd:token" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqDrawingFile">
    <xsd:sequence>
        <xsd:element name="DrawingRevisionID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
        <xsd:element name="FileName" type="xsd:token" minOccurs="1" maxOccurs="1" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqTransmittal">
    <xsd:sequence>
        <xsd:element name="TransmittalID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
        <xsd:element name="ProjectID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
        <xsd:element name="TransmittalNumber" type="xsd:token" minOccurs="1" maxOccurs="1" />
        <xsd:element name="TransmittalDate" type="xsd:date" minOccurs="0" maxOccurs="1" />
        <xsd:element name="FirmID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
        <xsd:element name="FirmAddressID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
        <xsd:element name="FirmContactID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Attn" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Title" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="SendingEnclosed" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
        <xsd:element name="ToBeReturned" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
        <xsd:element name="TransmittalItem" type="xsd:token" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="TransmittalPurpose" type="xsd:token" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="NumberOfPrints" type="xsd:integer" minOccurs="0" maxOccurs="1" />
        <xsd:element name="PrintsToReturn" type="xsd:integer" minOccurs="0" maxOccurs="1" />
        <xsd:element name="NumberOfSets" type="xsd:integer" minOccurs="0" maxOccurs="1" />
        <xsd:element name="SentBy" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="CopyTo" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Remarks" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="ProjectTransmittalStandardTextID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
        <xsd:element name="ReturnDate" type="xsd:date" minOccurs="0" maxOccurs="1" />
        <xsd:element name="SentViaID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
        <xsd:element name="NumberOfDrawings" type="xsd:integer" minOccurs="0" maxOccurs="1" />
        <xsd:element name="NumberOfOutstandingDrawings" type="xsd:integer" minOccurs="0" maxOccurs="1" />
        <xsd:element name="LastDateReceived" type="xsd:date" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqApprovalStatus">
    <xsd:sequence>
        <xsd:element name="ApprovalStatusID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
        <xsd:element name="ApprovalStatus" type="xsd:token" minOccurs="1" maxOccurs="1" />
        <xsd:element name="Description" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Purpose" minOccurs="0" maxOccurs="1">
            <xsd:simpleType>
                <xsd:restriction base="xsd:token">
                    <xsd:enumeration value="Approved" />
                    <xsd:enumeration value="Hold" />
                </xsd:restriction>
            </xsd:simpleType>
        </xsd:element>
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqFirm">
    <xsd:sequence>
        <xsd:element name="FirmID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
        <xsd:element name="FirmType" minOccurs="1" maxOccurs="1">
            <xsd:simpleType>
                <xsd:restriction base="xsd:token">
                    <xsd:enumeration value="Architect" />
                    <xsd:enumeration value="Associate" />
                    <xsd:enumeration value="Client" />
                    <xsd:enumeration value="Coating" />
                    <xsd:enumeration value="Contractor" />
                    <xsd:enumeration value="Customer" />
                    <xsd:enumeration value="Detailer" />
                    <xsd:enumeration value="Engineer" />
                    <xsd:enumeration value="Erector" />
                    <xsd:enumeration value="Fabricator" />
                    <xsd:enumeration value="My Company" />
                    <xsd:enumeration value="Owner" />
                    <xsd:enumeration value="Subcontractor" />
                    <xsd:enumeration value="Supplier" />
                </xsd:restriction>
            </xsd:simpleType>
        </xsd:element>
        <xsd:element name="Name" type="xsd:token" minOccurs="1" maxOccurs="1" />
        <xsd:element name="Code" type="xsd:token" minOccurs="1" maxOccurs="1" />
        <xsd:element name="ShipToAddress" type="fsreqFirmAddress" minOccurs="0" maxOccurs="1" />
        <xsd:element name="BillToAddress" type="fsreqFirmAddress" minOccurs="0" maxOccurs="1" />
        <xsd:element name="MillAddress" type="fsreqFirmAddress" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqFirmAddress">
    <xsd:sequence>
        <xsd:element name="FirmAddressID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
        <xsd:element name="Description" type="xsd:token" minOccurs="1" maxOccurs="1" />
        <xsd:element name="Attn" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Address1" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Address2" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="City" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="State" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Zip" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Country" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Phone" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Fax" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Email" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="IsShipTo" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
        <xsd:element name="IsBillTo" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
        <xsd:element name="IsMill" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqFirmContact">
    <xsd:sequence>
        <xsd:element name="FirmContactID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
        <xsd:element name="FirmID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
        <xsd:element name="ExternalID" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Name" type="xsd:token" minOccurs="1" maxOccurs="1" />
        <xsd:element name="Phone" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="MobilePhone" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Fax" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Pager" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Email" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Inspector" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
        <xsd:element name="InspectorID" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Active" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqSentVia">
    <xsd:sequence>
        <xsd:element name="SentViaID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
        <xsd:element name="Description" type="xsd:token" minOccurs="1" maxOccurs="1" />
        <xsd:element name="IsDefault" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqProjectTransmittalStandardText">
    <xsd:sequence>
        <xsd:element name="ProjectTransmittalStandardTextID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
        <xsd:element name="Description" type="xsd:boolean" minOccurs="1" maxOccurs="1" />
        <xsd:element name="StandardText" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqFilterSelections_GetOptions">
    <xsd:sequence>
        <xsd:element name="Offset" type="xsd:integer" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Limit" type="xsd:integer" minOccurs="0" maxOccurs="1" />
        <xsd:element name="ReturnAllIncluded" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqFilterSetSelections">
    <xsd:sequence>
        <xsd:element name="Filter" type="fsreqFilterSetSelections_Filter" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqFilterSetSelections_Filter">
    <xsd:sequence>
        <xsd:element name="Name" type="xsd:token" minOccurs="1" maxOccurs="1" />
        <xsd:element name="DisplayName" type="xsd:token" minOccurs="1" maxOccurs="1" />
        <xsd:element name="TextSearchValue" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="MinValue" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="MaxValue" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="FilterItems" type="fsreqFilterSetSelections_FilterItems" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqFilterSetSelections_FilterItems">
    <xsd:sequence>
        <xsd:element name="TotalCount" type="xsd:integer" minOccurs="0" maxOccurs="1" />
        <xsd:element name="FilterItem" type="fsreqFilterSetSelections_FilterItem" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
</xsd:complexType>
    
<xsd:complexType name="fsreqFilterSetSelections_FilterItem">
    <xsd:simpleContent>
        <xsd:extension base="xsd:token">
            <xsd:attribute name="Field1" type="xsd:token" use="optional" />
            <xsd:attribute name="Field1_Base64" type="xsd:token" use="optional" />
            <xsd:attribute name="Field2" type="xsd:token" use="optional" />
            <xsd:attribute name="Field2_Base64" type="xsd:token" use="optional" />
            <xsd:attribute name="Field3" type="xsd:token" use="optional" />
            <xsd:attribute name="Field3_Base64" type="xsd:token" use="optional" />
            <xsd:attribute name="Field4" type="xsd:token" use="optional" />
            <xsd:attribute name="Field4_Base64" type="xsd:token" use="optional" />
            <xsd:attribute name="Field5" type="xsd:token" use="optional" />
            <xsd:attribute name="Field5_Base64" type="xsd:token" use="optional" />
            <xsd:attribute name="Included" type="xsd:boolean" use="optional" />
        </xsd:extension>
    </xsd:simpleContent>
</xsd:complexType>

<xsd:complexType name="fsreqFileContentsWithExtension">
        <xsd:annotation>
            <xsd:documentation>A file contents element with extension of file</xsd:documentation>
        </xsd:annotation>
        <xsd:simpleContent>
            <xsd:extension base="xsd:token">
                <xsd:attribute name="Extension" type="xsd:token" use="required"/>
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>

    
<!-- Base command element -->
<xsd:complexType name="fsreqCommand">
    <xsd:annotation>
        <xsd:documentation>

        </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
        <xsd:element name="CommandGUID" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    A GUID identifying this particular XML command.
                    
                    If a command fails due to a communication failure the client has no way of knowing
                    if it has been processed.
                    
                    Each command that makes changes (as opposed to just retrieving data) will check the
                    CommandGUID against the GUIDs that have already been processed.  If the GUID has
                    already been processed then it will not be re-processed and instead return with an
                    error.  This allows the client to saftely re-try a failed command without risking
                    unintended changes.
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="APILog" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Indicates if this command should be logged to the database.
                    
                    The command must be of a type that supports logging to the database in order to take effect.
                    Currently the commands supporting this option are:
                        TFSCut
                </xsd:documentation>
            </xsd:annotation>
            <xsd:simpleType>
                <xsd:restriction base="xsd:token">
                    <xsd:enumeration value="all">
                        <xsd:annotation><xsd:documentation>Indicates that the command should always be logged regardless of whether it is successful.</xsd:documentation></xsd:annotation>
                    </xsd:enumeration>
                    <xsd:enumeration value="error">
                        <xsd:annotation><xsd:documentation>Indicates that the command should only be logged if it was unsuccessful.</xsd:documentation></xsd:annotation>
                    </xsd:enumeration>
                </xsd:restriction>
            </xsd:simpleType>
        </xsd:element>
    </xsd:sequence>
</xsd:complexType>
    
    

<!-- Root Element - FabSuiteXMLRequest -->
<xsd:element name="FabSuiteXMLRequest" type="fsreqFabSuiteXMLRequest"/>

<xsd:complexType name="fsreqFabSuiteXMLRequest">
    <xsd:choice maxOccurs="unbounded">
        <xsd:element name="Lang" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Language code (en, en_UK, es, etc) requested for messages used in the response.
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="ConnectionGUID" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    The GUID identifying the remote connection to process the command through.
                    
                    This is the value returned by the ConnectRemote response.
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="TrimbleIdentityAccessToken" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="TrimbleIdentityToken" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Close" type="fsreqClose" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Closes the connection to the FabSuite database.  Cannot be called through a remote connection.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="CloseRemote" type="fsreqCloseRemote" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Closes a remote connection.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="CNCData" type="fsreqCNCData" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>
                    Retrieves the CNC data for the specified parts.
                    
                    An XMLWarning element will be included in the response if no CNC file has been loaded for a requested piece mark.
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="Connect" type="fsreqConnect" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Establishes a connection to the FabSuite database.  Cannot be called through a remote connection</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="ConnectRemote" type="fsreqConnectRemote" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Establishes a remote connection.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="CreateInventoryLocationSweep" type="fsreqCreateInventoryLocationSweep" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Creates a location sweep for the given location.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="CostCode_Get" type="fsreqCostCode_Get" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>
                    Retrieves one or more cost codes for Purchasing.
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="CostCode_Upsert" type="fsreqCostCode_Upsert" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>
                    Updates or inserts a cost codes for Purchasing.
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="CostCode_Delete" type="fsreqCostCode_Delete" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>
                    Deletes specified cost codes from Purchasing.
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="DeleteInspectionTestRecord" type="fsreqDeleteInspectionTestRecord" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Deletes the given inspection test record.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="Project_Get" type="fsreqProjectGet" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="DrawingLog_Get" type="fsreqDrawingLogGet" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="DrawingLog_Insert" type="fsreqDrawingLogInsert" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="DrawingLog_Update" type="fsreqDrawingLogUpdate" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="DrawingLog_Delete" type="fsreqDrawingLogDelete" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="Drawing_Get" type="fsreqDrawingGet" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="Drawing_Insert" type="fsreqDrawingInsert" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="Drawing_Update" type="fsreqDrawingUpdate" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="Drawing_Delete" type="fsreqDrawingDelete" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="DrawingFile_Get" type="fsreqDrawingFileGet" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="DrawingInputOptions_Get" type="fsreqDrawingInputOptionsGet" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="DrawingRevision_Get" type="fsreqDrawingRevisionGet" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="DrawingRevision_Insert" type="fsreqDrawingRevisionInsert" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="DrawingRevision_Update" type="fsreqDrawingRevisionUpdate" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="DrawingRevision_Delete" type="fsreqDrawingRevisionDelete" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="ExportJob" type="fsreqExportJob" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Exports a Production Control job to a KISS file.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="ExportJobStatus" type="fsreqExportJobStatus" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Exports a Production Control job including status information.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="ExportProjectSchedule" type="fsreqExportProjectSchedule" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Exports a project schedule.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="ExtensionCommand" type="fsreqExtensionCommand" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Runs a Tekla EPM Extension</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="FilterSetDetails_Get" type="fsreqFilterSetDetailsGet" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="FilterSelections_PDC_Get" type="fsreqFilterSelectionsPDCGet" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="FilterSelections_PRJ_Get" type="fsreqFilterSelectionsPRJGet" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="FirmAddress_Get" type="fsreqFirmAddressGet" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="GetAssemblies" type="fsreqGetAssemblies" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the list of assemblies in a job.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetBillOfMaterials" type="fsreqGetBillOfMaterials" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the bill of materials.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetCategories" type="fsreqGetCategories" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the list of categories in a job.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetChangeOrderDetails" type="fsreqGetChangeOrderDetails" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the list of change orders in a job.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetCountries" type="fsreqGetCountries" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the list of countries in a database.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetCutList" type="fsreqGetCutList" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the details of a cut list.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetDocument" type="fsreqGetDocument" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves a document from the document index.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetDrawings" type="fsreqGetDrawings" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the list of drawings in a job.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetFilterSelections" type="fsreqGetFilterSelections" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves Selections from selection filter.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetFilterSetDetails" type="fsreqGetFilterSetDetails" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the filter fields and types for a filter.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetInspectionTestRecords" type="fsreqGetInspectionTestRecords" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the details of an inspection test record and it's test definition.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetInspectionTestRecordsCondensed" type="fsreqGetInspectionTestRecordsCondensed" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the condensed details of a set of inspection test records.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetInspectionTestRecordSummary" type="fsreqGetInspectionTestRecordSummary" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the summary of a set of inspection test records.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetInspectionTests" type="fsreqGetInspectionTests" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves a list of inspection tests and their definitions.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetInspectionTestSubjects" type="fsreqGetInspectionTestSubjects" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the available subjects for the given inspection test.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetInspectionTestTypes" type="fsreqGetInspectionTestTypes" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the available inspection test types and categories.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetInventory" type="fsreqGetInventory" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves all of the records from the current inventory and/or inventory history.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetInventoryLocations" type="fsreqGetInventoryLocations" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves a list of locations and secondary locations in use in Inventory.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetInventoryLocationSweeps" type="fsreqGetInventoryLocationSweeps" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the details of the given location sweep serial number.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetInventorySummary" type="fsreqGetInventorySummary" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves summary information from inventory.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetInventoryTransactions" type="fsreqGetInventoryTransactions" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the details of inventory transactions that have occured.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetLoads" type="fsreqGetLoads" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the completed/remaining status and details by destination and load #.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetLots" type="fsreqGetLots" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the list of lots in a job.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetModelObjectIDs" type="fsreqGetModelObjectIDs" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the list of model object IDs (ifc guids) in a job.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetNestData" type="fsreqGetNestData" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the data file for the given nest.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetNestImage" type="fsreqGetNestImage" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the image for the given nest.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetNestStatus" type="fsreqGetNestStatus" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves information on the inventory and requisition items for this nest.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetPricingInformation" type="fsreqGetPricingInformation" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves Pricing for whole system or per job.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetProductionControlJobInformation" type="fsreqGetProductionControlJobInformation" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the full information of Production Control jobs.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetProductionControlJobInformationTransactions" type="fsreqGetProductionControlJobInformationTransactions" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the changes that have been made to Production Control job information.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetProductionControlJobs" type="fsreqGetProductionControlJobs" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves a concise list of Production Control jobs.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetProductionShippingStatus" type="fsreqGetProductionShippingStatus" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the production status for a job.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetProjectSchedule" type="fsreqGetProjectSchedule" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the breakdown elements, tasks, and task links for a baseline plan - optionally at a snapshot.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetProjectScheduleBaselinePlans" type="fsreqGetProjectScheduleBaselinePlans" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the baseline plans for a project.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetProjectScheduleSnapshots" type="fsreqGetProjectScheduleSnapshots" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the snapshots for a baseline plan.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetProjectStatus" type="fsreqGetProjectStatus" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>
                    Retrieves summary information about the job including:
                        Assemblies
                        Drawings
                        Sequences
                        Lots
                        RFIs
                        Change Orders
                        Transmittals
                        Cut Lists
                        Material Status
                        Production Status
                        Shipping Status
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetPurchaseOrderInformation" type="fsreqGetPurchaseOrderInformation" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the full information of Purchase Orders.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetPurchaseOrderInformationTransactions" type="fsreqGetPurchaseOrderInformationTransactions" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the changes that have been made to Purchase Order information.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetReportTypes" type="fsreqGetReportTypes" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the list of report types and reports for the given report group.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetRFIDetails" type="fsreqGetRFIDetails" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves RequestForInformation Details requested.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetRouteDetails" type="fsreqGetRouteDetails" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the details of the given route.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetSequences" type="fsreqGetSequences" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the list of sequences in a job.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetStations" type="fsreqGetStations" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the completed/remaining status and details by station.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetSubCategories" type="fsreqGetSubCategories" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the list of subCategories in a job.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetTimeTrackingSubjects" type="fsreqGetTimeTrackingSubjects" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the available time tracking selections for a job.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetTransmittalDetails" type="fsreqGetTransmittalDetails" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the transmittal details requested.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="GetTFSDetails" type="fsreqGetTFSDetails" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the details of the PDC material that has been taken from stock including tracibility information.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="HoldSettings_Get" type="xsd:token" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
                <xsd:documentation>Retrieves the hold settings as set by the Tekla PowerFab user</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="InspectionDocumentAdd" type="fsreqInspectionDocumentAdd" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Adds a document to the document index and associates it with the given inspection record.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="IntermediateCompanyCodes" type="fsreqIntermediateCompanyCodes" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the valid company codes for intermediate shipping that the specified job contains.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="InventoryAdd" type="fsreqInventoryAdd" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Adds a new inventory record based off the information from another.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="InventoryAuditSave" type="fsreqInventoryAuditSave" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Associates a barcode serial # with an audit serial # and saves the barcode SN in FabSuite's inventory.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="InventoryAuditScan" type="fsreqInventoryAuditScan" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the details of an audit serial #.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="InventoryLocationRestriction_Get" type="fsreqInventoryLocationRestrictionGet" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="InventoryLocationSweepComplete" type="fsreqInventoryLocationSweepComplete" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Completes the given location sweep.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="InventoryLocationSweepScan" type="fsreqInventoryLocationSweepScan" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Scans an inventory serial # as being in the given sweep location.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="InventoryMove" type="fsreqInventoryMove" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Changes the location of a piece of inventory material.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="InventoryRemnant_Upsert" type="fsreqInventoryRemnant_Upsert" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Adds or updates an external remnant in Tekla EPM inventory.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="Load" type="fsreqLoad" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Loads or Un-Loads a production assembly/part from a truck.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="MakeReport" type="fsreqMakeReport" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Renders, exports, and retrieves the given report.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="MaxTruck" type="fsreqMaxTruck" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the largest truck/load # for a job.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="NestSolution_Get" type="fsreqNestSolutionGet" minOccurs="0" maxOccurs="unbounded" >
            <xsd:annotation>
                <xsd:documentation>Retrieves a nest solution - a splice or a split</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="PickList_Get" type="fsreqPickListGet" minOccurs="0" maxOccurs="unbounded" >
            <xsd:annotation>
                <xsd:documentation>Retrieves a pick list for a cut list</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="Ping" type="fsreqPing" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Pings the connection.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="PrepareReportData" type="fsreqPrepareReportData" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Processes report data in preparation for a subsequent MakeReport call to render the report.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="ProductionControlCutList_ExportDSTVPlus" type="fsreqProductionControlCutListExportDSTVPlus" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Exports DSTV Plus zip file for a cut list or cut list items</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="ProductionControlCutListItem_Swap_GetAvailable" type="fsreqProductionControlCutListItemSwapGetAvailable" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Gets a list of items that can be swapped with the inventory item associted with cut list item passed in</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="ProductionControlCutListItem_Swap" type="fsreqProductionControlCutListItemSwap" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Swap an inventory item on a cut list with a different inventory item</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="ProductionControlJob_Get" type="fsreqProductionControlJobGet" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="ProductionControlLoad_Get" type="fsreqProductionControlLoadGet" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="ProductionControlLoad_Delete" type="fsreqProductionControlLoadDelete" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="ProductionControlLoad_Insert" type="fsreqProductionControlLoadInsert" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="ProductionControlLoad_Update" type="fsreqProductionControlLoadUpdate" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="ProductionControlLoad_Ship" type="fsreqProductionControlLoadShip" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="ProductionControlLoad_Unship" type="fsreqProductionControlLoadUnship" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="ProductionControlLoad_IsDuplicateLoadNumber" type="fsreqProductionControlLoadIsDuplicateLoadNumber" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="ProductionControlLoad_InputOptions_Get" type="fsreqProductionControlLoadInputOptionsGet" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="ProductionControlLoadAdditional_Insert" type="fsreqProductionControlLoadAdditionalInsert" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="ProductionControlLoadAdditional_Update" type="fsreqProductionControlLoadAdditionalUpdate" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="ProductionControlLoadAdditional_Delete" type="fsreqProductionControlLoadAdditionalDelete" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="ProductionControlLoadRemaining_Get" type="fsreqProductionControlLoadRemainingGet" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="ProductionControlLoadMaterial_Add" type="fsreqProductionControlLoadMaterialAdd" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="ProductionControlLoadMaterial_Remove" type="fsreqProductionControlLoadMaterialRemove" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="ProductionControlLoadMaterial_Load" type="fsreqProductionControlLoadMaterialLoad" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="ProductionControlLoadMaterial_Unload" type="fsreqProductionControlLoadMaterialUnload" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="ProductionControlLoadMaterial_Return" type="fsreqProductionControlLoadMaterialReturn" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="ProductionControlLoadMaterial_Unreturn" type="fsreqProductionControlLoadMaterialUnreturn" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="ProductionShippingProductivity_Get" type="fsreqProductionShippingProductivityGet" minOccurs="0" maxOccurs="unbounded" />
        <xsd:element name="Receive" type="fsreqReceive" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Receives material based on either the Barcode Checklist receiving report in FabSuite or the material details.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="ReceiveASN" type="fsreqReceiveASN" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Receives material based on a serial number from an ASN file that has been loaded into FabSuite.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="ReceiveChecklistScan" type="fsreqReceiveChecklistScan" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the details of a checklist serial #.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="Return" type="fsreqReturn" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Returns or Un-Returns material from an intermediate shipping location (galvanizer, subcontractor, etc).</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="SaveCNCFile" type="fsreqSaveCNCFile" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Saves a cnc file to the FabSuite database.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="SaveInspectionTestRecord" type="fsreqSaveInspectionTestRecord" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Saves an inspection test record.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="SaveNest" type="fsreqSaveNest" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Saves the result of a nest performed in External Software to FabSuite.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="SaveTimeTrackingRecord" type="fsreqSaveTimeTrackingRecord" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Adds a time tracking record.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="SetAssemblyAssociation" type="fsreqSetAssemblyAssociation" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Sets the association between one or more instances of an accessory part with an instance of the assembly.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="SetCutListItemNestID" type="fsreqSetCutListItemNestID" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Saves a Cut List in FabSuite as an External Software to FabSuite.  After this, it can be modified using SaveNest </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="SetInstanceLocation" type="fsreqSetInstanceLocation" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Sets the location of a part instance.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="Ship" type="fsreqShip" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Ships or Un-Ships a load.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="ShopFloorSave" type="fsreqShopFloorSave" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Adds or Deletes the record of an assembly/part having completed a tracking station.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="SplicePackage_TFS" type="fsreqSplicePackageTFS" minOccurs="0" maxOccurs="unbounded" >
            <xsd:annotation>
                <xsd:documentation>Processes a Take From Stock (Cut) For a Splice Package.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="SplitPackage_TFS" type="fsreqSplitPackageTFS" minOccurs="0" maxOccurs="unbounded" >
            <xsd:annotation>
                <xsd:documentation>Processes a Take From Stock (Cut) for a Split Package.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="TFSCut" type="fsreqTFSCut" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Processes a Take From Stock (Cut).</xsd:documentation>
            </xsd:annotation>
        </xsd:element>        
        <xsd:element name="TFSManual" type="fsreqTFSManual" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Processes a manual Take From Stock on a piece of inventory stock.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="Transmittal_Get" type="fsreqTransmittalGet" minOccurs="0" maxOccurs="unbounded" >
            <xsd:annotation>
                <xsd:documentation>Gets a Transmittal.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="UserPartial_Get" type="fsreqUserPartialGet" minOccurs="0" maxOccurs="unbounded" >
            <xsd:annotation>
                <xsd:documentation>Gets User data.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>        
        <xsd:element name="ValCutListItem" type="fsreqValCutListItem" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Validates that a cutting detail and inventory stock is valid.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="ValInventory" type="fsreqValInventory" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the details of an inventory serial #.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="ValJob" type="fsreqValJob" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Validates that the specified production job exists.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="ValStation" type="fsreqValStation" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Validates that the specified tracking station exists.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="ValTruck" type="fsreqValTruck" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Validates that a truck/load exists, optionally adds it if it does not exist.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="ValUser" type="fsreqValUser" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Validates that a user exists.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="Version" type="fsreqVersion" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Retrieves the version number of the API.</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
    </xsd:choice>
</xsd:complexType>

<xsd:complexType name="fsreqClose">
    <xsd:annotation>
        <xsd:documentation>Closes the connection to the database.  Cannot be called through a remote connection.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqCloseRemote">
    <xsd:annotation>
        <xsd:documentation>Closes a remote connection.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqCNCData">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the CNC data for the specified parts.
            
            An XMLWarning element will be included in the response if no CNC file has been loaded for a requested piece mark.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>PDC job to retrieve information from.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="PieceMark" type="xsd:token" minOccurs="0" maxOccurs="unbounded">
                    <xsd:annotation><xsd:documentation>Piece mark to retrieve the CNC data from.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="CNCFileID" type="xsd:integer" minOccurs="0" maxOccurs="unbounded">
                    <xsd:annotation><xsd:documentation>Unique identifier from the CNCFiles table for the file to retrieve.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="CutListItemID" type="xsd:integer" minOccurs="0" maxOccurs="unbounded">
                    <xsd:annotation><xsd:documentation>The cut list item, the CNC data from the parts in the cutting detail should be retrieved.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="ZipFiles" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>If true then the retrieved files are compressed into a single zip file.</xsd:documentation></xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqConnect">
    <xsd:annotation>
        <xsd:documentation>Establishes a connection to the FabSuite database.  Cannot be called through a remote connection</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="IPAddress" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>IP Address or computer name of the FabSuite database server.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="PortNumber" type="xsd:integer" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Port that the FabSuite database server is listening on (default - 3306).</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Username" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Username to log in with.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Password" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Password for the user.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqConnectRemote">
    <xsd:annotation><xsd:documentation>Establishes a remote connection.</xsd:documentation></xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="Username" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Username to log in with.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="Password" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Password for the user.</xsd:documentation></xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqCreateInventoryLocationSweep">
    <xsd:annotation>
        <xsd:documentation>Creates a location sweep for the given location.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="Location" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Inventory location to create the sweep for.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="SecondaryLocation" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Secondary inventory location to create the sweep for.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqDeleteInspectionTestRecord">
    <xsd:annotation>
        <xsd:documentation>Deletes the given inspection test record.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="InspectionTestRecordID" type="xsd:integer" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The inspection test record to delete.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqProjectGet">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProjectID" type="xsd:integer" minOccurs="0" maxOccurs="unbounded" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqDrawingLogGet">
    <xsd:annotation>
        <xsd:documentation>
            If LastLogID is specified then the result will only include the records that have changed since that log position.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProjectID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="DrawingLogID" type="xsd:integer" minOccurs="0" maxOccurs="unbounded" />
                <xsd:element name="LastLogID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqDrawingLogInsert">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProjectID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="DrawingType" type="xsd:token" minOccurs="1" maxOccurs="1" />
                <xsd:element name="DrawingLogName" type="xsd:token" minOccurs="1" maxOccurs="1" />
                <xsd:element name="PDCLink" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="SubdirectoryPath" type="xsd:token" minOccurs="1" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqDrawingLogUpdate">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="DrawingLog" type="fsreqDrawingLog" minOccurs="1" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqDrawingLogDelete">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="DrawingLogID" type="xsd:integer" minOccurs="1" maxOccurs="unbounded" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqDrawingGet">
    <xsd:annotation>
        <xsd:documentation>
            ProjectID, ProductionControlID, or DrawingID must be specified.
            If LastLogID is specified then the result will only include the records that have changed since that log position.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProjectID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="DrawingID" type="xsd:integer" minOccurs="0" maxOccurs="unbounded" />
                <xsd:element name="LastLogID" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="GetOptions" type="fsreqDrawingGetOptions" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqDrawingGetOptions">
    <xsd:sequence>
        <xsd:element name="IncludeDrawingLogDetails" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Revisions" minOccurs="0" maxOccurs="1">
            <xsd:simpleType>
                <xsd:restriction base="xsd:token">
                    <xsd:enumeration value="none" />
                    <xsd:enumeration value="latest" />
                    <xsd:enumeration value="all" />
                </xsd:restriction>
            </xsd:simpleType>
        </xsd:element>
        <xsd:element name="Transmittals" minOccurs="0" maxOccurs="1">
            <xsd:simpleType>
                <xsd:restriction base="xsd:token">
                    <xsd:enumeration value="none" />
                    <xsd:enumeration value="latest" />
                    <xsd:enumeration value="all" />
                </xsd:restriction>
            </xsd:simpleType>
        </xsd:element>
        <xsd:element name="IncludeTransmittalDetails" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
        <xsd:element name="IncludeFileDetails" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
        <xsd:element name="SortOrder" minOccurs="0" maxOccurs="unbounded">
            <xsd:simpleType>
                <xsd:restriction base="xsd:token">
                    <xsd:enumeration value="DrawingType" />
                    <xsd:enumeration value="DrawingLogName" />
                    <xsd:enumeration value="DrawingNumber" />
                    <xsd:enumeration value="Description" />
                    <xsd:enumeration value="ApprovalStatus" />
                    <xsd:enumeration value="DetailedBy" />
                    <xsd:enumeration value="DateDetailed" />
                    <xsd:enumeration value="DetailingHours" />
                    <xsd:enumeration value="DateReceived" />
                    <xsd:enumeration value="CheckedBy" />
                    <xsd:enumeration value="DateChecked" />
                    <xsd:enumeration value="ReleaseNumber" />
                    <xsd:enumeration value="Category" />
                    <xsd:enumeration value="PackageNumber" />
                    <xsd:enumeration value="ShopIssueDate" />
                    <xsd:enumeration value="ReSubmit" />
                    <xsd:enumeration value="TransmittalNumber" />
                    <xsd:enumeration value="TransmittalIssuedTo" />
                    <xsd:enumeration value="TransmittalDateIssued" />
                    <xsd:enumeration value="TransmittalReturnDate" />
                    <xsd:enumeration value="TransmittalDateReceived" />
                    <xsd:enumeration value="Revision" />
                    <xsd:enumeration value="RevisionDescription" />
                    <xsd:enumeration value="RevisedBy" />
                    <xsd:enumeration value="DateRevised" />
                    <xsd:enumeration value="RevisionDateReceived" />
                    <xsd:enumeration value="RevisionCheckedBy" />
                    <xsd:enumeration value="RevisionDateChecked" />
                    <xsd:enumeration value="RevisionReleaseNumber" />
                    <xsd:enumeration value="ProductionTotalQuantity" />
                    <xsd:enumeration value="ProductionAssemblyQuantity" />
                    <xsd:enumeration value="ProductionWeight" />
                    <xsd:enumeration value="ProductionManHours" />
                    <xsd:enumeration value="ProductionCategory" />
                    <xsd:enumeration value="ProductionSubCategory" />
                    <xsd:enumeration value="ProductionPayCategory" />
                    <xsd:enumeration value="ProductionSequence" />
                    <xsd:enumeration value="ProductionLotNumber" />
                </xsd:restriction>
            </xsd:simpleType>
        </xsd:element>
        <xsd:element name="SortDescending" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Offset" type="xsd:integer" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Limit" type="xsd:integer" minOccurs="0" maxOccurs="1" />
        <xsd:element name="FilterSet" type="fsreqFilterSetSelections" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqDrawingInsert">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProjectID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="DrawingLogID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="DrawingNumberDisplay" type="xsd:token" minOccurs="1" maxOccurs="1" />
                <xsd:element name="Description" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="ApprovalStatusID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="DetailedBy" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="DateDetailed" type="xsd:date" minOccurs="0" maxOccurs="1" />
                <xsd:element name="DetailingHours" type="xsd:decimal" minOccurs="0" maxOccurs="1" />
                <xsd:element name="DateReceived" type="xsd:date" minOccurs="0" maxOccurs="1" />
                <xsd:element name="CheckedBy" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="DateChecked" type="xsd:date" minOccurs="0" maxOccurs="1" />
                <xsd:element name="ReleaseNumber" type="xsd:decimal" minOccurs="0" maxOccurs="1" />
                <xsd:element name="Category" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="PackageNumber" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="ShopIssueDate" type="xsd:date" minOccurs="0" maxOccurs="1" />
                <xsd:element name="ReSubmit" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqDrawingUpdate">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProjectID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="DrawingID" type="xsd:integer" minOccurs="1" maxOccurs="unbounded" />
                <xsd:element name="DrawingLogID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="DrawingNumberDisplay" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="Description" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="ApprovalStatusID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="DetailedBy" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="DateDetailed" type="xsd:date" minOccurs="0" maxOccurs="1" />
                <xsd:element name="DetailingHours" type="xsd:decimal" minOccurs="0" maxOccurs="1" />
                <xsd:element name="DateReceived" type="xsd:date" minOccurs="0" maxOccurs="1" />
                <xsd:element name="CheckedBy" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="DateChecked" type="xsd:date" minOccurs="0" maxOccurs="1" />
                <xsd:element name="ReleaseNumber" type="xsd:decimal" minOccurs="0" maxOccurs="1" />
                <xsd:element name="Category" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="PackageNumber" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="ShopIssueDate" type="xsd:date" minOccurs="0" maxOccurs="1" />
                <xsd:element name="ReSubmit" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqDrawingDelete">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="DrawingID" type="xsd:integer" minOccurs="1" maxOccurs="unbounded" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqDrawingFileGet">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="DrawingID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="DrawingRevisionID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="FileName" type="xsd:token" minOccurs="1" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqDrawingInputOptionsGet">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProjectID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqDrawingRevisionGet">
    <xsd:annotation>
        <xsd:documentation>
            ProjectID, ProductionControlID, DrawingID, or DrawingRevisionID must be specified.
            If LastLogID is specified then the result will only include the records that have changed since that log position.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProjectID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="DrawingID" type="xsd:integer" minOccurs="0" maxOccurs="unbounded" />
                <xsd:element name="DrawingRevisionID" type="xsd:integer" minOccurs="0" maxOccurs="unbounded" />
                <xsd:element name="LastLogID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="GetOptions" type="fsreqDrawingGetOptions" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqDrawingRevisionGetOptions">
    <xsd:sequence>
        <xsd:element name="Revisions" minOccurs="0" maxOccurs="1">
            <xsd:simpleType>
                <xsd:restriction base="xsd:token">
                    <xsd:enumeration value="latest" />
                    <xsd:enumeration value="all" />
                </xsd:restriction>
            </xsd:simpleType>
        </xsd:element>
        <xsd:element name="FilterSet" type="fsreqFilterSetSelections" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqDrawingRevisionInsert">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="DrawingID" type="xsd:integer" minOccurs="1" maxOccurs="unbounded" />
                <xsd:element name="Revision" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="Description" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="RevisedBy" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="DateRevised" type="xsd:date" minOccurs="0" maxOccurs="1" />
                <xsd:element name="DateReceived" type="xsd:date" minOccurs="0" maxOccurs="1" />
                <xsd:element name="CheckedBy" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="DateChecked" type="xsd:date" minOccurs="0" maxOccurs="1" />
                <xsd:element name="ReleaseNumber" type="xsd:decimal" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqDrawingRevisionUpdate">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="DrawingRevisionID" type="xsd:integer" minOccurs="1" maxOccurs="unbounded" />
                <xsd:element name="Revision" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="Description" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="RevisedBy" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="DateRevised" type="xsd:date" minOccurs="0" maxOccurs="1" />
                <xsd:element name="DateReceived" type="xsd:date" minOccurs="0" maxOccurs="1" />
                <xsd:element name="CheckedBy" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="DateChecked" type="xsd:date" minOccurs="0" maxOccurs="1" />
                <xsd:element name="ReleaseNumber" type="xsd:decimal" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqDrawingRevisionDelete">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="DrawingRevisionID" type="xsd:integer" minOccurs="1" maxOccurs="unbounded" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqExportJob">
    <xsd:annotation>
        <xsd:documentation>Exports a Production Control job to a KISS file.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Job # to export.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Sequence" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Sequence to export, if not specified then the whole job will be exported.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Filename" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Filename to save the exported KISS file to.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeLotNumbers" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Indicates if lot numbers should be included in the export file.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqExportJobStatus">
    <xsd:annotation>
        <xsd:documentation>
            Exports a Production Control job including status information.
        
            Either ProductionControlID or JobNumber must be specified.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The ProductionControlID of the job to retrieve the status of.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The JobNumber of the job to retrieve the status of.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ExportFilename" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Filename to save the exported file to.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="XMLFormat" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Format to export to.
                            
                            If the value is 'SDS/2' then the export is to the SDS/2 XML format.  Otherwise the export is for the FabSuite XML format.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqExportProjectSchedule">
    <xsd:annotation>
        <xsd:documentation>Exports a project schedule</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ScheduleBaselineID" type="xsd:integer" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The baseline plan to export.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ScheduleSnapshotID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The snapshot to retrieve.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ExportFormat" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The JobNumber of the job to retrieve the status of.
                        </xsd:documentation>
                    </xsd:annotation>
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:token">
                            <xsd:enumeration value="Microsoft Projects XML" />
                            <xsd:enumeration value="Primavera XML" />
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="ExportFilename" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Filename to save the exported file to.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqExtensionCommand">
    <xsd:annotation>
        <xsd:documentation>Execute a Tekla EPM Extension</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ExtensionID" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The ID of the extension to call
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="CommandName" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The name of the command to execute
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Options" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            A JSON string of options to the command
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqFilterSetDetailsGet">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="Type" type="xsd:token" minOccurs="1" maxOccurs="1" />
                <xsd:element name="SubType" type="xsd:token" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqFilterSelectionsPDCGet">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="FilterSet" type="fsreqFilterSetSelections" minOccurs="0" maxOccurs="1" />
                <xsd:element name="SubType" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="FilterName" type="xsd:token" minOccurs="1" maxOccurs="1" />
                <xsd:element name="GetOptions" type="fsreqFilterSelections_GetOptions" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqFilterSelectionsPRJGet">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProjectID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="FilterSet" type="fsreqFilterSetSelections" minOccurs="0" maxOccurs="1" />
                <xsd:element name="FilterName" type="xsd:token" minOccurs="1" maxOccurs="1" />
                <xsd:element name="GetOptions" type="fsreqFilterSelections_GetOptions" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqFirmAddressGet">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="FirmID" type="xsd:integer" minOccurs="0" maxOccurs="unbounded" />
                <xsd:element name="FirmType" minOccurs="0" maxOccurs="1">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:token">
                            <xsd:enumeration value="Architect" />
                            <xsd:enumeration value="Associate" />
                            <xsd:enumeration value="Client" />
                            <xsd:enumeration value="Coating" />
                            <xsd:enumeration value="Contractor" />
                            <xsd:enumeration value="Customer" />
                            <xsd:enumeration value="Detailer" />
                            <xsd:enumeration value="Engineer" />
                            <xsd:enumeration value="Erector" />
                            <xsd:enumeration value="Fabricator" />
                            <xsd:enumeration value="My Company" />
                            <xsd:enumeration value="Owner" />
                            <xsd:enumeration value="Subcontractor" />
                            <xsd:enumeration value="Supplier" />
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="ShipToAddresses" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
                <xsd:element name="BillToAddresses" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
                <xsd:element name="MillAddresses" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetAssemblies">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the list of assemblies in a job.
        
            Either ProductionControlID or JobNumber must be specified.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The ProductionControlID of the job to retrieve the status of.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The JobNumber of the job to retrieve the status of.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="InspectionTests" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            If true then the inspection test summary is retrieved along with the assembly details.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Filters" type="fsreqFilters" minOccurs="0" maxOccurs="1" />
                <xsd:element name="FilterSet" type="fsreqFilterSetSelections" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetBillOfMaterials">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the bill of materials.
        
            Either ProductionControlID or JobNumber must be specified.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The ProductionControlID of the job to retrieve the status of.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The JobNumber of the job to retrieve the status of.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Filters" type="fsreqFilters" minOccurs="0" maxOccurs="1" />
                <xsd:element name="RequestedField" minOccurs="0" maxOccurs="unbounded">
                    <xsd:annotation>
                        <xsd:documentation>
                            Field to include in the response.
                            
                            Main Mark will always be included in the response.
                        </xsd:documentation>
                    </xsd:annotation>
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:token">
                            <xsd:enumeration value="MainPiece" />
                            <xsd:enumeration value="PieceMark" />
                            <xsd:enumeration value="Quantity" />
                            <xsd:enumeration value="QuantityTFS" />
                            <xsd:enumeration value="Shape" />
                            <xsd:enumeration value="Dimensions" />
                            <xsd:enumeration value="Grade" />
                            <xsd:enumeration value="Length" />
                            <xsd:enumeration value="Finish" />
                            <xsd:enumeration value="ReferenceNumber" />
                            <xsd:enumeration value="Remark" />
                            <xsd:enumeration value="Route" />
                            <xsd:enumeration value="Category" />
                            <xsd:enumeration value="SubCategory" />
                            <xsd:enumeration value="PayCategory" />
                            <xsd:enumeration value="ShippingRoute" />
                            <xsd:enumeration value="AccessoryPieceTracking" />
                            <xsd:enumeration value="AccessoryLoadTracking" />
                            <xsd:enumeration value="ProductionCode" />
                            <xsd:enumeration value="Weight" />
                            <xsd:enumeration value="InspectionTests" />
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetCategories">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the list of categories in a job.
        
            Either ProductionControlID or JobNumber must be specified.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The ProductionControlID of the job to retrieve the status of.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The JobNumber of the job to retrieve the status of.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="InspectionTests" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            If true then the inspection test summary is retrieved along with the category details.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Filters" type="fsreqFilters" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetChangeOrderDetails">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the details of one or more Change Order.
        
            If neither ChangeOrderID nor ChangeOrderNumber are specified, the change orders received will be limited by the filters 
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ChangeOrderID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The ChangeOrderID requested.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ChangeOrderNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The Number of the Change Order requested.  Specifying both is not necessary.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The ProductionControlID of the job to retrieve the transmittals from.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The JobNumber of the job to retrieve the transmittals from.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeAttachedFiles" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
                <xsd:element name="FilterSet" type="fsreqGetFilterSelections_FilterSet" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetCountries">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the list of countries in a database.  No parameters.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetCutList">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the details of a cut list.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="CutListID" type="xsd:integer" minOccurs="1" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>The unique identifier of the cut list.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="CutListItemID" type="xsd:integer" minOccurs="0" maxOccurs="unbounded">
                    <xsd:annotation><xsd:documentation>The unique identifier of the cut list items to retrieve.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="EDIDescription" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Optional.  Include and set to True to receive EDI compliant description in result field of description</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="Filters" type="fsreqFilters" minOccurs="0" maxOccurs="1" >
                    <xsd:annotation><xsd:documentation>Filter results</xsd:documentation></xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetDocument">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves a document from the document index.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="DocumentID" type="xsd:integer" minOccurs="1" maxOccurs="unbounded">
                    <xsd:annotation>
                        <xsd:documentation>
                            The DocumentID of the document to retrieve.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetDrawings">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the list of drawings in a job.
        
            Either ProductionControlID or JobNumber must be specified.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The ProductionControlID of the job to retrieve the status of.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The JobNumber of the job to retrieve the status of.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="InspectionTests" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            If true then the inspection test summary is retrieved along with the category details.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeDrawingFiles" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            If true then the drawing files should be retrieved along with the response.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Filters" type="fsreqFilters" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetFilterSelections">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the selections from a selection filter
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
        <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="FilterSetType" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The Filter Set type to be retrieved
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="FilterSetSubType" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The Filter Set SubType to be retrieved
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="FilterName" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The Filter to retrieve
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="FilterSet" type="fsreqGetFilterSelections_FilterSet" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The Filter Set to pass filter on
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>


<xsd:complexType name="fsreqGetFilterSelections_FilterSet">
    <xsd:annotation>
        <xsd:documentation>The set of fields in a filter.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
        <xsd:element name="Filter" type="fsreqGetFilterSelections_Filter" minOccurs="1" maxOccurs="unbounded" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqGetFilterSelections_Filter">
    <xsd:annotation>
        <xsd:documentation>One Field in a filter.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
        <xsd:element name="Name" type="xsd:token" minOccurs="1" maxOccurs="1" />
        <xsd:element name="DisplayName" type="xsd:token" minOccurs="1" maxOccurs="1" />
        <xsd:element name="MinValue" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="MaxValue" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="FilterItems" type="fsreqGetFilterSelections_FilterItems" minOccurs="0" maxOccurs="1" />        
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqGetFilterSelections_FilterItems">
    <xsd:annotation>
        <xsd:documentation>Collection of selections in a filter.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
        <xsd:element name="FilterItem" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>A field value.</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                <xsd:simpleContent>
                    <xsd:extension base="xsd:token">
                        <xsd:attribute name="Field1" type="xsd:token" use="optional" />
                        <xsd:attribute name="Field1_BASE64" type="xsd:token" use="optional" />
                        <xsd:attribute name="Field2" type="xsd:token" use="optional" />
                        <xsd:attribute name="Field2_BASE64" type="xsd:token" use="optional" />
                        <xsd:attribute name="Field3" type="xsd:token" use="optional" />
                        <xsd:attribute name="Field3_BASE64" type="xsd:token" use="optional" />
                        <xsd:attribute name="Field4" type="xsd:token" use="optional" />
                        <xsd:attribute name="Field4_BASE64" type="xsd:token" use="optional" />
                        <xsd:attribute name="Field5" type="xsd:token" use="optional" />
                        <xsd:attribute name="Field5_BASE64" type="xsd:token" use="optional" />
                    </xsd:extension>
                </xsd:simpleContent>
            </xsd:complexType>
        </xsd:element>    
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqGetFilterSetDetails">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the fields and types for a filter.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
        <xsd:sequence>
                <xsd:element name="FilterSetType" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The Filter Set type to be retrieved
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="FilterSetSubType" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The Filter Set SubType to be retrieved
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetInspectionTestRecords">
    <xsd:annotation>
        <xsd:documentation>Retrieves the details of an inspection test record and it's test definition.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The ProductionControlID of the job to retrieve the status of.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The JobNumber of the job to retrieve the status of.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="InspectionTestRecordID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The ID number of a test record to retrieve.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="InspectionTestID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The test to retrieve test records from.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="TestPurpose" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The purpose of the tests to retrieve, indicates the type of test subject.</xsd:documentation>
                    </xsd:annotation>
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:token">
                            <xsd:enumeration value="None" />
                            <xsd:enumeration value="Assembly" />
                            <xsd:enumeration value="Part" />
                            <xsd:enumeration value="Load" />
                            <xsd:enumeration value="Employee" />
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="TestType" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Indicates if the field values and document information should be retrieved.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="TestCategory" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Indicates if the field values and document information should be retrieved.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="TestDateMin" type="xsd:date" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Indicates if the field values and document information should be retrieved.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="TestDateMax" type="xsd:date" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Indicates if the field values and document information should be retrieved.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeDetails" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Indicates if the field values and document information should be retrieved.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeLocations" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Indicates if the list of inspection locations should be retrieved.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeInspectors" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Indicates if the list of inspectors should be retrieved.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Filters" type="fsreqFilters" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetInspectionTestRecordsCondensed">
    <xsd:annotation>
        <xsd:documentation>Retrieves the condensed details of a set of inspection test records.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The ProductionControlID of the job to retrieve the status of.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The JobNumber of the job to retrieve the status of.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="InspectionTestRecordID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The ID number of a test record to retrieve.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="InspectionTestID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The test to retrieve test records from.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="TestPurpose" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The purpose of the tests to retrieve, indicates the type of test subject.</xsd:documentation>
                    </xsd:annotation>
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:token">
                            <xsd:enumeration value="None" />
                            <xsd:enumeration value="Assembly" />
                            <xsd:enumeration value="Part" />
                            <xsd:enumeration value="Load" />
                            <xsd:enumeration value="Employee" />
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="TestType" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Indicates if the field values and document information should be retrieved.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="TestCategory" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Indicates if the field values and document information should be retrieved.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="TestDateMin" type="xsd:date" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Indicates if the field values and document information should be retrieved.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="TestDateMax" type="xsd:date" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Indicates if the field values and document information should be retrieved.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Filters" type="fsreqFilters" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetInspectionTestRecordSummary">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the summary of a set of inspection test records.
        
            Either ProductionControlID or JobNumber must be specified.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The ProductionControlID of the job to retrieve the status of.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The JobNumber of the job to retrieve the status of.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Filters" type="fsreqFilters" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetInspectionTests">
    <xsd:annotation>
        <xsd:documentation>Retrieves a list of inspection tests and their definitions.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="InspectionTestID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The ID number of a test to retrieve.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="InspectionTestVersionID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The ID number representing the version of a test to retrieve.  If not specified then the latest version is retrieved.
                            
                            Only has an effect if the InspectionTestID element is specified.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="TestPurpose" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The purpose of the tests to retrieve, indicates the type of test subject.</xsd:documentation>
                    </xsd:annotation>
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:token">
                            <xsd:enumeration value="None" />
                            <xsd:enumeration value="Assembly" />
                            <xsd:enumeration value="Part" />
                            <xsd:enumeration value="Load" />
                            <xsd:enumeration value="Employee" />
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="TestType" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The type of test to retrieve, for example:
                                Production
                                Load
                                Employee
                                Environmental
                                Equipment
                                General
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeFields" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Indicates if the field definitions should be retrieved.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeLocations" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Indicates if the list of inspection locations should be retrieved.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeInspectors" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Indicates if the list of inspectors should be retrieved.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetInspectionTestSubjects">
    <xsd:annotation>
        <xsd:documentation>Retrieves the available subjects for the given inspection test.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="InspectionTestVersionID" type="xsd:integer" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The test version that is being run.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The ProductionControlID of the job.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The JobNumber of the job.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ExtendedDetails" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>If true then extended details of the parts are retrieved including
                            drawing #, revision, approval status, shape, dimensions, length, and grade.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Filters" type="fsreqFilters" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetInspectionTestTypes">
    <xsd:annotation>
        <xsd:documentation>Retrieves the available inspection test types and categories.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="TestPurpose" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The purpose of the tests to retrieve, indicates the type of test subject.</xsd:documentation>
                    </xsd:annotation>
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:token">
                            <xsd:enumeration value="None" />
                            <xsd:enumeration value="Assembly" />
                            <xsd:enumeration value="Part" />
                            <xsd:enumeration value="Load" />
                            <xsd:enumeration value="Employee" />
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetInventory">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves all of the records from the current inventory and/or inventory history.
            
            Use IncludeInventory and IncludeHistory to specify that inventory and/or inventory history records should be retrieved.
            If neither the IncludeInventory or IncludeHistory elements are included then the command will retrieve inventory records only.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="IncludeInventory" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Indicates if information from Inventory should be retrieved.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeHistory" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Indicates if information from Inventory History should be retrieved.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="InventoryItemID" type="xsd:integer" minOccurs="0" maxOccurs="unbounded">
                    <xsd:annotation>
                        <xsd:documentation>The unique identifier for the inventory records to retrieve.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="LinkSoftware" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Send External Inventory IDs for this software</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="UseGradeSubstitutions" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Indicates if grade substitutions should be considered when a grade filter is applied.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Filters" type="fsreqFilters" minOccurs="0" maxOccurs="unbounded">
                    <xsd:annotation>
                        <xsd:documentation>Nested Filters elements are supported.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetInventoryLocations">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the list of locations in use in Inventory.  No parameters.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetInventoryLocationSweeps">
    <xsd:annotation>
        <xsd:documentation>Retrieves the details of the given location sweep serial number.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="InventoryLocationSweepSerialNumber" type="xsd:integer" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The serial # representing the location sweep to retrieve.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetInventorySummary">
    <xsd:annotation>
        <xsd:documentation>Retrieves summary information from inventory.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="SummaryField" minOccurs="1" maxOccurs="unbounded">
                    <xsd:annotation>
                        <xsd:documentation>Field(s) to group the summary information on.</xsd:documentation>
                    </xsd:annotation>
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:token">
                            <xsd:enumeration value="Shape" />
                            <xsd:enumeration value="ShapeID" />
                            <xsd:enumeration value="Grade" />
                            <xsd:enumeration value="GradeID" />
                            <xsd:enumeration value="Dimension" />
                            <xsd:enumeration value="Dimensions" />
                            <xsd:enumeration value="Width" />
                            <xsd:enumeration value="Length" />
                            <xsd:enumeration value="JobNumber" />
                            <xsd:enumeration value="Location" />
                            <xsd:enumeration value="SecondaryLocation" />
                            <xsd:enumeration value="Supplier" />
                            <xsd:enumeration value="CountryOfOrigin" />
                            <xsd:enumeration value="CountryOfOriginID" />
                            <xsd:enumeration value="MillOfOrigin" />
                            <xsd:enumeration value="PONumber" />
                            <xsd:enumeration value="BillOfLadingNumber" />
                            <xsd:enumeration value="HeatNumber" />
                            <xsd:enumeration value="HeatSerialNumber" />
                            <xsd:enumeration value="DeliveryDate" />
                            <xsd:enumeration value="Remarks" />
                            <xsd:enumeration value="OnOrder" />
                            <xsd:enumeration value="ReferenceNumber" />
                            <xsd:enumeration value="PartNumber" />
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="Filters" type="fsreqFilters" minOccurs="0" maxOccurs="1" />
                <xsd:element name="InputDisplayUnits" type="fsreqInputDisplayUnits" minOccurs="0" maxOccurs="1" />
                <xsd:element name="Offset" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="Limit" type="xsd:integer" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetInventoryTransactions">
    <xsd:annotation>
        <xsd:documentation>Retrieves the details of inventory transactions that have occured.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="LastTransactionID" type="xsd:integer" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The transaction ID that the inventory transactions have already been read up to.
                            
                            Only retrieve transactions after this transaction ID.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="MaximumNumberOfRecordsToRetrieve" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The maximum number of records to retrieve in this command.  The default value is 10,000 if not specified.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ReportableChanges" type="fsreqReportableChanges" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Indicates the transactions to retrieve, based on the changes that the transaction caused.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqReportableChanges">
    <xsd:annotation>
        <xsd:documentation>
        </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
        <xsd:element name="ReportableChange" minOccurs="1" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>
                    The type of change that the transaction caused.
                
                    Cancel
                        PO material cancelled.
                    Job Allocation
                        A change in the job reserve of inventory material.
                    Location
                        A change in the location or secondary location of inventory material.
                    Manual Inventory
                        A manual change to an inventory record.
                    Manual History
                        A manual change to an inventory history record.
                    Manual Purchase Order
                        A manual change to a purchase order record.
                    Quantity
                        A change in the quantity.
                    Receive - Inventory
                        Material received into inventory.
                    Receive - History
                        Material received directly into inventory history.
                    Reject
                        PO material rejected.
                    Reverse TFS
                        A record from Inventory History that has been reversed and put back into Inventory.
                    RTS
                        A drop/remnant from a cut that is returned to Inventory.
                    RTS - Revaluation Difference
                        In FabSuite there are settings to re-value a drop based on the length.
                        For example, a W16x36 that is less than 8'-0 long may not be short enough to scrap but
                            is not likely to be used and so can be set to be re-valued at 40% of the original price.
                            In the case of a 7'-0 drop, it will be added back into Inventory with 40% of the original price
                            and a 7'-0 length at the remaining 60% of the price will be added to Inventory History and
                            charged to the job that the cut was made for.  That 60% line item in Inventory History will
                            have the RevaluationDifference reportable change.
                    TFS
                        A line item that has been cut/taken-from-stock.  The material is added to Inventory History and charged to a job.
                    TFS - Charge
                        A drop from a cut that is charged to the job.
                        The amount of drop is greater than the Scrap setting in FabSuite but below the Charge setting.
                    TFS - Waste
                        The difference between the length/area of the inventory stock that was cut and the total length/area of the parts.
                        For example, a cutting detail expects 34' of parts to be cut from a 40' length and only 5'-10 1/2" is returned.
                            In this case 1-1/2" will be charged to the job as Waste.
                    TFS - Scrap
                        A drop/remnant that is too small to be returned to Inventory (based on settings established in FabSuite).
                            The material is added to Inventory History and charged to the job that the cut was made for.
                    Un-Cancel
                        PO material that is un-cancelled.
                    Un-Receive
                        PO material that is un-received.
                    Un-Reject
                        PO material that is un-rejected.
                    Cost or Valuation
                        A line item that has been altered resulting in a change in the valuation/cost.
                </xsd:documentation>
            </xsd:annotation>
            <xsd:simpleType>
                <xsd:restriction base="xsd:token">
                    <xsd:enumeration value="Cancel" />
                    <xsd:enumeration value="Job Allocation" />
                    <xsd:enumeration value="Location" />
                    <xsd:enumeration value="Manual Inventory" />
                    <xsd:enumeration value="Manual History" />
                    <xsd:enumeration value="Manual Purchase Order" />
                    <xsd:enumeration value="Quantity" />
                    <xsd:enumeration value="Receive - Inventory" />
                    <xsd:enumeration value="Receive - History" />
                    <xsd:enumeration value="Reject" />
                    <xsd:enumeration value="Reverse TFS" />
                    <xsd:enumeration value="RTS" />
                    <xsd:enumeration value="RTS - Revaluation Difference" />
                    <xsd:enumeration value="TFS" />
                    <xsd:enumeration value="TFS - Charge" />
                    <xsd:enumeration value="TFS - Waste" />
                    <xsd:enumeration value="TFS - Scrap" />
                    <xsd:enumeration value="Un-Cancel" />
                    <xsd:enumeration value="Un-Receive" />
                    <xsd:enumeration value="Un-Reject" />
                    <xsd:enumeration value="Cost" />
                    <xsd:enumeration value="Valuation" />
                </xsd:restriction>
            </xsd:simpleType>
        </xsd:element>
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqGetLoads">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the completed/remaining status and details by destination and load #.
        
            Either ProductionControlID or JobNumber must be specified.
            
            This command can be used a few different ways:
            
                1.  Retrieve the list of destinations.
                        IncludeLoads = false, IncludeUnshippedLoads = false, IncludeCompletedMaterial = false, IncludeRemainingMaterial = false

                2.  Retrieve the list of loads.
                        Include[Unshipped]Loads = true, IncludeCompletedMaterial = false, IncludeRemainingMaterial = false

                3.  Retrieve the details of the material on each load.
                        Include[Unshipped]Loads = true, IncludeCompletedMaterial = true, IncludeRemainingMaterial = false

                4.  Retrieve the details of the material remaining to be loaded.
                        IncludeLoads = false, IncludeUnshippedLoads = false, IncludeCompletedMaterial = false, IncludeRemainingMaterial = true
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The ProductionControlID of the job to retrieve the status of.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The JobNumber of the job to retrieve the status of.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="DestinationName" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The shipping destination to restrict the result to.
                            Specify the value 'Jobsite' for the jobsite destination.
                            
                            If this element is not specified then information from all shipping destinations will be retrieved.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="LoadNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The load # to restrict the result to.
                            
                            If this element is not specified then information from all loads will be retrieved.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeLoads" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Indicates if the individual loads should be retrieved.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeUnshippedLoads" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Indicates if the loads that have not yet been shipped should be retrieved.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeCompletedMaterial" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Indicates if the details of the material on each load should be retrieved.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeRemainingMaterial" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Indicates if the details of the material remaining to be loaded should be retrieved.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Filters" type="fsreqFilters" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetLots">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the list of lots in a job.
        
            Either ProductionControlID or JobNumber must be specified.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The ProductionControlID of the job to retrieve the status of.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The JobNumber of the job to retrieve the status of.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="InspectionTests" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            If true then the inspection test summary is retrieved along with the category details.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Filters" type="fsreqFilters" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetModelObjectIDs">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the list of model object IDs / IFC Guids in a job
        
            Either ProductionControlID or JobNumber must be specified.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The ProductionControlID of the job to retrieve the status of.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The JobNumber of the job to retrieve the status of.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="AssemblyObjectOnly" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            If true then the model object IDs are retrieved only for the assemblies
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Filters" type="fsreqFilters" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>


<xsd:complexType name="fsreqGetNestData">
    <xsd:annotation>
        <xsd:documentation>Retrieves the data file for the given nest.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="CutListItemID" type="xsd:integer" minOccurs="1" maxOccurs="unbounded">
                    <xsd:annotation>
                        <xsd:documentation>The cut list items from which to retrieve the nest data file.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ZipFiles" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>If true then the retrieved files are compressed into a single zip file.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetNestImage">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the image for the given nest.
            
            Either ProductionControlCutListItemID or ProductionControlCutListBarcodeID must be specified.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlCutListItemID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The cut list item from which to retrieve the nest image.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ProductionControlCutListBarcodeID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The cut list serial # from which to retrieve the nest image.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ImageFormat" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The format in which to retrieve the image.
                            
                            If not specified then the image will be either JPG (for generated images) or the original format (for external nest images).
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="MinimumWidth" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The minimum width of the image, if necessary the image will be scaled up to match.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="MinimumHeight" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The minimum height of the image, if necessary the image will be scaled up to match.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="MaximumWidth" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The maximum width of the image, if necessary the image will be scaled down to match.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="MaximumHeight" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The maximum height of the image, if necessary the image will be scaled down to match.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetNestStatus">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the inventory and requisition item status for this nest.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="NestID" type="xsd:token" minOccurs="0" maxOccurs="unbounded">
                    <xsd:annotation>
                        <xsd:documentation>Get information on this nest.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetPricingInformation">
    <xsd:annotation>
        <xsd:documentation>Retrieves pricing information for the whole system or one job.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The job to retrieve the information from.
                            
                            If no JobNumber is specified then pricing for the whole system will be returned.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Filters" type="fsreqFilters" minOccurs="0" maxOccurs="unbounded">
                    <xsd:annotation>
                        <xsd:documentation>Nested Filters elements are supported.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetProductionControlJobInformation">
    <xsd:annotation>
        <xsd:documentation>Retrieves the full information of Production Control jobs.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="unbounded">
                    <xsd:annotation>
                        <xsd:documentation>
                            The jobs to retrieve the information from.
                            
                            If no JobNumber elements are specified then all jobs will be returned.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetProductionControlJobInformationTransactions">
    <xsd:annotation>
        <xsd:documentation>Retrieves the changes that have been made to Production Control job information.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="LastLogID" type="xsd:integer" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The log ID that the production control job transactions have already been read up to.
                            
                            Only retrieve transactions after this log ID.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="unbounded">
                    <xsd:annotation>
                        <xsd:documentation>
                            The jobs to retrieve the information from.
                            
                            If no JobNumber elements are specified then all jobs will be returned.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetProductionControlJobs">
    <xsd:annotation>
        <xsd:documentation>Retrieves a concise list of Production Control jobs.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="unbounded">
                    <xsd:annotation><xsd:documentation>ProductionControlID to restrict the result to.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="unbounded">
                    <xsd:annotation><xsd:documentation>Job # to restrict the result to.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="UseLastGroups" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Use the last GroupName and GroupName2 selections that the current user set in FabSuite to restrict the result.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="GroupName" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>GroupName to restrict the result to.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="GroupName2" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>GroupName2 to restrict the result to.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="OnlyLinkedToProject" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>If true, then only production control jobs that are linked to a project management job will be retrieved.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="OnlyContainingCutLists" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>If true, then only production control jobs that contain at least one uncut and not-invalidated cut list will be returned.
                            Also, number of cut lists job contains will be added to response.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeClosedJobs" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>If false or not specified, then only open production control jobs will be returned.</xsd:documentation></xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:simpleType name="fsGetProductionShippingStatus_SummaryField">
    <xsd:restriction base="xsd:token">
        <xsd:enumeration value="Sequence" />
        <xsd:enumeration value="LotNumber" />
        <xsd:enumeration value="DrawingNumber" />
        <xsd:enumeration value="MainMark" />
        <xsd:enumeration value="PieceMark" />
        <xsd:enumeration value="InstanceNumber" />
        <xsd:enumeration value="AssemblyInstanceNumber" />
        <xsd:enumeration value="BarcodeSerialNumber" />
        <xsd:enumeration value="InstanceLocation" />
        <xsd:enumeration value="ApprovalStatus" />
        <xsd:enumeration value="Shape" />
        <xsd:enumeration value="Size" />
        <xsd:enumeration value="Dimensions" />
        <xsd:enumeration value="Width" />
        <xsd:enumeration value="Length" />
        <xsd:enumeration value="Grade" />
        <xsd:enumeration value="Finish" />
        <xsd:enumeration value="ReferenceNumber" />
        <xsd:enumeration value="Remark" />
        <xsd:enumeration value="Route" />
        <xsd:enumeration value="Category" />
        <xsd:enumeration value="SubCategory" />
        <xsd:enumeration value="PayCategory" />
        <xsd:enumeration value="ShippingRoute" />
        <xsd:enumeration value="ProductionCode" />
    </xsd:restriction>
</xsd:simpleType>

<xsd:complexType name="fsreqGetProductionShippingStatus">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the production status for a job.
            
            Either ProductionControlID or JobNumber must be specified.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="ExcludeAccessoriesWithoutPieceLoadTracking" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>If not specified then defaults to true.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="StatusOfOnlyMainMembers" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>If not specified then defaults to false.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="SummaryField" type="fsGetProductionShippingStatus_SummaryField" minOccurs="0" maxOccurs="unbounded">
                    <xsd:annotation>
                        <xsd:documentation>Field(s) to group the production status on.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Filters" type="fsreqFilters" minOccurs="0" maxOccurs="1" />
                <xsd:element name="Offset" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="Limit" type="xsd:integer" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetProjectSchedule">
    <xsd:annotation>
        <xsd:documentation>Retrieves the breakdown elements, tasks, and task links for a baseline plan - optionally at a snapshot.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ScheduleBaselineID" type="xsd:integer" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The unique identifier of the baseline plan to retrieve.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ScheduleSnapshotID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The unique identifier of the snapshot of the baseline plan to retrieve.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetProjectScheduleBaselinePlans">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the baseline plans for a project.
            
            One of ProjectID, ProductionControlID, or JobNumber must be specified.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProjectID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The unique identifier of the project to retrieve.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The unique identifier of the production control job to retrieve.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The job number of the project to retrieve.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetProjectScheduleSnapshots">
    <xsd:annotation>
        <xsd:documentation>Retrieves the snapshots for a baseline plan.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ScheduleBaselineID" type="xsd:integer" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The unique identifier of the baseline plan to retrieve.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="OnlySavepoints" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            If true, then only snapshots that have been flagged as savepoints will be retrieved.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetProjectStatus">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves summary information about the job including:
                Assemblies
                Drawings
                Sequences
                Lots
                Categories
                Sub-Categories
                RFIs
                Change Orders
                Transmittals
                Cut Lists
                Material Status
                Production Status
                Shipping Status
                
            Either ProductionControlID or JobNumber must be specified.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>The ProductionControlID of the job to retrieve the status of.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>The JobNumber of the job to retrieve the status of.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeAssemblies" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Include assembly information - true/false.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeDrawings" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Include drawing information - true/false.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeSequences" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Include sequence information - true/false.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeLots" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Include lot information - true/false.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeCategories" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Include category information - true/false.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeSubCategories" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Include sub-category information - true/false.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeTransmittals" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Include transmittal information - true/false.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeRFIs" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Include RFI information - true/false.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeChangeOrders" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Include change order information - true/false.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeCutLists" type="fsBoolWithBool" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Include cut lists - true/false. with attribute SharedOnly - true/false</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeMaterialStatus" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Include material status - true/false.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeProductionStatus" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Include production status - true/false.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeShipStatus" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Include ship status - true/false.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="Filters" type="fsreqFilters" minOccurs="0" maxOccurs="1" >
                    <xsd:annotation><xsd:documentation>Filter object to restrict results</xsd:documentation></xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetPurchaseOrderInformation">
    <xsd:annotation>
        <xsd:documentation>Retrieves the full information of Purchase Orders.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="PONumber" type="xsd:token" minOccurs="0" maxOccurs="unbounded">
                    <xsd:annotation>
                        <xsd:documentation>
                            The purchase orders to retrieve the information from.
                            
                            If no PONumber elements are specified then all purchase orders will be returned.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetPurchaseOrderInformationTransactions">
    <xsd:annotation>
        <xsd:documentation>Retrieves the changes that have been made to Purchase Order information.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="LastLogID" type="xsd:integer" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The log ID that the purchase order transactions have already been read up to.
                            
                            Only retrieve transactions after this log ID.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="PONumber" type="xsd:token" minOccurs="0" maxOccurs="unbounded">
                    <xsd:annotation>
                        <xsd:documentation>
                            The purchase orders to retrieve the information from.
                            
                            If no PONumber elements are specified then all purchase orders will be returned.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetReportTypes">
    <xsd:annotation>
        <xsd:documentation>Retrieves the list of report types and reports for the given report group.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ReportGroup" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The report group from which to retrieve the available reports.</xsd:documentation>
                    </xsd:annotation>
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:token">
                            <xsd:enumeration value="Inspection" />
                            <xsd:enumeration value="ProductionControlShippingTicket" />
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="ReportSubGroup" type="xsd:token" minOccurs="1" maxOccurs="unbounded">
                    <xsd:annotation>
                        <xsd:documentation>
                            The report sub-group from which to retrieve the available reports.
                            
                            Must match an available sub-group for the given ReportGroup:
                            
                                Inspection
                                    - Test Record
                                    - Test Record (Field)
                                    - Test Record (Field Summary)
                                ProductionControlShippingTicket
                                    - Shipping Ticket
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetRFIDetails">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the details of one or more requests for information.
        
            If neither RequestForInformationID nor RFINumber are specified, the RFIs received will be limited by the filters 
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="RequestForInformationID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The RequestForInformationID requested.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="RFINumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The Number of the RFI requested.  Specifying both is not necessary.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The ProductionControlID of the job to retrieve the RFIs from.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The JobNumber of the job to retrieve the RFIs from.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeAttachedFiles" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
                <xsd:element name="FilterSet" type="fsreqGetFilterSelections_FilterSet" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetRouteDetails">
    <xsd:annotation>
        <xsd:documentation>Retrieves the details of the given route.  Either RouteID or Route must be specified.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="RouteID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The route from which to retrieve the details.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Route" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The route from which to retrieve the details.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetSequences">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the list of sequences in a job.
        
            Either ProductionControlID or JobNumber must be specified.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The ProductionControlID of the job to retrieve the status of.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The JobNumber of the job to retrieve the status of.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="InspectionTests" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            If true then the inspection test summary is retrieved along with the category details.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Filters" type="fsreqFilters" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetStations">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the completed/remaining status and details by station.
        
            Either ProductionControlID or JobNumber must be specified.
            
            This command can be used a few different ways:
            
                1.  Retrieve the list of stations.
                        IncludeCompleted = false, IncludeRemaining = false

                3.  Retrieve the details of the completed material for each station.
                        IncludeCompleted = true, IncludeRemaining = false

                4.  Retrieve the details of the remaining material for each station.
                        IncludeCompleted = false, IncludeRemaining = true
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>The ProductionControlID of the job to retrieve the status of.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>The JobNumber of the job to retrieve the status of.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="StationName" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>The station to restrict the result to. If this element is not specified then information from all stations will be retrieved.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="Type" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>The station type to restrict the results to. If this element is not specified then information from all stations of all types will be retrieved.</xsd:documentation></xsd:annotation>
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:token">
                            <xsd:enumeration value="Production" />
                            <xsd:enumeration value="Field" />
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="IncludeCompleted" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Indicates if the details of the completed material should be retrieved.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeRemaining" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Indicates if the details of the remaining material should be retrieved.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeIfPreviousStationNotCompleted" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Indicates if the details of the stations should be included when they have not completed the previous station.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="Filters" type="fsreqFilters" minOccurs="0" maxOccurs="1" >
                    <xsd:annotation><xsd:documentation>Optional filter object to filter results returned.</xsd:documentation></xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetSubCategories">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the list of sub-categories in a job.
        
            Either ProductionControlID or JobNumber must be specified.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The ProductionControlID of the job to retrieve the status of.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The JobNumber of the job to retrieve the status of.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="InspectionTests" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            If true then the inspection test summary is retrieved along with the category details.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Filters" type="fsreqFilters" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetTimeTrackingSubjects">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the available time tracking selections for a job.
        
            Either ProductionControlID or JobNumber must be specified.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The ProductionControlID of the job to retrieve the status of.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The JobNumber of the job to retrieve the status of.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>


<xsd:complexType name="fsreqGetTransmittalDetails">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the details of one or more transmittals.
        
            If neither TransmittalID nor TransmittalNumber are specified, the transmittals received will be limited by the filters 
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="TransmittalID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The TransmittalID requested.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="TransmittalNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The Number of the transmittal requested.  Specifying both is not necessary.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeDrawings" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            If specified and set to true, transmittal drawings will be included in response.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeAttachedFiles" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            If specified and set to true, files attached to the transmittal will be included in response.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The ProductionControlID of the job to retrieve the transmittals from.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The JobNumber of the job to retrieve the transmittals from.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="FilterSet" type="fsreqGetFilterSelections_FilterSet" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqGetTFSDetails">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the details of the PDC material that has been taken from stock including tracibility information.
        
            Either ProductionControlID or JobNumber must be specified.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The ProductionControlID of the job to retrieve the status of.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The JobNumber of the job to retrieve the status of.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Filters" type="fsreqFilters" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqInspectionDocumentAdd">
    <xsd:annotation>
        <xsd:documentation>
            Adds a document to the document index and associates it with the given inspection record.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="InspectionTestRecordID" type="xsd:integer" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The inspection test record to add the document to.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Filename" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The filename of the document.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="FileDataBase64" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The base64 representation of the file contents.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="DocumentText" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Text notation to include with the document.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqIntermediateCompanyCodes">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the valid company codes for intermediate shipping that the specified job contains.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The JobNumber of the job to retrieve the intermediate shipping company codes.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqInventoryAdd">
    <xsd:annotation>
        <xsd:documentation>
            Adds a new inventory record based off the information from another.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ExistingSerialNumber" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The serial # representing an existing inventory record.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="NewSerialNumber" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The serial # to assign to the new inventory record.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Quantity" type="xsd:integer" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The quantity of the new inventory record.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Width" type="decimal-or-empty" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The width in millimeters of the new inventory record.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Length" type="decimal-or-empty" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The length in millimeters of the new inventory record.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Location" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The location of the new inventory record.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="SecondaryLocation" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The secondary location of the new inventory record.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqInventoryAuditSave">
    <xsd:annotation>
        <xsd:documentation>
            Associates a barcode serial # with an audit serial # and saves the barcode SN in FabSuite's inventory.
            
            If the SerialNumber does not yet exist in FabSuite's inventory then it will be associated with an inventory record
                that has information matching the AuditSerialNumber.
            If the SerialNumber is already in FabSuite's inventory then it will be moved to the location and secondary location
                defined by the AuditSerialNumber as long as it matches the rest of the details.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="AuditSerialNumber" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Serial # from the FabSuite inventory report:  Audit w/ Barcodes.
                            
                            Represents a set of values for:
                                Shape, Grade, Dimensions, Length, PO #, B/L #, Heat #, Heat Serial #, Location, and Secondary Location.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="SerialNumber" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Serial # of the barcode label on the raw material.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Quantity" type="xsd:integer" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Quantity for that serial #.
                            
                            If serialized then the quantity should always be 1.
                            Quantity greater than one for material such as bolts, nuts, washers, etc. where a single barcode serial #
                                represents a larger quantity of material.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqInventoryAuditScan">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the details of an audit serial #.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="AuditSerialNumber" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Serial # from the FabSuite inventory report:  Audit w/ Barcodes.
                            
                            Represents a set of values for:
                                Shape, Grade, Dimensions, Length, PO #, B/L #, Heat #, Heat Serial #, Location, and Secondary Location.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqInventoryLocationRestrictionGet">
    <xsd:annotation>
        <xsd:documentation>
            Gets the list of inventory location restrictions.
            If LastLogID is specified then the result will only include the records that have changed since that log position.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="InventoryLocationRestrictionID" type="xsd:integer" minOccurs="0" maxOccurs="unbounded" />
                <xsd:element name="LastLogID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqInventoryLocationSweepComplete">
    <xsd:annotation>
        <xsd:documentation>
            Completes the given location sweep.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="InventoryLocationSweepSerialNumber" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Serial # representing the location sweep.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="NewLocation" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Location to move material that was on this location sweep but was not scanned into.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="NewSecondaryLocation" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Secondary location to move material that was on this location sweep but was not scanned into.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqInventoryLocationSweepScan">
    <xsd:annotation>
        <xsd:documentation>
            Scans an inventory serial # as being in the given sweep location.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="InventoryLocationSweepSerialNumber" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Serial # representing the location sweep.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="SerialNumber" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Serial # representing an inventory record.
                            
                            If the record is already in the location then it is marked as found.
                            If it is not already in the location then it is moved there.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqInventoryMove">
    <xsd:annotation>
        <xsd:documentation>
            Changes the location of a piece of inventory material.
            
            Either SerialNumber or (Quantity AND Shape) are required.
            
            If SerialNumber is specified then Quantity, Shape, Grade, Dimensions, Length, Job, Supplier,
                CountryOfOrigin, MillOfOrigin, PONumber, BillOfLadingNumber, HeatNumber, HeatSerialNumber, Location,
                SecondaryLocation, Remarks, ReferenceNumber, and PartNumber,  are ignored.
            If SerialNumber is not specified then the material to move is identified by the combination of those fields
                that are specified.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="SerialNumber" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Serial # of the barcode label on the inventory material.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Quantity" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The quantity to move.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Shape" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The shape of the material to move.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Grade" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The grade of the material to move.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Dimensions" type="fsDimensionsWithMetric" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The dimensions of the material to move.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Length" type="fsDecimalWithUOM" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The length of the material to move.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The Job # of the material to move.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Supplier" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The Supplier of the material to move.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="PONumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The PO # of the material to move.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="BillOfLadingNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The B/L # of the material to move.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="CountryOfOrigin" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The country of origin of the material to move.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="MillOfOrigin" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The country of origin of the material to move.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="HeatNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The Heat # of the material to move.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="HeatSerialNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The Heat Serial # of the material to move.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Location" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The Location of the material to move.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="SecondaryLocation" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The Secondary Location of the material to move.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="DeliveryDate" type="xsd:date" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The Delivery Date of the material to move.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Remarks" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The Remarks of the material to move.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ReferenceNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The Reference # of the material to move.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="PartNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The Part # of the material to move.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="CutListItemID" type="xsd:integer" minOccurs="0" maxOccurs="unbounded">
                    <xsd:annotation>
                        <xsd:documentation>CutListItemID values associated with the inventory stock that should be moved.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="NestSolutionRequiredID" type="xsd:integer" minOccurs="0" maxOccurs="unbounded">
                    <xsd:annotation>
                        <xsd:documentation>NestSolutionRequiredID values associated with the inventory stock that should be moved.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="NewLocation" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The location to move the material to.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="NewSecondaryLocation" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The secondary location to move the material to.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqCostCode_Get">
            <xsd:annotation>
                <xsd:documentation>
                    Retrieves one or more cost codes for Purchasing.
                </xsd:documentation>
            </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="CostCodeID" type="xsd:integer" minOccurs="0" maxOccurs="unbounded">
                    <xsd:annotation>
                        <xsd:documentation>
                            CostCodeID
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="LastLogID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Retrieves changes since LastLogID
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqCostCode_Upsert">
    <xsd:annotation>
        <xsd:documentation>
            Inserts or updates into Tekla PowerFab CostCode
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="CostCodeID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            CostCodeID
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="CostCode" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            CostCode
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Description" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Description
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqCostCode_Delete">
    <xsd:annotation>
        <xsd:documentation>
            Deletes  Tekla PowerFab specified CostCode 
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="CostCodeID" type="xsd:integer" minOccurs="1" maxOccurs="unbounded">
                    <xsd:annotation>
                        <xsd:documentation>
                            CostCodeIDs to delete
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqInventoryRemnant_Upsert">
    <xsd:annotation>
        <xsd:documentation>
            Inserts or updates an external remnant into Tekla EPM INventory
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="SourceApplication" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Name of application creating this nest.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="SourceApplicationVersion" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Version of source application.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Remnant" type="fsreqInventoryRemnant" minOccurs="1" maxOccurs="unbounded" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqInventoryRemnant">
    <xsd:annotation>
        <xsd:documentation>
            A single external remnant to be saved by InventoryRemnant_Upsert command.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
        <xsd:element name="RemnantID" type="xsd:token" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Unique Identifer of this Remnant
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="Shape" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Shape of remnant
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="Grade" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Grade of Remnant
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>        
        <xsd:element name="Dimensions" type="fsDimensionsWithMetric" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Dimensions of Remnant
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="ShapeDimensions" type="fsDimensionsWithMetric" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Specifies both shape and dimensions of remnant.  Either this field or Shape must be included
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="Quantity" type="xsd:integer" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Quantity of remnant
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="Length" type="fsDecimalWithUOM" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Length of remnant
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="Width" type="fsDecimalWithUOM" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Width of remnant
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="Thickness" type="fsDecimalWithUOM" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Plate Thickness of remnant
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="Weight" type="fsDecimalWithUOM" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Weight of remnant
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="Area" type="fsDecimalWithUOM" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Area of plate remnant
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="SurfaceArea" type="fsDecimalWithUOM" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    SurfaceArea of remnant
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="CurrentPrice" type="xsd:decimal" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Price of remnant.  Default currency for shape will be used on import
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="ReserveToJob" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Reserve this remnant to this job
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="IsSkeleton" type="xsd:boolean" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Set to true if this remnant is a skeleton
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="Location" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Location of Remnant
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="SecondaryLocation" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Secondary Location of Remnant
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="HeatNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Heat Number of Remnant
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="HeatSerialNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Heat Serial Number of Remnant
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="BillOfLadingNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Bill of Lading Number of Remnant
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="CountryOfOrigin" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Origin of Remnant
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="MillOfOriginFirmAddressID" type="xsd:integer" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Mill of origin of Remnant
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="PONumber" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Purchase Order Number of Remnant
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="Supplier" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Supplier of Remnant
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="Remarks" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Remarks to put on Remnant.  If left blank will be auto-populated with Source Software + Remnant ID
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="ReferenceNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Reference Number of Remnant
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="PartNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Part Number of Remnant
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="Category" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Category of Remnant
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="SubCategory" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    SubCategory of Remnant
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="RemnantName" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    String name of Remnant
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="RemnantImageBase64" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Base64 text of nest image.
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="RemnantDefinitionText" type="fsreqFileContentsWithExtension" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Remnant definition to store in file.
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
                
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqLoad">
    <xsd:annotation>
        <xsd:documentation>
            Loads or Un-Loads a production assembly/part from a truck.
        
            Either ProductionControlID or JobNumber must be specified.
            
            When loading either MainMark or Description must be specified.
            When un-loading either MainMark or ProductionControlTrucksAdditionalID must be specified.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="CommitType" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Type of action:                    
                                Save -> Load
                                Delete -> Un-Load
                        </xsd:documentation>
                    </xsd:annotation>
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:token">
                            <xsd:enumeration value="Save" />
                            <xsd:enumeration value="Delete" />
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="MainMark" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="PieceMark" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Exclude this element when shipping an assembly.
                            
                            Only specify this element for shipping an accessory part.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Sequence" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="LotNumber" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="TruckNumber" type="xsd:token" minOccurs="1" maxOccurs="1" />
                <xsd:element name="Quantity" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="InstanceNumbers" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="BarcodeSerialNumber" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="Date" type="xsd:date" minOccurs="0" maxOccurs="1" />
                
                <xsd:element name="ProductionControlTrucksAdditionalID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The additional item to delete.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Description" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Description of the additional item to add.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Notes" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Notes for the additional item to add.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="WeightEach" type="fsDecimalWithUOM" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Weight each of the additional item to add..
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="PerformReverseTFS" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            If true and this action is for deleting an Additional item, and that item represents an inventory record, then perform a reverse TFS and add that material back into inventory.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqMakeReport">
    <xsd:annotation>
        <xsd:documentation>
            Renders, exports, and retrieves the given report.
            
            Either ReportID or ReportGUID is required.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ReportGroup" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Report group of the report to render.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ReportInstanceGUID" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Report instance to use, if one had been prepared by a previous PrepareReportData command.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ReportTypeID" type="xsd:integer" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The report type to use.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ReportID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The report to run.  This parameter is deprecated, ReportGUID should be used instead.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ReportGUID" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The report to run.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ExportFormat" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The format to export the report to.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ReportOptions" type="fsreqReportOptions" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The report processing options.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqMaxTruck">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the largest truck/load # for a job.
        
            Either ProductionControlID or JobNumber must be specified.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqNestSolutionGet">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="NestSolutionID" type="xsd:integer" minOccurs="0" maxOccurs="unbounded" />
                <xsd:element name="LastLogID" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="GetOptions" type="fsreqNestSolutionGetOptions" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqNestSolutionGetOptions">
    <xsd:sequence>
        <xsd:element name="IncludeRequired" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
        <xsd:element name="IncludeResult" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
        <xsd:element name="IncludeResultParts" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
        <xsd:element name="IncludeResultPartLinks" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
        <xsd:element name="InputDisplayUnits" type="fsreqInputDisplayUnits" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqPickListGet">
    <xsd:annotation><xsd:documentation>Retrieve the required stock for a cut list</xsd:documentation></xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="CutListID" type="xsd:integer" minOccurs="0" maxOccurs="unbounded">
                    <xsd:annotation><xsd:documentation>ID of cut list to retrieve stock for</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="GetOptions" type="fsreqPickListGetOptions" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Options for what to retrieve</xsd:documentation></xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqPickListGetOptions">
    <xsd:sequence>
        <xsd:element name="FilterSet" type="fsreqFilterSetSelections" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Filter Set for pick list</xsd:documentation></xsd:annotation>
        </xsd:element>
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqPing">
    <xsd:annotation>
        <xsd:documentation>Pings the connection.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqPrepareReportData">
    <xsd:annotation>
        <xsd:documentation>
            Processes report data in preparation for a subsequent MakeReport call to render the report.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ReportGroup" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Report group of the report to process.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ReportOptions" type="fsreqReportOptions" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The report processing options.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqReportOptions">
    <xsd:annotation>
        <xsd:documentation>
            The set of report processing options.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
        <xsd:element name="ReportOption" type="fsreqReportOption" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqReportOption">
    <xsd:annotation>
        <xsd:documentation>
            A report processing option
        </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
        <xsd:element name="OptionName" type="xsd:token" minOccurs="1" maxOccurs="1" />
        <xsd:element name="OptionValue" type="xsd:token" minOccurs="1" maxOccurs="1" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqProductionControlCutListExportDSTVPlus">
    <xsd:annotation>
        <xsd:documentation>
            Exports DSTV Plus zip file for a cut list or cut list items
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="CutListID" type="xsd:token" minOccurs="1" maxOccurs="1" />
                <xsd:element name="CutListItemID" type="xsd:token" minOccurs="0" maxOccurs="unbounded" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqProductionControlCutListItemSwapGetAvailable">
    <xsd:annotation>
        <xsd:documentation>
            Given a Production Control Cut List Item ID, return a list of inventory items that can be swapped with the one on the cut list.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlCutListItemID" type="xsd:token" minOccurs="1" maxOccurs="1" />
                <xsd:element name="AllowGradeSubstitutions" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqProductionControlCutListItemSwap">
    <xsd:annotation>
        <xsd:documentation>
            Swap an inventory item associated with a cut list for another inventory item.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlCutListItemID" type="xsd:token" minOccurs="1" maxOccurs="1" />
                <xsd:element name="QuantityToSwap" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="AllowGradeSubstitutions" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
                <xsd:element name="SwapWithItem" type="fsreqProductionControlCutListItemSwapAvailable" minOccurs="1" maxOccurs="1" >
                    <xsd:annotation><xsd:documentation>A single swappable item from response to Swap_GetAvailable</xsd:documentation></xsd:annotation>
                </xsd:element>                
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqProductionControlCutListItemSwapAvailable">
    <xsd:sequence>
        <xsd:element name="Quantity" type="xsd:integer" minOccurs="1" maxOccurs="1">
            <xsd:annotation><xsd:documentation>The quantity of inventory items with these specs available to swap in</xsd:documentation></xsd:annotation>
        </xsd:element>        
        <xsd:element name="InventoryItemID" type="xsd:integer" minOccurs="1" maxOccurs="unbounded">
            <xsd:annotation><xsd:documentation>List of inventory item ids matching these qualities</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="Shape" type="fsStringID" minOccurs="1" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Shape of the Inventory Item</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="Dimensions" type="fsDimensionValueDisplay" minOccurs="1" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Dimensions of the Inventory Item</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="Grade" type="fsStringID" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Grade of the Inventory Item</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Job that this inventory item is reserved to</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="Width" type="xsd:decimal" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Width of Inventory Item if it's a plate</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="Length" type="xsd:decimal" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Length of Inventory Item</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="Location" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Location of Inventory Item</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="SecondayLocation" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Secondary Location of Inventory Item</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="HeatNo" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Heat Number of Inventory Item</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="HeatSerialNo" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Heat Serial Number of Inventory Item</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="BillOfLadingNo" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Bill of Lading Number of Inventory Item</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="CountryOfOrigin" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Country of Origin of Inventory Item</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="PONumber" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Purchase Order number of Inventory Item</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="Supplier" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Supplier of Inventory Item</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="PartNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Part Number of Inventory Item</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="OnOrder" type="xsd:boolean" minOccurs="1" maxOccurs="1">
            <xsd:annotation><xsd:documentation>0 if inventory item is in stock, 1 if it's on order</xsd:documentation></xsd:annotation>
        </xsd:element>        
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqProductionControlJobGet">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="unbounded" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqProductionControlLoadGet">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="unbounded" />
                <xsd:element name="ProductionControlLoadID" type="xsd:integer" minOccurs="0" maxOccurs="unbounded" />
                <xsd:element name="LastLogID" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="GetOptions" type="fsreqProductionControlLoadGetOptions" minOccurs="1" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqProductionControlLoadGetOptions">
    <xsd:sequence>
        <xsd:element name="IncludeJobDetails" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
        <xsd:element name="IncludeFirmDetails" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
        <xsd:element name="IncludeMaterial" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
        <xsd:element name="FilterSet" type="fsreqFilterSetSelections" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqProductionControlLoadDelete">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlLoadID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqProductionControlLoadInsert">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="ShippedFromFirmID" type="integer-or-empty" minOccurs="1" maxOccurs="1" />
                <xsd:element name="ShippedFromFirmAddressID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="ShippingDestinationGroupID" type="integer-or-empty" minOccurs="1" maxOccurs="1" />
                <xsd:element name="ShippedToFirmID" type="integer-or-empty" minOccurs="1" maxOccurs="1" />
                <xsd:element name="ShippedToFirmAddressID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="LoadNumber" type="xsd:token" minOccurs="1" maxOccurs="1" />
                <xsd:element name="TrailerNumber" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="Carrier" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="LoadCategory1" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="LoadCategory2" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="LoadCategory3" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="ShippedFrom" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="Capacity" type="xsd:decimal" minOccurs="1" maxOccurs="1" />
                <xsd:element name="ToBeReturned" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
                <xsd:element name="PlannedShipDate" type="xsd:date" minOccurs="0" maxOccurs="1" />
                <xsd:element name="TopText" type="xsd:token" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqProductionControlLoadUpdate">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlLoadID" type="xsd:integer" minOccurs="1" maxOccurs="unbounded" />
                <xsd:element name="ShippedFromFirmID" type="integer-or-empty" minOccurs="0" maxOccurs="1" />
                <xsd:element name="ShippedFromFirmAddressID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="ShippingDestinationGroupID" type="integer-or-empty" minOccurs="0" maxOccurs="1" />
                <xsd:element name="ShippedToFirmID" type="integer-or-empty" minOccurs="0" maxOccurs="1" />
                <xsd:element name="ShippedToFirmAddressID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="LoadNumber" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="TrailerNumber" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="Carrier" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="LoadCategory1" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="LoadCategory2" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="LoadCategory3" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="ShippedFrom" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="Capacity" type="xsd:decimal" minOccurs="0" maxOccurs="1" />
                <xsd:element name="ToBeReturned" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
                <xsd:element name="PlannedShipDate" type="xsd:date" minOccurs="0" maxOccurs="1" />
                <xsd:element name="ShippedDate" type="xsd:date" minOccurs="0" maxOccurs="1" />
                <xsd:element name="DateReceived" type="xsd:date" minOccurs="0" maxOccurs="1" />
                <xsd:element name="DateReady" type="xsd:date" minOccurs="0" maxOccurs="1" />
                <xsd:element name="TopText" type="xsd:token" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqProductionControlLoadShip">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlLoadID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="ShippedDate" type="xsd:date" minOccurs="1" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqProductionControlLoadUnship">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlLoadID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqProductionControlLoadIsDuplicateLoadNumber">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="ProductionControlLoadID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="LoadNumber" type="xsd:token" minOccurs="1" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqProductionControlLoadInputOptionsGet">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="ProductionControlLoadID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqProductionControlLoadAdditionalInsert">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlLoadID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="Quantity" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="Description" type="xsd:token" minOccurs="1" maxOccurs="1" />
                <xsd:element name="WeightEach" type="xsd:decimal" minOccurs="1" maxOccurs="1" />
                <xsd:element name="Notes" type="xsd:token" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqProductionControlLoadAdditionalUpdate">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlLoadID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="ProductionControlTrucksAdditionalID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="Quantity" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="Description" type="xsd:token" minOccurs="1" maxOccurs="1" />
                <xsd:element name="WeightEach" type="xsd:decimal" minOccurs="1" maxOccurs="1" />
                <xsd:element name="Notes" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="PerformReverseTFS" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            If true and this update is for reducing the quantity of inventory record, then perform a reverse TFS and add that material back into inventory.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqProductionControlLoadAdditionalDelete">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlLoadID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="ProductionControlTrucksAdditionalID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="PerformReverseTFS" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            If true and this deleting an inventory record, then perform a reverse TFS and add that material back into inventory.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqProductionControlLoadRemainingGet">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="ShippingDestinationGroupID" type="integer-or-empty" minOccurs="1" maxOccurs="1" />
                <xsd:element name="ShippedFromFirmAddressID" type="integer-or-empty" minOccurs="1" maxOccurs="1" />
                <xsd:element name="ShippedToFirmID" type="integer-or-empty" minOccurs="1" maxOccurs="1" />
                <xsd:element name="MainMarkDisplay" type="xsd:token" minOccurs="0" maxOccurs="unbounded" />
                <xsd:element name="LastLogID" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="GetOptions" type="fsreqProductionControlLoadRemainingGetOptions" minOccurs="1" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqProductionControlLoadMaterialAdd">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlLoadID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="DateLoaded" type="xsd:date" minOccurs="0" maxOccurs="1" />
                <xsd:element name="LoadItemsOnAssign" type="xsd:boolean" minOccurs="1" maxOccurs="1" />
                <xsd:element name="AddItem" minOccurs="1" maxOccurs="unbounded">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="ProductionControlItemID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                            <xsd:element name="SequenceID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                            <xsd:element name="Quantity" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                            <xsd:element name="InstanceNumbers" type="xsd:token" minOccurs="0" maxOccurs="1" />
                        </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqProductionControlLoadMaterialRemove">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlLoadID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="RemoveItem" minOccurs="1" maxOccurs="unbounded">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="ProductionControlItemTruckID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                            <xsd:element name="Quantity" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                            <xsd:element name="InstanceNumbers" type="xsd:token" minOccurs="0" maxOccurs="1" />
                        </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqProductionControlLoadMaterialLoad">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlLoadID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="DateLoaded" type="xsd:date" minOccurs="1" maxOccurs="1" />
                <xsd:element name="LoadItem" minOccurs="1" maxOccurs="unbounded">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="ProductionControlItemTruckID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                            <xsd:element name="Quantity" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                            <xsd:element name="InstanceNumbers" type="xsd:token" minOccurs="0" maxOccurs="1" />
                        </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqProductionControlLoadMaterialUnload">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlLoadID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="UnloadItem" minOccurs="1" maxOccurs="unbounded">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="ProductionControlItemTrucksLoadID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                            <xsd:element name="Quantity" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                            <xsd:element name="InstanceNumbers" type="xsd:token" minOccurs="0" maxOccurs="1" />
                        </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqProductionControlLoadMaterialReturn">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlLoadID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="DateReturned" type="xsd:date" minOccurs="1" maxOccurs="1" />
                <xsd:element name="ReturnItem" minOccurs="1" maxOccurs="unbounded">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="ProductionControlItemTruckID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                            <xsd:element name="Quantity" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                            <xsd:element name="InstanceNumbers" type="xsd:token" minOccurs="0" maxOccurs="1" />
                        </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqProductionControlLoadMaterialUnreturn">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlLoadID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="UnreturnItem" minOccurs="1" maxOccurs="unbounded">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="ProductionControlItemTrucksReturnID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                            <xsd:element name="Quantity" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                            <xsd:element name="InstanceNumbers" type="xsd:token" minOccurs="0" maxOccurs="1" />
                        </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqProductionControlLoadRemainingGetOptions">
    <xsd:sequence>
        <xsd:element name="SortOrder" minOccurs="0" maxOccurs="unbounded">
            <xsd:simpleType>
                <xsd:restriction base="xsd:token">
                    <xsd:enumeration value="DrawingNumber" />
                    <xsd:enumeration value="MainMark" />
                    <xsd:enumeration value="PieceMark" />
                    <xsd:enumeration value="Sequence" />
                    <xsd:enumeration value="LotNumber" />
                    <xsd:enumeration value="ShippingLengthEach" />
                    <xsd:enumeration value="ShippingWeightEach" />
                    <xsd:enumeration value="ShippingGrossWeightEach" />
                    <xsd:enumeration value="ShippingSurfaceAreaEach" />
                    <xsd:enumeration value="ShippingSquareMetersEach" />
                    <xsd:enumeration value="ManHoursEach" />
                    <xsd:enumeration value="ApprovalStatus" />
                    <xsd:enumeration value="QuantityRemaining" />
                    <xsd:enumeration value="Shape" />
                    <xsd:enumeration value="Grade" />
                    <xsd:enumeration value="Dimensions" />
                    <xsd:enumeration value="Length" />
                    <xsd:enumeration value="Finish" />
                    <xsd:enumeration value="ReferenceNumber" />
                    <xsd:enumeration value="Remark" />
                    <xsd:enumeration value="Route" />
                    <xsd:enumeration value="Category" />
                    <xsd:enumeration value="SubCategory" />
                    <xsd:enumeration value="PayCategory" />
                    <xsd:enumeration value="ShippingRoute" />
                    <xsd:enumeration value="AccessoryPieceTracking" />
                    <xsd:enumeration value="AccessoryLoadTracking" />
                    <xsd:enumeration value="InstanceTracking" />
                    <xsd:enumeration value="ProductionCode" />
                </xsd:restriction>
            </xsd:simpleType>
        </xsd:element>
        <xsd:element name="SortDescending" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Offset" type="xsd:integer" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Limit" type="xsd:integer" minOccurs="0" maxOccurs="1" />
        <xsd:element name="FilterSet" type="fsreqFilterSetSelections" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqProductionShippingProductivityGet">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="GetOptions" type="fsreqProductionShippingProductivityGetOptions" minOccurs="1" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqProductionShippingProductivityGetOptions">
    <xsd:sequence>
        <xsd:element name="StatusType" minOccurs="1" maxOccurs="1">
            <xsd:simpleType>
                <xsd:restriction base="xsd:token">
                    <xsd:enumeration value="production-station">
                        <xsd:annotation>
                            <xsd:documentation>
                                Requires either that Station appears in the GroupBy list or that the FilterSet has a restriction on a single station.
                            </xsd:documentation>
                        </xsd:annotation>
                    </xsd:enumeration>
                    <xsd:enumeration value="productivity-production-station" />
                    <xsd:enumeration value="field-station">
                        <xsd:annotation>
                            <xsd:documentation>
                                Requires either that Station appears in the GroupBy list or that the FilterSet has a restriction on a single station.
                            </xsd:documentation>
                        </xsd:annotation>
                    </xsd:enumeration>
                    <xsd:enumeration value="productivity-field-station" />
                    <xsd:enumeration value="shipping-destination">
                        <xsd:annotation>
                            <xsd:documentation>
                                Requires either that Destination Group appears in the GroupBy list or that the FilterSet has a restriction on a single destination group, destination, shipped to, or load number.
                            </xsd:documentation>
                        </xsd:annotation>
                    </xsd:enumeration>
                    <xsd:enumeration value="last-shipping-destination" />
                </xsd:restriction>
            </xsd:simpleType>
        </xsd:element>
        <xsd:element name="DateSummary" minOccurs="1" maxOccurs="1">
            <xsd:simpleType>
                <xsd:restriction base="xsd:token">
                    <xsd:enumeration value="day" />
                    <xsd:enumeration value="week" />
                    <xsd:enumeration value="month" />
                    <xsd:enumeration value="quarter" />
                    <xsd:enumeration value="year" />
                </xsd:restriction>
            </xsd:simpleType>
        </xsd:element>
        <xsd:element name="StartDate" type="xsd:date" minOccurs="1" maxOccurs="1" />
        <xsd:element name="EndDate" type="xsd:date" minOccurs="1" maxOccurs="1" />
        <xsd:element name="GroupBy" minOccurs="0" maxOccurs="unbounded">
            <xsd:simpleType>
                <xsd:restriction base="xsd:token">
                    <xsd:enumeration value="Job #" />
                    <xsd:enumeration value="Job Status" />
                    <xsd:enumeration value="Job Group Name" />
                    <xsd:enumeration value="Job Secondary Group Name" />
                    <xsd:enumeration value="Approval Status" />
                    <xsd:enumeration value="Drawing #" />
                    <xsd:enumeration value="Drawing Description" />
                    <xsd:enumeration value="Revision" />
                    <xsd:enumeration value="Release #" />
                    <xsd:enumeration value="Drawing Category" />
                    <xsd:enumeration value="Drawing Package #" />
                    <xsd:enumeration value="Main Mark" />
                    <xsd:enumeration value="Assembly Drawing Description" />
                    <xsd:enumeration value="Assembly Revision" />
                    <xsd:enumeration value="Assembly Release #" />
                    <xsd:enumeration value="Assembly Drawing Category" />
                    <xsd:enumeration value="Assembly Drawing Package #" />
                    <xsd:enumeration value="Piece Mark" />
                    <xsd:enumeration value="Part Drawing Description" />
                    <xsd:enumeration value="Part Revision" />
                    <xsd:enumeration value="Part Release #" />
                    <xsd:enumeration value="Part Drawing Category" />
                    <xsd:enumeration value="Part Drawing Package #" />
                    <xsd:enumeration value="Shape" />
                    <xsd:enumeration value="Shape &amp; Grade" />
                    <xsd:enumeration value="Shape, Grade, &amp; Size" />
                    <xsd:enumeration value="Finish" />
                    <xsd:enumeration value="Remark" />
                    <xsd:enumeration value="Category" />
                    <xsd:enumeration value="Sub-Category" />
                    <xsd:enumeration value="Pay Category" />
                    <xsd:enumeration value="Route" />
                    <xsd:enumeration value="Shipping Route" />
                    <xsd:enumeration value="Reference #" />
                    <xsd:enumeration value="Production Code" />
                    <xsd:enumeration value="Sequence" />
                    <xsd:enumeration value="Lot #" />
                    <xsd:enumeration value="Station" />
                    <xsd:enumeration value="Station Completed By" />
                    <xsd:enumeration value="Batch ID" />
                    <xsd:enumeration value="Destination Group" />
                    <xsd:enumeration value="Destination" />
                    <xsd:enumeration value="Load Shipped From" />
                    <xsd:enumeration value="Load Shipped To" />
                    <xsd:enumeration value="Load #" />
                </xsd:restriction>
            </xsd:simpleType>
        </xsd:element>
        <xsd:element name="FilterSet" type="fsreqFilterSetSelections" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqReceive">
    <xsd:annotation>
        <xsd:documentation>
            Receives material based on the Barcode Checklist receiving report in FabSuite.            
            
            Either ChecklistSerialNumber or Shape is required.
            
            If ChecklistSerialNumber is specified then SerialNumber is required and PONumber, Shape, Grade,
                Dimensions, Length, Job, Supplier, Remarks, ReferenceNumber, and Part # are ignored.
            If SerialNumber is not specified then the material to receive is identified by the combination
                of those fields that are specified.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ChecklistSerialNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Serial # from the FabSuite receiving report:  Barcode Checklist.
                            
                            Represents a set of values for:
                                PO #, Shape, Grade, Dimensions, Length.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="SerialNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Serial # of the barcode label placed on (or already attached to) the received material.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Quantity" type="xsd:integer" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Quantity to receive.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="PONumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The PO # of the material to receive.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Shape" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The shape of the material to receive.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Grade" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The grade of the material to receive.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Dimensions" type="fsDimensionsWithMetric" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The dimensions of the material to receive.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Length" type="fsDecimalWithUOM" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The length of the material to receive.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The Job # of the material to receive.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Supplier" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The Supplier of the material to receive.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="DeliveryDate" type="xsd:date" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The Expected Delivery Date of the material to receive.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Remarks" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The Remarks of the material to receive.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ReferenceNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The Reference # of the material to receive.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="PartNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The Part # of the material to receive.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="CountryOfOrigin" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The country of origin of the received material.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="MillOfOrigin" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The mill of origin of the received material.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="BillOfLadingNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The B/L # of the received material.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="HeatNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The heat # of the received material.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="HeatSerialNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The heat serial # of the received material.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Location" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The location to receive the material to.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="SecondaryLocation" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The secondary location to receive the material to.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ReceivingRemarks" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Remarks to associate with the received material.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqReceiveASN">
    <xsd:annotation>
        <xsd:documentation>
            Receives material based on a serial number from an ASN file that has been loaded into FabSuite.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="SerialNumber" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Serial # on the received material, must exist on an ASN that has been loaded into FabSuite.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Location" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The location to receive the material to.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="SecondaryLocation" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The secondary location to receive the material to.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ReceivingRemarks" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Remarks to associate with the received material.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqReceiveChecklistScan">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the details of a checklist serial #.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ChecklistSerialNumber" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Serial # from the FabSuite receiving report:  Barcode Checklist.
                            
                            Represents a set of values for:
                                PO #, Shape, Grade, Dimensions, Length.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqReturn">
    <xsd:annotation>
        <xsd:documentation>
            Returns or Un-Returns material from an intermediate shipping location (galvanizer, subcontractor, etc).
        
            Either ProductionControlID or JobNumber must be specified.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="CommitType" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Type of action:                    
                                Save -> Return
                                Delete -> Un-Return
                        </xsd:documentation>
                    </xsd:annotation>
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:token">
                            <xsd:enumeration value="Save" />
                            <xsd:enumeration value="Delete" />
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="MainMark" type="xsd:token" minOccurs="1" maxOccurs="1" />
                <xsd:element name="PieceMark" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Exclude this element when returning an assembly.
                            
                            Only specify this element for returning an accessory part.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Sequence" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="LotNumber" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="TruckNumber" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Truck/Load # that the material was shipped to the intermediate location on.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Quantity" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="InstanceNumbers" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="BarcodeSerialNumber" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="Date" type="xsd:date" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqSaveCNCFile">
    <xsd:annotation>
        <xsd:documentation>
            Saves a cnc file to the FabSuite database.
            
            CNCFormat and either CNCFileName or CNCData are required.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="CNCFileID" type="xsd:integer" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Unique identifier of the CNC file.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="CNCFormat" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The format of the CNC file.
                        </xsd:documentation>
                    </xsd:annotation>
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:token">
                            <xsd:enumeration value="DSTV" />
                            <xsd:enumeration value="DXF" />
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="CNCFileName" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Full path of the cnc file.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="CNCData" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Contents of the CNC file.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqSaveInspectionTestRecord">
    <xsd:annotation>
        <xsd:documentation>
            Saves an inspection test record.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="InspectionTestRecordID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            If specified then this record will be updated.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ParentInspectionTestRecordID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            If specified then the new record will be a follow-up to this parent test record.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="InspectionTestID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="InspectionTestVersionID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="TestDateTime" type="xsd:dateTime" minOccurs="1" maxOccurs="1" />
                <xsd:element name="InspectionTestSubject" type="fsreqInspectionTestSubject" minOccurs="0" maxOccurs="1" />
                <xsd:element name="Quantity" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="InstanceNumbers" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="TestHours" type="xsd:decimal" minOccurs="0" maxOccurs="1" />
                <xsd:element name="InspectionTestLocationID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="InspectorFirmContactID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
                <xsd:element name="TestRecordField" type="fsreqSaveInspectionTestRecord_TestRecordField" minOccurs="0" maxOccurs="unbounded" />
                <xsd:element name="TestRecordDocument" type="fsreqSaveInspectionTestRecord_TestRecordDocument" minOccurs="0" maxOccurs="unbounded" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqInspectionTestSubject">
    <xsd:annotation>
        <xsd:documentation>
            The subject of an inspection test.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
        <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
        <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="MainMark" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="PieceMark" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Sequence" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="LotNumber" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="LoadNumber" type="xsd:token" minOccurs="0" maxOccurs="1" />
        <xsd:element name="UserID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Employee" type="xsd:token" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqSaveInspectionTestRecord_TestRecordField">
    <xsd:annotation>
        <xsd:documentation>
            An inspection test record field value.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
        <xsd:element name="InspectionTestFieldID" type="xsd:integer" minOccurs="1" maxOccurs="1" />
        <xsd:element name="FieldInstance" type="xsd:integer" minOccurs="1" maxOccurs="1" />
        <xsd:element name="ValueID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Value" type="xsd:token" minOccurs="1" maxOccurs="1" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqSaveInspectionTestRecord_TestRecordDocument">
    <xsd:annotation>
        <xsd:documentation>
            An inspection test record document.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
        <xsd:element name="DocumentFilename" type="xsd:token" minOccurs="1" maxOccurs="1" />
        <xsd:element name="FileDataBase64" type="xsd:token" minOccurs="1" maxOccurs="1" />
        <xsd:element name="DocumentNotes" type="xsd:token" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqSaveNest">
    <xsd:annotation>
        <xsd:documentation>
            Saves the result of a nest performed in External Software to FabSuite.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="SourceApplication" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Name of application creating this nest.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="SourceApplicationVersion" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Version of source application.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="CreationDateTime" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Date/Time that nest was performed.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="CombinationRunID" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>FabSuite Combining Run that this Nest is for.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="RequisitionNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>FabSuite Requisition to add material for purchase</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="NestResult" type="fsreqNestResult" minOccurs="0" maxOccurs="unbounded" >
                    <xsd:annotation><xsd:documentation>Nest Result object</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="DeleteNestID" type="xsd:token" minOccurs="0" maxOccurs="unbounded">
                    <xsd:annotation><xsd:documentation>Delete the Nest with this ID</xsd:documentation></xsd:annotation>
                </xsd:element>
                </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqNestResult">
    <xsd:annotation>
        <xsd:documentation>
            A single nest to be saved by SaveNest command.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
        <xsd:element name="NestID" type="xsd:token" minOccurs="1" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Unique Identifer of this Nest.  If nest generates an error, it will be returned as NestGUID</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="NestExtra1" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Extra field 1 for external extra data</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="NestExtra2" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Extra field 2 for external extra data</xsd:documentation></xsd:annotation>
        </xsd:element>        
        <xsd:element name="NestImageFilename" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Filename to store nest images as</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="NestImageBase64" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Base64 text of nest image.</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="Quantity" type="xsd:integer" minOccurs="1" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Number of times this nest is to be cut.</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="MaterialUsed" type="fsreqMaterialUsed" minOccurs="1" maxOccurs="1" >
            <xsd:annotation><xsd:documentation>Material Used Object</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="Remnant" type="fsreqRemnant" minOccurs="0" maxOccurs="unbounded" >
            <xsd:annotation><xsd:documentation>List of remnant objects</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="NestedParts" type="fsreqNestedParts" minOccurs="1" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Nested Parts object</xsd:documentation></xsd:annotation>
        </xsd:element>                
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqMaterialUsed">
    <xsd:annotation>
        <xsd:documentation>
            A piece of material to be reserved in inventory or ordered for this nest.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
        <xsd:element name="ExternalInventoryID" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Inventory ID of this material in external software.</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="FabSuiteInventoryID" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Inventory ID of this material in FabSuite.</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="ShapeDimensions" type="fsDimensionsWithMetric" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Name of Material.  ShapeDimensions OR Shape and Dimensions is required.</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="Shape" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Shape of Material. ShapeDimensions OR Shape and Dimensions is required.</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="Dimensions" type="fsDimensionsWithMetric" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Dimensions of material.  When combined with shape, it denotes the ShapeDimensions. </xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="Grade" type="xsd:token" minOccurs="1" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Grade of material.</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="Length" type="fsDecimalWithUOM" minOccurs="1" maxOccurs="1">
            <xsd:annotation><xsd:documentation>The length of the material.</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="Width" type="fsDecimalWithUOM" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>The width of the material used (for plate).</xsd:documentation></xsd:annotation>
        </xsd:element>
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqRemnant">
    <xsd:annotation>
        <xsd:documentation>
            A remnant created by this nest in the SaveNest command.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
        <xsd:element name="RemnantID" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>FabSuite RemnantID assigned to this remnant.</xsd:documentation></xsd:annotation>
        </xsd:element>        
        <xsd:element name="Type"  minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>The type of remnant created.</xsd:documentation></xsd:annotation>
            <xsd:simpleType>
                <xsd:restriction base="xsd:token">
                    <xsd:enumeration value="Skeleton" />
                    <xsd:enumeration value="Remnant" />
                    <xsd:enumeration value="Scrap" />
                </xsd:restriction>
            </xsd:simpleType>
        </xsd:element>
        <xsd:element name="ShapeDimensions" type="fsDimensionsWithMetric" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Name of Material.  ShapeDimensions OR Shape and Dimensions is required.</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="Shape" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Shape of Remnant - should match Shape of MaterialUsed.  ShapeDimensions OR Shape and Dimensions is required.</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="Dimensions" type="fsDimensionsWithMetric" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Dimensions of remnant.  </xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="Grade" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Grade of material.</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="Length" type="fsDecimalWithUOM" minOccurs="1" maxOccurs="1">
            <xsd:annotation><xsd:documentation>The length of the material.</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="Width" type="fsDecimalWithUOM" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>The width of the material when it's a plate.</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="Area" type="fsDecimalWithUOM" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>The area of the remnant if it's a plate.</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="Weight" type="fsDecimalWithUOM" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>The weight of the remnant.</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="Quantity" type="xsd:integer" minOccurs="1" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Quantity of remnant.</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="RemnantImageFilename" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Filename to store remnant images as</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="RemnantImageBase64" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Base64 text of remnant image.</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="RemnantDefinitionFilename" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Filename to store remnant definition as.</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="RemnantDefinition" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Text of remnant image.</xsd:documentation></xsd:annotation>
        </xsd:element>
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqNestedParts">
    <xsd:annotation>
        <xsd:documentation>
            A collection of parts on a Nest in SaveNest command.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
        <xsd:element name="NestPart" type="fsreqNestPart" minOccurs="1" maxOccurs="unbounded" >
            <xsd:annotation><xsd:documentation>One part on a nest</xsd:documentation></xsd:annotation>
        </xsd:element>
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqNestPart">
    <xsd:annotation>
        <xsd:documentation>
            A single part that is nested on to material in this nest on SaveNest command
        </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
        <xsd:element name="JobNumber" type="xsd:token" minOccurs="1" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Job this part is on.</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="MainMark" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Shape of Part.</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="PieceMark" type="xsd:token" minOccurs="1" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Piecemark of Part.</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="Sequence" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Sequence of Part.</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="LotNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Lot of Part.</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="Length" type="fsDecimalWithUOM" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>The length of the material. Best practice is to include, but only required if FabSuite does not have this job.</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="Width" type="fsDecimalWithUOM" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>The width of the material when it's a plate. Best practice is to include, but only required if FabSuite does not have this job.</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="Quantity" type="xsd:token" minOccurs="1" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Quantity of Part.</xsd:documentation></xsd:annotation>
        </xsd:element>
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqSaveTimeTrackingRecord">
    <xsd:annotation>
        <xsd:documentation>
            Adds a time tracking record.
        
            Either ProductionControlID or JobNumber must be specified.
            Either StartDate or StartDateTime must be specified.
            If StartDateTime is specified then EndDateTime must also be included.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="EmployeeUserID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="TaskID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="StationID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="SubjectFields" type="fsreqSaveTimeTrackingRecord_SubjectFields" minOccurs="0" maxOccurs="1" />
                <xsd:element name="StartDate" type="xsd:date" minOccurs="0" maxOccurs="1" />
                <xsd:element name="StartDateTime" type="xsd:dateTime" minOccurs="0" maxOccurs="1" />
                <xsd:element name="EndDateTime" type="xsd:dateTime" minOccurs="0" maxOccurs="1" />
                <xsd:element name="RegularHours" type="xsd:decimal" minOccurs="0" maxOccurs="1" />
                <xsd:element name="OvertimeHours" type="xsd:decimal" minOccurs="0" maxOccurs="1" />
                <xsd:element name="Overtime2Hours" type="xsd:decimal" minOccurs="0" maxOccurs="1" />
                <xsd:element name="DeductionHours" type="xsd:decimal" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqSaveTimeTrackingRecord_SubjectFields">
    <xsd:annotation>
        <xsd:documentation>
            The fields identifying the subject of the time tracking record.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
        <xsd:element name="SubjectField" type="fsreqSaveTimeTrackingRecord_SubjectFields_SubjectField" minOccurs="0" maxOccurs="unbounded" />            
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqSaveTimeTrackingRecord_SubjectFields_SubjectField">
    <xsd:annotation>
        <xsd:documentation>
            One of the fields identifying the subject of the time tracking record.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
        <xsd:element name="FieldName" minOccurs="0" maxOccurs="1">
            <xsd:simpleType>
                <xsd:restriction base="xsd:token">
                    <xsd:enumeration value="Sequence" />
                    <xsd:enumeration value="LotNumber" />
                    <xsd:enumeration value="Category" />
                    <xsd:enumeration value="SubCategory" />
                    <xsd:enumeration value="PayCategory" />
                    <xsd:enumeration value="MainMark" />
                    <xsd:enumeration value="PieceMark" />
                    <xsd:enumeration value="UserDefined1" />
                    <xsd:enumeration value="UserDefined2" />
                    <xsd:enumeration value="UserDefined3" />
                    <xsd:enumeration value="UserDefined4" />
                    <xsd:enumeration value="UserDefined5" />
                </xsd:restriction>
            </xsd:simpleType>
        </xsd:element>
        <xsd:element name="Value" type="xsd:token" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqSetAssemblyAssociation">
    <xsd:annotation>
        <xsd:documentation>
            Sets the association between one or more instances of an accessory part with an instance of the assembly.
        
            Either ProductionControlID or JobNumber must be specified.
            Either AssemblyInstanceNumber or AssemblySerialNumber must be specified.
            Either AccessoryInstanceNumbers or (AccessorySerialNumber and AccessoryQuantity) must be specified.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="MainMark" type="xsd:token" minOccurs="1" maxOccurs="1" />
                <xsd:element name="Sequence" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="LotNumber" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="AssemblyInstanceNumber" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="AssemblySerialNumber" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="AccessoryPieceMark" type="xsd:token" minOccurs="1" maxOccurs="1" />
                <xsd:element name="AccessoryQuantity" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="AccessoryInstanceNumbers" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="AccessorySerialNumber" type="xsd:token" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqSetCutListItemNestID">
    <xsd:annotation>
        <xsd:documentation>
            At least one CutListItem must be defined
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="SourceApplication" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Name of application creating this nest.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="SourceApplicationVersion" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Version of source application.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="CreationDateTime" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Date/Time that nest was performed.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="CutListItem" type="fsreqCutListItem" minOccurs="1" maxOccurs="unbounded" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqCutListItem">
    <xsd:annotation>
        <xsd:documentation>
            A CutListItem for the SetCutListItemNestID command
        </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
        <xsd:element name="CutListItemID" type="xsd:token" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    CutListID that is set from GetCutList command
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="NestID" type="xsd:token" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Nest ID in external software (a Nest GUID)
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="NestExtra1" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Extra field 1 for external extra data
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="NestExtra2" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    Extra field 2 for external extra data
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>        
        <xsd:element name="CalculateRemnant" type="xsd:boolean" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    FabSuite automatically calculate remnant.  If included and false and remnant type is omitted, remnant is zero.
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="Remnant" type="fsreqRemnant" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqSetInstanceLocation">
    <xsd:annotation>
        <xsd:documentation>
            Sets the location of a part instance.
        
            Either ProductionControlID or JobNumber must be specified.
            Either InstanceNumbers or (SerialNumber and Quantity) must be specified.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="MainMark" type="xsd:token" minOccurs="1" maxOccurs="1" />
                <xsd:element name="PieceMark" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="Sequence" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="LotNumber" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="Quantity" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="SerialNumber" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="InstanceNumbers" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="InstanceLocation" type="xsd:token" minOccurs="1" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqShip">
    <xsd:annotation>
        <xsd:documentation>
            Ships or Un-Ships a load.
        
            Either ProductionControlID or JobNumber must be specified.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="CommitType" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Type of action.
                        </xsd:documentation>
                    </xsd:annotation>
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:token">
                            <xsd:enumeration value="Ship" />
                            <xsd:enumeration value="Un-Ship" />
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="TruckNumber" type="xsd:token" minOccurs="1" maxOccurs="1" />
                <xsd:element name="Date" type="xsd:date" minOccurs="1" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqShopFloorSave">
    <xsd:annotation>
        <xsd:documentation>
            Adds or Deletes the record of an assembly/part having completed a tracking station.
        
            Either ProductionControlID or JobNumber must be specified.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="CommitType" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Type of action.
                        </xsd:documentation>
                    </xsd:annotation>
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:token">
                            <xsd:enumeration value="Save" />
                            <xsd:enumeration value="Delete" />
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1" >
                    <xsd:annotation><xsd:documentation>Production Control ID</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1" >
                    <xsd:annotation><xsd:documentation>Job Number</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="MainMark" type="xsd:token" minOccurs="1" maxOccurs="1" >
                    <xsd:annotation><xsd:documentation>Main Mark</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="PieceMark" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Exclude this element when returning an assembly. Only specify this element for an accessory part.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="Sequence" type="xsd:token" minOccurs="0" maxOccurs="1" >
                    <xsd:annotation><xsd:documentation>Sequence</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="LotNumber" type="xsd:token" minOccurs="0" maxOccurs="1" >
                    <xsd:annotation><xsd:documentation>Lot Number</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="Station" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Tracking station that has been completed or should be deleted.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="Quantity" type="xsd:integer" minOccurs="1" maxOccurs="1" >
                    <xsd:annotation><xsd:documentation>Quantity</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="InstanceNumbers" type="xsd:token" minOccurs="0" maxOccurs="1" >
                    <xsd:annotation><xsd:documentation>Instance Numbers</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="BarcodeSerialNumber" type="xsd:token" minOccurs="0" maxOccurs="1" >
                    <xsd:annotation><xsd:documentation>Barcode Serial Number</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="Employee" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Employee that completed the work.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="Date" type="xsd:date" minOccurs="1" maxOccurs="1" >
                    <xsd:annotation><xsd:documentation>Date work completed</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="Hours" type="xsd:decimal" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Number of hours to complete the work.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="BatchID" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Batch of work.</xsd:documentation></xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqSplicePackageTFS">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="NestSolutionID" type="xsd:integer" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Unique ID of the splice package being cut.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeAllRequired" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            If true, then all of the required stock records are to be joined and cut.
                            If false, then NestSolutionRequiredID and NestSolutionRequiredQuantity must be populated with the specific stock records and quantities to join and cut.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="NestSolutionRequiredID" type="xsd:integer" minOccurs="0" maxOccurs="unbounded">
                    <xsd:annotation>
                        <xsd:documentation>
                            If IncludeAllRequired is false, the required stock records that are to be joined and cut.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="NestSolutionRequiredQuantity" type="xsd:integer" minOccurs="0" maxOccurs="unbounded">
                    <xsd:annotation>
                        <xsd:documentation>
                            If IncludeAllRequired is false, the quantities of the required stock records that are to be joined and cut.
                            Must have the same number of elements as NestSolutionRequiredID.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="TFSResult" type="fsreqNestSolutionTFSResult" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            If IncludeAllRequired is false, the quantities of the required stock records that are to be joined and cut.
                            Must have the same number of elements as NestSolutionRequiredID.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>            
                <xsd:element name="PieceTrackingUserID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Identifies the user to record the records for piece tracking purposes.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="PieceTrackingHours" type="xsd:decimal" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The number of hours to record for piece tracking purposes.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="PieceTrackingBatchID" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The BatchID value to record for piece tracking purposes.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="JoinToLocation" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The intermediate location where the stock will be joined into the long length.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="JoinToSecondaryLocation" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The intermediate secondary location where the stock will be joined into the long length.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>                
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqSplitPackageTFS">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="NestSolutionID" type="xsd:integer" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Unique ID of the splice package being cut.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeAllRequired" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            If true, then all of the required stock records are to be joined and cut.
                            If false, then NestSolutionRequiredID and NestSolutionRequiredQuantity must be populated with the specific stock records and quantities to join and cut.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="NestSolutionRequiredID" type="xsd:integer" minOccurs="0" maxOccurs="unbounded">
                    <xsd:annotation>
                        <xsd:documentation>
                            If IncludeAllRequired is false, the required stock records that are to be joined and cut.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="NestSolutionRequiredQuantity" type="xsd:integer" minOccurs="0" maxOccurs="unbounded">
                    <xsd:annotation>
                        <xsd:documentation>
                            If IncludeAllRequired is false, the quantities of the required stock records that are to be joined and cut.
                            Must have the same number of elements as NestSolutionRequiredID.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="TFSResult" type="fsreqNestSolutionTFSResult" minOccurs="2" maxOccurs="2">
                    <xsd:annotation>
                        <xsd:documentation>
                            If IncludeAllRequired is false, the quantities of the required stock records that are to be joined and cut.
                            Must have the same number of elements as NestSolutionRequiredID.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>            
                <xsd:element name="PieceTrackingUserID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Identifies the user to record the records for piece tracking purposes.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="PieceTrackingHours" type="xsd:decimal" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The number of hours to record for piece tracking purposes.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="PieceTrackingBatchID" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The BatchID value to record for piece tracking purposes.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>            
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>


<xsd:complexType name="fsreqNestSolutionTFSResult">
    <xsd:sequence>
        <xsd:element name="NestSolutionResultID" type="xsd:token" minOccurs="0" maxOccurs="1">
        <xsd:annotation>
                <xsd:documentation>
                    If true, then all of the result parts are to be cut.
                    If false, then NestSolutionResultPartID and NestSolutionResultPartQuantity must be populated with the specific result parts and quantities to cut.
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="IncludeAllResultParts" type="xsd:boolean" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    If true, then all of the result parts are to be cut.
                    If false, then NestSolutionResultPartID and NestSolutionResultPartQuantity must be populated with the specific result parts and quantities to cut.
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="NestSolutionResultPartID" type="xsd:integer" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>
                    If IncludeAllResultParts is false, the result part records that are to be cut.
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="NestSolutionResultPartQuantity" type="xsd:integer" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>
                    If IncludeAllResultParts is false, the quantities of the result part records that are to be cut.
                    Must have the same number of elements as NestSolutionResultPartID.
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="ResultLocation" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    The location for the nest solution result.
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="ResultSecondaryLocation" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    The secondary location for the nest solution result.
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="Drop" type="fsreqNestSolutionTFSDrop" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>
                    The drop that is remaining after the cuts are complete.
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>            
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqNestSolutionTFSDrop">
    <xsd:sequence>
        <xsd:element name="Length" type="xsd:decimal" minOccurs="1" maxOccurs="1" >
            <xsd:annotation>
                <xsd:documentation>
                    Length of drop
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1" >
            <xsd:annotation>
                <xsd:documentation>
                    Job Number of Drop
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="Location" type="xsd:token" minOccurs="0" maxOccurs="1" >
            <xsd:annotation>
                <xsd:documentation>
                    Location of Drop
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="SecondaryLocation" type="xsd:token" minOccurs="0" maxOccurs="1" >
            <xsd:annotation>
                <xsd:documentation>
                    Secondary Location of Drop
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="UseStockDetailsFromNestSolutionRequiredID" type="xsd:integer" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    If specified, then the drop will use the supplier, po number, and heat number of that required stock record.
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="AddBackToNestSolution" type="xsd:boolean" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    If true, and if only a portion of the total splice package is being cut, then the drop is added back to the original splice package for further processing.
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqTFSCut">
    <xsd:annotation>
        <xsd:documentation>
            Processes a Take From Stock (Cut).
        
            Either CutListItemID or CutListSerialNumber must be specified.
            Either InventorySerialNumber or (PONumber AND HeatNumber) must be specified.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="CutListItemID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Unique ID of the cutting detail on a cut list.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="CutListSerialNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Serial number from the FabSuite report: Shop PC/PO Cutting List w/ Barcodes.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="ExternalNestID" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Index into ExternalNests table for nest being cut.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="NestID" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Nest ID or barcode for nest being cut.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="InventorySerialNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Serial number of the inventory stock used.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="PONumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>PO # of the inventory stock used.  Has no effect if InventorySerialNumber is specified.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="BillOfLadingNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>B/L # of the inventory stock used.  Has no effect if InventorySerialNumber is specified.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="CountryOfOrigin" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Country of origin of the inventory stock used.  Has no effect if InventorySerialNumber is specified.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="HeatNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Heat # of the inventory stock used.  Has no effect if InventorySerialNumber is specified.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="HeatSerialNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Heat Serial # of the inventory stock used.  Has no effect if InventorySerialNumber is specified.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="Location" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Inventory location of the inventory stock used.  Has no effect if InventorySerialNumber is specified.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="SecondaryLocation" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Inventory secondary location of the inventory stock used.  Has no effect if InventorySerialNumber is specified.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="PartNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Inventory part # of the inventory stock used.  Has no effect if InventorySerialNumber is specified.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="Quantity" type="xsd:integer" minOccurs="1" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Quantity to cut.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="CutAll" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>
                            true - Cut all parts even if they did not match the filter specified by the cut list.
                            false - Only cut the parts that match the cut list filter.
                        </xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="PieceTrackingUsername" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Employee that completed the work.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="PieceTrackingHours" type="xsd:decimal" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Number of hours to complete the work.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="PieceTrackingBatchID" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Batch of work.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="OverrideExternalNestDrop" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>If true, takes the info in drop width/length as rectangular drops rather than info in External Nest Result Remnant.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="DropSerialNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The stock serial # to use for the drop.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="DropJobReserve" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation><xsd:documentation>Job # that the drop should be reserved for.</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="DropWidth" type="fsDecimalWithUOM" minOccurs="0" maxOccurs="1" >
                    <xsd:annotation><xsd:documentation>Width of drop from TFS Cut</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="DropLength" type="fsDecimalWithUOM" minOccurs="0" maxOccurs="1" >
                    <xsd:annotation><xsd:documentation>Length of drop from TFS Cut</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="DropLocation" type="xsd:token" minOccurs="0" maxOccurs="1" >
                    <xsd:annotation><xsd:documentation>Location of drop from TFS Cut</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="DropSecondaryLocation" type="xsd:token" minOccurs="0" maxOccurs="1" >
                    <xsd:annotation><xsd:documentation>Secondary Location of drop from TFS Cut</xsd:documentation></xsd:annotation>
                </xsd:element>
                <xsd:element name="AdditionalDrop" type="fsreqAdditionalDrop" minOccurs="0" maxOccurs="unbounded" >
                    <xsd:annotation><xsd:documentation>Additional drops generated by TFS Cut</xsd:documentation></xsd:annotation>
                </xsd:element>                
                <xsd:element name="PartSerialNumbers" type="fsreqPartSerialNumbers" minOccurs="0" maxOccurs="1" >
                    <xsd:annotation><xsd:documentation>Serial numbers of parts cut.</xsd:documentation></xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqAdditionalDrop">
    <xsd:annotation>
        <xsd:documentation>
            The TFSCut command has elements for a single piece of drop from the cut.
            
            This element represents additional drops from the same cut.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
        <xsd:element name="DropSerialNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
                <xsd:documentation>
                    The stock serial # to use for the drop.
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="DropJobReserve" type="xsd:token" minOccurs="0" maxOccurs="1">
            <xsd:annotation><xsd:documentation>Job # that the drop should be reserved for.</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="DropWidth" type="fsDecimalWithUOM" minOccurs="0" maxOccurs="1" >
            <xsd:annotation><xsd:documentation>Width of additional drop from TFS Cut</xsd:documentation></xsd:annotation>
        </xsd:element>        
        <xsd:element name="DropLength" type="fsDecimalWithUOM" minOccurs="0" maxOccurs="1" >
            <xsd:annotation><xsd:documentation>Length of additional drop from TFS Cut</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="DropLocation" type="xsd:token" minOccurs="0" maxOccurs="1" >
            <xsd:annotation><xsd:documentation>Location of additional drop from TFS Cut</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="DropSecondaryLocation" type="xsd:token" minOccurs="0" maxOccurs="1" >
            <xsd:annotation><xsd:documentation>Secondary Location of additional drop from TFS Cut</xsd:documentation></xsd:annotation>
        </xsd:element>
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqPartSerialNumbers">
    <xsd:annotation>
        <xsd:documentation>
            The set of barcode serial numbers being applied to the parts from a TFSCut command.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
        <xsd:element name="PartSerialNumber" type="fsreqPartSerialNumber" minOccurs="0" maxOccurs="unbounded" >
            <xsd:annotation><xsd:documentation>Serial Number object</xsd:documentation></xsd:annotation>
        </xsd:element>
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqPartSerialNumber">
    <xsd:annotation>
        <xsd:documentation>
            The set of barcode serial numbers being applied to a part from a TFSCut command.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
        <xsd:element name="JobNumber" type="xsd:token" minOccurs="1" maxOccurs="1" >
            <xsd:annotation><xsd:documentation>Job Number of part from TFSCut command.</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="MainMark" type="xsd:token" minOccurs="1" maxOccurs="1" >
            <xsd:annotation><xsd:documentation>Main Mark of part from TFSCut command.</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="PieceMark" type="xsd:token" minOccurs="1" maxOccurs="1" >
            <xsd:annotation><xsd:documentation>Piece Mark of part from TFSCut command.</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="Sequence" type="xsd:token" minOccurs="0" maxOccurs="1" >
            <xsd:annotation><xsd:documentation>Sequence of part from TFSCut command.</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="LotNumber" type="xsd:token" minOccurs="0" maxOccurs="1" >
            <xsd:annotation><xsd:documentation>Lot Number of part from TFSCut command.</xsd:documentation></xsd:annotation>
        </xsd:element>
        <xsd:element name="SerialNumber" type="xsd:token" minOccurs="1" maxOccurs="unbounded" >
            <xsd:annotation><xsd:documentation>List of serial numbers to be applied to part from TFSCut command.</xsd:documentation></xsd:annotation>
        </xsd:element>
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqTFSManual">
    <xsd:annotation>
        <xsd:documentation>
            Processes a manual Take From Stock on a piece of inventory stock.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="InventorySerialNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Serial # of the barcode label on the inventory material.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Quantity" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The quantity to TFS.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Shape" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The shape of the material to TFS.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Grade" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The grade of the material to TFS.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Dimensions" type="fsDimensionsWithMetric" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The dimensions of the material to TFS.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Length" type="fsDecimalWithUOM" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The length of the material to TFS.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The Job # of the material to TFS.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Supplier" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The Supplier of the material to TFS.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="PONumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The PO # of the material to TFS.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="BillOfLadingNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The B/L # of the material to TFS.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="CountryOfOrigin" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The country of origin of the material to TFS.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="MillOfOrigin" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The mill of origin of the material to TFS.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="HeatNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The Heat # of the material to TFS.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="HeatSerialNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The Heat Serial # of the material to TFS.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Location" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The Location of the material to TFS.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="SecondaryLocation" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The Secondary Location of the material to TFS.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="DeliveryDate" type="xsd:date" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The Delivery Date of the material to TFS.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Remarks" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The Remarks of the material to TFS.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ReferenceNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The Reference # of the material to TFS.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="PartNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The Part # of the material to TFS.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="TFSDate" type="xsd:date" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The date of the TFS operation.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="TFSJobNumber" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The job to take the material from stock.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="TFSSequence" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The sequence to take the material from stock.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="TFSLotNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The lot to take the material from stock.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="TFSCategory" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The category to take the material from stock.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="TFSSubCategory" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The sub-category to take the material from stock.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="TFSReleaseNumber" type="xsd:decimal" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The release # to take the material from stock.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ProductionControlLoadID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            If specified, then the production load to add the stock to.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="RTSJobNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            The job to reserve the drop for.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="RTSLength" type="fsDecimalWithUOM" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The drop length.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="RTSLocation" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The location the drop is returned to.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="RTSSecondaryLocation" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>The secondary location the drop is returned to.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="FromManualTFS" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>Restrict the available inventory items to TFS to those that are unreserved, uncombined or have no length field.</xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqTransmittalGet">
    <xsd:annotation>
        <xsd:documentation>
            ProjectID, ProductionControlID, or TransmittalID must be specified.
            If LastLogID is specified then the result will only include the records that have changed since that log position.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProjectID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="TransmittalID" type="xsd:integer" minOccurs="0" maxOccurs="unbounded" />
                <xsd:element name="LastLogID" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="GetOptions" type="fsreqTransmittalGetOptions" minOccurs="0" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqTransmittalGetOptions">
    <xsd:sequence>
        <xsd:element name="IncludeFirmDetails" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
        <xsd:element name="SortOrder" minOccurs="0" maxOccurs="unbounded">
            <xsd:simpleType>
                <xsd:restriction base="xsd:token">
                    <xsd:enumeration value="TransmittalNumber" />
                    <xsd:enumeration value="TransmittalDate" />
                    <xsd:enumeration value="FirmName" />
                    <xsd:enumeration value="FirmContactName" />
                    <xsd:enumeration value="Attn" />
                    <xsd:enumeration value="Title" />
                    <xsd:enumeration value="Sending" />
                    <xsd:enumeration value="Type" />
                    <xsd:enumeration value="NumberOfPrints" />
                    <xsd:enumeration value="PrintsToReturn" />
                    <xsd:enumeration value="NumberOfSets" />
                    <xsd:enumeration value="SentBy" />
                    <xsd:enumeration value="CopyTo" />
                    <xsd:enumeration value="Remarks" />
                    <xsd:enumeration value="StandardText" />
                    <xsd:enumeration value="ReturnDate" />
                    <xsd:enumeration value="SentVia" />
                    <xsd:enumeration value="NumberOfDrawings" />
                    <xsd:enumeration value="NumberOfOutstandingDrawings" />
                    <xsd:enumeration value="LastDateReceived" />
                    <xsd:enumeration value="TransmittalItems" />
                    <xsd:enumeration value="TransmittalPurposes" />
                </xsd:restriction>
            </xsd:simpleType>
        </xsd:element>
        <xsd:element name="SortDescending" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Offset" type="xsd:integer" minOccurs="0" maxOccurs="1" />
        <xsd:element name="Limit" type="xsd:integer" minOccurs="0" maxOccurs="1" />
        <xsd:element name="FilterSet" type="fsreqFilterSetSelections" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="fsreqUserPartialGet">
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="UserID" type="xsd:integer" minOccurs="0" maxOccurs="unbounded" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqValCutListItem">
    <xsd:annotation>
        <xsd:documentation>
            Validates that a cutting detail and inventory stock is valid.
        
            Either CutListItemID or CutListSerialNumber must be specified.
            Either InventorySerialNumber or (PONumber AND HeatNumber) must be specified.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="CutListItemID" type="xsd:integer" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Unique ID of the cutting detail on a cut list.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="CutListSerialNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Serial number from the FabSuite report: Shop PC/PO Cutting List w/ Barcodes.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ExernalNestID" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Index into ExternalNests table for nest being cut.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="NestID" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Nest ID or barcode for nest being cut.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="InventorySerialNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Serial number of the inventory stock used.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="PONumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            PO # of the inventory stock used.  Has no effect if InventorySerialNumber is specified.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="BillOfLadingNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            B/L # of the inventory stock used.  Has no effect if InventorySerialNumber is specified.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="CountryOfOrigin" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Country of origin of the inventory stock used.  Has no effect if InventorySerialNumber is specified.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="HeatNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Heat # of the inventory stock used.  Has no effect if InventorySerialNumber is specified.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="HeatSerialNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Heat Serial # of the inventory stock used.  Has no effect if InventorySerialNumber is specified.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Location" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Inventory location of the inventory stock used.  Has no effect if InventorySerialNumber is specified.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="SecondaryLocation" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Inventory secondary location of the inventory stock used.  Has no effect if InventorySerialNumber is specified.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="PartNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Inventory part # of the inventory stock used.  Has no effect if InventorySerialNumber is specified.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ValidateForCut" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            true - Does an extra step of validation to make sure that the inventory material is in stock and ready to be cut.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeCutListItemParts" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            true - Information on the parts in the cutting detail will be retrieved.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="IncludeCNCData" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            true - CNC data will be retrieved for the parts on the cutting detail.
                            
                            Has no effect if IncludeCutListItemParts=false.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqValInventory">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the details of an inventory serial #.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="SerialNumber" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Serial number of the inventory stock.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqValJob">
    <xsd:annotation>
        <xsd:documentation>
            Validates that the specified production job exists.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Job # to validate.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqValStation">
    <xsd:annotation>
        <xsd:documentation>
            Validates that the specified tracking station exists.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="Station" type="xsd:token" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Station to validate.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqValTruck">
    <xsd:annotation>
        <xsd:documentation>
            Validates that a truck/load exists, optionally adds it if it does not exist.
        
            Either ProductionControlID or JobNumber must be specified.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="ProductionControlID" type="xsd:integer" minOccurs="0" maxOccurs="1" />
                <xsd:element name="JobNumber" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="TruckNumber" type="xsd:token" minOccurs="1" maxOccurs="1" />
                <xsd:element name="DestinationGroup" type="xsd:token" minOccurs="0" maxOccurs="1" />
                <xsd:element name="Destination" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            If the truck does not exist and is created:
                            
                                The destination of the load.
                                
                                Intermediate Destination: Company code of the intermediate shipping destination.
                                Jobsite: Blank or 'Jobsite'
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ShippedFromFirm" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            If the truck does not exist and is created:
                            
                                The name of the firm that the load is being shipped from.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ToBeReturned" type="xsd:boolean" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            If the truck does not exist and is created, and the destination is an intermediate location:
                            
                                Indicates if the material on the load is going to be returned to the shop before being
                                shipped to the jobsite.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="ActionIfNotExist" minOccurs="1" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            Action if the truck does not exist and is created.
                        </xsd:documentation>
                    </xsd:annotation>
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:token">
                            <xsd:enumeration value="Nothing" />
                            <xsd:enumeration value="Add" />
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="TrailerNumber" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            If the truck does not exist and is created:
                            
                                The trailer number of the load.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Carrier" type="xsd:token" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            If the truck does not exist and is created:
                            
                                The carrier.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Capacity" type="fsDecimalWithUOM" minOccurs="0" maxOccurs="1">
                    <xsd:annotation>
                        <xsd:documentation>
                            If the truck does not exist and is created:
                            
                                The capacity of the truck.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqValUser">
    <xsd:annotation>
        <xsd:documentation>
            Validates that a user exists.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
            <xsd:sequence>
                <xsd:element name="Username" type="xsd:token" minOccurs="1" maxOccurs="1" />
            </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fsreqVersion">
    <xsd:annotation>
        <xsd:documentation>
            Retrieves the version number of the API.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
        <xsd:extension base="fsreqCommand">
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

</xsd:schema>
 

Was this helpful?
The feedback you give here is not visible to other users. We use your comments to improve the content.