我正在尝试针对xsd架构验证我的xml文档。
我正在使用此页面http://www.freeformatter.com/xml-validator-xsd.html,我收到错误:“S4s-elt-must-match.1:'序列'的内容必须匹配(注释?,(元素|组|选择|序列|任何)*)。发现问题从:ComplexType开始。“
以下是XML http://wklej.org/id/2303662/,此处为XSD:http://wklej.org/id/2303799/
你能帮我解决这个错误吗?我想这是Address元素的一个问题。
答案 0 :(得分:1)
替换:
<xs:element name="Address" type="addressType"/>
<xs:complexType >
<xs:sequence>
<xs:element name="street" type="streetType"/>
<xs:element name="home" type="homeType"/>
<xs:element name="city" type="cityType"/>
<xs:element name="country" type="countryType"/>
<xs:element name="code" type="codeType"/>
</xs:sequence>
</xs:complexType>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexTypeType name="addressType">
</xs:complexTypeType>
使用:
<xs:element name="Address" type="addressType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="addressType">
<xs:sequence>
<xs:element name="street" type="streetType"/>
<xs:element name="home" type="homeType"/>
<xs:element name="city" type="cityType"/>
<xs:element name="country" type="countryType"/>
<xs:element name="code" type="codeType"/>
</xs:sequence>
</xs:complexType>
然后架构应该有效。
xml文件无效,如
<code>72-864</code>
与架构中的预期模式不匹配:
<xs:pattern value="[0-9]{5}(-[0-9]{4})?"/>
我不知道哪个是正确的。
答案 1 :(得分:0)
替换以下内容:
<xs:element name="person">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="firstname" type="namesType"/>
<xs:element name="lastname" type="namesType"/>
<xs:element name="birthdate" type="birthType"/>
<xs:element name="PESEL" type="peselType"/>
<xs:element name="sex" type="sexType"/>
<xs:element name="Address" type="addressType"/>
<xs:complexType >
<xs:sequence>
<xs:element name="street" type="streetType"/>
<xs:element name="home" type="homeType"/>
<xs:element name="city" type="cityType"/>
<xs:element name="country" type="countryType"/>
<xs:element name="code" type="codeType"/>
</xs:sequence>
</xs:complexType>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="addressType">
</xs:complexType>
使用:
<xs:element name="person">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="firstname" type="namesType"/>
<xs:element name="lastname" type="namesType"/>
<xs:element name="birthdate" type="birthType"/>
<xs:element name="PESEL" type="peselType"/>
<xs:element name="sex" type="sexType"/>
<xs:element name="Address" type="addressType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="addressType">
<xs:sequence>
<xs:element name="street" type="streetType"/>
<xs:element name="home" type="homeType"/>
<xs:element name="city" type="cityType"/>
<xs:element name="country" type="countryType"/>
<xs:element name="code" type="codeType"/>
</xs:sequence>
</xs:complexType>
正如ChrisC所说,该元素不会以当前模式验证。