0

次のスキーマ コードがあります。

<xsd:choice minOccurs="0" maxOccurs="unbounded">
  <xsd:element ref="ref1"/>
  <xsd:element ref="ref2"/>
  <xsd:element ref="ref3"/>
  <xsd:element ref="ref4"/>
  <xsd:element ref="ref5"/>
</xsd:choice>

Java 用の XSOM ライブラリを使用しており、xsd:choice 要素に記述されている minOccurs と maxOccurs に関する情報を取得したいと考えています。私はインターネットを見回しましたが、実際の要素からこの情報を取得するための解決策しか見つかりませんでしたが、 xs:choice 要素は見つかりませんでした。

xs:choice 要素を「キャッチ」できる場所も特定しました。

public void startElement(XSModelGroup arg0) {
  if (arg0.getCompositor() == XSModelGroup.CHOICE) {

  }
}

ここで私が達成しようとしているのは、複数選択の「選択肢」と単一選択の「選択肢」を区別することです。誰かが助けてくれれば、とても感謝しています。

4

1 に答える 1

2

XSComplexTypeから始めている場合は、そこからXSContentTypeにアクセスでき、XSContentTypeからasParticle()を実行してコンテンツをパーティクルとして取得できます。パーティクルからgetTerm()を実行して、コンポーネント構造階層内の子を取得できます。モードグループ(おそらくxs:choiceを含む)である用語の場合、asModelGroup()を実行して次のレベルを取得できます。XSParticleは、minOccurs()およびmaxOccurs()プロパティを使用できる場所です。かなり奇妙なモデルです。

于 2012-04-18T15:57:04.513 に答える