text: // Copyright (c) 2005-2014 Code Synthesis Tools CC
  //
  // This program was generated by CodeSynthesis XSD, an XML Schema to
  // C++ data binding compiler.
  //
  // This program is free software; you can redistribute it and/or modify
  // it under the terms of the GNU General Public License version 2 as
  // published by the Free Software Foundation.
  //
  // This program is distributed in the hope that it will be useful,
  // but WITHOUT ANY WARRANTY; without even the implied warranty of
  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  // GNU General Public License for more details.
  //
  // You should have received a copy of the GNU General Public License
  // along with this program; if not, write to the Free Software
  // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
  //
  // In addition, as a special exception, Code Synthesis Tools CC gives
  // permission to link this program with the Xerces-C++ library (or with
  // modified versions of Xerces-C++ that use the same license as Xerces-C++),
  // and distribute linked combinations including the two. You must obey
  // the GNU General Public License version 2 in all respects for all of
  // the code used other than Xerces-C++. If you modify this copy of the
  // program, you may extend this exception to your version of the program,
  // but you are not obligated to do so. If you do not wish to do so, delete
  // this exception statement from your version.
  //
  // Furthermore, Code Synthesis Tools CC makes a special exception for
  // the Free/Libre and Open Source Software (FLOSS) which is described
  // in the accompanying FLOSSE file.
  //
  
  // Begin prologue.
  //
  //
  // End prologue.
  
  #include <xsd/cxx/pre.hxx>
  
  #include "SimSlab_Floor_FloorOverAirDetailed.hxx"
  
  #include "doublelist.hxx"
  
  namespace schema
  {
    namespace simxml
    {
      namespace BuildingModel
      {
        // SimSlab_Floor_FloorOverAirDetailed
        // 
  
        const SimSlab_Floor_FloorOverAirDetailed::SimSlab_OutsdBndCond_optional& SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_OutsdBndCond () const
        {
          return this->SimSlab_OutsdBndCond_;
        }
  
        SimSlab_Floor_FloorOverAirDetailed::SimSlab_OutsdBndCond_optional& SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_OutsdBndCond ()
        {
          return this->SimSlab_OutsdBndCond_;
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_OutsdBndCond (const SimSlab_OutsdBndCond_type& x)
        {
          this->SimSlab_OutsdBndCond_.set (x);
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_OutsdBndCond (const SimSlab_OutsdBndCond_optional& x)
        {
          this->SimSlab_OutsdBndCond_ = x;
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_OutsdBndCond (::std::auto_ptr< SimSlab_OutsdBndCond_type > x)
        {
          this->SimSlab_OutsdBndCond_.set (x);
        }
  
        const SimSlab_Floor_FloorOverAirDetailed::SimSlab_OutsdBndCondObject_optional& SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_OutsdBndCondObject () const
        {
          return this->SimSlab_OutsdBndCondObject_;
        }
  
        SimSlab_Floor_FloorOverAirDetailed::SimSlab_OutsdBndCondObject_optional& SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_OutsdBndCondObject ()
        {
          return this->SimSlab_OutsdBndCondObject_;
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_OutsdBndCondObject (const SimSlab_OutsdBndCondObject_type& x)
        {
          this->SimSlab_OutsdBndCondObject_.set (x);
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_OutsdBndCondObject (const SimSlab_OutsdBndCondObject_optional& x)
        {
          this->SimSlab_OutsdBndCondObject_ = x;
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_OutsdBndCondObject (::std::auto_ptr< SimSlab_OutsdBndCondObject_type > x)
        {
          this->SimSlab_OutsdBndCondObject_.set (x);
        }
  
        const SimSlab_Floor_FloorOverAirDetailed::SimSlab_SunExposure_optional& SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_SunExposure () const
        {
          return this->SimSlab_SunExposure_;
        }
  
        SimSlab_Floor_FloorOverAirDetailed::SimSlab_SunExposure_optional& SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_SunExposure ()
        {
          return this->SimSlab_SunExposure_;
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_SunExposure (const SimSlab_SunExposure_type& x)
        {
          this->SimSlab_SunExposure_.set (x);
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_SunExposure (const SimSlab_SunExposure_optional& x)
        {
          this->SimSlab_SunExposure_ = x;
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_SunExposure (::std::auto_ptr< SimSlab_SunExposure_type > x)
        {
          this->SimSlab_SunExposure_.set (x);
        }
  
        const SimSlab_Floor_FloorOverAirDetailed::SimSlab_WindExposure_optional& SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_WindExposure () const
        {
          return this->SimSlab_WindExposure_;
        }
  
        SimSlab_Floor_FloorOverAirDetailed::SimSlab_WindExposure_optional& SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_WindExposure ()
        {
          return this->SimSlab_WindExposure_;
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_WindExposure (const SimSlab_WindExposure_type& x)
        {
          this->SimSlab_WindExposure_.set (x);
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_WindExposure (const SimSlab_WindExposure_optional& x)
        {
          this->SimSlab_WindExposure_ = x;
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_WindExposure (::std::auto_ptr< SimSlab_WindExposure_type > x)
        {
          this->SimSlab_WindExposure_.set (x);
        }
  
        const SimSlab_Floor_FloorOverAirDetailed::SimSlab_ViewFactToGnd_optional& SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_ViewFactToGnd () const
        {
          return this->SimSlab_ViewFactToGnd_;
        }
  
        SimSlab_Floor_FloorOverAirDetailed::SimSlab_ViewFactToGnd_optional& SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_ViewFactToGnd ()
        {
          return this->SimSlab_ViewFactToGnd_;
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_ViewFactToGnd (const SimSlab_ViewFactToGnd_type& x)
        {
          this->SimSlab_ViewFactToGnd_.set (x);
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_ViewFactToGnd (const SimSlab_ViewFactToGnd_optional& x)
        {
          this->SimSlab_ViewFactToGnd_ = x;
        }
  
        const SimSlab_Floor_FloorOverAirDetailed::SimSlab_NumbVerts_optional& SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_NumbVerts () const
        {
          return this->SimSlab_NumbVerts_;
        }
  
        SimSlab_Floor_FloorOverAirDetailed::SimSlab_NumbVerts_optional& SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_NumbVerts ()
        {
          return this->SimSlab_NumbVerts_;
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_NumbVerts (const SimSlab_NumbVerts_type& x)
        {
          this->SimSlab_NumbVerts_.set (x);
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_NumbVerts (const SimSlab_NumbVerts_optional& x)
        {
          this->SimSlab_NumbVerts_ = x;
        }
  
        const SimSlab_Floor_FloorOverAirDetailed::SimSlab_VertexXCoord_1_10_optional& SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_VertexXCoord_1_10 () const
        {
          return this->SimSlab_VertexXCoord_1_10_;
        }
  
        SimSlab_Floor_FloorOverAirDetailed::SimSlab_VertexXCoord_1_10_optional& SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_VertexXCoord_1_10 ()
        {
          return this->SimSlab_VertexXCoord_1_10_;
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_VertexXCoord_1_10 (const SimSlab_VertexXCoord_1_10_type& x)
        {
          this->SimSlab_VertexXCoord_1_10_.set (x);
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_VertexXCoord_1_10 (const SimSlab_VertexXCoord_1_10_optional& x)
        {
          this->SimSlab_VertexXCoord_1_10_ = x;
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_VertexXCoord_1_10 (::std::auto_ptr< SimSlab_VertexXCoord_1_10_type > x)
        {
          this->SimSlab_VertexXCoord_1_10_.set (x);
        }
  
        const SimSlab_Floor_FloorOverAirDetailed::SimSlab_VertexYCoord_1_10_optional& SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_VertexYCoord_1_10 () const
        {
          return this->SimSlab_VertexYCoord_1_10_;
        }
  
        SimSlab_Floor_FloorOverAirDetailed::SimSlab_VertexYCoord_1_10_optional& SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_VertexYCoord_1_10 ()
        {
          return this->SimSlab_VertexYCoord_1_10_;
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_VertexYCoord_1_10 (const SimSlab_VertexYCoord_1_10_type& x)
        {
          this->SimSlab_VertexYCoord_1_10_.set (x);
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_VertexYCoord_1_10 (const SimSlab_VertexYCoord_1_10_optional& x)
        {
          this->SimSlab_VertexYCoord_1_10_ = x;
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_VertexYCoord_1_10 (::std::auto_ptr< SimSlab_VertexYCoord_1_10_type > x)
        {
          this->SimSlab_VertexYCoord_1_10_.set (x);
        }
  
        const SimSlab_Floor_FloorOverAirDetailed::SimSlab_VertexZCoord_1_10_optional& SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_VertexZCoord_1_10 () const
        {
          return this->SimSlab_VertexZCoord_1_10_;
        }
  
        SimSlab_Floor_FloorOverAirDetailed::SimSlab_VertexZCoord_1_10_optional& SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_VertexZCoord_1_10 ()
        {
          return this->SimSlab_VertexZCoord_1_10_;
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_VertexZCoord_1_10 (const SimSlab_VertexZCoord_1_10_type& x)
        {
          this->SimSlab_VertexZCoord_1_10_.set (x);
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_VertexZCoord_1_10 (const SimSlab_VertexZCoord_1_10_optional& x)
        {
          this->SimSlab_VertexZCoord_1_10_ = x;
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_VertexZCoord_1_10 (::std::auto_ptr< SimSlab_VertexZCoord_1_10_type > x)
        {
          this->SimSlab_VertexZCoord_1_10_.set (x);
        }
  
        const SimSlab_Floor_FloorOverAirDetailed::SurfProp_HeatTransAlg_MultSurf_Name_optional& SimSlab_Floor_FloorOverAirDetailed::
        SurfProp_HeatTransAlg_MultSurf_Name () const
        {
          return this->SurfProp_HeatTransAlg_MultSurf_Name_;
        }
  
        SimSlab_Floor_FloorOverAirDetailed::SurfProp_HeatTransAlg_MultSurf_Name_optional& SimSlab_Floor_FloorOverAirDetailed::
        SurfProp_HeatTransAlg_MultSurf_Name ()
        {
          return this->SurfProp_HeatTransAlg_MultSurf_Name_;
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SurfProp_HeatTransAlg_MultSurf_Name (const SurfProp_HeatTransAlg_MultSurf_Name_type& x)
        {
          this->SurfProp_HeatTransAlg_MultSurf_Name_.set (x);
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SurfProp_HeatTransAlg_MultSurf_Name (const SurfProp_HeatTransAlg_MultSurf_Name_optional& x)
        {
          this->SurfProp_HeatTransAlg_MultSurf_Name_ = x;
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SurfProp_HeatTransAlg_MultSurf_Name (::std::auto_ptr< SurfProp_HeatTransAlg_MultSurf_Name_type > x)
        {
          this->SurfProp_HeatTransAlg_MultSurf_Name_.set (x);
        }
  
        const SimSlab_Floor_FloorOverAirDetailed::SurfProp_HeatTransAlg_MultSurf_SurfType_optional& SimSlab_Floor_FloorOverAirDetailed::
        SurfProp_HeatTransAlg_MultSurf_SurfType () const
        {
          return this->SurfProp_HeatTransAlg_MultSurf_SurfType_;
        }
  
        SimSlab_Floor_FloorOverAirDetailed::SurfProp_HeatTransAlg_MultSurf_SurfType_optional& SimSlab_Floor_FloorOverAirDetailed::
        SurfProp_HeatTransAlg_MultSurf_SurfType ()
        {
          return this->SurfProp_HeatTransAlg_MultSurf_SurfType_;
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SurfProp_HeatTransAlg_MultSurf_SurfType (const SurfProp_HeatTransAlg_MultSurf_SurfType_type& x)
        {
          this->SurfProp_HeatTransAlg_MultSurf_SurfType_.set (x);
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SurfProp_HeatTransAlg_MultSurf_SurfType (const SurfProp_HeatTransAlg_MultSurf_SurfType_optional& x)
        {
          this->SurfProp_HeatTransAlg_MultSurf_SurfType_ = x;
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SurfProp_HeatTransAlg_MultSurf_SurfType (::std::auto_ptr< SurfProp_HeatTransAlg_MultSurf_SurfType_type > x)
        {
          this->SurfProp_HeatTransAlg_MultSurf_SurfType_.set (x);
        }
  
        const SimSlab_Floor_FloorOverAirDetailed::SurfProp_HeatTransAlg_MultSurf_Algorithm_optional& SimSlab_Floor_FloorOverAirDetailed::
        SurfProp_HeatTransAlg_MultSurf_Algorithm () const
        {
          return this->SurfProp_HeatTransAlg_MultSurf_Algorithm_;
        }
  
        SimSlab_Floor_FloorOverAirDetailed::SurfProp_HeatTransAlg_MultSurf_Algorithm_optional& SimSlab_Floor_FloorOverAirDetailed::
        SurfProp_HeatTransAlg_MultSurf_Algorithm ()
        {
          return this->SurfProp_HeatTransAlg_MultSurf_Algorithm_;
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SurfProp_HeatTransAlg_MultSurf_Algorithm (const SurfProp_HeatTransAlg_MultSurf_Algorithm_type& x)
        {
          this->SurfProp_HeatTransAlg_MultSurf_Algorithm_.set (x);
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SurfProp_HeatTransAlg_MultSurf_Algorithm (const SurfProp_HeatTransAlg_MultSurf_Algorithm_optional& x)
        {
          this->SurfProp_HeatTransAlg_MultSurf_Algorithm_ = x;
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        SurfProp_HeatTransAlg_MultSurf_Algorithm (::std::auto_ptr< SurfProp_HeatTransAlg_MultSurf_Algorithm_type > x)
        {
          this->SurfProp_HeatTransAlg_MultSurf_Algorithm_.set (x);
        }
      }
    }
  }
  
  #include <xsd/cxx/xml/dom/parsing-source.hxx>
  
  #include <xsd/cxx/tree/type-factory-map.hxx>
  
  namespace _xsd
  {
    static
    const ::xsd::cxx::tree::type_factory_plate< 0, char >
    type_factory_plate_init;
  }
  
  namespace schema
  {
    namespace simxml
    {
      namespace BuildingModel
      {
        // SimSlab_Floor_FloorOverAirDetailed
        //
  
        SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_Floor_FloorOverAirDetailed ()
        : ::schema::simxml::BuildingModel::SimSlab_Floor (),
          SimSlab_OutsdBndCond_ (this),
          SimSlab_OutsdBndCondObject_ (this),
          SimSlab_SunExposure_ (this),
          SimSlab_WindExposure_ (this),
          SimSlab_ViewFactToGnd_ (this),
          SimSlab_NumbVerts_ (this),
          SimSlab_VertexXCoord_1_10_ (this),
          SimSlab_VertexYCoord_1_10_ (this),
          SimSlab_VertexZCoord_1_10_ (this),
          SurfProp_HeatTransAlg_MultSurf_Name_ (this),
          SurfProp_HeatTransAlg_MultSurf_SurfType_ (this),
          SurfProp_HeatTransAlg_MultSurf_Algorithm_ (this)
        {
        }
  
        SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_Floor_FloorOverAirDetailed (const RefId_type& RefId)
        : ::schema::simxml::BuildingModel::SimSlab_Floor (RefId),
          SimSlab_OutsdBndCond_ (this),
          SimSlab_OutsdBndCondObject_ (this),
          SimSlab_SunExposure_ (this),
          SimSlab_WindExposure_ (this),
          SimSlab_ViewFactToGnd_ (this),
          SimSlab_NumbVerts_ (this),
          SimSlab_VertexXCoord_1_10_ (this),
          SimSlab_VertexYCoord_1_10_ (this),
          SimSlab_VertexZCoord_1_10_ (this),
          SurfProp_HeatTransAlg_MultSurf_Name_ (this),
          SurfProp_HeatTransAlg_MultSurf_SurfType_ (this),
          SurfProp_HeatTransAlg_MultSurf_Algorithm_ (this)
        {
        }
  
        SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_Floor_FloorOverAirDetailed (const SimSlab_Floor_FloorOverAirDetailed& x,
                                            ::xml_schema::flags f,
                                            ::xml_schema::container* c)
        : ::schema::simxml::BuildingModel::SimSlab_Floor (x, f, c),
          SimSlab_OutsdBndCond_ (x.SimSlab_OutsdBndCond_, f, this),
          SimSlab_OutsdBndCondObject_ (x.SimSlab_OutsdBndCondObject_, f, this),
          SimSlab_SunExposure_ (x.SimSlab_SunExposure_, f, this),
          SimSlab_WindExposure_ (x.SimSlab_WindExposure_, f, this),
          SimSlab_ViewFactToGnd_ (x.SimSlab_ViewFactToGnd_, f, this),
          SimSlab_NumbVerts_ (x.SimSlab_NumbVerts_, f, this),
          SimSlab_VertexXCoord_1_10_ (x.SimSlab_VertexXCoord_1_10_, f, this),
          SimSlab_VertexYCoord_1_10_ (x.SimSlab_VertexYCoord_1_10_, f, this),
          SimSlab_VertexZCoord_1_10_ (x.SimSlab_VertexZCoord_1_10_, f, this),
          SurfProp_HeatTransAlg_MultSurf_Name_ (x.SurfProp_HeatTransAlg_MultSurf_Name_, f, this),
          SurfProp_HeatTransAlg_MultSurf_SurfType_ (x.SurfProp_HeatTransAlg_MultSurf_SurfType_, f, this),
          SurfProp_HeatTransAlg_MultSurf_Algorithm_ (x.SurfProp_HeatTransAlg_MultSurf_Algorithm_, f, this)
        {
        }
  
        SimSlab_Floor_FloorOverAirDetailed::
        SimSlab_Floor_FloorOverAirDetailed (const ::xercesc::DOMElement& e,
                                            ::xml_schema::flags f,
                                            ::xml_schema::container* c)
        : ::schema::simxml::BuildingModel::SimSlab_Floor (e, f | ::xml_schema::flags::base, c),
          SimSlab_OutsdBndCond_ (this),
          SimSlab_OutsdBndCondObject_ (this),
          SimSlab_SunExposure_ (this),
          SimSlab_WindExposure_ (this),
          SimSlab_ViewFactToGnd_ (this),
          SimSlab_NumbVerts_ (this),
          SimSlab_VertexXCoord_1_10_ (this),
          SimSlab_VertexYCoord_1_10_ (this),
          SimSlab_VertexZCoord_1_10_ (this),
          SurfProp_HeatTransAlg_MultSurf_Name_ (this),
          SurfProp_HeatTransAlg_MultSurf_SurfType_ (this),
          SurfProp_HeatTransAlg_MultSurf_Algorithm_ (this)
        {
          if ((f & ::xml_schema::flags::base) == 0)
          {
            ::xsd::cxx::xml::dom::parser< char > p (e, true, false, true);
            this->parse (p, f);
          }
        }
  
        void SimSlab_Floor_FloorOverAirDetailed::
        parse (::xsd::cxx::xml::dom::parser< char >& p,
               ::xml_schema::flags f)
        {
          this->::schema::simxml::BuildingModel::SimSlab_Floor::parse (p, f);
  
          for (; p.more_content (); p.next_content (false))
          {
            const ::xercesc::DOMElement& i (p.cur_element ());
            const ::xsd::cxx::xml::qualified_name< char > n (
              ::xsd::cxx::xml::dom::name< char > (i));
  
            // SimSlab_OutsdBndCond
            //
            if (n.name () == "SimSlab_OutsdBndCond" && n.namespace_ () == "http://d-alchemy.com/schema/simxml/BuildingModel")
            {
              ::std::auto_ptr< SimSlab_OutsdBndCond_type > r (
                SimSlab_OutsdBndCond_traits::create (i, f, this));
  
              if (!this->SimSlab_OutsdBndCond_)
              {
                this->SimSlab_OutsdBndCond_.set (r);
                continue;
              }
            }
  
            // SimSlab_OutsdBndCondObject
            //
            if (n.name () == "SimSlab_OutsdBndCondObject" && n.namespace_ () == "http://d-alchemy.com/schema/simxml/BuildingModel")
            {
              ::std::auto_ptr< SimSlab_OutsdBndCondObject_type > r (
                SimSlab_OutsdBndCondObject_traits::create (i, f, this));
  
              if (!this->SimSlab_OutsdBndCondObject_)
              {
                this->SimSlab_OutsdBndCondObject_.set (r);
                continue;
              }
            }
  
            // SimSlab_SunExposure
            //
            if (n.name () == "SimSlab_SunExposure" && n.namespace_ () == "http://d-alchemy.com/schema/simxml/BuildingModel")
            {
              ::std::auto_ptr< SimSlab_SunExposure_type > r (
                SimSlab_SunExposure_traits::create (i, f, this));
  
              if (!this->SimSlab_SunExposure_)
              {
                this->SimSlab_SunExposure_.set (r);
                continue;
              }
            }
  
            // SimSlab_WindExposure
            //
            if (n.name () == "SimSlab_WindExposure" && n.namespace_ () == "http://d-alchemy.com/schema/simxml/BuildingModel")
            {
              ::std::auto_ptr< SimSlab_WindExposure_type > r (
                SimSlab_WindExposure_traits::create (i, f, this));
  
              if (!this->SimSlab_WindExposure_)
              {
                this->SimSlab_WindExposure_.set (r);
                continue;
              }
            }
  
            // SimSlab_ViewFactToGnd
            //
            if (n.name () == "SimSlab_ViewFactToGnd" && n.namespace_ () == "http://d-alchemy.com/schema/simxml/BuildingModel")
            {
              if (!this->SimSlab_ViewFactToGnd_)
              {
                this->SimSlab_ViewFactToGnd_.set (SimSlab_ViewFactToGnd_traits::create (i, f, this));
                continue;
              }
            }
  
            // SimSlab_NumbVerts
            //
            if (n.name () == "SimSlab_NumbVerts" && n.namespace_ () == "http://d-alchemy.com/schema/simxml/BuildingModel")
            {
              if (!this->SimSlab_NumbVerts_)
              {
                this->SimSlab_NumbVerts_.set (SimSlab_NumbVerts_traits::create (i, f, this));
                continue;
              }
            }
  
            // SimSlab_VertexXCoord_1_10
            //
            if (n.name () == "SimSlab_VertexXCoord_1_10" && n.namespace_ () == "http://d-alchemy.com/schema/simxml/BuildingModel")
            {
              ::std::auto_ptr< SimSlab_VertexXCoord_1_10_type > r (
                SimSlab_VertexXCoord_1_10_traits::create (i, f, this));
  
              if (!this->SimSlab_VertexXCoord_1_10_)
              {
                this->SimSlab_VertexXCoord_1_10_.set (r);
                continue;
              }
            }
  
            // SimSlab_VertexYCoord_1_10
            //
            if (n.name () == "SimSlab_VertexYCoord_1_10" && n.namespace_ () == "http://d-alchemy.com/schema/simxml/BuildingModel")
            {
              ::std::auto_ptr< SimSlab_VertexYCoord_1_10_type > r (
                SimSlab_VertexYCoord_1_10_traits::create (i, f, this));
  
              if (!this->SimSlab_VertexYCoord_1_10_)
              {
                this->SimSlab_VertexYCoord_1_10_.set (r);
                continue;
              }
            }
  
            // SimSlab_VertexZCoord_1_10
            //
            if (n.name () == "SimSlab_VertexZCoord_1_10" && n.namespace_ () == "http://d-alchemy.com/schema/simxml/BuildingModel")
            {
              ::std::auto_ptr< SimSlab_VertexZCoord_1_10_type > r (
                SimSlab_VertexZCoord_1_10_traits::create (i, f, this));
  
              if (!this->SimSlab_VertexZCoord_1_10_)
              {
                this->SimSlab_VertexZCoord_1_10_.set (r);
                continue;
              }
            }
  
            // SurfProp_HeatTransAlg_MultSurf_Name
            //
            if (n.name () == "SurfProp_HeatTransAlg_MultSurf_Name" && n.namespace_ () == "http://d-alchemy.com/schema/simxml/BuildingModel")
            {
              ::std::auto_ptr< SurfProp_HeatTransAlg_MultSurf_Name_type > r (
                SurfProp_HeatTransAlg_MultSurf_Name_traits::create (i, f, this));
  
              if (!this->SurfProp_HeatTransAlg_MultSurf_Name_)
              {
                this->SurfProp_HeatTransAlg_MultSurf_Name_.set (r);
                continue;
              }
            }
  
            // SurfProp_HeatTransAlg_MultSurf_SurfType
            //
            if (n.name () == "SurfProp_HeatTransAlg_MultSurf_SurfType" && n.namespace_ () == "http://d-alchemy.com/schema/simxml/BuildingModel")
            {
              ::std::auto_ptr< SurfProp_HeatTransAlg_MultSurf_SurfType_type > r (
                SurfProp_HeatTransAlg_MultSurf_SurfType_traits::create (i, f, this));
  
              if (!this->SurfProp_HeatTransAlg_MultSurf_SurfType_)
              {
                this->SurfProp_HeatTransAlg_MultSurf_SurfType_.set (r);
                continue;
              }
            }
  
            // SurfProp_HeatTransAlg_MultSurf_Algorithm
            //
            if (n.name () == "SurfProp_HeatTransAlg_MultSurf_Algorithm" && n.namespace_ () == "http://d-alchemy.com/schema/simxml/BuildingModel")
            {
              ::std::auto_ptr< SurfProp_HeatTransAlg_MultSurf_Algorithm_type > r (
                SurfProp_HeatTransAlg_MultSurf_Algorithm_traits::create (i, f, this));
  
              if (!this->SurfProp_HeatTransAlg_MultSurf_Algorithm_)
              {
                this->SurfProp_HeatTransAlg_MultSurf_Algorithm_.set (r);
                continue;
              }
            }
  
            break;
          }
        }
  
        SimSlab_Floor_FloorOverAirDetailed* SimSlab_Floor_FloorOverAirDetailed::
        _clone (::xml_schema::flags f,
                ::xml_schema::container* c) const
        {
          return new class SimSlab_Floor_FloorOverAirDetailed (*this, f, c);
        }
  
        SimSlab_Floor_FloorOverAirDetailed& SimSlab_Floor_FloorOverAirDetailed::
        operator= (const SimSlab_Floor_FloorOverAirDetailed& x)
        {
          if (this != &x)
          {
            static_cast< ::schema::simxml::BuildingModel::SimSlab_Floor& > (*this) = x;
            this->SimSlab_OutsdBndCond_ = x.SimSlab_OutsdBndCond_;
            this->SimSlab_OutsdBndCondObject_ = x.SimSlab_OutsdBndCondObject_;
            this->SimSlab_SunExposure_ = x.SimSlab_SunExposure_;
            this->SimSlab_WindExposure_ = x.SimSlab_WindExposure_;
            this->SimSlab_ViewFactToGnd_ = x.SimSlab_ViewFactToGnd_;
            this->SimSlab_NumbVerts_ = x.SimSlab_NumbVerts_;
            this->SimSlab_VertexXCoord_1_10_ = x.SimSlab_VertexXCoord_1_10_;
            this->SimSlab_VertexYCoord_1_10_ = x.SimSlab_VertexYCoord_1_10_;
            this->SimSlab_VertexZCoord_1_10_ = x.SimSlab_VertexZCoord_1_10_;
            this->SurfProp_HeatTransAlg_MultSurf_Name_ = x.SurfProp_HeatTransAlg_MultSurf_Name_;
            this->SurfProp_HeatTransAlg_MultSurf_SurfType_ = x.SurfProp_HeatTransAlg_MultSurf_SurfType_;
            this->SurfProp_HeatTransAlg_MultSurf_Algorithm_ = x.SurfProp_HeatTransAlg_MultSurf_Algorithm_;
          }
  
          return *this;
        }
  
        SimSlab_Floor_FloorOverAirDetailed::
        ~SimSlab_Floor_FloorOverAirDetailed ()
        {
        }
      }
    }
  }
  
  #include <istream>
  #include <xsd/cxx/xml/sax/std-input-source.hxx>
  #include <xsd/cxx/tree/error-handler.hxx>
  
  namespace schema
  {
    namespace simxml
    {
      namespace BuildingModel
      {
      }
    }
  }
  
  #include <xsd/cxx/post.hxx>
  
  // Begin epilogue.
  //
  //
  // End epilogue.
  
  