Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
向xml文档添加属性_Xml_Xsd_Schema_Xml Attribute - Fatal编程技术网

向xml文档添加属性

向xml文档添加属性,xml,xsd,schema,xml-attribute,Xml,Xsd,Schema,Xml Attribute,我有一个XML模式和一个从客户那里得到的实例文档。 例如,文档可以是: 12 根据模式,它是有效的 我想用我的属性对其进行注释: 12 我希望带注释的文档根据某种模式是有效的——我不在乎是哪种模式,我猜它将基于原始模式 我的问题是,是否有某种方法可以在新模式中“扩展”原始模式而不改变它?或者,添加这样的属性是否总是合法的,前提是它们根据自己的模式是有效的 我不能对原始模式做任何假设,即它不一定声明其元素上允许xsd:anyAttribute 这将使用声明。它可以完全开放给任何属性

我有一个XML模式和一个从客户那里得到的实例文档。 例如,文档可以是:


12

根据模式,它是有效的

我想用我的属性对其进行注释:


12

我希望带注释的文档根据某种模式是有效的——我不在乎是哪种模式,我猜它将基于原始模式

我的问题是,是否有某种方法可以在新模式中“扩展”原始模式而不改变它?或者,添加这样的属性是否总是合法的,前提是它们根据自己的模式是有效的


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

这将使用声明。它可以完全开放给任何属性,限制为特定的名称空间,或者(最常见的情况是)允许任何名称空间(现在定义的名称空间除外)

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

只要complexTypes有名称,并且原始模式没有使用final来禁止,那么为每个complexTypes生成一个模式(通过扩展派生)并为其生成所需的anyAttribute声明也是相当容易的

但是,如果您确实无法控制输入模式,那么除了修改它之外,我看不到任何其他选项