|
1
2
扩展模式的最佳方式取决于模式的编写方式,尤其是它的设计是否考虑了可扩展性。此模式不明确允许在第三方命名空间中添加元素(即,该模式似乎不包含通配符元素),但至少所有类型(如AirspaceAssociationType)都是全局的,这意味着您可以(如果选择)通过扩展定义从这些类型派生的新类型。如果沿着这条路线走下去,那么实例文档将不得不在xsi:type属性中命名扩展类型,这非常难看。 考虑到您对项目的看法以及这个特定模式的编写方式,我认为我的首选方法是编写一个XSLT转换来创建AIXM特性的变体。显式包含扩展,或添加通配符(xs:any元素)使扩展有效的xsd。 如果您准备使用XML模式1.1(这将限制您对模式处理器的选择),那么您可以考虑定义所有这些类型,使其具有开放内容模型,允许第三方命名空间中的元素出现在标准模式定义的元素之后。只需将xs:defaultOpenContent元素添加到模式中,即可完成此操作—您可以定义一个包含此声明的新模式文档,然后在标准AIXM定义的模式中执行xs:include。 更新
我在这里犯了个错误。再次阅读规范,似乎
如果使用defaultOpenContent,则
|
|
Mike · 不带属性的XSD导入 2 年前 |
|
|
Toru · XSD-扩展基本限制类型 2 年前 |
|
|
koallalays · 使用XSD对XML中的内容进行交叉验证 2 年前 |
|
|
Dave · 在XSD中,如何在元素的内容中只允许空白? 8 年前 |
|
|
Jakub Mosakowski · Xml架构唯一性不检查唯一性 8 年前 |