下面是我的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没有错误,但这不是我想要的,我的预期输入是位于响应标签上方的描述标签和主机响应代码标签
<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>
我确实尝试了嵌套的复杂类型,嵌套序列,但这根本不起作用.我暂时迷路了,需要一些指导,如果需要任何其他信息,请告诉我。
当您通过扩展定义一个从另一个复杂类型派生的复杂类型时,附加元素只能放在最后。因此,如果要支持所描述的内容模型,则无法通过以这种方式扩展基本复杂类型来实现。