LPX-00209:在解析 soap 响应时保留以 XML 开头的 PI 名称
LPX-00209: PI names starting with XML are reserved when parsing soap response
我分析了 SOAP 响应。接下来我想像这样检查 <HasError>
的值:
DECLARE
l_clob CLOB;
l_error VARCHAR2(20);
BEGIN
--SOAP RESPONSE
l_clob :=
'
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<GSFRR xmlns="http://tst.com/">
<GSFRRe>
<Error>Error on GSFRConnector.</Error>
<HasError>true</HasError>
<IsSuccess>false</IsSuccess>
</GSFRRe>
</GSFRR>
</soap:Body>
</soap:Envelope>
';
--GET VALUE FOR HasError
SELECT HasError INTO l_error FROM xmltable(
xmlnamespaces('http://www.w3.org/2003/05/soap-envelope' as "soap",default 'http://www.w3.org/2003/05/soap-envelope'),
'/soap:Envelope/soap:Body/GSFRR/GSFRRe'
passing xmlparse(document l_clob)
columns haserror varchar2(20) path 'HasError');
END;
但是,当我尝试这样做时,出现以下错误:
ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00209: PI names starting with XML are reserved
这是我第一次使用 SOAP。我束手无策。谁能指出我哪里出错了?
我使用 Oracle 19.2。
改变
'
<?xml version="1.0" encoding="UTF-8"?>
到
'<?xml version="1.0" encoding="UTF-8"?>
因为在 XML 声明之前不能有字符,甚至空格。
另见 Error: The processing instruction target matching "[xX][mM][lL]" is not allowed
我分析了 SOAP 响应。接下来我想像这样检查 <HasError>
的值:
DECLARE
l_clob CLOB;
l_error VARCHAR2(20);
BEGIN
--SOAP RESPONSE
l_clob :=
'
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<GSFRR xmlns="http://tst.com/">
<GSFRRe>
<Error>Error on GSFRConnector.</Error>
<HasError>true</HasError>
<IsSuccess>false</IsSuccess>
</GSFRRe>
</GSFRR>
</soap:Body>
</soap:Envelope>
';
--GET VALUE FOR HasError
SELECT HasError INTO l_error FROM xmltable(
xmlnamespaces('http://www.w3.org/2003/05/soap-envelope' as "soap",default 'http://www.w3.org/2003/05/soap-envelope'),
'/soap:Envelope/soap:Body/GSFRR/GSFRRe'
passing xmlparse(document l_clob)
columns haserror varchar2(20) path 'HasError');
END;
但是,当我尝试这样做时,出现以下错误:
ORA-31011: XML parsing failed ORA-19202: Error occurred in XML processing LPX-00209: PI names starting with XML are reserved
这是我第一次使用 SOAP。我束手无策。谁能指出我哪里出错了?
我使用 Oracle 19.2。
改变
'
<?xml version="1.0" encoding="UTF-8"?>
到
'<?xml version="1.0" encoding="UTF-8"?>
因为在 XML 声明之前不能有字符,甚至空格。
另见 Error: The processing instruction target matching "[xX][mM][lL]" is not allowed