【问题标题】:Can XSD restriction be platform specific?XSD 限制可以特定于平台吗?
【发布时间】:2013-08-15 05:39:28
【问题描述】:

我必须为 xml 属性之一指定一个限制,我知道我可以使用下面的语法。


但 minInclusive 和 MaxInclusive 取决于平台。如何指定这样的语法? XSD 是否支持它们?

谢谢, 拉姆

【问题讨论】:

  • 我的 xsd 目前如下所示。我需要根据平台更改最小值和最大值
  • 好吧,您可以执行<xsd:minInclusive value="&platformMin;"/> <xsd:maxInclusive value="&platformMax;"/> 之类的操作,并安排通过外部实体根据您的喜好定义platformMinplatformMax。然后确保在每个平台上使用正确的实体。
  • 谢谢,但实际上我需要发布此架构作为参考。它不能接受任何值,而且我需要为许多平台指定最小值和最大值(每个平台都有不同的最小值和最大值),例如 X86 的 1 .. 5 和 PPC 的 10 .. 100 等。我想要在 xsd:appinfo 中指定此信息,但寻找其他更好的选择
  • 我的建议与这个目标有什么矛盾?如果需要推送,请在文件顶部有一个内部 DTD,定义多个版本的 platformMinplatformMax,每个平台一个,都注释掉。再次在 cmets 中提供指令以取消注释与用户平台相对应的定义集。

标签: c++ c xml xsd schema


【解决方案1】:

Saxon 的 XSD 处理器引入了验证参数的概念,您可以在从命令行或应用程序调用架构处理器时指定该参数 - 您不能在 minInclusive 和 maxInclusive 等方面使用它们,但可以在xs:assert 和其他使用 XPath 表达式的地方。

很高兴看到这满足了实际需求,但老实说,在这样的功能在其他处理器中得到广泛实施之前,将您的策略​​基于它有点不明智。

【讨论】:

    猜你喜欢
    • 2014-10-22
    • 1970-01-01
    • 1970-01-01
    • 2014-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多