我正在尝试开发一个 XML Schema 文件来验证一个Person
元素。我们的应用程序要求一个人有一个FirstName
并且LastName
不关心他们进入的顺序。它还允许将其他元素放在Person
元素下。所以以下是有效的:
<person>
<firstName>Jon</firstName>
<lastName>Smith</lastName>
</person>
<person>
<lastName>Smith</lastName>
<firstName>Jon</firstName>
</person>
<person>
<title>Mr</title>
<firstName>Jon</firstName>
<lastName>Smith</lastName>
</person>
<person>
<title>Mr</title>
<lastName>Smith</lastName>
<firstName>Jon</firstName>
<suffix>CEng</suffix>
</person>
<person>
<title>Mr</title>
<lastName>Smith</lastName>
<middleInitial>G</middleInitial>
<firstName>Jon</firstName>
<suffix>CEng</suffix>
</person>
但是,以下内容无效,因为它没有firstName
:
<person>
<title>Mr</title>
<lastName>Smith</lastName>
<suffix>CEng</suffix>
</person>
我尝试创建一个像这样的复杂类型:
<xsd:element name="person">
<xsd:complexType>
<xsd:all>
<xsd:element minOccurs="1" maxOccurs="1" name="firstName" />
<xsd:element minOccurs="1" maxOccurs="1" name="lastName"/>
<xsd:any minOccurs="0" maxOccurs="unbounded" processContents="skip" />
</xsd:all>
</xsd:complexType>
</xsd:element>
但显然any
是不允许进去all
的。是否可以让 XML Schema 进行此验证?如果有怎么办?