Document is declared by using aka2::doctype(const std::string &name, const L &) function. See the following example.
struct foo { long value_; }; struct foo_leaf : aka2::sequence<foo, foo_leaf> { void model() { member("value", &foo::value_); } }; int main() { aka2::initialize(); // Users can use document "foo". aka2::doctype("foo", foo_leaf()); //... code continues. }
If the root type is aka2::any (xs:anyType), then use aka2::doctype(const std::string &name). Deserialized document is aka2::any.
int main() { aka2::initialize(); // aka2::any (xs:anyType) document declaration. aka2::doctype("anyType_document"); //... code continues. }
If the root type is fixed simpleType value, then use aka2::doctype(const std::string &name, const L&, const std::string &fixed_value).
int main() { aka2::initialize(); aka2::doctype("fixed_document", xiso::leaf<std::string>(), "fixed_value"); };