【问题标题】:XML enum value accepting null valuesXML 枚举值接受空值
【发布时间】:2019-08-21 09:12:16
【问题描述】:

XML 枚举元素(最大值出现 > 1)正在接受

"Status": [
     null
 ]

这是我不想要的。我只想接受枚举中定义的有效字符串。

已尝试将枚举的限制设置为最小长度 1,但这似乎没有解决问题

<simpleType name="statusType">
        <restriction base="string" >

          <enumeration value="UNDER_VERIFICATION"></enumeration>
          <enumeration value="STOPPED"></enumeration>
        </restriction>
</simpletype>

用法:

 <element name="status" type="common:statusType"
                maxOccurs="unbounded" minOccurs="0">

</element>

【问题讨论】:

  • 我刚刚重新阅读了您的问题,发现设置minOccurs="1" 后您的问题仍然存在。请参阅我的回答,以确认您的 XSD 和这种变体在 XML 级别上的含义。如果您的问题在代码级别仍然存在,请说明语言并发布有问题的代码以获得更具体的帮助。见minimal reproducible example。谢谢。

标签: xml xsd xsd-validation xml-validation


【解决方案1】:

您定义的status 元素仅对以下任一值有效:

<status>UNDER_VERIFICATION</status>
<status>STOPPED</status>

虽然没有内容是无效的,

<status></status>

由于minOccurs="0",当前不需要status 元素本身。将其更改为 minOccurs="1" 以使状态元素本身成为必需:

<element name="status" type="common:statusType"
         maxOccurs="unbounded" minOccurs="1"/>

您也可以省略minOccurs,因为它的默认值为1。详情请见XML Schema minOccurs / maxOccurs default values

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多