When used as xs:complexType,
<xs:complexType name="aka:sequence">
<xs:sequence>
<!-- 0 or more -->
<xs:element ..../>, <xs:group ..../>
</xs:sequence>
<!-- 0 or more -->
<xs:attribute ..../>
</xs:complexType>
When used as xs:group,
<xs:group name="aka:sequence_group">
<xs:sequence>
<!-- 0 or more -->
<xs:element ..../>, <xs:group ..../>
</xs:sequence>
</xs:group>
Expample is here.
Code surrounded by [ ] is optional, because xiso::leaf<> is implicitly specified.
// Value class struct foo { std::string member1_; long member2_; }; // leaf class struct foo_leaf : aka::sequence<foo, foo_leaf> { void model() { member("member1", &foo::member1_[, xiso::leaf<std::string>()]); member("member2", &foo::member2_[, xiso::leaf<long>()]); } };
<xs:complexType name="aka:choice">
<xs:choice>
<!-- 0 or more -->
<xs:element ... />
</xs:choice>
</xs:complexType>
<xs:group name="aka:choice_group">
<xs:choice>
<!-- 0 or more -->
<xs:element ... />
</xs:choice>
</xs:group>
<xs:compexType name="aka:all">
<xs:all>
<!-- 0 or more -->
<xs:element .../>
</xs:all>
<!-- 0 or more -->
<xs:attribute ... />
</xs:complexType>
<xs:group name="aka:all_group">
<xs:all>
<!-- 0 or more -->
<xs:element .../>
</xs:all>
</xs:group>