使用以下内容我总是收到无效子元素错误。我是 XML 的新手,我一直在网上寻找并尝试解决这个问题,但没有运气。我有另一个 XSD 正在验证提交到我的应用程序的 XML,它工作得很好,但它使用的是属性而不是元素。无法使用 XSD 中的元素来验证通过我无法控制的第 3 方应用程序提交的 XML。
XSD
<?xml version="1.0" encoding="Windows-1252"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="SCCAParticipationList">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="Entry">
<xs:complexType>
<xs:sequence>
<xs:element name="Address" type="xs:string" minOccurs="0" />
<xs:element name="CarModel" type="xs:string" minOccurs="0" />
<xs:element name="CarNo" type="xs:string" minOccurs="0" />
<xs:element name="TotalTm" type="xs:string" minOccurs="0" />
<xs:element name="BestTm" type="xs:string" minOccurs="0" />
<xs:element name="Region" type="xs:string" minOccurs="0" />
<xs:element name="MemberNo" type="xs:string" minOccurs="1" />
<xs:element name="FirstName" type="xs:string" minOccurs="1" />
<xs:element name="LastName" type="xs:string" minOccurs="1" />
<xs:element name="Class" type="xs:string" minOccurs="1" />
<xs:element name="Pos" type="xs:string" minOccurs="1" />
<xs:element name="UniqueID" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
至少有一个问题是您对 Entry 子元素的排序不正确。序列标签中定义的元素必须以相同的顺序出现在相应的 XML 文档中。
根据您的架构验证示例 XML 后,这是我看到的唯一问题。
EDIT:
如果您无法控制输入文件元素顺序并且它不一致并且 Entry 的每个子元素每个 Entry 最多只能出现一次,您可能需要使用all http://www.w3schools.com/schema/el_all.asp元素而不是序列。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)