有没有办法使用minoccour ='1'来使用xsd架构元素验证xml

时间:2013-05-13 09:45:15

标签: coldfusion xsd coldfusion-9 xsd-validation

我有一个Xsd文件

<?xml version="1.0"?>
<xs:schema id="Peoples" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
  <xs:element name="Peoples">
    <xs:complexType>
      <xs:sequence minOccurs="1" maxOccurs="unbounded">
        <xs:element name="People">
          <xs:complexType>
            <xs:all>
              <xs:element name="firstname" minOccurs="1" >
                  <xs:simpleType>
                    <xs:restriction base="xs:string">
                      <xs:minLength value="1"/>
                      <xs:maxLength value="50"/>
                    </xs:restriction>
                  </xs:simpleType>       
              </xs:element>  
              <xs:element name="lastname" minOccurs="1" >
                  <xs:simpleType>
                    <xs:restriction base="xs:string">
                      <xs:minLength value="1"/>
                      <xs:maxLength value="50"/>
                    </xs:restriction>
                  </xs:simpleType>       
              </xs:element>  
             <xs:element name="midinitial" minOccurs="0">
                  <xs:simpleType>
                    <xs:restriction base="xs:string">
                      <xs:maxLength value="50"/>
                    </xs:restriction>
                  </xs:simpleType>  
              </xs:element>
              <xs:element name="email" minOccurs="0" >
                  <xs:simpleType>
                    <xs:restriction base="xs:string">
                      <xs:maxLength value="50"/>
                    </xs:restriction>
                  </xs:simpleType>  
              </xs:element> 
            </xs:all>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

,xml文件是

<Peoples xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="">
    <People>
        <firstname>James</firstname>
    </People>
</Peoples>

它给出的xml验证 :1:142:cvc-complex-type.2.4.b:元素'People'的内容不完整。预计会有一个'{lastname,midinitial,email}'。

但是在这里,firstname和lastname是requied字段。 有一种方法可以单独验证xml仅需要的字段

1 个答案:

答案 0 :(得分:0)

您的问题不是验证器验证不正确。您的问题是您不喜欢它的错误消息。您的选择是尝试另一个验证器,看看它是否为您更喜欢的案例生成验证消息,或者习惯于错误消息有时不告诉我们他们希望他们做什么,有时告诉我们事情我们希望他们没有。