1

请协助,这是我在验证我的 xml 文件时想要实现的目标:

<?xml version="1.0" encoding="UTF-8"?>
<worker>
    <name>dingo</name>
    <ssn>12345</ssn>
</worker>

我想确保两个简单的元素“name”和“ssn”要么有值(作为一个组),要么没有任何值(作为一个组)。它们不能单独存在并具有价值。

我必须使用 XSD 架构,所以不能使用其他选项我有时会看到建议:Relax NG 等。我考虑为元素“name”和“ssn”创建一个组,但我无法找到如何为本组获得我的条件。

我当前的 XSD 文件:

<xs:complexType name="worker">
<xs:sequence>
    <xs:element name="name" type="xs:string" minOccurs="0" "maxOccurs="1">
    <xs:element name="ssn" type="xs:positiveInteger" minOccurs="0" "maxOccurs="1">
</xs:sequence>
</xs:complexType>
4

2 回答 2

1

你所要做的

<xs:complexType name="worker">
   <xs:group ref="workerGrp" minOccurs="0"/>
</xs:complexType>

<xs:group name="workerGrp">
  <xs:sequence>
    <xs:element name="name" type="xs:string">
    <xs:element name="ssn" type="xs:positiveInteger">
  </xs:sequence>
</xs:group>
于 2013-01-08T21:18:57.410 回答
1
<xs:complexType name="worker">
  <xs:sequence minOccurs="0">
    <xs:element name="name" type="xs:string">
    <xs:element name="ssn" type="xs:positiveInteger">
  </xs:sequence>
</xs:complexType>
于 2013-01-08T23:02:02.760 回答