如果有人可以提供协助,我在创建架构时遇到问题。我正在使用Oxygen XML Editor。所以问题是我有一个如下的模式声明:
<xs:attribute name="output" type="xs:ID" use="optional"/>
<xs:assert test="(@output ne 'result') and (@output ne 'isTimedOut')"/>
所以上面的意思是某个元素有一个'output'属性,它是可选的。但是如果定义了这个属性,那么它就不能有值'result'或'isTimedOut',即如果在实例xml中我说output =“result”那么它就不应该验证。 现在的问题是,在xml中我没有'output'属性的元素,即使我将它声明为可选。因此,如果标记没有定义输出attrbute,那么由于断言,xml不会被验证。任何人都可以建议如何具有此属性的可选行为。以下是氧气给出的错误:
Element task does not satisfy assertion (@output ne 'result') and (@output ne 'isTimedOut')
答案 0 :(得分:1)
您可以检查输出属性是否存在,或者与不允许的值不同:
<xs:assert test="
not(@output) or
((@output ne 'result') and (@output ne 'isTimedOut'))"/>
此致 乔治