XSD 选择可选元素

XSD Choice with optional element

我有以下 XSD 模板:

<xsd:choice>                            
<xsd:element name="NilReport" type="ftc:CorrectableNilReport_Type">
    <xsd:annotation>
        <xsd:documentation xml:lang="en">Nil Report indicates that financial institution does not have accounts to report</xsd:documentation>
    </xsd:annotation>
</xsd:element>                          
<xsd:sequence >          
    <xsd:element name="AccountReport" type="ftc:CorrectableAccountReport_Type" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
            <xsd:documentation>Detailed information for account report, such as account number and account balance</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    <xsd:element name="PoolReport" type="ftc:CorrectablePoolReport_Type" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
            <xsd:documentation>Information about the pool of account holders with similar characteristics</xsd:documentation>
        </xsd:annotation>
    </xsd:element>          
</xsd:sequence>             

但到目前为止的结果并不像预期的那样。 Unexpected result

这是我想要的结果: Expected result

我怎样才能存档预期的结果?请多多指教

请注意,在这种情况下,和都是可选的。

目前,您可以在 NilReport 元素和包含其他两个元素的序列之间进行选择。

如果您想将另外两个元素作为 "sequence" 的子元素,则必须创建一个包含元素,并且需要将它们定义为该元素的子元素,如下所示。

<xsd:choice>
        <xsd:element name="NilReport" type="ftc:CorrectableNilReport_Type">
            <xsd:annotation>
                <xsd:documentation xml:lang="en">Nil Report indicates
                    that financial institution does not have accounts to report</xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="NotNilReport">
            <xsd:complexType>
                <xsd:sequence>
                    <xsd:element name="AccountReport" type="ftc:CorrectableAccountReport_Type"
                        minOccurs="0" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>Detailed information for account report, such
                                as account number and account balance</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                    <xsd:element name="PoolReport" type="ftc:CorrectablePoolReport_Type"
                        minOccurs="0" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>Information about the pool of account holders
                                with similar characteristics</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                </xsd:sequence>
            </xsd:complexType>
        </xsd:element>
    </xsd:choice>