1

我们有一个客户正在提供其内容没有命名空间的 XML 文档。我们正在尝试根据已分配命名空间的官方模式验证这些文档。

1) 客户提供的 XML 文档是否有效?

2) 尝试针对 XSD 验证 XML 文档在技术上是否不正确?

4

1 回答 1

1

简短的答案:

1)不-至少根据您所指的XSD。

2) 不可以。您可以尝试针对任何 XML 验证任何 XSD。

虽然我的回答听起来可能过于“严格地说”,但请记住,验证旨在提供一致性指示;因此,将任何 XML 与任何 XSD 匹配是可以接受的/技术上正确的。

您可以在此处阅读 SO,有效的方案是对 XML 应用某种类型的转换,以弥补丢失的东西。例如:如果问题包括缺少名称空间声明,并且任何试图说服 XML 的生产者纠正缺陷的尝试都失败了,那么通过 XSLT 运行它以使其达到所需的格式,然后应用 XSD。

对我来说,这是一个应该谨慎考虑的想法:针对每个 XML 运行 XSLT 是很多人无法承受的大量开销。我的意见:最好简单地调整您的 XSD,以解决需要解决的问题。与处理 XSLT 相比,这种方法不会产生运行时开销,并且设计时间/维护工作更少……

于 2013-04-11T00:08:54.223 回答