cvc-enumeration-valid:值' 2'在枚举' [1]'方面不具有分面意义。它必须是枚举中的值

时间:2017-08-21 12:19:18

标签: xml xsd xml-parsing xsd-validation

我使用此XML验证错误:

XSD

<xs:simpleType name="XYZ">
    <xs:restriction base="xs:nonNegativeInteger">
      <xs:enumeration value="1">
      </xs:enumeration>
      <xs:enumeration value="2">
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>

XML值:

 <XYZ>2</XYZ>

错误

  

cvc-enumeration-valid:Value&#39; 2&#39;对于。来说并不是一个有效的方面   枚举&#39; [1]&#39;。它必须是枚举中的值。

任何人都可以帮我理解这个问题吗? 如何解决?

2 个答案:

答案 0 :(得分:2)

错误消息

  

cvc-enumeration-valid:Value&#39; 2&#39;对于。来说并不是一个有效的方面   枚举&#39; [1] &#39;。它必须是枚举中的值。

并且您问题中的simpleType不同意。

错误消息表示只允许1但遇到2;您的类型定义确实允许12

要引出与您的xs:simpleType相关的实际错误消息,您的XML必须使用一个值,例如3,不允许。然后,您将收到如下错误消息:

  

cvc-enumeration-valid:Value&#39; 3&#39;对于。来说并不是一个有效的方面   枚举&#39; [1,2] &#39;。它必须是枚举中的值。

因此,您(首先,可能只是?)的错误是相信发布的xs:simpleType定义与该错误消息有关。

答案 1 :(得分:0)

我有这个工作,我认为它解决了你的问题,但正如KJ所说的没有例子,我们真的只是猜测。

以下是XML示例

command

示例架构

Popen

如果值为3(无效),则会出现以下异常。

<xml>
    <XYZ>3</XYZ>
</xml>