【发布时间】:2014-02-14 11:17:20
【问题描述】:
我维护了一个通过 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 提供程序的示例,那么我们也非常感谢您。谢谢!
【问题讨论】:
标签: olap mondrian xmla essbase msas