将属性添加到xml文档

时间:2009-02-22 18:41:20

标签: xml xsd schema xml-attribute

我有一个XML架构和一个来自客户的实例文档。 例如,文件可以是:

< DOC>
< carId> 12< / carId>
< / doc的>

根据架构它是有效的。

我想用我的属性注释这个:

< DOC>
< carId myns:valid =“true”> 12< / carId>
< / doc的>

我希望带注释的文档根据某些模式有效 - 我不关心哪个模式,我想这将基于原始模式。

我的问题是,是否有某种方法可以在不更改新架构的情况下“扩展”原始架构?或者添加这些属性总是合法的,前提是它们根据自己的架构有效吗?

我不能假设原始模式,即它不一定声明其元素上允许xsd:anyAttribute。

1 个答案:

答案 0 :(得分:1)

这将使用xsd:anyattribute声明。它可以对任何属性保持开放,限制为特定的命名空间,或者(最常见的)允许任何名称空间,而不是现在定义的名称空间。)

如果您只是想检查有效性,并且在运行时不需要架构数据,那么一个简单的答案就是从副本中删除属性并验证它。

通过扩展派生每个complexType所需的anyAttribute声明生成一个模式也很容易,只要complexTypes有名称,并且原始模式没有使用final来禁止它。

但如果你真的无法控制输入模式,除了修改输入模式之外,我没有看到任何其他选项。

相关问题