【发布时间】:2010-09-26 15:09:20
【问题描述】:
在我的应用程序发送到第三方 SOA 服务器的数据中,有复杂的 XML。服务器所有者确实提供了 XML 模式 (.xsd),并且由于服务器拒绝无效的 XML 并发送无意义的消息,因此我需要在发送之前在本地验证它们。
我可以使用独立的 XML 模式验证器,但它们很慢,主要是因为解析模式文件需要时间。因此,我以 HTTP Server 的形式编写了自己的模式验证器(如果需要,用 Java),它缓存已解析的模式。
问题是:在验证过程中,很多事情都可能出错。除了意外异常和成功验证:
- 服务器可能找不到指定的架构文件
- 指定的文件可能不是有效的架构文件
- XML 对架构文件无效
由于它是一个 HTTP 服务器,我想为客户端提供有意义的状态代码。对于上述所有情况,服务器是否应该以 400 错误(Bad request)回答?或者他们与 HTTP 无关,它应该用正文中的消息来回答 200?还有什么建议吗?
更新:主要应用程序是用Ruby编写的,它没有一个好的xml模式验证库,所以单独的验证服务器并没有过度设计。
【问题讨论】:
标签: xml http validation xsd http-status-codes