<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="formula" nillable="true" type="Formula" />
  <xs:complexType name="Formula">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="version" nillable="true" type="xs:string" />
      <xs:element minOccurs="1" maxOccurs="1" name="itemId" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>External reference of the item (as known in CAS in article master data). Unique identifier of the produced item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="documentReference" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Reference to the document that triggered the creation of the formula version</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="activeFromDate" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="activeUntilDate" nillable="true" type="xs:string" />
      <xs:element minOccurs="1" maxOccurs="1" name="quantity" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Quantity of the (semi-)produced product</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="uom" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Unit of measure in which the quantity is defined</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="processingType" nillable="true" type="ProcessingTypeEnum" />
      <xs:element minOccurs="1" maxOccurs="1" name="formulaLines" type="ArrayOfFormulaLine">
        <xs:annotation>
          <xs:documentation>List of formula lines</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="storageLocationReference" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>External reference of the storage location</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="ProcessingTypeEnum">
    <xs:restriction base="xs:string">
      <xs:enumeration value="0" />
      <xs:enumeration value="1" />
      <xs:enumeration value="2" />
      <xs:enumeration value="4" />
      <xs:enumeration value="5" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ArrayOfFormulaLine">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="formulaLine" nillable="true" type="FormulaLine" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="FormulaLine">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="itemId" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Unique technical identifier of the formula line</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="quantity" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Quantity of the material/semi-finished product</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="uom" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Unit of measure in which the quantity is defined</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:schema>