我有这个SOAP请求只是检查帐户的余额。
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tns="urn:someurn">
<SOAP-ENV:Body>
<Execute xmlns="">
<sessionId xmlns="">SomeSessionID</sessionId>
<username xmlns="">SomeUserName</username>
<password xmlns="">SomePassword</password>
<command xmlns="">CommandName</command>
<data xmlns=""><?xml version="1.0"?><meta><accountNo></accountNo></meta>
</data>
</Execute>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
每当我发出请求时会发生此错误,我已经阅读了一些有关此问题的堆栈问题,我需要清除我已经完成的空白,我还尝试使用html实体来处理问号仍无济于事。
错误是:在第14行解析SOAP有效内容时出现XML错误:保留的XML名称是数据标记。
任何人都可以帮助我吗?另外,我使用Java向服务器发出请求。
答案 0 :(得分:2)
第14行
<data xmlns=""><?xml version="1.0"?><meta><accountNo></accountNo></meta>
除了作为第一行之外,您不能在XML中的任何位置拥有xml标头(<?xml...?>
标记)。您必须使用实体对<data>...</data>
内的所有内容进行编码,如:
<data xmlns=""><?xml version="1.0"?><meta> ...