下面是我的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,嵌套序列,但这根本不起作用。我迷失了,需要一些指导,如果需要其他信息,请告诉我。
答案 0 :(得分:0)
当您通过扩展定义从另一个派生的一个复杂类型时,其他元素只能在最后。因此,如果您想支持您所描述的内容模型,则无法通过这种方式扩展基本复杂类型来实现此目的。