【问题标题】:Prevent Empty Elements in XML via XSD通过 XSD 防止 XML 中的空元素
【发布时间】:2011-05-06 19:31:42
【问题描述】:

我正在处理一个 XSD 文件,并且在使用它验证 XML 文件时,我想限制空元素。例如,

<myElement>this is not empty</myElement>

不过会通过验证

<myElement/><myElement></myElement>

不会通过验证。

感谢您提供的任何帮助!

ps。我不小心在一个未注册的帐户下在https://stackoverflow.com/questions/4126546/prevent-empty-elements-in-xml-via-xsd 发布了这个。对于给您带来的任何不便,我深表歉意。

更新: 该元素必须能够根本不存在于 XML 中,所以我不能使用 minOccurs="1"。

【问题讨论】:

    标签: xml validation xsd schema


    【解决方案1】:

    您可以让minOccurs="0" 要求标记,然后有一个验证正则表达式来检查一个或多个字符。

    【讨论】:

    • 该元素必须能够完全不存在于 XML 中,所以我不能使用 minOccurs="1"。不过感谢您的帮助!我已经更新了 OP 以反映这一点。
    • 查看更改 - 在这种情况下将其设为 minOccurs='0'。其余的仍然适用。
    【解决方案2】:

    你可以做类似的事情

    <xs:simpleType name="myString">
      <xs:restriction base="xs:string">
         <xs:minLength value="1"/>
      </xs:restriction>
    </xs:simpleType>
    
    <xs:element name="root" type="myString"></xs:element>
    

    但是,&lt;root&gt; &lt;/root&gt; 上仍然会匹配,但如果出现问题,您可以使用正则表达式限制来更改它。

    【讨论】:

      猜你喜欢
      • 2016-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-06
      • 2016-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多