<attribute ref =“...”> </attribute>的xml问题

时间:2010-08-13 12:30:47

标签: xml reference xsd

我有一个xml架构

<xs:complexType>
...
<xs:attribute ref="unaryOperator"></xs:attribute>
</xs:complexType>


<xs:attribute name="unaryOperator">

                            

我尝试在我的xml文件中使用它 像这样

  <inv_constraint unaryOperator="not">

编辑器给了我这个错误:

描述资源路径位置类型 [Xerces] cvc-complex-type.3.2.2:不允许在元素'inv_constraint'中出现属性'unaryOperator'。 @see:http://www.w3.org/TR/xmlschema-1/#cvc-complex-type abc.xml / prova第28行XML问题

编辑建议我这样做

<inv_constraint xmlns:ns1="http://abc/abcd" ns1:unaryOperator="not" >

如果我不在xml架构中使用ref并只复制粘贴属性而不是引用它,那么我的xml文件可以正常工作,

所以我的问题是如何在没有这个奇怪的标签的情况下制作有效的xml,并将ref保留在xml架构中?

1 个答案:

答案 0 :(得分:0)

我在这里看不到任何问题。以下工作对我来说很好:

<强> schema.xsd:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="ct">
    <xs:attribute ref="unaryOperator"/>
</xs:complexType>

<xs:attribute name="unaryOperator"/>

<xs:element name="inv_constraint" type="ct"/>

</xs:schema>

<强> file.xml:

<?xml version="1.0"?>
<inv_constraint unaryOperator="non" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="schema.xsd"></inv_constraint>

我测试了它:Xerces,Saxon,XSV和其他一些验证器。

所以,如果你还有这个问题:

  1. 提供完整的示例 - 简化的模式文件和XML文件,我们可以在其上重现此问题。
  2. 你使用什么编辑器?