0

「アカウント」要素の下に少なくとも 1 つの選択肢を義務付けることは可能ですか? (または) 「アカウント」要素の下で 1 つの選択肢をデフォルトにすることは可能ですか?

<xs:element name="Account">
  <xs:complexType>
   <xs:choice>
     <xs:element name="User" type="tns:users"/>
     <xs:element name="Group" type="tns:groups"/>
   </xs:choice>
  </xs:complexType>
</xs:element>
4

2 に答える 2

1

「少なくとも1つの選択肢を義務付ける」とは、ユーザーまたはグループの少なくとも1つが表示されることを要求することを意味する場合、はい、表示できます。表示するXSDフラグメントはこれを行います。ユーザーが(たとえば)各アカウントで少なくとも1回発生することを要求する場合は、はい、できますが、その場合、表示するフラグメントはそれを行いません。

「デフォルトの1つの選択肢」によって、ドキュメントインスタンスにユーザーもグループも含まれていない場合にユーザー(たとえば)を想定させることを意味する場合、いいえ、私が知っているXMLスキーマ言語にはその機能がありません(もちろん、あなたの処理ソフトウェアは、あなた自身の創意工夫によってのみ制限されます)。一方、「既定で 1 つの選択肢」とは、XML ドキュメント インスタンスに空の Group 要素が含まれている場合に Group の既定値を指定するという意味であり、Group が単純な型を持っている場合は可能です。

于 2013-02-28T13:25:24.997 に答える
0

質問の最初の部分を正しく理解している場合、要素にはサブAccount要素Userまたはサブ要素、あるいはその両方が含まれている必要がありますが、サブ要素、複数またはサブ要素を含めるGroupことはできません。UserGroup

これが要件である場合は、以下を使用してください。

<xs:element name="Account">
  <xs:complexType>
    <xs:choice>
      <xs:sequence>
        <xs:element name="User" type="tns:users"/>
        <xs:element name="Group" type="tns:groups" minOccurs="0"/>
      </xs:sequence>
      <xs:element name="Group" type="tns:groups"/>
    </xs:choice>
  </xs:complexType>
</xs:element>

質問の2番目の部分の「デフォルトの1つの選択肢」が何を意味するのかわかりません。

于 2013-02-28T21:57:28.783 に答える