<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:include schemaLocation="errors.xsd"/>
  <xs:element name="reply">
    <xs:complexType>
      <xs:choice>
        <xs:sequence>
          <xs:element name="command">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="progress">
                  <xs:complexType>
                    <xs:sequence>
                      <xs:element type="xs:nonNegativeInteger" name="value"/>
                    </xs:sequence>
                  </xs:complexType>
                </xs:element>
                <xs:group ref="exception" minOccurs="0"/>
              </xs:sequence>
              <xs:attribute type="xs:long" name="id"/>
              <xs:attribute name="state">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:enumeration value="setup"/>
                    <xs:enumeration value="in_progress"/>
                    <xs:enumeration value="successful"/>
                    <xs:enumeration value="error"/>
                    <xs:enumeration value="fatal"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
              <xs:attribute type="xs:string" name="name"/>
              <xs:attribute type="xs:string" name="target"/>
              <xs:attribute type="xs:string" name="institution"/>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
        <xs:group ref="allErrors"/>
      </xs:choice>
      <xs:attribute type="xs:string" name="status"/>
      <xs:attribute name="user" type="xs:string"/>
      <xs:attribute name="ownerExternalId" type="xs:string"/>
      <xs:attribute name="responseTimestamp" type="xs:string"/>
    </xs:complexType>
  </xs:element>
</xs:schema>
