【问题标题】:XML validation of required fields and any number of unknown optional fields必填字段和任意数量的未知可选字段的 XML 验证
【发布时间】:2017-06-09 14:00:47
【问题描述】:

我对撒克逊人没有经验,但我的任务是确定以下问题的解决方案:

目前我的客户正在使用 Saxonica 来验证传入的 XML 文档。他们对可选字段有疑问。目前,他们的验证中有很多可选字段发生了很大变化。更新他们的架构以允许这些可选字段非常困难,因为他们需要通过其他部门来更新生产文件。

Saxonica 是否具有根据一定数量的必填字段和任意数量的可选字段验证 XML 文档的功能。也就是说,如果存在必填字段并且未在模式中定义剩余的可选字段,则允许验证通过。他们无法通过添加和修改永无止境的可选字段来足够快地更新其架构。因此,如果他们可以检查必填字段并让之后的所有内容都通过。

如果这是可能的,有人可以指出如何实现这一点的正确方向。我正在浏览文档,但还没有真正找到我要查找的内容。

感谢您对此提供的任何帮助。

【问题讨论】:

  • 有 xsd:any w3.org/TR/xmlschema11-1/#Wildcards 但您需要更具体地让我们判断它是否有帮助。
  • @MartinHonnen 感谢您的帮助。我要做的是验证一个 XML 文档,该文档具有我在验证模式中没有的选项部分。我的验证模式中有必填字段,但可选字段的变化速度如此之快,以至于我希望我的验证接受具有必填字段和任何随机可选字段的 XML 文档
  • 好吧,尝试将xsd:any 和/或xsd:anyAttribute 与您需要的说明符一起使用。不确定您认为字段是什么,是元素还是属性。
  • @Matt_ello:您似乎完全忽略了 Martin 调查xsd:any 的建议,而是选择只是重申您的需求。
  • @kjhughes 我确实调查了 Martin 所说的内容,但他要求我说得更具体一些,而这正是我试图做的。

标签: xslt saxon xsd-validation


【解决方案1】:

如果我理解正确,您有一个实例和一个架构,并且该实例不符合架构,并且您不想出于政治/流程原因更改架构。大多数人会说你应该解决政治障碍。但是,如果您绝对需要解决它们,那么另一个选择是更改实例以使其符合架构。人们往往会忘记在验证之后进行转换是可能的。使用 XSLT 去除“可选字段”,然后使用模式验证来验证剩余的内容。

【讨论】:

    猜你喜欢
    • 2022-11-22
    • 2017-05-19
    • 2020-02-27
    • 2019-08-30
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    • 2011-08-14
    • 1970-01-01
    相关资源
    最近更新 更多