"case dependent" structures in xsd

Dear XSD-developers,

for about three days now I am trying to model the following structure 
using XMLSchema. But unfortunately I am going more and more insane with 
this issue.

Here are the desired outputs in two versions:

<!-- Possibility 2 -->
<cbox1>
        <AUD_cbox1_title_icon/>
        <AUD_cbox1_title/>
        <AUD_cbox_h1_after_boxtitle/>
        <AUD_cbox_body/>
        <AUD_cbox_h1/>
        <AUD_cbox_body/>
        <AUD_cbox_body/>
        <AUD_cbox_h2/>
        <AUD_cbox_body/>
        <AUD_cbox_h1/>
        <AUD_cbox_h2_after_h1/>
        <AUD_cbox_body/>
        <AUD_cbox_body/>
        <AUD_cbox_h2/>
        <AUD_cbox_body/>
        <!-- and so on -->
</cbox1>

<!-- Possibility 2 -->
<cbox1>
        <AUD_cbox_h1/>
        <AUD_cbox_h2_after_h1/>
        <AUD_cbox_body/>
        <AUD_cbox_body/>
        <AUD_cbox_h2/>
        <AUD_cbox_body/>
        <AUD_cbox_h1/>
        <AUD_cbox_h2_after_h1/>
        <AUD_cbox_body/>
        <!-- and so on -->
</cbox1>


And this is my current XSD. But as I said I am trying for about three 
days without any good idea.

<xs:element name="cbox1">
        <xs:complexType>
            <xs:choice>
                <xs:sequence minOccurs="0">
                    <xs:element name="AUD_cbox1_title_icon"/>
                    <xs:element name="AUD_cbox1_title"/>
                </xs:sequence>
                <xs:choice>
                    <xs:element name="AUD_cbox_h1_after_boxtitle" 
minOccurs="0"/>
                    <xs:element name="AUD_cbox_h1"/>
                    <xs:element name="AUD_cbox_h2"/>
                    <xs:element name="AUD_cbox_h2_after_h1"/>
                </xs:choice>
                <xs:choice>
                    <xs:element name="AUD_cbox_body"/>
                    <xs:element name="AUD_cbox_list_alphanum_level_1"/>
                    <xs:element name="AUD_cbox_list_alphanum_level_2"/>
                    <xs:element name="AUD_cbox_list_alphanum_level_3"/>
                    <xs:element name="AUD_cbox_list_symbols_level_1"/>
                    <xs:element name="AUD_cbox_list_symbols_level_2"/>
                    <xs:element name="AUD_cbox_list_symbols_level_3"/>
                </xs:choice>
            </xs:choice>
        </xs:complexType>
    </xs:element>

Especially the <AUD_cbox_h1_after_boxtitle/> and 
<AUD_cbox_h2_after_h1"/> are the biggest problems for me.

I donĀ“t know if such "case dependent structures" are possible using XSD. 
Perhaps the solution will be to use a different language. This will be a 
suitable answer, too.

I hope everything is understandable.


Thanks in advance,
Andreas

Received on Wednesday, 5 November 2008 20:04:11 UTC