Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 验证XML元素的强制值_Asp.net_Xml_Validation_Xsd - Fatal编程技术网

Asp.net 验证XML元素的强制值

Asp.net 验证XML元素的强制值,asp.net,xml,validation,xsd,Asp.net,Xml,Validation,Xsd,我想为XML创建一个XSD。我使用xs:string数据类型声明XML元素,其中该数据是必需的。我创建了一个XSD并设置了minOccurs=“1”,但后来发现它的目的只是检查元素是否出现在XML中。我还发现有一个关键字use=“required”,但它用于属性,不能在XML元素中使用。我最后尝试了nillable=“false”,但是XSD在元素中没有任何数据的情况下被验证 这是我的文件: <HelloWorld> <Name></Name> <

我想为XML创建一个XSD。我使用
xs:string
数据类型声明XML元素,其中该数据是必需的。我创建了一个XSD并设置了
minOccurs=“1”
,但后来发现它的目的只是检查元素是否出现在XML中。我还发现有一个关键字
use=“required”
,但它用于属性,不能在XML元素中使用。我最后尝试了
nillable=“false”
,但是XSD在元素中没有任何数据的情况下被验证

这是我的文件:

<HelloWorld>
  <Name></Name>
  <Gender></Gender>
</HelloWorld>

和XSD:

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="HelloWorld">
    <xs:complexType>
      <xs:sequence>
        <xs:element type="xs:string" name="Name" minOccurs="1"/>
        <xs:element type="xs:int" name="Gender"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>


这里我希望
Name
元素中的数据始终存在(这是一个必填字段)。当我验证这个文件时,它会抛出一个错误,指出它包含一个无效的整数。如果您输入一些数字,它将成功开始验证,但不会检查
Name
元素中的数据。

它将进行验证,因为空字符串是有效的
xs:string
Gender
为空时失败,因为空字符串不是有效的
xs:int

如果要强制
Name
验证在为空时失败,则必须添加限制。您可以选择所需的限制类型:最小字符串长度、某些字符串字符(枚举或模式)等。在下面的示例中,我添加了一个限制,要求字符串至少有一个字符长:

<xs:element name="Name" minOccurs="1">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
        </xs:restriction>
    </xs:simpleType>
</xs:element>

现在,如果
Name
为空,它将失败