- ベストアンサー
complexTypeは入れ子にできない?
- XML Schemaで入れ子型を使いたい場合、complexTypeは入れ子にできないようです。
- XML Schemaでの解決方法は、各要素の重複を許可するcomplexTypeを定義し、それを唯一の要素として指定することです。
- 解決方法の具体的な例として、Test要素内に唯一の要素Aと、重複を許可する要素BとCを持つcomplexType定義を行い、それをTest要素の型として指定します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
この場合で言うなら、こんな感じでいいと思います。 ---------------------------------------------------------------- <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="Test"> <xs:complexType> <xs:sequence> <xs:element name="A" type="xs:int" /> <xs:sequence minOccurs="0" maxOccurs="unbounded"> <xs:element name="B" type="xs:int" /> <xs:element name="C" type="xs:int" /> </xs:sequence> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> ---------------------------------------------------------------- complexType がネストできるかどうかでいうと、 <D> <B>0</B> <C>0</C> </D> のような時に <xs:element name="D"> <xs:complexType> … のような形で、ネストはできると思いますが、 質問文のような形ではできないと思います。 ていうか、必要がないし。
お礼
なるほど。complexTypeでなくsequenceの入れ子で対応できるのですね。この構文は初めて知りました。まだまだ勉強不足。頑張ります。 どうも有難うございました。