我们有一位客户提供内容没有命名空间的XML文档。我们正在尝试根据已分配命名空间的官方模式验证这些文档。
1)客户提供的XML文档是否有效?
2)尝试针对XSD验证XML文档在技术上是不正确的吗?
答案 0 :(得分:1)
简答:
1)否 - 至少根据你提到的XSD。
2)否。您可以尝试针对任何XML验证任何XSD。
虽然我的回答可能听起来“严格地说”,但请记住,验证旨在提供一致性的指示;因此,任何XML与任何XSD匹配都是可以接受/技术上正确的。
您可以在此处阅读,有效的方案是对XML应用某种类型的转换,以补偿丢失的内容。例如:如果问题包含缺少的名称空间声明,并且任何说服XML生产者纠正缺陷的尝试都失败了,那么通过XSLT运行它以使其达到所需格式,然后应用XSD。
对我来说,这是一个应该谨慎考虑的想法:针对每个XML运行XSLT是许多人无法承受的高容量开销。我的观点:简单地调整您的XSD,以解决解决方法需要的方法更好。与处理XSLT相比,这种方法不会导致运行时开销,设计时间/维护工作量更少......