<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:include schemaLocation="types.xsd"/>
  <xs:include schemaLocation="errors.xsd"/>
  <xs:element name="reply">
    <xs:complexType>
      <xs:choice>
        <xs:sequence>
          <xs:element name="result">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="statement">
                  <xs:complexType>
                    <xs:sequence>
                      <xs:element name="owners" minOccurs="0">
                        <xs:complexType>
                          <xs:sequence>
                            <xs:element name="owner" maxOccurs="unbounded" minOccurs="0" type="statementOwner"/>
                          </xs:sequence>
                        </xs:complexType>
                      </xs:element>
                      <xs:element name="period">
                        <xs:complexType>
                          <xs:sequence>
                            <xs:element type="xs:date" name="startOn"/>
                            <xs:element type="xs:date" name="endOn"/>
                          </xs:sequence>
                        </xs:complexType>
                      </xs:element>
                      <xs:element type="xs:string" name="type"/>
                      <xs:element name="target">
                        <xs:complexType>
                          <xs:sequence>
                            <xs:element name="accounts" minOccurs="0">
                              <xs:complexType>
                                <xs:sequence>
                                  <xs:element name="account" minOccurs="0" maxOccurs="unbounded">
                                    <xs:complexType>
                                      <xs:all>
                                        <xs:element type="xs:string" name="name"/>
                                        <xs:element type="xs:string" name="friendlyName" minOccurs="0"/>
                                        <xs:element type="xs:string" name="iban"/>
                                        <xs:element type="xs:decimal" name="currencyBalance" minOccurs="0"/>
                                        <xs:element type="xs:decimal" name="currencyFundsAvailable" minOccurs="0"/>
                                        <xs:element type="xs:string" name="currencyName"/>
                                        <xs:element type="xs:date" name="activeSinceAtLeast" minOccurs="0"/>
                                        <xs:element name="moneyTransactions" minOccurs="0">
                                          <xs:complexType mixed="true">
                                            <xs:sequence>
                                              <xs:element name="moneyTransaction" maxOccurs="unbounded" minOccurs="0"
                                                          type="moneyTransaction"/>
                                            </xs:sequence>
                                          </xs:complexType>
                                        </xs:element>
                                        <xs:element name="owners" minOccurs="0">
                                          <xs:complexType mixed="true">
                                            <xs:sequence>
                                              <xs:element name="owner" maxOccurs="unbounded" minOccurs="0" type="accountOwner"/>
                                            </xs:sequence>
                                          </xs:complexType>
                                        </xs:element>
                                      </xs:all>
                                    </xs:complexType>
                                  </xs:element>
                                </xs:sequence>
                              </xs:complexType>
                            </xs:element>
                          </xs:sequence>
                          <xs:attribute type="xs:string" name="name" use="required"/>
                          <xs:attribute type="xs:string" name="officialName" use="required"/>
                          <xs:attribute type="xs:string" name="institution" use="required"/>
                        </xs:complexType>
                      </xs:element>
                    </xs:sequence>
                    <xs:attribute type="xs:long" name="id" use="required"/>
                    <xs:attribute type="xs:boolean" name="isConsistent" use="required"/>
                  </xs:complexType>
                </xs:element>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
        <xs:group ref="exception"/>
      </xs:choice>
      <xs:attribute name="status" use="required">
        <xs:simpleType>
          <xs:union memberTypes="allErrorsUnion status200"/>
        </xs:simpleType>
      </xs:attribute>
      <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>
