Asp.net 验证XML元素的强制值
我想为XML创建一个XSD。我使用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> <
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
为空,它将失败