0

我的项目中有一组 XSD 文件。我尝试使用此问题中建议的代码来验证它们:

验证 XSD 本身

事实证明,我的一些 XSD 文件无效。

这并不妨碍我用这个无效的 XSD 文件验证一些 XML。那么在哪些情况下真正重要呢?

4

2 回答 2

2

除了 John 的回答之外,如果您使用 XML Schemas 来定义一个可互操作的协议,您可能不仅想要验证架构,还想要

  • 使用多种工具来完成 - 不仅是 Xerces,还有 OxygenXML 和
  • 尝试使用JAXB/XJC或 Microsoft 的xsd等标准工具编译此模式。

在我的实践中,我遇到过国际标准化组织发布的架构根本无效的案例。因为它们只在某个工具中得到验证(我不会在这里命名)。我看到很多模式在技术上是有效的,但会导致 XJC 出现巨大问题,XJC 通常用于 Web 服务。

如果您只是出于自己的目的编写 XML Schema 并私下使用它,那么最初没有人关心它是否有效。

但不要忘记,您可能无法控制自己的未来发展。今天的内部脏原型可能是明天销售的产品。

于 2014-10-13T20:43:08.847 回答
0

如果您的 XSD 无效,那么您无法确信模式处理器会按照您的意图解释它。毕竟,当你喂它胡言乱语时,它怎么会知道你的意思呢?

如果只有一点点乱码,那么您选择的处理器可能会成功验证您想要的部分甚至全部输入,但这是运气问题。其他模式处理器的验证方式可能不同——甚至同一处理器的不同版本也可能这样做。

如果您为此苦苦挣扎,那么您应该问自己,为什么您的应用程序首先要针对 XSD 验证 XML。如果您不进行验证,那么您的应用程序可以容忍预期 XML 表单的哪些变化?你能确定每个未来的版本在这方面都是一样的吗?

于 2014-10-13T20:16:44.403 回答