我有一个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架构中?
答案 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和其他一些验证器。
所以,如果你还有这个问题: