/* $Id: cid.hpp 77471 2007-03-01 07:19:44Z wotte $
 * This code was generated by the XML Schema Compiler.
 *
 * Changes made to this code will most likely be overwritten
 * when the handlers are recompiled.
 *
 * If you find errors or feel that there are bugfixes to be made,
 * please contact the current XSC maintainer:
 *             Will Otte <wotte@dre.vanderbilt.edu>
 */

// Fix for Borland compilers, which seem to have a broken
// <string> include.
#ifdef __BORLANDC__
# include <string.h>
#endif

#ifndef CID_HPP
#define CID_HPP

#include "XSC_XML_Handlers_Export.h"
// Forward declarations.
//
namespace CIAO
{
  namespace Config_Handlers
  {
    class SubcomponentInstantiationDescription;
    class SubcomponentPropertyReference;
    class AssemblyPropertyMapping;
    class ComponentAssemblyDescription;
    class MonolithicImplementationDescription;
    class ComponentImplementationDescription;
  }
}

#include <memory>
#include <list>
#include "XMLSchema/Types.hpp"

#include "Basic_Deployment_Data.hpp"

#include "ccd.hpp"

#include "iad.hpp"

#include "pcd.hpp"

namespace CIAO
{
  namespace Config_Handlers
  {
    class XSC_XML_Handlers_Export SubcomponentInstantiationDescription : public ::XSCRT::Type
    {
      typedef ::XSCRT::Type Base;

      // name
      // 
      public:
      ::XMLSchema::string< ACE_TCHAR > const& name () const;
      void name (::XMLSchema::string< ACE_TCHAR > const& );

      protected:
      ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;

      // basePackage
      // 
      public:
      bool basePackage_p () const;
      ::CIAO::Config_Handlers::ComponentPackageDescription const& basePackage () const;
      void basePackage (::CIAO::Config_Handlers::ComponentPackageDescription const& );

      protected:
      ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentPackageDescription > basePackage_;

      // specializedConfig
      // 
      public:
      bool specializedConfig_p () const;
      ::CIAO::Config_Handlers::PackageConfiguration const& specializedConfig () const;
      void specializedConfig (::CIAO::Config_Handlers::PackageConfiguration const& );

      protected:
      ::std::auto_ptr< ::CIAO::Config_Handlers::PackageConfiguration > specializedConfig_;

      // selectRequirement
      // 
      public:
      typedef ::std::list< ::CIAO::Config_Handlers::Requirement >::iterator selectRequirement_iterator;
      typedef ::std::list< ::CIAO::Config_Handlers::Requirement >::const_iterator selectRequirement_const_iterator;
      selectRequirement_iterator begin_selectRequirement ();
      selectRequirement_iterator end_selectRequirement ();
      selectRequirement_const_iterator begin_selectRequirement () const;
      selectRequirement_const_iterator end_selectRequirement () const;
      void add_selectRequirement (::CIAO::Config_Handlers::Requirement const& );
      size_t count_selectRequirement (void) const;

      protected:
      ::std::list< ::CIAO::Config_Handlers::Requirement > selectRequirement_;

      // configProperty
      // 
      public:
      typedef ::std::list< ::CIAO::Config_Handlers::Property >::iterator configProperty_iterator;
      typedef ::std::list< ::CIAO::Config_Handlers::Property >::const_iterator configProperty_const_iterator;
      configProperty_iterator begin_configProperty ();
      configProperty_iterator end_configProperty ();
      configProperty_const_iterator begin_configProperty () const;
      configProperty_const_iterator end_configProperty () const;
      void add_configProperty (::CIAO::Config_Handlers::Property const& );
      size_t count_configProperty (void) const;

      protected:
      ::std::list< ::CIAO::Config_Handlers::Property > configProperty_;

      // referencedPackage
      // 
      public:
      bool referencedPackage_p () const;
      ::CIAO::Config_Handlers::ComponentPackageReference const& referencedPackage () const;
      void referencedPackage (::CIAO::Config_Handlers::ComponentPackageReference const& );

      protected:
      ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentPackageReference > referencedPackage_;

      // importedPackage
      // 
      public:
      bool importedPackage_p () const;
      ::CIAO::Config_Handlers::ComponentPackageImport const& importedPackage () const;
      void importedPackage (::CIAO::Config_Handlers::ComponentPackageImport const& );

      protected:
      ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentPackageImport > importedPackage_;

      // id
      // 
      public:
      bool id_p () const;
      ::XMLSchema::ID< ACE_TCHAR > const& id () const;
      ::XMLSchema::ID< ACE_TCHAR >& id ();
      void id (::XMLSchema::ID< ACE_TCHAR > const& );

      protected:
      ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > id_;

      public:
      SubcomponentInstantiationDescription (::XMLSchema::string< ACE_TCHAR > const& name__);

      SubcomponentInstantiationDescription (::XSCRT::XML::Element< ACE_TCHAR > const&);
      SubcomponentInstantiationDescription (SubcomponentInstantiationDescription const& s);

      SubcomponentInstantiationDescription&
      operator= (SubcomponentInstantiationDescription const& s);

      private:
      char regulator__;
    };


    class XSC_XML_Handlers_Export SubcomponentPropertyReference : public ::XSCRT::Type
    {
      typedef ::XSCRT::Type Base;

      // propertyName
      // 
      public:
      ::XMLSchema::string< ACE_TCHAR > const& propertyName () const;
      void propertyName (::XMLSchema::string< ACE_TCHAR > const& );

      protected:
      ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > propertyName_;

      // instance
      // 
      public:
      ::XMLSchema::IDREF< ACE_TCHAR > const& instance () const;
      void instance (::XMLSchema::IDREF< ACE_TCHAR > const& );

      protected:
      ::std::auto_ptr< ::XMLSchema::IDREF< ACE_TCHAR > > instance_;

      public:
      SubcomponentPropertyReference (::XMLSchema::string< ACE_TCHAR > const& propertyName__,
                                     ::XMLSchema::IDREF< ACE_TCHAR > const& instance__);

      SubcomponentPropertyReference (::XSCRT::XML::Element< ACE_TCHAR > const&);
      SubcomponentPropertyReference (SubcomponentPropertyReference const& s);

      SubcomponentPropertyReference&
      operator= (SubcomponentPropertyReference const& s);

      private:
      char regulator__;
    };


    class XSC_XML_Handlers_Export AssemblyPropertyMapping : public ::XSCRT::Type
    {
      typedef ::XSCRT::Type Base;

      // name
      // 
      public:
      ::XMLSchema::string< ACE_TCHAR > const& name () const;
      void name (::XMLSchema::string< ACE_TCHAR > const& );

      protected:
      ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;

      // externalName
      // 
      public:
      ::XMLSchema::string< ACE_TCHAR > const& externalName () const;
      void externalName (::XMLSchema::string< ACE_TCHAR > const& );

      protected:
      ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > externalName_;

      // delegatesTo
      // 
      public:
      typedef ::std::list< ::CIAO::Config_Handlers::SubcomponentPropertyReference >::iterator delegatesTo_iterator;
      typedef ::std::list< ::CIAO::Config_Handlers::SubcomponentPropertyReference >::const_iterator delegatesTo_const_iterator;
      delegatesTo_iterator begin_delegatesTo ();
      delegatesTo_iterator end_delegatesTo ();
      delegatesTo_const_iterator begin_delegatesTo () const;
      delegatesTo_const_iterator end_delegatesTo () const;
      void add_delegatesTo (::CIAO::Config_Handlers::SubcomponentPropertyReference const& );
      size_t count_delegatesTo (void) const;

      protected:
      ::std::list< ::CIAO::Config_Handlers::SubcomponentPropertyReference > delegatesTo_;

      public:
      AssemblyPropertyMapping (::XMLSchema::string< ACE_TCHAR > const& name__,
                               ::XMLSchema::string< ACE_TCHAR > const& externalName__);

      AssemblyPropertyMapping (::XSCRT::XML::Element< ACE_TCHAR > const&);
      AssemblyPropertyMapping (AssemblyPropertyMapping const& s);

      AssemblyPropertyMapping&
      operator= (AssemblyPropertyMapping const& s);

      private:
      char regulator__;
    };


    class XSC_XML_Handlers_Export ComponentAssemblyDescription : public ::XSCRT::Type
    {
      typedef ::XSCRT::Type Base;

      // instance
      // 
      public:
      typedef ::std::list< ::CIAO::Config_Handlers::SubcomponentInstantiationDescription >::iterator instance_iterator;
      typedef ::std::list< ::CIAO::Config_Handlers::SubcomponentInstantiationDescription >::const_iterator instance_const_iterator;
      instance_iterator begin_instance ();
      instance_iterator end_instance ();
      instance_const_iterator begin_instance () const;
      instance_const_iterator end_instance () const;
      void add_instance (::CIAO::Config_Handlers::SubcomponentInstantiationDescription const& );
      size_t count_instance (void) const;

      protected:
      ::std::list< ::CIAO::Config_Handlers::SubcomponentInstantiationDescription > instance_;

      // connection
      // 
      public:
      typedef ::std::list< ::CIAO::Config_Handlers::AssemblyConnectionDescription >::iterator connection_iterator;
      typedef ::std::list< ::CIAO::Config_Handlers::AssemblyConnectionDescription >::const_iterator connection_const_iterator;
      connection_iterator begin_connection ();
      connection_iterator end_connection ();
      connection_const_iterator begin_connection () const;
      connection_const_iterator end_connection () const;
      void add_connection (::CIAO::Config_Handlers::AssemblyConnectionDescription const& );
      size_t count_connection (void) const;

      protected:
      ::std::list< ::CIAO::Config_Handlers::AssemblyConnectionDescription > connection_;

      // externalProperty
      // 
      public:
      typedef ::std::list< ::CIAO::Config_Handlers::AssemblyPropertyMapping >::iterator externalProperty_iterator;
      typedef ::std::list< ::CIAO::Config_Handlers::AssemblyPropertyMapping >::const_iterator externalProperty_const_iterator;
      externalProperty_iterator begin_externalProperty ();
      externalProperty_iterator end_externalProperty ();
      externalProperty_const_iterator begin_externalProperty () const;
      externalProperty_const_iterator end_externalProperty () const;
      void add_externalProperty (::CIAO::Config_Handlers::AssemblyPropertyMapping const& );
      size_t count_externalProperty (void) const;

      protected:
      ::std::list< ::CIAO::Config_Handlers::AssemblyPropertyMapping > externalProperty_;

      public:
      ComponentAssemblyDescription ();

      ComponentAssemblyDescription (::XSCRT::XML::Element< ACE_TCHAR > const&);
      ComponentAssemblyDescription (ComponentAssemblyDescription const& s);

      ComponentAssemblyDescription&
      operator= (ComponentAssemblyDescription const& s);

      private:
      char regulator__;
    };


    class XSC_XML_Handlers_Export MonolithicImplementationDescription : public ::XSCRT::Type
    {
      typedef ::XSCRT::Type Base;

      // nodeExecParameter
      // 
      public:
      typedef ::std::list< ::CIAO::Config_Handlers::Property >::iterator nodeExecParameter_iterator;
      typedef ::std::list< ::CIAO::Config_Handlers::Property >::const_iterator nodeExecParameter_const_iterator;
      nodeExecParameter_iterator begin_nodeExecParameter ();
      nodeExecParameter_iterator end_nodeExecParameter ();
      nodeExecParameter_const_iterator begin_nodeExecParameter () const;
      nodeExecParameter_const_iterator end_nodeExecParameter () const;
      void add_nodeExecParameter (::CIAO::Config_Handlers::Property const& );
      size_t count_nodeExecParameter (void) const;

      protected:
      ::std::list< ::CIAO::Config_Handlers::Property > nodeExecParameter_;

      // componentExecParameter
      // 
      public:
      typedef ::std::list< ::CIAO::Config_Handlers::Property >::iterator componentExecParameter_iterator;
      typedef ::std::list< ::CIAO::Config_Handlers::Property >::const_iterator componentExecParameter_const_iterator;
      componentExecParameter_iterator begin_componentExecParameter ();
      componentExecParameter_iterator end_componentExecParameter ();
      componentExecParameter_const_iterator begin_componentExecParameter () const;
      componentExecParameter_const_iterator end_componentExecParameter () const;
      void add_componentExecParameter (::CIAO::Config_Handlers::Property const& );
      size_t count_componentExecParameter (void) const;

      protected:
      ::std::list< ::CIAO::Config_Handlers::Property > componentExecParameter_;

      // deployRequirement
      // 
      public:
      typedef ::std::list< ::CIAO::Config_Handlers::ImplementationRequirement >::iterator deployRequirement_iterator;
      typedef ::std::list< ::CIAO::Config_Handlers::ImplementationRequirement >::const_iterator deployRequirement_const_iterator;
      deployRequirement_iterator begin_deployRequirement ();
      deployRequirement_iterator end_deployRequirement ();
      deployRequirement_const_iterator begin_deployRequirement () const;
      deployRequirement_const_iterator end_deployRequirement () const;
      void add_deployRequirement (::CIAO::Config_Handlers::ImplementationRequirement const& );
      size_t count_deployRequirement (void) const;

      protected:
      ::std::list< ::CIAO::Config_Handlers::ImplementationRequirement > deployRequirement_;

      // primaryArtifact
      // 
      public:
      typedef ::std::list< ::CIAO::Config_Handlers::NamedImplementationArtifact >::iterator primaryArtifact_iterator;
      typedef ::std::list< ::CIAO::Config_Handlers::NamedImplementationArtifact >::const_iterator primaryArtifact_const_iterator;
      primaryArtifact_iterator begin_primaryArtifact ();
      primaryArtifact_iterator end_primaryArtifact ();
      primaryArtifact_const_iterator begin_primaryArtifact () const;
      primaryArtifact_const_iterator end_primaryArtifact () const;
      void add_primaryArtifact (::CIAO::Config_Handlers::NamedImplementationArtifact const& );
      size_t count_primaryArtifact (void) const;

      protected:
      ::std::list< ::CIAO::Config_Handlers::NamedImplementationArtifact > primaryArtifact_;

      public:
      MonolithicImplementationDescription ();

      MonolithicImplementationDescription (::XSCRT::XML::Element< ACE_TCHAR > const&);
      MonolithicImplementationDescription (MonolithicImplementationDescription const& s);

      MonolithicImplementationDescription&
      operator= (MonolithicImplementationDescription const& s);

      private:
      char regulator__;
    };


    class XSC_XML_Handlers_Export ComponentImplementationDescription : public ::XSCRT::Type
    {
      typedef ::XSCRT::Type Base;

      // label
      // 
      public:
      bool label_p () const;
      ::XMLSchema::string< ACE_TCHAR > const& label () const;
      void label (::XMLSchema::string< ACE_TCHAR > const& );

      protected:
      ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > label_;

      // UUID
      // 
      public:
      bool UUID_p () const;
      ::XMLSchema::string< ACE_TCHAR > const& UUID () const;
      void UUID (::XMLSchema::string< ACE_TCHAR > const& );

      protected:
      ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > UUID_;

      // implements
      // 
      public:
      bool implements_p () const;
      ::CIAO::Config_Handlers::ComponentInterfaceDescription const& implements () const;
      void implements (::CIAO::Config_Handlers::ComponentInterfaceDescription const& );

      protected:
      ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentInterfaceDescription > implements_;

      // assemblyImpl
      // 
      public:
      bool assemblyImpl_p () const;
      ::CIAO::Config_Handlers::ComponentAssemblyDescription const& assemblyImpl () const;
      void assemblyImpl (::CIAO::Config_Handlers::ComponentAssemblyDescription const& );

      protected:
      ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentAssemblyDescription > assemblyImpl_;

      // monolithicImpl
      // 
      public:
      bool monolithicImpl_p () const;
      ::CIAO::Config_Handlers::MonolithicImplementationDescription const& monolithicImpl () const;
      void monolithicImpl (::CIAO::Config_Handlers::MonolithicImplementationDescription const& );

      protected:
      ::std::auto_ptr< ::CIAO::Config_Handlers::MonolithicImplementationDescription > monolithicImpl_;

      // configProperty
      // 
      public:
      typedef ::std::list< ::CIAO::Config_Handlers::Property >::iterator configProperty_iterator;
      typedef ::std::list< ::CIAO::Config_Handlers::Property >::const_iterator configProperty_const_iterator;
      configProperty_iterator begin_configProperty ();
      configProperty_iterator end_configProperty ();
      configProperty_const_iterator begin_configProperty () const;
      configProperty_const_iterator end_configProperty () const;
      void add_configProperty (::CIAO::Config_Handlers::Property const& );
      size_t count_configProperty (void) const;

      protected:
      ::std::list< ::CIAO::Config_Handlers::Property > configProperty_;

      // capability
      // 
      public:
      typedef ::std::list< ::CIAO::Config_Handlers::Capability >::iterator capability_iterator;
      typedef ::std::list< ::CIAO::Config_Handlers::Capability >::const_iterator capability_const_iterator;
      capability_iterator begin_capability ();
      capability_iterator end_capability ();
      capability_const_iterator begin_capability () const;
      capability_const_iterator end_capability () const;
      void add_capability (::CIAO::Config_Handlers::Capability const& );
      size_t count_capability (void) const;

      protected:
      ::std::list< ::CIAO::Config_Handlers::Capability > capability_;

      // dependsOn
      // 
      public:
      typedef ::std::list< ::CIAO::Config_Handlers::ImplementationDependency >::iterator dependsOn_iterator;
      typedef ::std::list< ::CIAO::Config_Handlers::ImplementationDependency >::const_iterator dependsOn_const_iterator;
      dependsOn_iterator begin_dependsOn ();
      dependsOn_iterator end_dependsOn ();
      dependsOn_const_iterator begin_dependsOn () const;
      dependsOn_const_iterator end_dependsOn () const;
      void add_dependsOn (::CIAO::Config_Handlers::ImplementationDependency const& );
      size_t count_dependsOn (void) const;

      protected:
      ::std::list< ::CIAO::Config_Handlers::ImplementationDependency > dependsOn_;

      // infoProperty
      // 
      public:
      typedef ::std::list< ::CIAO::Config_Handlers::Property >::iterator infoProperty_iterator;
      typedef ::std::list< ::CIAO::Config_Handlers::Property >::const_iterator infoProperty_const_iterator;
      infoProperty_iterator begin_infoProperty ();
      infoProperty_iterator end_infoProperty ();
      infoProperty_const_iterator begin_infoProperty () const;
      infoProperty_const_iterator end_infoProperty () const;
      void add_infoProperty (::CIAO::Config_Handlers::Property const& );
      size_t count_infoProperty (void) const;

      protected:
      ::std::list< ::CIAO::Config_Handlers::Property > infoProperty_;

      // contentLocation
      // 
      public:
      bool contentLocation_p () const;
      ::XMLSchema::string< ACE_TCHAR > const& contentLocation () const;
      void contentLocation (::XMLSchema::string< ACE_TCHAR > const& );

      protected:
      ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > contentLocation_;

      // href
      // 
      public:
      bool href_p () const;
      ::XMLSchema::string< ACE_TCHAR > const& href () const;
      ::XMLSchema::string< ACE_TCHAR >& href ();
      void href (::XMLSchema::string< ACE_TCHAR > const& );

      protected:
      ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > href_;

      public:
      ComponentImplementationDescription ();

      ComponentImplementationDescription (::XSCRT::XML::Element< ACE_TCHAR > const&);
      ComponentImplementationDescription (ComponentImplementationDescription const& s);

      ComponentImplementationDescription&
      operator= (ComponentImplementationDescription const& s);

      private:
      char regulator__;
    };
  }
}

namespace CIAO
{
  namespace Config_Handlers
  {
  }
}

#include "XMLSchema/Traversal.hpp"

namespace CIAO
{
  namespace Config_Handlers
  {
    namespace Traversal
    {
      struct XSC_XML_Handlers_Export SubcomponentInstantiationDescription : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::SubcomponentInstantiationDescription >
      {
        virtual void
        traverse (Type&);

        virtual void
        traverse (Type const&);

        virtual void
        pre (Type&);

        virtual void
        pre (Type const&);

        virtual void
        name (Type&);

        virtual void
        name (Type const&);

        virtual void
        basePackage (Type&);

        virtual void
        basePackage (Type const&);

        virtual void
        basePackage_none (Type&);

        virtual void
        basePackage_none (Type const&);

        virtual void
        specializedConfig (Type&);

        virtual void
        specializedConfig (Type const&);

        virtual void
        specializedConfig_none (Type&);

        virtual void
        specializedConfig_none (Type const&);

        virtual void
        selectRequirement (Type&);

        virtual void
        selectRequirement (Type const&);

        virtual void
        selectRequirement_pre (Type&);

        virtual void
        selectRequirement_pre (Type const&);

        virtual void
        selectRequirement_next (Type&);

        virtual void
        selectRequirement_next (Type const&);

        virtual void
        selectRequirement_post (Type&);

        virtual void
        selectRequirement_post (Type const&);

        virtual void
        selectRequirement_none (Type&);

        virtual void
        selectRequirement_none (Type const&);

        virtual void
        configProperty (Type&);

        virtual void
        configProperty (Type const&);

        virtual void
        configProperty_pre (Type&);

        virtual void
        configProperty_pre (Type const&);

        virtual void
        configProperty_next (Type&);

        virtual void
        configProperty_next (Type const&);

        virtual void
        configProperty_post (Type&);

        virtual void
        configProperty_post (Type const&);

        virtual void
        configProperty_none (Type&);

        virtual void
        configProperty_none (Type const&);

        virtual void
        referencedPackage (Type&);

        virtual void
        referencedPackage (Type const&);

        virtual void
        referencedPackage_none (Type&);

        virtual void
        referencedPackage_none (Type const&);

        virtual void
        importedPackage (Type&);

        virtual void
        importedPackage (Type const&);

        virtual void
        importedPackage_none (Type&);

        virtual void
        importedPackage_none (Type const&);

        virtual void
        id (Type&);

        virtual void
        id (Type const&);

        virtual void
        id_none (Type&);

        virtual void
        id_none (Type const&);

        virtual void
        post (Type&);

        virtual void
        post (Type const&);
      };

      struct XSC_XML_Handlers_Export SubcomponentPropertyReference : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::SubcomponentPropertyReference >
      {
        virtual void
        traverse (Type&);

        virtual void
        traverse (Type const&);

        virtual void
        pre (Type&);

        virtual void
        pre (Type const&);

        virtual void
        propertyName (Type&);

        virtual void
        propertyName (Type const&);

        virtual void
        instance (Type&);

        virtual void
        instance (Type const&);

        virtual void
        post (Type&);

        virtual void
        post (Type const&);
      };

      struct XSC_XML_Handlers_Export AssemblyPropertyMapping : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::AssemblyPropertyMapping >
      {
        virtual void
        traverse (Type&);

        virtual void
        traverse (Type const&);

        virtual void
        pre (Type&);

        virtual void
        pre (Type const&);

        virtual void
        name (Type&);

        virtual void
        name (Type const&);

        virtual void
        externalName (Type&);

        virtual void
        externalName (Type const&);

        virtual void
        delegatesTo (Type&);

        virtual void
        delegatesTo (Type const&);

        virtual void
        delegatesTo_pre (Type&);

        virtual void
        delegatesTo_pre (Type const&);

        virtual void
        delegatesTo_next (Type&);

        virtual void
        delegatesTo_next (Type const&);

        virtual void
        delegatesTo_post (Type&);

        virtual void
        delegatesTo_post (Type const&);

        virtual void
        post (Type&);

        virtual void
        post (Type const&);
      };

      struct XSC_XML_Handlers_Export ComponentAssemblyDescription : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::ComponentAssemblyDescription >
      {
        virtual void
        traverse (Type&);

        virtual void
        traverse (Type const&);

        virtual void
        pre (Type&);

        virtual void
        pre (Type const&);

        virtual void
        instance (Type&);

        virtual void
        instance (Type const&);

        virtual void
        instance_pre (Type&);

        virtual void
        instance_pre (Type const&);

        virtual void
        instance_next (Type&);

        virtual void
        instance_next (Type const&);

        virtual void
        instance_post (Type&);

        virtual void
        instance_post (Type const&);

        virtual void
        connection (Type&);

        virtual void
        connection (Type const&);

        virtual void
        connection_pre (Type&);

        virtual void
        connection_pre (Type const&);

        virtual void
        connection_next (Type&);

        virtual void
        connection_next (Type const&);

        virtual void
        connection_post (Type&);

        virtual void
        connection_post (Type const&);

        virtual void
        connection_none (Type&);

        virtual void
        connection_none (Type const&);

        virtual void
        externalProperty (Type&);

        virtual void
        externalProperty (Type const&);

        virtual void
        externalProperty_pre (Type&);

        virtual void
        externalProperty_pre (Type const&);

        virtual void
        externalProperty_next (Type&);

        virtual void
        externalProperty_next (Type const&);

        virtual void
        externalProperty_post (Type&);

        virtual void
        externalProperty_post (Type const&);

        virtual void
        externalProperty_none (Type&);

        virtual void
        externalProperty_none (Type const&);

        virtual void
        post (Type&);

        virtual void
        post (Type const&);
      };

      struct XSC_XML_Handlers_Export MonolithicImplementationDescription : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::MonolithicImplementationDescription >
      {
        virtual void
        traverse (Type&);

        virtual void
        traverse (Type const&);

        virtual void
        pre (Type&);

        virtual void
        pre (Type const&);

        virtual void
        nodeExecParameter (Type&);

        virtual void
        nodeExecParameter (Type const&);

        virtual void
        nodeExecParameter_pre (Type&);

        virtual void
        nodeExecParameter_pre (Type const&);

        virtual void
        nodeExecParameter_next (Type&);

        virtual void
        nodeExecParameter_next (Type const&);

        virtual void
        nodeExecParameter_post (Type&);

        virtual void
        nodeExecParameter_post (Type const&);

        virtual void
        nodeExecParameter_none (Type&);

        virtual void
        nodeExecParameter_none (Type const&);

        virtual void
        componentExecParameter (Type&);

        virtual void
        componentExecParameter (Type const&);

        virtual void
        componentExecParameter_pre (Type&);

        virtual void
        componentExecParameter_pre (Type const&);

        virtual void
        componentExecParameter_next (Type&);

        virtual void
        componentExecParameter_next (Type const&);

        virtual void
        componentExecParameter_post (Type&);

        virtual void
        componentExecParameter_post (Type const&);

        virtual void
        componentExecParameter_none (Type&);

        virtual void
        componentExecParameter_none (Type const&);

        virtual void
        deployRequirement (Type&);

        virtual void
        deployRequirement (Type const&);

        virtual void
        deployRequirement_pre (Type&);

        virtual void
        deployRequirement_pre (Type const&);

        virtual void
        deployRequirement_next (Type&);

        virtual void
        deployRequirement_next (Type const&);

        virtual void
        deployRequirement_post (Type&);

        virtual void
        deployRequirement_post (Type const&);

        virtual void
        deployRequirement_none (Type&);

        virtual void
        deployRequirement_none (Type const&);

        virtual void
        primaryArtifact (Type&);

        virtual void
        primaryArtifact (Type const&);

        virtual void
        primaryArtifact_pre (Type&);

        virtual void
        primaryArtifact_pre (Type const&);

        virtual void
        primaryArtifact_next (Type&);

        virtual void
        primaryArtifact_next (Type const&);

        virtual void
        primaryArtifact_post (Type&);

        virtual void
        primaryArtifact_post (Type const&);

        virtual void
        post (Type&);

        virtual void
        post (Type const&);
      };

      struct XSC_XML_Handlers_Export ComponentImplementationDescription : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::ComponentImplementationDescription >
      {
        virtual void
        traverse (Type&);

        virtual void
        traverse (Type const&);

        virtual void
        pre (Type&);

        virtual void
        pre (Type const&);

        virtual void
        label (Type&);

        virtual void
        label (Type const&);

        virtual void
        label_none (Type&);

        virtual void
        label_none (Type const&);

        virtual void
        UUID (Type&);

        virtual void
        UUID (Type const&);

        virtual void
        UUID_none (Type&);

        virtual void
        UUID_none (Type const&);

        virtual void
        implements (Type&);

        virtual void
        implements (Type const&);

        virtual void
        implements_none (Type&);

        virtual void
        implements_none (Type const&);

        virtual void
        assemblyImpl (Type&);

        virtual void
        assemblyImpl (Type const&);

        virtual void
        assemblyImpl_none (Type&);

        virtual void
        assemblyImpl_none (Type const&);

        virtual void
        monolithicImpl (Type&);

        virtual void
        monolithicImpl (Type const&);

        virtual void
        monolithicImpl_none (Type&);

        virtual void
        monolithicImpl_none (Type const&);

        virtual void
        configProperty (Type&);

        virtual void
        configProperty (Type const&);

        virtual void
        configProperty_pre (Type&);

        virtual void
        configProperty_pre (Type const&);

        virtual void
        configProperty_next (Type&);

        virtual void
        configProperty_next (Type const&);

        virtual void
        configProperty_post (Type&);

        virtual void
        configProperty_post (Type const&);

        virtual void
        configProperty_none (Type&);

        virtual void
        configProperty_none (Type const&);

        virtual void
        capability (Type&);

        virtual void
        capability (Type const&);

        virtual void
        capability_pre (Type&);

        virtual void
        capability_pre (Type const&);

        virtual void
        capability_next (Type&);

        virtual void
        capability_next (Type const&);

        virtual void
        capability_post (Type&);

        virtual void
        capability_post (Type const&);

        virtual void
        capability_none (Type&);

        virtual void
        capability_none (Type const&);

        virtual void
        dependsOn (Type&);

        virtual void
        dependsOn (Type const&);

        virtual void
        dependsOn_pre (Type&);

        virtual void
        dependsOn_pre (Type const&);

        virtual void
        dependsOn_next (Type&);

        virtual void
        dependsOn_next (Type const&);

        virtual void
        dependsOn_post (Type&);

        virtual void
        dependsOn_post (Type const&);

        virtual void
        dependsOn_none (Type&);

        virtual void
        dependsOn_none (Type const&);

        virtual void
        infoProperty (Type&);

        virtual void
        infoProperty (Type const&);

        virtual void
        infoProperty_pre (Type&);

        virtual void
        infoProperty_pre (Type const&);

        virtual void
        infoProperty_next (Type&);

        virtual void
        infoProperty_next (Type const&);

        virtual void
        infoProperty_post (Type&);

        virtual void
        infoProperty_post (Type const&);

        virtual void
        infoProperty_none (Type&);

        virtual void
        infoProperty_none (Type const&);

        virtual void
        contentLocation (Type&);

        virtual void
        contentLocation (Type const&);

        virtual void
        contentLocation_none (Type&);

        virtual void
        contentLocation_none (Type const&);

        virtual void
        href (Type&);

        virtual void
        href (Type const&);

        virtual void
        href_none (Type&);

        virtual void
        href_none (Type const&);

        virtual void
        post (Type&);

        virtual void
        post (Type const&);
      };
    }
  }
}

#include "XMLSchema/Writer.hpp"

namespace CIAO
{
  namespace Config_Handlers
  {
    namespace Writer
    {
      struct SubcomponentInstantiationDescription : Traversal::SubcomponentInstantiationDescription, 
      virtual ::XSCRT::Writer< ACE_TCHAR >
      {
        typedef ::CIAO::Config_Handlers::SubcomponentInstantiationDescription Type;
        SubcomponentInstantiationDescription (::XSCRT::XML::Element< ACE_TCHAR >&);

        virtual void 
        traverse (Type &o)
        {

          this->traverse (const_cast <Type const &> (o));
        }


        virtual void
        traverse (Type const&);

        virtual void 
        name (Type &o)
        {

          this->name (const_cast <Type const &> (o));
        }


        virtual void
        name (Type const&);

        virtual void 
        basePackage (Type &o)
        {

          this->basePackage (const_cast <Type const &> (o));
        }


        virtual void
        basePackage (Type const&);

        virtual void 
        specializedConfig (Type &o)
        {

          this->specializedConfig (const_cast <Type const &> (o));
        }


        virtual void
        specializedConfig (Type const&);

        virtual void 
        selectRequirement_pre (Type &o)
        {

          this->selectRequirement_pre (const_cast <Type const &> (o));
        }


        virtual void
        selectRequirement_pre (Type const&);

        virtual void 
        selectRequirement_next (Type &o)
        {

          this->selectRequirement_next (const_cast <Type const &> (o));
        }


        virtual void
        selectRequirement_next (Type const&);

        virtual void 
        selectRequirement_post (Type &o)
        {

          this->selectRequirement_post (const_cast <Type const &> (o));
        }


        virtual void
        selectRequirement_post (Type const&);

        virtual void 
        configProperty_pre (Type &o)
        {

          this->configProperty_pre (const_cast <Type const &> (o));
        }


        virtual void
        configProperty_pre (Type const&);

        virtual void 
        configProperty_next (Type &o)
        {

          this->configProperty_next (const_cast <Type const &> (o));
        }


        virtual void
        configProperty_next (Type const&);

        virtual void 
        configProperty_post (Type &o)
        {

          this->configProperty_post (const_cast <Type const &> (o));
        }


        virtual void
        configProperty_post (Type const&);

        virtual void 
        referencedPackage (Type &o)
        {

          this->referencedPackage (const_cast <Type const &> (o));
        }


        virtual void
        referencedPackage (Type const&);

        virtual void 
        importedPackage (Type &o)
        {

          this->importedPackage (const_cast <Type const &> (o));
        }


        virtual void
        importedPackage (Type const&);

        virtual void 
        id (Type &o)
        {

          this->id (const_cast <Type const &> (o));
        }


        virtual void
        id (Type const&);

        protected:
        SubcomponentInstantiationDescription ();
      };

      struct SubcomponentPropertyReference : Traversal::SubcomponentPropertyReference, 
      virtual ::XSCRT::Writer< ACE_TCHAR >
      {
        typedef ::CIAO::Config_Handlers::SubcomponentPropertyReference Type;
        SubcomponentPropertyReference (::XSCRT::XML::Element< ACE_TCHAR >&);

        virtual void 
        traverse (Type &o)
        {

          this->traverse (const_cast <Type const &> (o));
        }


        virtual void
        traverse (Type const&);

        virtual void 
        propertyName (Type &o)
        {

          this->propertyName (const_cast <Type const &> (o));
        }


        virtual void
        propertyName (Type const&);

        virtual void 
        instance (Type &o)
        {

          this->instance (const_cast <Type const &> (o));
        }


        virtual void
        instance (Type const&);

        protected:
        SubcomponentPropertyReference ();
      };

      struct AssemblyPropertyMapping : Traversal::AssemblyPropertyMapping, 
      virtual ::XSCRT::Writer< ACE_TCHAR >
      {
        typedef ::CIAO::Config_Handlers::AssemblyPropertyMapping Type;
        AssemblyPropertyMapping (::XSCRT::XML::Element< ACE_TCHAR >&);

        virtual void 
        traverse (Type &o)
        {

          this->traverse (const_cast <Type const &> (o));
        }


        virtual void
        traverse (Type const&);

        virtual void 
        name (Type &o)
        {

          this->name (const_cast <Type const &> (o));
        }


        virtual void
        name (Type const&);

        virtual void 
        externalName (Type &o)
        {

          this->externalName (const_cast <Type const &> (o));
        }


        virtual void
        externalName (Type const&);

        virtual void 
        delegatesTo_pre (Type &o)
        {

          this->delegatesTo_pre (const_cast <Type const &> (o));
        }


        virtual void
        delegatesTo_pre (Type const&);

        virtual void 
        delegatesTo_next (Type &o)
        {

          this->delegatesTo_next (const_cast <Type const &> (o));
        }


        virtual void
        delegatesTo_next (Type const&);

        virtual void 
        delegatesTo_post (Type &o)
        {

          this->delegatesTo_post (const_cast <Type const &> (o));
        }


        virtual void
        delegatesTo_post (Type const&);

        protected:
        AssemblyPropertyMapping ();
      };

      struct ComponentAssemblyDescription : Traversal::ComponentAssemblyDescription, 
      virtual ::XSCRT::Writer< ACE_TCHAR >
      {
        typedef ::CIAO::Config_Handlers::ComponentAssemblyDescription Type;
        ComponentAssemblyDescription (::XSCRT::XML::Element< ACE_TCHAR >&);

        virtual void 
        traverse (Type &o)
        {

          this->traverse (const_cast <Type const &> (o));
        }


        virtual void
        traverse (Type const&);

        virtual void 
        instance_pre (Type &o)
        {

          this->instance_pre (const_cast <Type const &> (o));
        }


        virtual void
        instance_pre (Type const&);

        virtual void 
        instance_next (Type &o)
        {

          this->instance_next (const_cast <Type const &> (o));
        }


        virtual void
        instance_next (Type const&);

        virtual void 
        instance_post (Type &o)
        {

          this->instance_post (const_cast <Type const &> (o));
        }


        virtual void
        instance_post (Type const&);

        virtual void 
        connection_pre (Type &o)
        {

          this->connection_pre (const_cast <Type const &> (o));
        }


        virtual void
        connection_pre (Type const&);

        virtual void 
        connection_next (Type &o)
        {

          this->connection_next (const_cast <Type const &> (o));
        }


        virtual void
        connection_next (Type const&);

        virtual void 
        connection_post (Type &o)
        {

          this->connection_post (const_cast <Type const &> (o));
        }


        virtual void
        connection_post (Type const&);

        virtual void 
        externalProperty_pre (Type &o)
        {

          this->externalProperty_pre (const_cast <Type const &> (o));
        }


        virtual void
        externalProperty_pre (Type const&);

        virtual void 
        externalProperty_next (Type &o)
        {

          this->externalProperty_next (const_cast <Type const &> (o));
        }


        virtual void
        externalProperty_next (Type const&);

        virtual void 
        externalProperty_post (Type &o)
        {

          this->externalProperty_post (const_cast <Type const &> (o));
        }


        virtual void
        externalProperty_post (Type const&);

        protected:
        ComponentAssemblyDescription ();
      };

      struct MonolithicImplementationDescription : Traversal::MonolithicImplementationDescription, 
      virtual ::XSCRT::Writer< ACE_TCHAR >
      {
        typedef ::CIAO::Config_Handlers::MonolithicImplementationDescription Type;
        MonolithicImplementationDescription (::XSCRT::XML::Element< ACE_TCHAR >&);

        virtual void 
        traverse (Type &o)
        {

          this->traverse (const_cast <Type const &> (o));
        }


        virtual void
        traverse (Type const&);

        virtual void 
        nodeExecParameter_pre (Type &o)
        {

          this->nodeExecParameter_pre (const_cast <Type const &> (o));
        }


        virtual void
        nodeExecParameter_pre (Type const&);

        virtual void 
        nodeExecParameter_next (Type &o)
        {

          this->nodeExecParameter_next (const_cast <Type const &> (o));
        }


        virtual void
        nodeExecParameter_next (Type const&);

        virtual void 
        nodeExecParameter_post (Type &o)
        {

          this->nodeExecParameter_post (const_cast <Type const &> (o));
        }


        virtual void
        nodeExecParameter_post (Type const&);

        virtual void 
        componentExecParameter_pre (Type &o)
        {

          this->componentExecParameter_pre (const_cast <Type const &> (o));
        }


        virtual void
        componentExecParameter_pre (Type const&);

        virtual void 
        componentExecParameter_next (Type &o)
        {

          this->componentExecParameter_next (const_cast <Type const &> (o));
        }


        virtual void
        componentExecParameter_next (Type const&);

        virtual void 
        componentExecParameter_post (Type &o)
        {

          this->componentExecParameter_post (const_cast <Type const &> (o));
        }


        virtual void
        componentExecParameter_post (Type const&);

        virtual void 
        deployRequirement_pre (Type &o)
        {

          this->deployRequirement_pre (const_cast <Type const &> (o));
        }


        virtual void
        deployRequirement_pre (Type const&);

        virtual void 
        deployRequirement_next (Type &o)
        {

          this->deployRequirement_next (const_cast <Type const &> (o));
        }


        virtual void
        deployRequirement_next (Type const&);

        virtual void 
        deployRequirement_post (Type &o)
        {

          this->deployRequirement_post (const_cast <Type const &> (o));
        }


        virtual void
        deployRequirement_post (Type const&);

        virtual void 
        primaryArtifact_pre (Type &o)
        {

          this->primaryArtifact_pre (const_cast <Type const &> (o));
        }


        virtual void
        primaryArtifact_pre (Type const&);

        virtual void 
        primaryArtifact_next (Type &o)
        {

          this->primaryArtifact_next (const_cast <Type const &> (o));
        }


        virtual void
        primaryArtifact_next (Type const&);

        virtual void 
        primaryArtifact_post (Type &o)
        {

          this->primaryArtifact_post (const_cast <Type const &> (o));
        }


        virtual void
        primaryArtifact_post (Type const&);

        protected:
        MonolithicImplementationDescription ();
      };

      struct ComponentImplementationDescription : Traversal::ComponentImplementationDescription, 
      virtual ::XSCRT::Writer< ACE_TCHAR >
      {
        typedef ::CIAO::Config_Handlers::ComponentImplementationDescription Type;
        ComponentImplementationDescription (::XSCRT::XML::Element< ACE_TCHAR >&);

        virtual void 
        traverse (Type &o)
        {

          this->traverse (const_cast <Type const &> (o));
        }


        virtual void
        traverse (Type const&);

        virtual void 
        label (Type &o)
        {

          this->label (const_cast <Type const &> (o));
        }


        virtual void
        label (Type const&);

        virtual void 
        UUID (Type &o)
        {

          this->UUID (const_cast <Type const &> (o));
        }


        virtual void
        UUID (Type const&);

        virtual void 
        implements (Type &o)
        {

          this->implements (const_cast <Type const &> (o));
        }


        virtual void
        implements (Type const&);

        virtual void 
        assemblyImpl (Type &o)
        {

          this->assemblyImpl (const_cast <Type const &> (o));
        }


        virtual void
        assemblyImpl (Type const&);

        virtual void 
        monolithicImpl (Type &o)
        {

          this->monolithicImpl (const_cast <Type const &> (o));
        }


        virtual void
        monolithicImpl (Type const&);

        virtual void 
        configProperty_pre (Type &o)
        {

          this->configProperty_pre (const_cast <Type const &> (o));
        }


        virtual void
        configProperty_pre (Type const&);

        virtual void 
        configProperty_next (Type &o)
        {

          this->configProperty_next (const_cast <Type const &> (o));
        }


        virtual void
        configProperty_next (Type const&);

        virtual void 
        configProperty_post (Type &o)
        {

          this->configProperty_post (const_cast <Type const &> (o));
        }


        virtual void
        configProperty_post (Type const&);

        virtual void 
        capability_pre (Type &o)
        {

          this->capability_pre (const_cast <Type const &> (o));
        }


        virtual void
        capability_pre (Type const&);

        virtual void 
        capability_next (Type &o)
        {

          this->capability_next (const_cast <Type const &> (o));
        }


        virtual void
        capability_next (Type const&);

        virtual void 
        capability_post (Type &o)
        {

          this->capability_post (const_cast <Type const &> (o));
        }


        virtual void
        capability_post (Type const&);

        virtual void 
        dependsOn_pre (Type &o)
        {

          this->dependsOn_pre (const_cast <Type const &> (o));
        }


        virtual void
        dependsOn_pre (Type const&);

        virtual void 
        dependsOn_next (Type &o)
        {

          this->dependsOn_next (const_cast <Type const &> (o));
        }


        virtual void
        dependsOn_next (Type const&);

        virtual void 
        dependsOn_post (Type &o)
        {

          this->dependsOn_post (const_cast <Type const &> (o));
        }


        virtual void
        dependsOn_post (Type const&);

        virtual void 
        infoProperty_pre (Type &o)
        {

          this->infoProperty_pre (const_cast <Type const &> (o));
        }


        virtual void
        infoProperty_pre (Type const&);

        virtual void 
        infoProperty_next (Type &o)
        {

          this->infoProperty_next (const_cast <Type const &> (o));
        }


        virtual void
        infoProperty_next (Type const&);

        virtual void 
        infoProperty_post (Type &o)
        {

          this->infoProperty_post (const_cast <Type const &> (o));
        }


        virtual void
        infoProperty_post (Type const&);

        virtual void 
        contentLocation (Type &o)
        {

          this->contentLocation (const_cast <Type const &> (o));
        }


        virtual void
        contentLocation (Type const&);

        virtual void 
        href (Type &o)
        {

          this->href (const_cast <Type const &> (o));
        }


        virtual void
        href (Type const&);

        protected:
        ComponentImplementationDescription ();
      };
    }
  }
}

namespace CIAO
{
  namespace Config_Handlers
  {
  }
}

#endif // CID_HPP
