解析绿洲 xml 文档
Parse oasis xml documents
我想找出使用 oasis xsd 解析响应的最佳方法。我有以下响应 xml 字符串,但我不确定如何解析它,我尝试从 oasis 复制 xsd 但它无法创建 jaxb 对象。这是 xml 响应数据:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Timestamp-521833581">
<wsu:Created>2017-09-07T00:00:02.002Z</wsu:Created>
</wsu:Timestamp>
</wsse:Security>
</soap:Header>
<soap:Body>
<soap:Fault xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:c="urn:schemas-visa-com:transaction-data-1.0">
<faultcode>wsse:FailedCheck</faultcode>
<faultstring>
Security Data : UsernameToken authentication failed.
</faultstring>
</soap:Fault>
</soap:Body>
</soap:Envelope>
找到了一个简单的解决方案,不是这样实现的,只是一个例子:
SOAPBody body = soapResponse.getSOAPBody();
if(body.hasFault()){
LOG.debug("HAS LOG FAULT, LETS SEE WHAT ELSE...");
LOG.debug("getFaultCode" + body.getFault().getFaultCode());
LOG.debug("getFaultString" + body.getFault().getFaultString());
}
我想找出使用 oasis xsd 解析响应的最佳方法。我有以下响应 xml 字符串,但我不确定如何解析它,我尝试从 oasis 复制 xsd 但它无法创建 jaxb 对象。这是 xml 响应数据:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Timestamp-521833581">
<wsu:Created>2017-09-07T00:00:02.002Z</wsu:Created>
</wsu:Timestamp>
</wsse:Security>
</soap:Header>
<soap:Body>
<soap:Fault xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:c="urn:schemas-visa-com:transaction-data-1.0">
<faultcode>wsse:FailedCheck</faultcode>
<faultstring>
Security Data : UsernameToken authentication failed.
</faultstring>
</soap:Fault>
</soap:Body>
</soap:Envelope>
找到了一个简单的解决方案,不是这样实现的,只是一个例子:
SOAPBody body = soapResponse.getSOAPBody();
if(body.hasFault()){
LOG.debug("HAS LOG FAULT, LETS SEE WHAT ELSE...");
LOG.debug("getFaultCode" + body.getFault().getFaultCode());
LOG.debug("getFaultString" + body.getFault().getFaultString());
}