/* -*- c++ -*- */
#ifndef element_h__
#define element_h__

#include <akaxiso/schema/schema_builtin.h>

namespace xml {

  void instantiate_xiso();

  /** simpleType definitions */

  typedef ::xs::NCName space;


}


namespace xs {

  void instantiate_xiso();

  /** simpleType definitions */

  typedef ::std::string allNNI;

  typedef ::std::string blockSet;

  typedef ::xs::NMTOKEN derivationControl;

  typedef ::std::string derivationSet;

  typedef ::xs::NMTOKEN formChoice;

  typedef ::std::string fullDerivationSet;

  typedef ::std::string namespaceList;

  typedef ::xs::token _public;

  typedef ::xs::derivationControl reducedDerivationControl;

  typedef ::std::string simpleDerivationSet;

  typedef ::xs::derivationControl typeDerivationControl;

  /** complexType definitions */

  struct appinfo_sequence {
    /** members */
    ::aka::any any_;
  };

  typedef std::list< ::xs::appinfo_sequence> appinfo_sequence_holder;

  struct appinfo {
    /** members */
    ::xs::appinfo_sequence_holder s0_;
    /** attributes */
    ::xs::anyURI source_;
    aka::any_attributes attributes_;
  };

  struct documentation_sequence {
    /** members */
    ::aka::any any_;
  };

  typedef std::list< ::xs::documentation_sequence> documentation_sequence_holder;

  struct documentation {
    /** members */
    ::xs::documentation_sequence_holder s0_;
    /** attributes */
    ::xs::anyURI source_;
    ::xs::language lang_;
    aka::any_attributes attributes_;
  };

  typedef std::list<aka::item> annotation_choice;
  struct annotation {
    /** members */
    ::xs::annotation_choice c0_;
    /** attributes */
    ::xs::ID id_;
    aka::any_attributes attributes_;
  };

  struct annotated_sequence {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
  };

  typedef std::list<aka::item> allModel_c0;
  struct allModel {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    ::xs::allModel_c0 c0_;
  };

  struct all {
    /** members */
    ::xs::allModel allModel_;
    /** attributes */
    ::xs::ID id_;
    ::xs::NCName name_;
    ::xs::QName ref_;
    ::xs::nonNegativeInteger minOccurs_;
    ::xs::allNNI maxOccurs_;
    aka::any_attributes attributes_;
  };

  struct annotated {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    /** attributes */
    ::xs::ID id_;
    aka::any_attributes attributes_;
  };

  typedef ::xs::NMTOKEN wildcard_processContents;

  struct any {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    /** attributes */
    ::xs::ID id_;
    ::xs::namespaceList namespace_;
    ::xs::wildcard_processContents processContents_;
    ::xs::nonNegativeInteger minOccurs_;
    ::xs::allNNI maxOccurs_;
    aka::any_attributes attributes_;
  };

  struct anyType {
    /** members */
    ::aka::any_array any_;
    /** attributes */
    aka::any_attributes attributes_;
  };

  typedef std::list<aka::item> attrDecls_c0;
  struct wildcard {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    /** attributes */
    ::xs::ID id_;
    ::xs::namespaceList namespace_;
    ::xs::wildcard_processContents processContents_;
    aka::any_attributes attributes_;
  };

  struct attrDecls {
    /** members */
    ::xs::attrDecls_c0 c0_;
    aka::deep_ptr< ::xs::wildcard> anyAttribute_;
  };

  typedef std::list<aka::item> simpleDerivation;
  struct localSimpleType {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    ::xs::simpleDerivation simpleDerivation_;
    /** attributes */
    ::xs::ID id_;
    ::xs::simpleDerivationSet final_;
    ::xs::NCName name_;
    aka::any_attributes attributes_;
  };

  struct attribute_sequence {
    /** members */
    aka::deep_ptr< ::xs::localSimpleType> simpleType_;
  };

  typedef ::xs::NMTOKEN attribute_use;

  struct attribute {
    /** members */
    ::xs::annotated_sequence s0_;
    ::xs::attribute_sequence s1_;
    /** attributes */
    ::xs::ID id_;
    ::xs::NCName name_;
    ::xs::QName ref_;
    ::xs::QName type_;
    ::xs::attribute_use use_;
    ::std::string default_;
    ::std::string fixed_;
    ::xs::formChoice form_;
    aka::any_attributes attributes_;
  };

  struct attributeGroup {
    /** members */
    ::xs::annotated_sequence s0_;
    ::xs::attrDecls attrDecls_;
    /** attributes */
    ::xs::ID id_;
    ::xs::NCName name_;
    ::xs::QName ref_;
    aka::any_attributes attributes_;
  };

  struct attributeGroupRef {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    /** attributes */
    ::xs::ID id_;
    ::xs::NCName name_;
    ::xs::QName ref_;
    aka::any_attributes attributes_;
  };

  struct groupRef {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    /** attributes */
    ::xs::ID id_;
    ::xs::NCName name_;
    ::xs::QName ref_;
    ::xs::nonNegativeInteger minOccurs_;
    ::xs::allNNI maxOccurs_;
    aka::any_attributes attributes_;
  };

  struct facet {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    /** attributes */
    ::xs::ID id_;
    ::std::string value_;
    bool fixed_;
    aka::any_attributes attributes_;
  };

  struct totalDigits {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    /** attributes */
    ::xs::ID id_;
    ::std::string value_;
    bool fixed_;
    aka::any_attributes attributes_;
  };

  struct numFacet {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    /** attributes */
    ::xs::ID id_;
    ::std::string value_;
    bool fixed_;
    aka::any_attributes attributes_;
  };

  struct noFixedFacet {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    /** attributes */
    ::xs::ID id_;
    ::std::string value_;
    bool fixed_;
    aka::any_attributes attributes_;
  };

  struct whiteSpace {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    /** attributes */
    ::xs::ID id_;
    ::std::string value_;
    bool fixed_;
    aka::any_attributes attributes_;
  };

  struct pattern {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    /** attributes */
    ::xs::ID id_;
    ::std::string value_;
    bool fixed_;
    aka::any_attributes attributes_;
  };

  typedef std::list<aka::item> facets;
  struct simpleRestrictionModel {
    /** members */
    aka::deep_ptr< ::xs::localSimpleType> simpleType_;
    ::xs::facets facets_;
  };

  typedef std::list<aka::item> simpleRestrictionType_sequence_c0;
  struct simpleRestrictionType {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    aka::deep_ptr< ::xs::simpleRestrictionType_sequence_c0> c0_;
    ::xs::attrDecls attrDecls_;
    /** attributes */
    ::xs::ID id_;
    ::xs::QName base_;
    aka::any_attributes attributes_;
  };

  struct simpleExtensionType {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    ::xs::attrDecls attrDecls_;
    /** attributes */
    ::xs::ID id_;
    ::xs::QName base_;
    aka::any_attributes attributes_;
  };

  typedef std::list<aka::item> simpleContent_choice;
  struct simpleContent {
    /** members */
    ::xs::annotated_sequence s0_;
    ::xs::simpleContent_choice c0_;
    /** attributes */
    ::xs::ID id_;
    aka::any_attributes attributes_;
  };

  typedef std::list<aka::item> complexContent_choice;
  struct complexContent {
    /** members */
    ::xs::annotated_sequence s0_;
    ::xs::complexContent_choice c0_;
    /** attributes */
    ::xs::ID id_;
    bool mixed_;
    aka::any_attributes attributes_;
  };

  typedef std::list<aka::item> complexRestrictionType_sequence_c0;
  struct complexRestrictionType {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    aka::deep_ptr< ::xs::complexRestrictionType_sequence_c0> c0_;
    ::xs::attrDecls attrDecls_;
    /** attributes */
    ::xs::ID id_;
    ::xs::QName base_;
    aka::any_attributes attributes_;
  };

  typedef std::list<aka::item> complexTypeModel;
  struct complexType {
    /** members */
    ::xs::annotated_sequence s0_;
    ::xs::complexTypeModel complexTypeModel_;
    /** attributes */
    ::xs::ID id_;
    ::xs::NCName name_;
    bool mixed_;
    bool abstract_;
    ::xs::derivationSet final_;
    ::xs::derivationSet block_;
    aka::any_attributes attributes_;
  };

  struct localComplexType {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    ::xs::complexTypeModel complexTypeModel_;
    /** attributes */
    ::xs::ID id_;
    ::xs::NCName name_;
    bool mixed_;
    bool abstract_;
    ::xs::derivationSet final_;
    ::xs::derivationSet block_;
    aka::any_attributes attributes_;
  };

  typedef std::list<aka::item> localElement_sequence_c0;
  typedef ::xs::token selector_xpath;

  struct selector {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    /** attributes */
    ::xs::ID id_;
    ::xs::selector_xpath xpath_;
    aka::any_attributes attributes_;
  };

  typedef ::xs::token field_xpath;

  struct field {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    /** attributes */
    ::xs::ID id_;
    ::xs::field_xpath xpath_;
    aka::any_attributes attributes_;
  };

  typedef std::list< ::xs::field> field_array;

  struct keybase_sequence {
    /** members */
    ::xs::selector selector_;
    ::xs::field_array field_;
  };

  struct keybase {
    /** members */
    ::xs::annotated_sequence s0_;
    ::xs::keybase_sequence s1_;
    /** attributes */
    ::xs::ID id_;
    ::xs::NCName name_;
    aka::any_attributes attributes_;
  };

  struct keyref {
    /** members */
    ::xs::annotated_sequence s0_;
    ::xs::keybase_sequence s1_;
    /** attributes */
    ::xs::ID id_;
    ::xs::NCName name_;
    ::xs::QName refer_;
    aka::any_attributes attributes_;
  };

  typedef std::list<aka::item> identityConstraint;
  struct localElement {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    aka::deep_ptr< ::xs::localElement_sequence_c0> c0_;
    ::xs::identityConstraint identityConstraint_;
    /** attributes */
    ::xs::ID id_;
    ::xs::NCName name_;
    ::xs::QName ref_;
    ::xs::QName type_;
    ::xs::QName substitutionGroup_;
    ::xs::nonNegativeInteger minOccurs_;
    ::xs::allNNI maxOccurs_;
    ::std::string default_;
    ::std::string fixed_;
    bool nillable_;
    bool abstract_;
    ::xs::derivationSet final_;
    ::xs::blockSet block_;
    ::xs::formChoice form_;
    aka::any_attributes attributes_;
  };

  typedef std::list<aka::item> typeDefParticle;
  struct complexTypeModel_s0 {
    /** members */
    aka::deep_ptr< ::xs::typeDefParticle> typeDefParticle_;
    ::xs::attrDecls attrDecls_;
  };

  typedef std::list<aka::item> element_sequence_c0;
  struct element_sequence {
    /** members */
    aka::deep_ptr< ::xs::element_sequence_c0> c0_;
    ::xs::identityConstraint identityConstraint_;
  };

  struct element {
    /** members */
    ::xs::annotated_sequence s0_;
    ::xs::element_sequence s1_;
    /** attributes */
    ::xs::ID id_;
    ::xs::NCName name_;
    ::xs::QName ref_;
    ::xs::QName type_;
    ::xs::QName substitutionGroup_;
    ::xs::nonNegativeInteger minOccurs_;
    ::xs::allNNI maxOccurs_;
    ::std::string default_;
    ::std::string fixed_;
    bool nillable_;
    bool abstract_;
    ::xs::derivationSet final_;
    ::xs::blockSet block_;
    ::xs::formChoice form_;
    aka::any_attributes attributes_;
  };

  typedef std::list<aka::item> nestedParticle;
  struct explicitGroup {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    ::xs::nestedParticle nestedParticle_;
    /** attributes */
    ::xs::ID id_;
    ::xs::NCName name_;
    ::xs::QName ref_;
    ::xs::nonNegativeInteger minOccurs_;
    ::xs::allNNI maxOccurs_;
    aka::any_attributes attributes_;
  };

  struct extensionType_sequence {
    /** members */
    aka::deep_ptr< ::xs::typeDefParticle> typeDefParticle_;
    ::xs::attrDecls attrDecls_;
  };

  struct extensionType {
    /** members */
    ::xs::annotated_sequence s0_;
    ::xs::extensionType_sequence s1_;
    /** attributes */
    ::xs::ID id_;
    ::xs::QName base_;
    aka::any_attributes attributes_;
  };

  typedef std::list<aka::item> particle;
  struct group {
    /** members */
    ::xs::annotated_sequence s0_;
    ::xs::particle particle_;
    /** attributes */
    ::xs::ID id_;
    ::xs::NCName name_;
    ::xs::QName ref_;
    ::xs::nonNegativeInteger minOccurs_;
    ::xs::allNNI maxOccurs_;
    aka::any_attributes attributes_;
  };

  struct import {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    /** attributes */
    ::xs::ID id_;
    ::xs::anyURI namespace_;
    ::xs::anyURI schemaLocation_;
    aka::any_attributes attributes_;
  };

  struct include {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    /** attributes */
    ::xs::ID id_;
    ::xs::anyURI schemaLocation_;
    aka::any_attributes attributes_;
  };

  struct list_sequence {
    /** members */
    aka::deep_ptr< ::xs::localSimpleType> simpleType_;
  };

  struct list {
    /** members */
    ::xs::annotated_sequence s0_;
    ::xs::list_sequence s1_;
    /** attributes */
    ::xs::ID id_;
    ::xs::QName itemType_;
    aka::any_attributes attributes_;
  };

  struct namedAttributeGroup {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    ::xs::attrDecls attrDecls_;
    /** attributes */
    ::xs::ID id_;
    ::xs::NCName name_;
    ::xs::QName ref_;
    aka::any_attributes attributes_;
  };

  struct namedGroup_sequence_c0_all {
    /** members */
    ::xs::allModel allModel_;
    /** attributes */
    ::xs::ID id_;
    ::xs::NCName name_;
    ::xs::QName ref_;
    ::xs::nonNegativeInteger minOccurs_;
    ::xs::allNNI maxOccurs_;
    aka::any_attributes attributes_;
  };

  struct simpleExplicitGroup {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    ::xs::nestedParticle nestedParticle_;
    /** attributes */
    ::xs::ID id_;
    ::xs::NCName name_;
    ::xs::QName ref_;
    ::xs::nonNegativeInteger minOccurs_;
    ::xs::allNNI maxOccurs_;
    aka::any_attributes attributes_;
  };

  typedef std::list<aka::item> namedGroup_sequence_c0;
  struct namedGroup {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    ::xs::namedGroup_sequence_c0 c0_;
    /** attributes */
    ::xs::ID id_;
    ::xs::NCName name_;
    ::xs::QName ref_;
    ::xs::nonNegativeInteger minOccurs_;
    ::xs::allNNI maxOccurs_;
    aka::any_attributes attributes_;
  };

  typedef std::list<aka::item> narrowMaxMin_sequence_c0;
  struct narrowMaxMin {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    aka::deep_ptr< ::xs::narrowMaxMin_sequence_c0> c0_;
    ::xs::identityConstraint identityConstraint_;
    /** attributes */
    ::xs::ID id_;
    ::xs::NCName name_;
    ::xs::QName ref_;
    ::xs::QName type_;
    ::xs::QName substitutionGroup_;
    ::xs::nonNegativeInteger minOccurs_;
    ::xs::allNNI maxOccurs_;
    ::std::string default_;
    ::std::string fixed_;
    bool nillable_;
    bool abstract_;
    ::xs::derivationSet final_;
    ::xs::blockSet block_;
    ::xs::formChoice form_;
    aka::any_attributes attributes_;
  };

  struct notation {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    /** attributes */
    ::xs::ID id_;
    ::xs::NCName name_;
    ::xs::_public public_;
    ::xs::anyURI system_;
    aka::any_attributes attributes_;
  };

  struct openAttrs {
    /** attributes */
    aka::any_attributes attributes_;
  };

  typedef std::list<aka::item> realGroup_sequence_c0;
  struct realGroup {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    aka::deep_ptr< ::xs::realGroup_sequence_c0> c0_;
    /** attributes */
    ::xs::ID id_;
    ::xs::NCName name_;
    ::xs::QName ref_;
    ::xs::nonNegativeInteger minOccurs_;
    ::xs::allNNI maxOccurs_;
    aka::any_attributes attributes_;
  };

  struct topLevelSimpleType {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    ::xs::simpleDerivation simpleDerivation_;
    /** attributes */
    ::xs::ID id_;
    ::xs::simpleDerivationSet final_;
    ::xs::NCName name_;
    aka::any_attributes attributes_;
  };

  struct topLevelComplexType {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    ::xs::complexTypeModel complexTypeModel_;
    /** attributes */
    ::xs::ID id_;
    ::xs::NCName name_;
    bool mixed_;
    bool abstract_;
    ::xs::derivationSet final_;
    ::xs::derivationSet block_;
    aka::any_attributes attributes_;
  };

  typedef std::list<aka::item> redefinable;
  typedef std::list<aka::item> redefine_choice;
  struct redefine {
    /** members */
    ::xs::redefine_choice c0_;
    /** attributes */
    ::xs::anyURI schemaLocation_;
    ::xs::ID id_;
    aka::any_attributes attributes_;
  };

  struct restriction {
    /** members */
    ::xs::annotated_sequence s0_;
    ::xs::simpleRestrictionModel simpleRestrictionModel_;
    /** attributes */
    ::xs::ID id_;
    ::xs::QName base_;
    aka::any_attributes attributes_;
  };

  typedef std::list<aka::item> restrictionType_sequence_c0;
  struct restrictionType_sequence {
    /** members */
    aka::deep_ptr< ::xs::restrictionType_sequence_c0> c0_;
    ::xs::attrDecls attrDecls_;
  };

  struct restrictionType {
    /** members */
    ::xs::annotated_sequence s0_;
    ::xs::restrictionType_sequence s1_;
    /** attributes */
    ::xs::ID id_;
    ::xs::QName base_;
    aka::any_attributes attributes_;
  };

  typedef std::list<aka::item> schema_sequence_c0;
  typedef std::list<aka::item> topLevelElement_sequence_c0;
  struct topLevelElement {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    aka::deep_ptr< ::xs::topLevelElement_sequence_c0> c0_;
    ::xs::identityConstraint identityConstraint_;
    /** attributes */
    ::xs::ID id_;
    ::xs::NCName name_;
    ::xs::QName ref_;
    ::xs::QName type_;
    ::xs::QName substitutionGroup_;
    ::xs::nonNegativeInteger minOccurs_;
    ::xs::allNNI maxOccurs_;
    ::std::string default_;
    ::std::string fixed_;
    bool nillable_;
    bool abstract_;
    ::xs::derivationSet final_;
    ::xs::blockSet block_;
    ::xs::formChoice form_;
    aka::any_attributes attributes_;
  };

  struct topLevelAttribute {
    /** members */
    aka::deep_ptr< ::xs::annotation> annotation_;
    aka::deep_ptr< ::xs::localSimpleType> simpleType_;
    /** attributes */
    ::xs::ID id_;
    ::xs::NCName name_;
    ::xs::QName ref_;
    ::xs::QName type_;
    ::xs::attribute_use use_;
    ::std::string default_;
    ::std::string fixed_;
    ::xs::formChoice form_;
    aka::any_attributes attributes_;
  };

  typedef std::list<aka::item> schemaTop;
  typedef std::list< ::xs::annotation> annotation_array;

  struct schema_sequence_s0 {
    /** members */
    ::xs::schemaTop schemaTop_;
    ::xs::annotation_array annotation_;
  };

  typedef std::list< ::xs::schema_sequence_s0> schema_sequence_s0_holder;

  struct schema {
    /** members */
    ::xs::schema_sequence_c0 c0_;
    ::xs::schema_sequence_s0_holder s0_;
    /** attributes */
    ::xs::anyURI targetNamespace_;
    ::xs::token version_;
    ::xs::fullDerivationSet finalDefault_;
    ::xs::blockSet blockDefault_;
    ::xs::formChoice attributeFormDefault_;
    ::xs::formChoice elementFormDefault_;
    ::xs::ID id_;
    ::xs::language lang_;
    aka::any_attributes attributes_;
  };

  struct simpleType {
    /** members */
    ::xs::annotated_sequence s0_;
    ::xs::simpleDerivation simpleDerivation_;
    /** attributes */
    ::xs::ID id_;
    ::xs::simpleDerivationSet final_;
    ::xs::NCName name_;
    aka::any_attributes attributes_;
  };

  typedef std::list< ::xs::localSimpleType> localSimpleType_array;

  struct union_sequence {
    /** members */
    ::xs::localSimpleType_array simpleType_;
  };

  typedef ::std::string union_memberTypes;

  struct _union {
    /** members */
    ::xs::annotated_sequence s0_;
    ::xs::union_sequence s1_;
    /** attributes */
    ::xs::ID id_;
    ::xs::union_memberTypes memberTypes_;
    aka::any_attributes attributes_;
  };


}

/** serialization of "xs:all". */
void serialize(const ::xs::all &root, std::ostream &ostm);
/** serialization of "xs:annotation". */
void serialize(const ::xs::annotation &root, std::ostream &ostm);
/** serialization of "xs:any". */
void serialize(const ::xs::any &root, std::ostream &ostm);
/** serialization of "xs:appinfo". */
void serialize(const ::xs::appinfo &root, std::ostream &ostm);
/** serialization of "xs:complexContent". */
void serialize(const ::xs::complexContent &root, std::ostream &ostm);
/** serialization of "xs:documentation". */
void serialize(const ::xs::documentation &root, std::ostream &ostm);
/** serialization of "xs:choice", "xs:choice", "xs:sequence". */
void serialize(const ::xs::explicitGroup&root, const std::string &tagname, std::ostream &ostm);
/** serialization of "xs:maxExclusive", "xs:maxExclusive", "xs:maxInclusive", "xs:minExclusive", "xs:minInclusive". */
void serialize(const ::xs::facet&root, const std::string &tagname, std::ostream &ostm);
/** serialization of "xs:field". */
void serialize(const ::xs::field &root, std::ostream &ostm);
/** serialization of "xs:import". */
void serialize(const ::xs::import &root, std::ostream &ostm);
/** serialization of "xs:include". */
void serialize(const ::xs::include &root, std::ostream &ostm);
/** serialization of "xs:key", "xs:key", "xs:unique". */
void serialize(const ::xs::keybase&root, const std::string &tagname, std::ostream &ostm);
/** serialization of "xs:keyref". */
void serialize(const ::xs::keyref &root, std::ostream &ostm);
/** serialization of "xs:list". */
void serialize(const ::xs::list &root, std::ostream &ostm);
/** serialization of "xs:attributeGroup". */
void serialize(const ::xs::namedAttributeGroup &root, std::ostream &ostm);
/** serialization of "xs:group". */
void serialize(const ::xs::namedGroup &root, std::ostream &ostm);
/** serialization of "xs:enumeration". */
void serialize(const ::xs::noFixedFacet &root, std::ostream &ostm);
/** serialization of "xs:notation". */
void serialize(const ::xs::notation &root, std::ostream &ostm);
/** serialization of "xs:fractionDigits", "xs:fractionDigits", "xs:length", "xs:maxLength", "xs:minLength". */
void serialize(const ::xs::numFacet&root, const std::string &tagname, std::ostream &ostm);
/** serialization of "xs:pattern". */
void serialize(const ::xs::pattern &root, std::ostream &ostm);
/** serialization of "xs:redefine". */
void serialize(const ::xs::redefine &root, std::ostream &ostm);
/** serialization of "xs:restriction". */
void serialize(const ::xs::restriction &root, std::ostream &ostm);
/** serialization of "xs:schema". */
void serialize(const ::xs::schema &root, std::ostream &ostm);
/** serialization of "xs:selector". */
void serialize(const ::xs::selector &root, std::ostream &ostm);
/** serialization of "xs:simpleContent". */
void serialize(const ::xs::simpleContent &root, std::ostream &ostm);
/** serialization of "xs:attribute". */
void serialize(const ::xs::topLevelAttribute &root, std::ostream &ostm);
/** serialization of "xs:complexType". */
void serialize(const ::xs::topLevelComplexType &root, std::ostream &ostm);
/** serialization of "xs:element". */
void serialize(const ::xs::topLevelElement &root, std::ostream &ostm);
/** serialization of "xs:simpleType". */
void serialize(const ::xs::topLevelSimpleType &root, std::ostream &ostm);
/** serialization of "xs:totalDigits". */
void serialize(const ::xs::totalDigits &root, std::ostream &ostm);
/** serialization of "xs:union". */
void serialize(const ::xs::_union &root, std::ostream &ostm);
/** serialization of "xs:whiteSpace". */
void serialize(const ::xs::whiteSpace &root, std::ostream &ostm);
/** serialization of "xs:anyAttribute". */
void serialize(const ::xs::wildcard &root, std::ostream &ostm);

#endif // #ifndef element_h__