【问题标题】:XML Meta SchemaXML 元模式
【发布时间】:2011-03-04 08:47:15
【问题描述】:

由于 XML 模式 (XSD) 本身就是 XML 文件,因此应该可以构建 一个模式的模式(元模式),对吧?

我正在努力实现这一壮举。

我想创建一个描述架构的架构 一个根 complexType 包含一系列 simpleTypes

【问题讨论】:

    标签: xml xsd schema metaprogramming homoiconicity


    【解决方案1】:

    Akoma-Ntoso 就是这种元模式的一个例子:

    “我们可以说 Akoma Ntoso 是一个元模式,它允许您构建自己的模式:它为不同的组织提供构建块,用于构建他们自己的非常独特的模式。让组织使用类似的构建块,识别这些块以类似的方式在很大程度上允许文档的更大集成和交换以及软件工具的可重用性......”

    Akoma Ntoso(西非阿坎语中的“相连的心”)以 XML 格式定义了一组简单的技术中立电子表示,用于议会、立法和司法文件。

    它使用了两个抽象,extends:

    元素extends 是一个元数据元素,指定对由所描述的参数扩展的源的引用。

    • 扩展是一种派生规则,它以受控方式添加新功能 到一个基本规则,以便所有根据 派生规则可以通过删除基本规则来验证 附加的功能。根据导出的有效文档集 规则是一组有效文档的受控超集,根据 基本规则。

    restricts:

    元素restricts 是一个元数据元素,指定对受所描述参数限制的源的引用。

    • 限制是比基本规则更严格的派生规则,因此所有 根据派生规则正确的文档也是有效的 根据基数:派生规则的有效文档集 是一组有效文档的数学子集,根据 基本规则。

    参考文献

    【讨论】:

      【解决方案2】:

      那么,您想编写一个 XSD 来验证 XSD 是否有效?好吧,当有 Xsd 验证器时为什么要这样做:

      http://www.w3.org/2001/03/webdata/xsv

      【讨论】:

      • 谢谢,但它不仅应该有效,而且仅限于上面最后一句中描述的形式。
      • 我明白了,我相信 'xs' 命名空间将是这里的限制因素。
      【解决方案3】:

      当然,您可以为此构建自己的架构。 一个好的起点将是官方起点 from the W3C

      我建议进行两次验证运行:一次使用未更改的架构,另一次使用简化的定制架构运行。 此自定义模式可以是仅包含附加约束的原始模式的精简版本。其余的可以通过通配符 (<xs:any>)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多