【发布时间】:2011-03-04 08:47:15
【问题描述】:
由于 XML 模式 (XSD) 本身就是 XML 文件,因此应该可以构建 一个模式的模式(元模式),对吧?
我正在努力实现这一壮举。
我想创建一个描述架构的架构
一个根 complexType 包含一系列 simpleTypes。
【问题讨论】:
标签: xml xsd schema metaprogramming homoiconicity
由于 XML 模式 (XSD) 本身就是 XML 文件,因此应该可以构建 一个模式的模式(元模式),对吧?
我正在努力实现这一壮举。
我想创建一个描述架构的架构
一个根 complexType 包含一系列 simpleTypes。
【问题讨论】:
标签: xml xsd schema metaprogramming homoiconicity
Akoma-Ntoso 就是这种元模式的一个例子:
“我们可以说 Akoma Ntoso 是一个元模式,它允许您构建自己的模式:它为不同的组织提供构建块,用于构建他们自己的非常独特的模式。让组织使用类似的构建块,识别这些块以类似的方式在很大程度上允许文档的更大集成和交换以及软件工具的可重用性......”
Akoma Ntoso(西非阿坎语中的“相连的心”)以 XML 格式定义了一组简单的技术中立电子表示,用于议会、立法和司法文件。
它使用了两个抽象,extends:
元素
extends是一个元数据元素,指定对由所描述的参数扩展的源的引用。
和restricts:
元素
restricts是一个元数据元素,指定对受所描述参数限制的源的引用。
参考文献
【讨论】:
那么,您想编写一个 XSD 来验证 XSD 是否有效?好吧,当有 Xsd 验证器时为什么要这样做:
【讨论】:
当然,您可以为此构建自己的架构。 一个好的起点将是官方起点 from the W3C
我建议进行两次验证运行:一次使用未更改的架构,另一次使用简化的定制架构运行。
此自定义模式可以是仅包含附加约束的原始模式的精简版本。其余的可以通过通配符 (<xs:any>)
【讨论】: