【问题标题】:assert error using schema 1.1使用模式 1.1 断言错误
【发布时间】:2012-10-27 08:04:18
【问题描述】:

如果有人可以提供帮助,我在创建架构时遇到了问题。我正在使用氧气 XML 编辑器。所以问题是我有一个如下的模式声明:

<xs:attribute name="output" type="xs:ID"  use="optional"/>
<xs:assert test="(@output ne 'result') and (@output ne 'isTimedOut')"/>

所以上面的意思是一些元素有一个'输出'属性,它是可选的。但是如果定义了这个属性,那么它就不能有值'result'或'isTimedOut',即如果在实例xml中我说output="result"那么它不应该验证。 现在的问题是,在 xml 中,即使我声明它是可选的,我也不能拥有没有“输出”属性的元素。因此,如果标签没有定义输出属性,那么由于断言,xml 不会被验证。谁能建议如何为此属性设置可选行为。以下是 Oxygen 给出的错误:

Element task does not satisfy assertion (@output ne 'result') and (@output ne 'isTimedOut')

【问题讨论】:

    标签: xml xsd assertions


    【解决方案1】:

    您可以检查输出属性是否不存在或与不允许的值不同:

    <xs:assert test="
         not(@output) or 
         ((@output ne 'result') and (@output ne 'isTimedOut'))"/>
    

    问候, 乔治

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多