Elementos não ordenados em XSD com elementos obrigatórios e ilimitados?

Eu tenho o seguinte elemento no meu XSD:

<xs:element name="documents" minOccurs="1" maxOccurs="1">
    <xs:complexType>
        <xs:sequence>

            <xs:element name="invoice" minOccurs="1" maxOccurs="1">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:minLength value="1"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>

            <xs:element name="report" minOccurs="0" maxOccurs="1">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:minLength value="1"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>

            <xs:element name="additional" minOccurs="0" maxOccurs="unbounded">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:minLength value="1"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>

        </xs:sequence>
    </xs:complexType>
</xs:element>

Você pode ver que os documentos devem sempre ter uma fatura e, opcionalmente, pode ter um único relatório e zero ou mais adicionais.

O problema é que esses elementos podem ter uma ordem de aparência diferente, então não posso usar umsequence não mais. Eu tentei usarall mas então o problema é o elemento adicional, pois ele possuimaxOccurs="unbounded".

Como posso ter uma lista não ordenada de elementos com um desses elementos sempre sendo exigidos e outro com ocorrências ilimitadas?

questionAnswers(1)

yourAnswerToTheQuestion