具有顺序排列的复杂类型

时间:2015-06-15 08:00:20

标签: xslt xslt-1.0

下面是我的xslt,基本上有嵌套的复杂类型。

<xs:complexType name="onlineExpressRemitService">
                <xs:sequence>
                    <xs:element minOccurs="0" name="return" type="tns:onlineExpressRemitResponse"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="onlineExpressRemitResponse">

                <xs:complexContent>             
                    <xs:extension base="tns:endpointResponse">
                        <xs:sequence>
                            <xs:element minOccurs="0" name="description" type="xs:string"/>
                            <xs:element minOccurs="0" name="hostResponseCode" type="xs:string"/>
                        </xs:sequence>
                    </xs:extension>
                </xs:complexContent>
            </xs:complexType>


<xs:complexType name="endpointResponse">
                <xs:sequence>

                    <xs:element minOccurs="0" name="response" type="tns:endpointResponseHeader"/>
                </xs:sequence>
            </xs:complexType>

            <xs:complexType name="endpointResponseHeader">
                <xs:sequence>

                    <xs:element minOccurs="0" name="requesttimestamp" type="xs:string"/>
                    <xs:element minOccurs="0" name="responsetimestamp" type="xs:string"/>
                    <xs:element name="statuscode" type="xs:int"/>

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

我的输入xml

   <return>


                <response>
                    <requesttimestamp>2015-05-18t11:20:40.201+0800</requesttimestamp>
                    <responsetimestamp>2015-05-18t11:20:40.218+0800</responsetimestamp>
                    <statuscode>1</statuscode> 
                </response>
                <description>Successful</description>
                <hostResponseCode>000</hostResponseCode>
            </return>

我的输入xml没有错误,但这不是我想要的,我的预期输入是位于响应标记上方的描述标记和hostresponsecode标记

   <return>

    <description>Successful</description>
    <hostResponseCode>000</hostResponseCode>
    <response>
        <requesttimestamp>2015-05-18t11:20:40.201+0800</requesttimestamp>
        <responsetimestamp>2015-05-18t11:20:40.218+0800</responsetimestamp>
        <statuscode>1</statuscode> 
    </response>

</return>

我确实尝试过嵌套的complexType,嵌套序列,但这根本不起作用。我迷失了,需要一些指导,如果需要其他信息,请告诉我。

1 个答案:

答案 0 :(得分:0)

当您通过扩展定义从另一个派生的一个复杂类型时,其他元素只能在最后。因此,如果您想支持您所描述的内容模型,则无法通过这种方式扩展基本复杂类型来实现此目的。