我维护一个通过 javascript 提供 XML/A 访问的库:https ://github.com/rpbouman/xmla4js
大多数情况下它工作正常,但我想改进对错误响应的处理。据我正确理解 XML/A 规范,错误响应采用以下形式:
<SOAP-ENV:Envelope>
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>...</faultcode>
<faultstring>...</faultstring>
<faultactor>...</faultactor>
<detail>
...
</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
但是,我发现至少对于 Mondrian(我最熟悉的 XML/A 提供者)来说,该<detail>
元素通常包含非常宝贵的信息。例如,通用<faultcode>
元素可能会说诸如“找不到数据源”之类的通用内容,而该<detail>
元素可能包含以下内容:
<XA:error xmlns:XA="http://mondrian.sourceforge.net">
<code>00HSBC01</code>
<desc>The Mondrian XML: MondrianOneToOneUserRoleListMapper.ERROR_001_ - Access is denied because the roles of this user don't correspond to any present in the Mondrian schema requested.</desc>
</XA:error>
这表明了一个更具体的条件。
我的问题是,在其他 XML/A 提供程序的错误响应中是否有某种模式可以用来改进我的 api 并向我的库的用户提供更好的错误消息?如果您不了解某个模式,但只能提供您碰巧可以访问的 XML/A 提供程序的示例,那么我们也非常感谢您。谢谢!