代码之家  ›  专栏  ›  技术社区  ›  brabster

如何在Java验证中支持同一模式的多个版本?

  •  1
  • brabster  · 技术社区  · 14 年前

    我想提前考虑,并在XMLSchema文档中包含版本控制。w3c中建议的方法似乎是保持名称空间不变并使用version属性。

    到目前为止是明智的。

    然而,我不需要能够切换模式以用于基于指定版本的验证吗?Java 6 XML模式验证功能是否包括此功能?

    1 回复  |  直到 14 年前
        1
  •  1
  •   C. M. Sperberg-McQueen    14 年前

    你是对的,许多人建议保持名称空间不变。我毫不怀疑这种方法对许多人(包括大多数建议者)都有效,但我从未见过真正有说服力的论点,认为这是唯一合理或可取的做法。(在假设特定名称空间只能有一个模式的系统中,更改名称空间可能是对词汇表进行版本化的唯一方法。)

    您也是对的,在不同版本之间保持名称空间不变可能意味着您想要维护多个模式。上一次我查看它的文档时,Xerces J似乎让它变得相当简单:一个验证调用基本上涉及到说“在这里,采取 这 文件和 这 架构和验证”。

    有些人说,每个新版本都会扩展一组有效文档,因此每个版本的模式都可以用于创建的符合早期版本模式的文档,从而避免了对多个模式的需要。(进一步的改进是:小数点版本必须以这种方式向后兼容,并且只有主要版本才能向后不兼容——如果是,则必须使用新的命名空间。)