その型が参照されている場所で型のカーディナリティを定義する方法はありますか?
<xs:complexType name="xyType">
<xs:element name="xy" maxOccurs="1">
<xs:choice maxOccurs="1" minOccurs="0">
<xs:complexType>
<xs:choice maxOccurs="unbounded" minOccurs="0">
...
</xs:choice>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
たとえば、この型を参照する要素を持つ 2 つの型 A と B がありますが、あるケースでは 1 つの xy のみを許可し (上記のように)、別のケースでは複数の xy を許可したいと考えています (上記の xy の maxOccurs を変更した場合など)。 「無制限」に)。
実際には、この型の定義は非常に長く複雑であるため、xyType (単一) と xyType (無制限) の complexType 定義を完全に分離する必要はありません。
可能であれば、あまりにも多くの型を定義したくありません (内部の complexType を本体から分離し、その型を参照する 2 つの型を持つなど)。これは、私の特定のシナリオでも非常に複雑になります (スキーマで定義しようとする複雑なクラス階層があるため、すべてがすでに肥大化しています)。
したがって、基本的には、このタイプを参照しているタイプがカーディナリティを処理しているものを探しています。