XSD minLength没有定义,默认minLegnth是什么?

时间:2011-06-13 07:55:06

标签: .net xml xsd

我有一个xsd定义如下

<xs:simpleType name="ShortName">
    <xs:restriction base="xs:string">
      <xs:maxLength value="3"/>
    </xs:restriction>
  </xs:simpleType>

我只给了maxLength而没有定义minLength。这是否意味着我可以将'ShortName'的长度设为0,1,2,3个字符?

如果我没有明确设置最小长度,最小长度是否默认为0(minLength = 0)?

2 个答案:

答案 0 :(得分:2)

http://www.w3schools.com/schema/schema_facets.asp

  

minLength:指定最小值   字符数或列表项   允许。必须等于或大于   比零。

如果没有指定,我认为默认为零。

答案 1 :(得分:2)

来自w3c

  

验证规则:maxLength有效

     

值空间中的值相对于 maxLength 是facet-valid,确定如下:

     
    

1如果{variety} 原子那么

         
      

1.1如果{primitive type definition}是string或anyURI,则以字符测量的值的长度必须小于或等于{value};

             

1.2如果{primitive type definition}是hexBinary或base64Binary,那么以二进制数据的八位字节为单位测量的值的长度必须小于或等于{value}; < / p>              

1.3如果{primitive type definition}是QName或NOTATION,那么任何{value}都是facet-valid。

    
         

2如果{variety}是列表,那么在列表项中测量的值的长度必须小于或等于{value} < / p>   

根据此定义,并且在没有minLength限制的情况下,任何小于或等于您定义的maxLength的长度值都是有效的。 Ergo,零将是符合规范的XML验证器的默认minLength。