Main Page Namespace List Class Hierarchy Compound List File List Namespace Members Compound Members Related Pages

# Akaxiso Particles

## aka:sequence

aka:sequence is a particle in akaxiso datamodel based on xs:sequence.
This particle has child element sequence like xs:sequence, and the real values are defined as value-class members.
aka:sequence is equvalent to the following XML Schema definitions.

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>()]);
      }
    };

## aka:choice

    <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>

## aka:all

    <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>