请确保在使用XSD的XML验证中字符串不为空

问题描述 投票:1回答:1

我有一个XML文件,例如如下所示。我想确保menonic始终存在并且不是空字符串。

我在XSD中这样设置use="required"

<xs:attribute type="xs:string" name="mnemonic" use="required"/>确保该字段存在。但是当字符串为空时,如下所示<recipeStructureDef mnemonic="" title="Recipe.Bread">它通过验证。

有什么方法可以检查字符串是否不是空字符串?

谢谢,请在下面找到xml和xsd文件。

<recipeStructureDef mnemonic="Rice Bag" title="Recipe.Bread">
            <description>           
            </description>

            <parametersTab>
                <parameterTabDef title="Main Parameters">
                    <parameterGroup title="Product Rice">
                    </parameterGroup>
                </parameterTabDef>
             </parametersTab>
</recipeStructureDef>


需要OP:

  <xs:complexType name="recipeStructureDefType">
    <xs:sequence>
      <xs:element type="xs:string" name="description"/>
      <xs:element type="parametersTabType" name="parametersTab"/>
    </xs:sequence>
    <xs:attribute type="xs:string" name="mnemonic" use="required"/>
    <xs:attribute type="xs:string" name="title"/>
  </xs:complexType>
xml xsd freemarker xsd-validation xml-validation
1个回答
0
投票

@mnemonic必须存在:

<xs:attribute name="mnemonic" use="required" type="nonEmptyString"/>
                              ^^^^^^^^^^^^^^

@mnemonic不能为空:

© www.soinside.com 2019 - 2024. All rights reserved.