XML/A错误响应:标准是什么



我维护了一个库,该库提供XML/a访问trhough javascript: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&#39;t correspond to any present in the Mondrian schema requested.</desc>
</XA:error>

这表明了一种更具体的情况。

我的问题是,在其他XML/A提供程序的错误响应中是否存在某种模式,我可以使用这种模式来改进我的api,并向我的库的用户提供更好的错误消息?如果您不了解模式,但只能提供您碰巧可以访问的XML/a提供程序的示例,那么我们也将不胜感激。非常感谢。

您可以在此处下载XMLA协议的Microsoft规范:http://msdn.microsoft.com/en-us/library/ee320606.aspx(七百多页)。

一般来说,有两种类型的错误:

  • 全局错误,它们要么阻止请求执行,要么阻止服务器返回任何有用的信息(例如语法错误)
  • 以及本地的,例如在对MDX SELECT请求的响应的单个单元格内,其中返回一般的结果结构。在这种情况下,错误对象可能会返回,例如在一个或多个单元格中,而不是结果。一个例子是一个错误,它阻止服务器计算这个特定的单元格值,比如在计算成员的定义中引用未知元素

相关内容

  • 没有找到相关文章

最新更新