XML 如果未提供另一个元素,则验证需要一个元素 - 没有 XSD 1.1

XML validation to require an element if another is not provided - without XSD 1.1

最好不使用 XSD 1.1 - 如果未提供另一个元素,则需要一个 XML 元素,反之亦然。

假设我有一个 Job 元素:

<Job>
  <Ref>""</JobReferenceId>
  <Title>""</JobTitle>
  <Type>""</Type>
  <Contract>""</Contract>
</Job>
如果未提供 Contract

Type 应为必需元素;如果未提供 Type,则 Contract 应为必需元素。两者不应一起提供。

如果没有 XSD 1.1,我可以这样做吗?

听起来很直白xs:choice:

xs:sequence
  xs:element name="Ref"
  xs:element name="Title"
  xs:choice
     xs:element name="Type"
     xs:element name="Contract"