ChasteParameters.cpp

00001 // Copyright (C) 2005-2007 Code Synthesis Tools CC
00002 //
00003 // This program was generated by XML Schema Definition Compiler (XSD)
00004 //
00005 // This program is free software; you can redistribute it and/or modify
00006 // it under the terms of the GNU General Public License version 2 as
00007 // published by the Free Software Foundation.
00008 //
00009 // This program is distributed in the hope that it will be useful,
00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012 // GNU General Public License for more details.
00013 //
00014 // You should have received a copy of the GNU General Public License
00015 // along with this program; if not, write to the Free Software
00016 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
00017 //
00018 // In addition, as a special exception, Code Synthesis Tools CC gives
00019 // permission to link this program with the Xerces-C++ library (or with
00020 // modified versions of Xerces-C++ that use the same license as Xerces-C++),
00021 // and distribute linked combinations including the two. You must obey
00022 // the GNU General Public License version 2 in all respects for all of
00023 // the code used other than Xerces-C++. If you modify this copy of the
00024 // program, you may extend this exception to your version of the program,
00025 // but you are not obligated to do so. If you do not wish to do so, delete
00026 // this exception statement from your version.
00027 //
00028 // Furthermore, Code Synthesis Tools CC makes a special exception for
00029 // the Free/Libre and Open Source Software (FLOSS) which is described
00030 // in the accompanying FLOSSE file.
00031 //
00032 
00033 // Begin prologue.
00034 //
00035 #define COVERAGE_IGNORE
00036 //
00037 // End prologue.
00038 
00039 #include <xsd/cxx/pre.hxx>
00040 
00041 #include "ChasteParameters.hpp"
00042 
00043 // time_type
00044 // 
00045 
00046 const time_type::unit::type& time_type::unit::
00047 default_value ()
00048 {
00049   return default_value_;
00050 }
00051 
00052 const time_type::unit::type& time_type::
00053 unit () const
00054 {
00055   return this->_xsd_unit_.get ();
00056 }
00057 
00058 time_type::unit::type& time_type::
00059 unit ()
00060 {
00061   return this->_xsd_unit_.get ();
00062 }
00063 
00064 void time_type::
00065 unit (const unit::type& unit)
00066 {
00067   this->_xsd_unit_.set (unit);
00068 }
00069 
00070 void time_type::
00071 unit (::std::auto_ptr< unit::type > unit)
00072 {
00073   this->_xsd_unit_.set (unit);
00074 }
00075 
00076 
00077 // dimensionless_type
00078 // 
00079 
00080 const dimensionless_type::unit::type& dimensionless_type::unit::
00081 default_value ()
00082 {
00083   return default_value_;
00084 }
00085 
00086 const dimensionless_type::unit::type& dimensionless_type::
00087 unit () const
00088 {
00089   return this->_xsd_unit_.get ();
00090 }
00091 
00092 dimensionless_type::unit::type& dimensionless_type::
00093 unit ()
00094 {
00095   return this->_xsd_unit_.get ();
00096 }
00097 
00098 void dimensionless_type::
00099 unit (const unit::type& unit)
00100 {
00101   this->_xsd_unit_.set (unit);
00102 }
00103 
00104 void dimensionless_type::
00105 unit (::std::auto_ptr< unit::type > unit)
00106 {
00107   this->_xsd_unit_.set (unit);
00108 }
00109 
00110 
00111 // conductivity_type
00112 // 
00113 
00114 const conductivity_type::unit::type& conductivity_type::unit::
00115 default_value ()
00116 {
00117   return default_value_;
00118 }
00119 
00120 const conductivity_type::unit::type& conductivity_type::
00121 unit () const
00122 {
00123   return this->_xsd_unit_.get ();
00124 }
00125 
00126 conductivity_type::unit::type& conductivity_type::
00127 unit ()
00128 {
00129   return this->_xsd_unit_.get ();
00130 }
00131 
00132 void conductivity_type::
00133 unit (const unit::type& unit)
00134 {
00135   this->_xsd_unit_.set (unit);
00136 }
00137 
00138 void conductivity_type::
00139 unit (::std::auto_ptr< unit::type > unit)
00140 {
00141   this->_xsd_unit_.set (unit);
00142 }
00143 
00144 
00145 // stimulus_strength_type
00146 // 
00147 
00148 const stimulus_strength_type::unit::type& stimulus_strength_type::unit::
00149 default_value ()
00150 {
00151   return default_value_;
00152 }
00153 
00154 const stimulus_strength_type::unit::type& stimulus_strength_type::
00155 unit () const
00156 {
00157   return this->_xsd_unit_.get ();
00158 }
00159 
00160 stimulus_strength_type::unit::type& stimulus_strength_type::
00161 unit ()
00162 {
00163   return this->_xsd_unit_.get ();
00164 }
00165 
00166 void stimulus_strength_type::
00167 unit (const unit::type& unit)
00168 {
00169   this->_xsd_unit_.set (unit);
00170 }
00171 
00172 void stimulus_strength_type::
00173 unit (::std::auto_ptr< unit::type > unit)
00174 {
00175   this->_xsd_unit_.set (unit);
00176 }
00177 
00178 
00179 // inverse_length_type
00180 // 
00181 
00182 const inverse_length_type::unit::type& inverse_length_type::unit::
00183 default_value ()
00184 {
00185   return default_value_;
00186 }
00187 
00188 const inverse_length_type::unit::type& inverse_length_type::
00189 unit () const
00190 {
00191   return this->_xsd_unit_.get ();
00192 }
00193 
00194 inverse_length_type::unit::type& inverse_length_type::
00195 unit ()
00196 {
00197   return this->_xsd_unit_.get ();
00198 }
00199 
00200 void inverse_length_type::
00201 unit (const unit::type& unit)
00202 {
00203   this->_xsd_unit_.set (unit);
00204 }
00205 
00206 void inverse_length_type::
00207 unit (::std::auto_ptr< unit::type > unit)
00208 {
00209   this->_xsd_unit_.set (unit);
00210 }
00211 
00212 
00213 // capacitance_type
00214 // 
00215 
00216 const capacitance_type::unit::type& capacitance_type::unit::
00217 default_value ()
00218 {
00219   return default_value_;
00220 }
00221 
00222 const capacitance_type::unit::type& capacitance_type::
00223 unit () const
00224 {
00225   return this->_xsd_unit_.get ();
00226 }
00227 
00228 capacitance_type::unit::type& capacitance_type::
00229 unit ()
00230 {
00231   return this->_xsd_unit_.get ();
00232 }
00233 
00234 void capacitance_type::
00235 unit (const unit::type& unit)
00236 {
00237   this->_xsd_unit_.set (unit);
00238 }
00239 
00240 void capacitance_type::
00241 unit (::std::auto_ptr< unit::type > unit)
00242 {
00243   this->_xsd_unit_.set (unit);
00244 }
00245 
00246 
00247 // location_type
00248 // 
00249 
00250 const location_type::Cuboid::type& location_type::
00251 Cuboid () const
00252 {
00253   return this->_xsd_Cuboid_.get ();
00254 }
00255 
00256 location_type::Cuboid::type& location_type::
00257 Cuboid ()
00258 {
00259   return this->_xsd_Cuboid_.get ();
00260 }
00261 
00262 void location_type::
00263 Cuboid (const Cuboid::type& Cuboid)
00264 {
00265   this->_xsd_Cuboid_.set (Cuboid);
00266 }
00267 
00268 void location_type::
00269 Cuboid (::std::auto_ptr< Cuboid::type > Cuboid)
00270 {
00271   this->_xsd_Cuboid_.set (Cuboid);
00272 }
00273 
00274 const location_type::unit::type& location_type::unit::
00275 default_value ()
00276 {
00277   return default_value_;
00278 }
00279 
00280 const location_type::unit::type& location_type::
00281 unit () const
00282 {
00283   return this->_xsd_unit_.get ();
00284 }
00285 
00286 location_type::unit::type& location_type::
00287 unit ()
00288 {
00289   return this->_xsd_unit_.get ();
00290 }
00291 
00292 void location_type::
00293 unit (const unit::type& unit)
00294 {
00295   this->_xsd_unit_.set (unit);
00296 }
00297 
00298 void location_type::
00299 unit (::std::auto_ptr< unit::type > unit)
00300 {
00301   this->_xsd_unit_.set (unit);
00302 }
00303 
00304 
00305 // domain_type
00306 // 
00307 
00308 domain_type::
00309 domain_type (_xsd_domain_type v)
00310 : ::xml_schema::string (_xsd_domain_type_literals_[v])
00311 {
00312 }
00313 
00314 domain_type::
00315 domain_type (const ::xml_schema::string& _xsd_domain_type)
00316 : ::xml_schema::string (_xsd_domain_type)
00317 {
00318 }
00319 
00320 domain_type::
00321 domain_type (const domain_type& v,
00322              ::xml_schema::flags f,
00323              ::xml_schema::type* c)
00324 : ::xml_schema::string (v, f, c)
00325 {
00326 }
00327 
00328 domain_type& domain_type::
00329 operator= (_xsd_domain_type v)
00330 {
00331   static_cast< ::xml_schema::string& > (*this) = 
00332   ::xml_schema::string (_xsd_domain_type_literals_[v]);
00333 
00334   return *this;
00335 }
00336 
00337 
00338 // ionic_models_available_type
00339 // 
00340 
00341 ionic_models_available_type::
00342 ionic_models_available_type (_xsd_ionic_models_available_type v)
00343 : ::xml_schema::string (_xsd_ionic_models_available_type_literals_[v])
00344 {
00345 }
00346 
00347 ionic_models_available_type::
00348 ionic_models_available_type (const ::xml_schema::string& _xsd_ionic_models_available_type)
00349 : ::xml_schema::string (_xsd_ionic_models_available_type)
00350 {
00351 }
00352 
00353 ionic_models_available_type::
00354 ionic_models_available_type (const ionic_models_available_type& v,
00355                              ::xml_schema::flags f,
00356                              ::xml_schema::type* c)
00357 : ::xml_schema::string (v, f, c)
00358 {
00359 }
00360 
00361 ionic_models_available_type& ionic_models_available_type::
00362 operator= (_xsd_ionic_models_available_type v)
00363 {
00364   static_cast< ::xml_schema::string& > (*this) = 
00365   ::xml_schema::string (_xsd_ionic_models_available_type_literals_[v]);
00366 
00367   return *this;
00368 }
00369 
00370 
00371 // ionic_model_region_type
00372 // 
00373 
00374 const ionic_model_region_type::IonicModel::type& ionic_model_region_type::
00375 IonicModel () const
00376 {
00377   return this->_xsd_IonicModel_.get ();
00378 }
00379 
00380 ionic_model_region_type::IonicModel::type& ionic_model_region_type::
00381 IonicModel ()
00382 {
00383   return this->_xsd_IonicModel_.get ();
00384 }
00385 
00386 void ionic_model_region_type::
00387 IonicModel (const IonicModel::type& IonicModel)
00388 {
00389   this->_xsd_IonicModel_.set (IonicModel);
00390 }
00391 
00392 void ionic_model_region_type::
00393 IonicModel (::std::auto_ptr< IonicModel::type > IonicModel)
00394 {
00395   this->_xsd_IonicModel_.set (IonicModel);
00396 }
00397 
00398 const ionic_model_region_type::Location::type& ionic_model_region_type::
00399 Location () const
00400 {
00401   return this->_xsd_Location_.get ();
00402 }
00403 
00404 ionic_model_region_type::Location::type& ionic_model_region_type::
00405 Location ()
00406 {
00407   return this->_xsd_Location_.get ();
00408 }
00409 
00410 void ionic_model_region_type::
00411 Location (const Location::type& Location)
00412 {
00413   this->_xsd_Location_.set (Location);
00414 }
00415 
00416 void ionic_model_region_type::
00417 Location (::std::auto_ptr< Location::type > Location)
00418 {
00419   this->_xsd_Location_.set (Location);
00420 }
00421 
00422 
00423 // ionic_models_type
00424 // 
00425 
00426 const ionic_models_type::Default::type& ionic_models_type::
00427 Default () const
00428 {
00429   return this->_xsd_Default_.get ();
00430 }
00431 
00432 ionic_models_type::Default::type& ionic_models_type::
00433 Default ()
00434 {
00435   return this->_xsd_Default_.get ();
00436 }
00437 
00438 void ionic_models_type::
00439 Default (const Default::type& Default)
00440 {
00441   this->_xsd_Default_.set (Default);
00442 }
00443 
00444 void ionic_models_type::
00445 Default (::std::auto_ptr< Default::type > Default)
00446 {
00447   this->_xsd_Default_.set (Default);
00448 }
00449 
00450 const ionic_models_type::Region::container& ionic_models_type::
00451 Region () const
00452 {
00453   return this->_xsd_Region_;
00454 }
00455 
00456 ionic_models_type::Region::container& ionic_models_type::
00457 Region ()
00458 {
00459   return this->_xsd_Region_;
00460 }
00461 
00462 void ionic_models_type::
00463 Region (const Region::container& Region)
00464 {
00465   this->_xsd_Region_ = Region;
00466 }
00467 
00468 
00469 // media_type
00470 // 
00471 
00472 media_type::
00473 media_type (_xsd_media_type v)
00474 : ::xml_schema::string (_xsd_media_type_literals_[v])
00475 {
00476 }
00477 
00478 media_type::
00479 media_type (const ::xml_schema::string& _xsd_media_type)
00480 : ::xml_schema::string (_xsd_media_type)
00481 {
00482 }
00483 
00484 media_type::
00485 media_type (const media_type& v,
00486             ::xml_schema::flags f,
00487             ::xml_schema::type* c)
00488 : ::xml_schema::string (v, f, c)
00489 {
00490 }
00491 
00492 media_type& media_type::
00493 operator= (_xsd_media_type v)
00494 {
00495   static_cast< ::xml_schema::string& > (*this) = 
00496   ::xml_schema::string (_xsd_media_type_literals_[v]);
00497 
00498   return *this;
00499 }
00500 
00501 
00502 // point_type
00503 // 
00504 
00505 const point_type::x::type& point_type::
00506 x () const
00507 {
00508   return this->_xsd_x_.get ();
00509 }
00510 
00511 point_type::x::type& point_type::
00512 x ()
00513 {
00514   return this->_xsd_x_.get ();
00515 }
00516 
00517 void point_type::
00518 x (const x::type& x)
00519 {
00520   this->_xsd_x_.set (x);
00521 }
00522 
00523 const point_type::y::type& point_type::
00524 y () const
00525 {
00526   return this->_xsd_y_.get ();
00527 }
00528 
00529 point_type::y::type& point_type::
00530 y ()
00531 {
00532   return this->_xsd_y_.get ();
00533 }
00534 
00535 void point_type::
00536 y (const y::type& y)
00537 {
00538   this->_xsd_y_.set (y);
00539 }
00540 
00541 const point_type::z::type& point_type::
00542 z () const
00543 {
00544   return this->_xsd_z_.get ();
00545 }
00546 
00547 point_type::z::type& point_type::
00548 z ()
00549 {
00550   return this->_xsd_z_.get ();
00551 }
00552 
00553 void point_type::
00554 z (const z::type& z)
00555 {
00556   this->_xsd_z_.set (z);
00557 }
00558 
00559 
00560 // box_type
00561 // 
00562 
00563 const box_type::LowerCoordinates::type& box_type::
00564 LowerCoordinates () const
00565 {
00566   return this->_xsd_LowerCoordinates_.get ();
00567 }
00568 
00569 box_type::LowerCoordinates::type& box_type::
00570 LowerCoordinates ()
00571 {
00572   return this->_xsd_LowerCoordinates_.get ();
00573 }
00574 
00575 void box_type::
00576 LowerCoordinates (const LowerCoordinates::type& LowerCoordinates)
00577 {
00578   this->_xsd_LowerCoordinates_.set (LowerCoordinates);
00579 }
00580 
00581 void box_type::
00582 LowerCoordinates (::std::auto_ptr< LowerCoordinates::type > LowerCoordinates)
00583 {
00584   this->_xsd_LowerCoordinates_.set (LowerCoordinates);
00585 }
00586 
00587 const box_type::UpperCoordinates::type& box_type::
00588 UpperCoordinates () const
00589 {
00590   return this->_xsd_UpperCoordinates_.get ();
00591 }
00592 
00593 box_type::UpperCoordinates::type& box_type::
00594 UpperCoordinates ()
00595 {
00596   return this->_xsd_UpperCoordinates_.get ();
00597 }
00598 
00599 void box_type::
00600 UpperCoordinates (const UpperCoordinates::type& UpperCoordinates)
00601 {
00602   this->_xsd_UpperCoordinates_.set (UpperCoordinates);
00603 }
00604 
00605 void box_type::
00606 UpperCoordinates (::std::auto_ptr< UpperCoordinates::type > UpperCoordinates)
00607 {
00608   this->_xsd_UpperCoordinates_.set (UpperCoordinates);
00609 }
00610 
00611 
00612 // stimulus_type
00613 // 
00614 
00615 const stimulus_type::Strength::type& stimulus_type::
00616 Strength () const
00617 {
00618   return this->_xsd_Strength_.get ();
00619 }
00620 
00621 stimulus_type::Strength::type& stimulus_type::
00622 Strength ()
00623 {
00624   return this->_xsd_Strength_.get ();
00625 }
00626 
00627 void stimulus_type::
00628 Strength (const Strength::type& Strength)
00629 {
00630   this->_xsd_Strength_.set (Strength);
00631 }
00632 
00633 void stimulus_type::
00634 Strength (::std::auto_ptr< Strength::type > Strength)
00635 {
00636   this->_xsd_Strength_.set (Strength);
00637 }
00638 
00639 const stimulus_type::Duration::type& stimulus_type::
00640 Duration () const
00641 {
00642   return this->_xsd_Duration_.get ();
00643 }
00644 
00645 stimulus_type::Duration::type& stimulus_type::
00646 Duration ()
00647 {
00648   return this->_xsd_Duration_.get ();
00649 }
00650 
00651 void stimulus_type::
00652 Duration (const Duration::type& Duration)
00653 {
00654   this->_xsd_Duration_.set (Duration);
00655 }
00656 
00657 void stimulus_type::
00658 Duration (::std::auto_ptr< Duration::type > Duration)
00659 {
00660   this->_xsd_Duration_.set (Duration);
00661 }
00662 
00663 const stimulus_type::Delay::type& stimulus_type::
00664 Delay () const
00665 {
00666   return this->_xsd_Delay_.get ();
00667 }
00668 
00669 stimulus_type::Delay::type& stimulus_type::
00670 Delay ()
00671 {
00672   return this->_xsd_Delay_.get ();
00673 }
00674 
00675 void stimulus_type::
00676 Delay (const Delay::type& Delay)
00677 {
00678   this->_xsd_Delay_.set (Delay);
00679 }
00680 
00681 void stimulus_type::
00682 Delay (::std::auto_ptr< Delay::type > Delay)
00683 {
00684   this->_xsd_Delay_.set (Delay);
00685 }
00686 
00687 const stimulus_type::Location::type& stimulus_type::
00688 Location () const
00689 {
00690   return this->_xsd_Location_.get ();
00691 }
00692 
00693 stimulus_type::Location::type& stimulus_type::
00694 Location ()
00695 {
00696   return this->_xsd_Location_.get ();
00697 }
00698 
00699 void stimulus_type::
00700 Location (const Location::type& Location)
00701 {
00702   this->_xsd_Location_.set (Location);
00703 }
00704 
00705 void stimulus_type::
00706 Location (::std::auto_ptr< Location::type > Location)
00707 {
00708   this->_xsd_Location_.set (Location);
00709 }
00710 
00711 
00712 // cell_heterogeneity_type
00713 // 
00714 
00715 const cell_heterogeneity_type::ScaleFactorGks::type& cell_heterogeneity_type::
00716 ScaleFactorGks () const
00717 {
00718   return this->_xsd_ScaleFactorGks_.get ();
00719 }
00720 
00721 cell_heterogeneity_type::ScaleFactorGks::type& cell_heterogeneity_type::
00722 ScaleFactorGks ()
00723 {
00724   return this->_xsd_ScaleFactorGks_.get ();
00725 }
00726 
00727 void cell_heterogeneity_type::
00728 ScaleFactorGks (const ScaleFactorGks::type& ScaleFactorGks)
00729 {
00730   this->_xsd_ScaleFactorGks_.set (ScaleFactorGks);
00731 }
00732 
00733 void cell_heterogeneity_type::
00734 ScaleFactorGks (::std::auto_ptr< ScaleFactorGks::type > ScaleFactorGks)
00735 {
00736   this->_xsd_ScaleFactorGks_.set (ScaleFactorGks);
00737 }
00738 
00739 const cell_heterogeneity_type::ScaleFactorIto::type& cell_heterogeneity_type::
00740 ScaleFactorIto () const
00741 {
00742   return this->_xsd_ScaleFactorIto_.get ();
00743 }
00744 
00745 cell_heterogeneity_type::ScaleFactorIto::type& cell_heterogeneity_type::
00746 ScaleFactorIto ()
00747 {
00748   return this->_xsd_ScaleFactorIto_.get ();
00749 }
00750 
00751 void cell_heterogeneity_type::
00752 ScaleFactorIto (const ScaleFactorIto::type& ScaleFactorIto)
00753 {
00754   this->_xsd_ScaleFactorIto_.set (ScaleFactorIto);
00755 }
00756 
00757 void cell_heterogeneity_type::
00758 ScaleFactorIto (::std::auto_ptr< ScaleFactorIto::type > ScaleFactorIto)
00759 {
00760   this->_xsd_ScaleFactorIto_.set (ScaleFactorIto);
00761 }
00762 
00763 const cell_heterogeneity_type::ScaleFactorGkr::type& cell_heterogeneity_type::
00764 ScaleFactorGkr () const
00765 {
00766   return this->_xsd_ScaleFactorGkr_.get ();
00767 }
00768 
00769 cell_heterogeneity_type::ScaleFactorGkr::type& cell_heterogeneity_type::
00770 ScaleFactorGkr ()
00771 {
00772   return this->_xsd_ScaleFactorGkr_.get ();
00773 }
00774 
00775 void cell_heterogeneity_type::
00776 ScaleFactorGkr (const ScaleFactorGkr::type& ScaleFactorGkr)
00777 {
00778   this->_xsd_ScaleFactorGkr_.set (ScaleFactorGkr);
00779 }
00780 
00781 void cell_heterogeneity_type::
00782 ScaleFactorGkr (::std::auto_ptr< ScaleFactorGkr::type > ScaleFactorGkr)
00783 {
00784   this->_xsd_ScaleFactorGkr_.set (ScaleFactorGkr);
00785 }
00786 
00787 const cell_heterogeneity_type::Location::type& cell_heterogeneity_type::
00788 Location () const
00789 {
00790   return this->_xsd_Location_.get ();
00791 }
00792 
00793 cell_heterogeneity_type::Location::type& cell_heterogeneity_type::
00794 Location ()
00795 {
00796   return this->_xsd_Location_.get ();
00797 }
00798 
00799 void cell_heterogeneity_type::
00800 Location (const Location::type& Location)
00801 {
00802   this->_xsd_Location_.set (Location);
00803 }
00804 
00805 void cell_heterogeneity_type::
00806 Location (::std::auto_ptr< Location::type > Location)
00807 {
00808   this->_xsd_Location_.set (Location);
00809 }
00810 
00811 
00812 // conductivity_heterogeneity_type
00813 // 
00814 
00815 const conductivity_heterogeneity_type::IntracellularConductivities::container& conductivity_heterogeneity_type::
00816 IntracellularConductivities () const
00817 {
00818   return this->_xsd_IntracellularConductivities_;
00819 }
00820 
00821 conductivity_heterogeneity_type::IntracellularConductivities::container& conductivity_heterogeneity_type::
00822 IntracellularConductivities ()
00823 {
00824   return this->_xsd_IntracellularConductivities_;
00825 }
00826 
00827 void conductivity_heterogeneity_type::
00828 IntracellularConductivities (const IntracellularConductivities::type& IntracellularConductivities)
00829 {
00830   this->_xsd_IntracellularConductivities_.set (IntracellularConductivities);
00831 }
00832 
00833 void conductivity_heterogeneity_type::
00834 IntracellularConductivities (const IntracellularConductivities::container& IntracellularConductivities)
00835 {
00836   this->_xsd_IntracellularConductivities_ = IntracellularConductivities;
00837 }
00838 
00839 void conductivity_heterogeneity_type::
00840 IntracellularConductivities (::std::auto_ptr< IntracellularConductivities::type > IntracellularConductivities)
00841 {
00842   this->_xsd_IntracellularConductivities_.set (IntracellularConductivities);
00843 }
00844 
00845 const conductivity_heterogeneity_type::ExtracellularConductivities::container& conductivity_heterogeneity_type::
00846 ExtracellularConductivities () const
00847 {
00848   return this->_xsd_ExtracellularConductivities_;
00849 }
00850 
00851 conductivity_heterogeneity_type::ExtracellularConductivities::container& conductivity_heterogeneity_type::
00852 ExtracellularConductivities ()
00853 {
00854   return this->_xsd_ExtracellularConductivities_;
00855 }
00856 
00857 void conductivity_heterogeneity_type::
00858 ExtracellularConductivities (const ExtracellularConductivities::type& ExtracellularConductivities)
00859 {
00860   this->_xsd_ExtracellularConductivities_.set (ExtracellularConductivities);
00861 }
00862 
00863 void conductivity_heterogeneity_type::
00864 ExtracellularConductivities (const ExtracellularConductivities::container& ExtracellularConductivities)
00865 {
00866   this->_xsd_ExtracellularConductivities_ = ExtracellularConductivities;
00867 }
00868 
00869 void conductivity_heterogeneity_type::
00870 ExtracellularConductivities (::std::auto_ptr< ExtracellularConductivities::type > ExtracellularConductivities)
00871 {
00872   this->_xsd_ExtracellularConductivities_.set (ExtracellularConductivities);
00873 }
00874 
00875 const conductivity_heterogeneity_type::Location::type& conductivity_heterogeneity_type::
00876 Location () const
00877 {
00878   return this->_xsd_Location_.get ();
00879 }
00880 
00881 conductivity_heterogeneity_type::Location::type& conductivity_heterogeneity_type::
00882 Location ()
00883 {
00884   return this->_xsd_Location_.get ();
00885 }
00886 
00887 void conductivity_heterogeneity_type::
00888 Location (const Location::type& Location)
00889 {
00890   this->_xsd_Location_.set (Location);
00891 }
00892 
00893 void conductivity_heterogeneity_type::
00894 Location (::std::auto_ptr< Location::type > Location)
00895 {
00896   this->_xsd_Location_.set (Location);
00897 }
00898 
00899 
00900 // slab_type
00901 // 
00902 
00903 const slab_type::x::type& slab_type::
00904 x () const
00905 {
00906   return this->_xsd_x_.get ();
00907 }
00908 
00909 slab_type::x::type& slab_type::
00910 x ()
00911 {
00912   return this->_xsd_x_.get ();
00913 }
00914 
00915 void slab_type::
00916 x (const x::type& x)
00917 {
00918   this->_xsd_x_.set (x);
00919 }
00920 
00921 const slab_type::y::type& slab_type::
00922 y () const
00923 {
00924   return this->_xsd_y_.get ();
00925 }
00926 
00927 slab_type::y::type& slab_type::
00928 y ()
00929 {
00930   return this->_xsd_y_.get ();
00931 }
00932 
00933 void slab_type::
00934 y (const y::type& y)
00935 {
00936   this->_xsd_y_.set (y);
00937 }
00938 
00939 const slab_type::z::type& slab_type::
00940 z () const
00941 {
00942   return this->_xsd_z_.get ();
00943 }
00944 
00945 slab_type::z::type& slab_type::
00946 z ()
00947 {
00948   return this->_xsd_z_.get ();
00949 }
00950 
00951 void slab_type::
00952 z (const z::type& z)
00953 {
00954   this->_xsd_z_.set (z);
00955 }
00956 
00957 const slab_type::inter_node_space::type& slab_type::
00958 inter_node_space () const
00959 {
00960   return this->_xsd_inter_node_space_.get ();
00961 }
00962 
00963 slab_type::inter_node_space::type& slab_type::
00964 inter_node_space ()
00965 {
00966   return this->_xsd_inter_node_space_.get ();
00967 }
00968 
00969 void slab_type::
00970 inter_node_space (const inter_node_space::type& inter_node_space)
00971 {
00972   this->_xsd_inter_node_space_.set (inter_node_space);
00973 }
00974 
00975 
00976 // sheet_type
00977 // 
00978 
00979 const sheet_type::x::type& sheet_type::
00980 x () const
00981 {
00982   return this->_xsd_x_.get ();
00983 }
00984 
00985 sheet_type::x::type& sheet_type::
00986 x ()
00987 {
00988   return this->_xsd_x_.get ();
00989 }
00990 
00991 void sheet_type::
00992 x (const x::type& x)
00993 {
00994   this->_xsd_x_.set (x);
00995 }
00996 
00997 const sheet_type::y::type& sheet_type::
00998 y () const
00999 {
01000   return this->_xsd_y_.get ();
01001 }
01002 
01003 sheet_type::y::type& sheet_type::
01004 y ()
01005 {
01006   return this->_xsd_y_.get ();
01007 }
01008 
01009 void sheet_type::
01010 y (const y::type& y)
01011 {
01012   this->_xsd_y_.set (y);
01013 }
01014 
01015 const sheet_type::inter_node_space::type& sheet_type::
01016 inter_node_space () const
01017 {
01018   return this->_xsd_inter_node_space_.get ();
01019 }
01020 
01021 sheet_type::inter_node_space::type& sheet_type::
01022 inter_node_space ()
01023 {
01024   return this->_xsd_inter_node_space_.get ();
01025 }
01026 
01027 void sheet_type::
01028 inter_node_space (const inter_node_space::type& inter_node_space)
01029 {
01030   this->_xsd_inter_node_space_.set (inter_node_space);
01031 }
01032 
01033 
01034 // fibre_type
01035 // 
01036 
01037 const fibre_type::x::type& fibre_type::
01038 x () const
01039 {
01040   return this->_xsd_x_.get ();
01041 }
01042 
01043 fibre_type::x::type& fibre_type::
01044 x ()
01045 {
01046   return this->_xsd_x_.get ();
01047 }
01048 
01049 void fibre_type::
01050 x (const x::type& x)
01051 {
01052   this->_xsd_x_.set (x);
01053 }
01054 
01055 const fibre_type::inter_node_space::type& fibre_type::
01056 inter_node_space () const
01057 {
01058   return this->_xsd_inter_node_space_.get ();
01059 }
01060 
01061 fibre_type::inter_node_space::type& fibre_type::
01062 inter_node_space ()
01063 {
01064   return this->_xsd_inter_node_space_.get ();
01065 }
01066 
01067 void fibre_type::
01068 inter_node_space (const inter_node_space::type& inter_node_space)
01069 {
01070   this->_xsd_inter_node_space_.set (inter_node_space);
01071 }
01072 
01073 
01074 // load_mesh_type
01075 // 
01076 
01077 const load_mesh_type::name::type& load_mesh_type::
01078 name () const
01079 {
01080   return this->_xsd_name_.get ();
01081 }
01082 
01083 load_mesh_type::name::type& load_mesh_type::
01084 name ()
01085 {
01086   return this->_xsd_name_.get ();
01087 }
01088 
01089 void load_mesh_type::
01090 name (const name::type& name)
01091 {
01092   this->_xsd_name_.set (name);
01093 }
01094 
01095 void load_mesh_type::
01096 name (::std::auto_ptr< name::type > name)
01097 {
01098   this->_xsd_name_.set (name);
01099 }
01100 
01101 const load_mesh_type::conductivity_media::type& load_mesh_type::
01102 conductivity_media () const
01103 {
01104   return this->_xsd_conductivity_media_.get ();
01105 }
01106 
01107 load_mesh_type::conductivity_media::type& load_mesh_type::
01108 conductivity_media ()
01109 {
01110   return this->_xsd_conductivity_media_.get ();
01111 }
01112 
01113 void load_mesh_type::
01114 conductivity_media (const conductivity_media::type& conductivity_media)
01115 {
01116   this->_xsd_conductivity_media_.set (conductivity_media);
01117 }
01118 
01119 void load_mesh_type::
01120 conductivity_media (::std::auto_ptr< conductivity_media::type > conductivity_media)
01121 {
01122   this->_xsd_conductivity_media_.set (conductivity_media);
01123 }
01124 
01125 
01126 // mesh_type
01127 // 
01128 
01129 const mesh_type::Slab::container& mesh_type::
01130 Slab () const
01131 {
01132   return this->_xsd_Slab_;
01133 }
01134 
01135 mesh_type::Slab::container& mesh_type::
01136 Slab ()
01137 {
01138   return this->_xsd_Slab_;
01139 }
01140 
01141 void mesh_type::
01142 Slab (const Slab::type& Slab)
01143 {
01144   this->_xsd_Slab_.set (Slab);
01145 }
01146 
01147 void mesh_type::
01148 Slab (const Slab::container& Slab)
01149 {
01150   this->_xsd_Slab_ = Slab;
01151 }
01152 
01153 void mesh_type::
01154 Slab (::std::auto_ptr< Slab::type > Slab)
01155 {
01156   this->_xsd_Slab_.set (Slab);
01157 }
01158 
01159 const mesh_type::Sheet::container& mesh_type::
01160 Sheet () const
01161 {
01162   return this->_xsd_Sheet_;
01163 }
01164 
01165 mesh_type::Sheet::container& mesh_type::
01166 Sheet ()
01167 {
01168   return this->_xsd_Sheet_;
01169 }
01170 
01171 void mesh_type::
01172 Sheet (const Sheet::type& Sheet)
01173 {
01174   this->_xsd_Sheet_.set (Sheet);
01175 }
01176 
01177 void mesh_type::
01178 Sheet (const Sheet::container& Sheet)
01179 {
01180   this->_xsd_Sheet_ = Sheet;
01181 }
01182 
01183 void mesh_type::
01184 Sheet (::std::auto_ptr< Sheet::type > Sheet)
01185 {
01186   this->_xsd_Sheet_.set (Sheet);
01187 }
01188 
01189 const mesh_type::Fibre::container& mesh_type::
01190 Fibre () const
01191 {
01192   return this->_xsd_Fibre_;
01193 }
01194 
01195 mesh_type::Fibre::container& mesh_type::
01196 Fibre ()
01197 {
01198   return this->_xsd_Fibre_;
01199 }
01200 
01201 void mesh_type::
01202 Fibre (const Fibre::type& Fibre)
01203 {
01204   this->_xsd_Fibre_.set (Fibre);
01205 }
01206 
01207 void mesh_type::
01208 Fibre (const Fibre::container& Fibre)
01209 {
01210   this->_xsd_Fibre_ = Fibre;
01211 }
01212 
01213 void mesh_type::
01214 Fibre (::std::auto_ptr< Fibre::type > Fibre)
01215 {
01216   this->_xsd_Fibre_.set (Fibre);
01217 }
01218 
01219 const mesh_type::LoadMesh::container& mesh_type::
01220 LoadMesh () const
01221 {
01222   return this->_xsd_LoadMesh_;
01223 }
01224 
01225 mesh_type::LoadMesh::container& mesh_type::
01226 LoadMesh ()
01227 {
01228   return this->_xsd_LoadMesh_;
01229 }
01230 
01231 void mesh_type::
01232 LoadMesh (const LoadMesh::type& LoadMesh)
01233 {
01234   this->_xsd_LoadMesh_.set (LoadMesh);
01235 }
01236 
01237 void mesh_type::
01238 LoadMesh (const LoadMesh::container& LoadMesh)
01239 {
01240   this->_xsd_LoadMesh_ = LoadMesh;
01241 }
01242 
01243 void mesh_type::
01244 LoadMesh (::std::auto_ptr< LoadMesh::type > LoadMesh)
01245 {
01246   this->_xsd_LoadMesh_.set (LoadMesh);
01247 }
01248 
01249 const mesh_type::unit::type& mesh_type::unit::
01250 default_value ()
01251 {
01252   return default_value_;
01253 }
01254 
01255 const mesh_type::unit::type& mesh_type::
01256 unit () const
01257 {
01258   return this->_xsd_unit_.get ();
01259 }
01260 
01261 mesh_type::unit::type& mesh_type::
01262 unit ()
01263 {
01264   return this->_xsd_unit_.get ();
01265 }
01266 
01267 void mesh_type::
01268 unit (const unit::type& unit)
01269 {
01270   this->_xsd_unit_.set (unit);
01271 }
01272 
01273 void mesh_type::
01274 unit (::std::auto_ptr< unit::type > unit)
01275 {
01276   this->_xsd_unit_.set (unit);
01277 }
01278 
01279 
01280 // conductivities_type
01281 // 
01282 
01283 const conductivities_type::longi::type& conductivities_type::
01284 longi () const
01285 {
01286   return this->_xsd_longi_.get ();
01287 }
01288 
01289 conductivities_type::longi::type& conductivities_type::
01290 longi ()
01291 {
01292   return this->_xsd_longi_.get ();
01293 }
01294 
01295 void conductivities_type::
01296 longi (const longi::type& longi)
01297 {
01298   this->_xsd_longi_.set (longi);
01299 }
01300 
01301 const conductivities_type::trans::type& conductivities_type::
01302 trans () const
01303 {
01304   return this->_xsd_trans_.get ();
01305 }
01306 
01307 conductivities_type::trans::type& conductivities_type::
01308 trans ()
01309 {
01310   return this->_xsd_trans_.get ();
01311 }
01312 
01313 void conductivities_type::
01314 trans (const trans::type& trans)
01315 {
01316   this->_xsd_trans_.set (trans);
01317 }
01318 
01319 const conductivities_type::normal::type& conductivities_type::
01320 normal () const
01321 {
01322   return this->_xsd_normal_.get ();
01323 }
01324 
01325 conductivities_type::normal::type& conductivities_type::
01326 normal ()
01327 {
01328   return this->_xsd_normal_.get ();
01329 }
01330 
01331 void conductivities_type::
01332 normal (const normal::type& normal)
01333 {
01334   this->_xsd_normal_.set (normal);
01335 }
01336 
01337 const conductivities_type::unit::type& conductivities_type::unit::
01338 default_value ()
01339 {
01340   return default_value_;
01341 }
01342 
01343 const conductivities_type::unit::type& conductivities_type::
01344 unit () const
01345 {
01346   return this->_xsd_unit_.get ();
01347 }
01348 
01349 conductivities_type::unit::type& conductivities_type::
01350 unit ()
01351 {
01352   return this->_xsd_unit_.get ();
01353 }
01354 
01355 void conductivities_type::
01356 unit (const unit::type& unit)
01357 {
01358   this->_xsd_unit_.set (unit);
01359 }
01360 
01361 void conductivities_type::
01362 unit (::std::auto_ptr< unit::type > unit)
01363 {
01364   this->_xsd_unit_.set (unit);
01365 }
01366 
01367 
01368 // time_steps_type
01369 // 
01370 
01371 const time_steps_type::ode::type& time_steps_type::
01372 ode () const
01373 {
01374   return this->_xsd_ode_.get ();
01375 }
01376 
01377 time_steps_type::ode::type& time_steps_type::
01378 ode ()
01379 {
01380   return this->_xsd_ode_.get ();
01381 }
01382 
01383 void time_steps_type::
01384 ode (const ode::type& ode)
01385 {
01386   this->_xsd_ode_.set (ode);
01387 }
01388 
01389 const time_steps_type::pde::type& time_steps_type::
01390 pde () const
01391 {
01392   return this->_xsd_pde_.get ();
01393 }
01394 
01395 time_steps_type::pde::type& time_steps_type::
01396 pde ()
01397 {
01398   return this->_xsd_pde_.get ();
01399 }
01400 
01401 void time_steps_type::
01402 pde (const pde::type& pde)
01403 {
01404   this->_xsd_pde_.set (pde);
01405 }
01406 
01407 const time_steps_type::printing::type& time_steps_type::
01408 printing () const
01409 {
01410   return this->_xsd_printing_.get ();
01411 }
01412 
01413 time_steps_type::printing::type& time_steps_type::
01414 printing ()
01415 {
01416   return this->_xsd_printing_.get ();
01417 }
01418 
01419 void time_steps_type::
01420 printing (const printing::type& printing)
01421 {
01422   this->_xsd_printing_.set (printing);
01423 }
01424 
01425 const time_steps_type::unit::type& time_steps_type::unit::
01426 default_value ()
01427 {
01428   return default_value_;
01429 }
01430 
01431 const time_steps_type::unit::type& time_steps_type::
01432 unit () const
01433 {
01434   return this->_xsd_unit_.get ();
01435 }
01436 
01437 time_steps_type::unit::type& time_steps_type::
01438 unit ()
01439 {
01440   return this->_xsd_unit_.get ();
01441 }
01442 
01443 void time_steps_type::
01444 unit (const unit::type& unit)
01445 {
01446   this->_xsd_unit_.set (unit);
01447 }
01448 
01449 void time_steps_type::
01450 unit (::std::auto_ptr< unit::type > unit)
01451 {
01452   this->_xsd_unit_.set (unit);
01453 }
01454 
01455 
01456 // ksp_use_type
01457 // 
01458 
01459 ksp_use_type::
01460 ksp_use_type (_xsd_ksp_use_type v)
01461 : ::xml_schema::string (_xsd_ksp_use_type_literals_[v])
01462 {
01463 }
01464 
01465 ksp_use_type::
01466 ksp_use_type (const ::xml_schema::string& _xsd_ksp_use_type)
01467 : ::xml_schema::string (_xsd_ksp_use_type)
01468 {
01469 }
01470 
01471 ksp_use_type::
01472 ksp_use_type (const ksp_use_type& v,
01473               ::xml_schema::flags f,
01474               ::xml_schema::type* c)
01475 : ::xml_schema::string (v, f, c)
01476 {
01477 }
01478 
01479 ksp_use_type& ksp_use_type::
01480 operator= (_xsd_ksp_use_type v)
01481 {
01482   static_cast< ::xml_schema::string& > (*this) = 
01483   ::xml_schema::string (_xsd_ksp_use_type_literals_[v]);
01484 
01485   return *this;
01486 }
01487 
01488 
01489 // ksp_tolerances_type
01490 // 
01491 
01492 const ksp_tolerances_type::KSPRelative::container& ksp_tolerances_type::
01493 KSPRelative () const
01494 {
01495   return this->_xsd_KSPRelative_;
01496 }
01497 
01498 ksp_tolerances_type::KSPRelative::container& ksp_tolerances_type::
01499 KSPRelative ()
01500 {
01501   return this->_xsd_KSPRelative_;
01502 }
01503 
01504 void ksp_tolerances_type::
01505 KSPRelative (const KSPRelative::type& KSPRelative)
01506 {
01507   this->_xsd_KSPRelative_.set (KSPRelative);
01508 }
01509 
01510 void ksp_tolerances_type::
01511 KSPRelative (const KSPRelative::container& KSPRelative)
01512 {
01513   this->_xsd_KSPRelative_ = KSPRelative;
01514 }
01515 
01516 const ksp_tolerances_type::KSPAbsolute::container& ksp_tolerances_type::
01517 KSPAbsolute () const
01518 {
01519   return this->_xsd_KSPAbsolute_;
01520 }
01521 
01522 ksp_tolerances_type::KSPAbsolute::container& ksp_tolerances_type::
01523 KSPAbsolute ()
01524 {
01525   return this->_xsd_KSPAbsolute_;
01526 }
01527 
01528 void ksp_tolerances_type::
01529 KSPAbsolute (const KSPAbsolute::type& KSPAbsolute)
01530 {
01531   this->_xsd_KSPAbsolute_.set (KSPAbsolute);
01532 }
01533 
01534 void ksp_tolerances_type::
01535 KSPAbsolute (const KSPAbsolute::container& KSPAbsolute)
01536 {
01537   this->_xsd_KSPAbsolute_ = KSPAbsolute;
01538 }
01539 
01540 
01541 // ksp_solver_type
01542 // 
01543 
01544 ksp_solver_type::
01545 ksp_solver_type (_xsd_ksp_solver_type v)
01546 : ::xml_schema::string (_xsd_ksp_solver_type_literals_[v])
01547 {
01548 }
01549 
01550 ksp_solver_type::
01551 ksp_solver_type (const ::xml_schema::string& _xsd_ksp_solver_type)
01552 : ::xml_schema::string (_xsd_ksp_solver_type)
01553 {
01554 }
01555 
01556 ksp_solver_type::
01557 ksp_solver_type (const ksp_solver_type& v,
01558                  ::xml_schema::flags f,
01559                  ::xml_schema::type* c)
01560 : ::xml_schema::string (v, f, c)
01561 {
01562 }
01563 
01564 ksp_solver_type& ksp_solver_type::
01565 operator= (_xsd_ksp_solver_type v)
01566 {
01567   static_cast< ::xml_schema::string& > (*this) = 
01568   ::xml_schema::string (_xsd_ksp_solver_type_literals_[v]);
01569 
01570   return *this;
01571 }
01572 
01573 
01574 // ksp_preconditioner_type
01575 // 
01576 
01577 ksp_preconditioner_type::
01578 ksp_preconditioner_type (_xsd_ksp_preconditioner_type v)
01579 : ::xml_schema::string (_xsd_ksp_preconditioner_type_literals_[v])
01580 {
01581 }
01582 
01583 ksp_preconditioner_type::
01584 ksp_preconditioner_type (const ::xml_schema::string& _xsd_ksp_preconditioner_type)
01585 : ::xml_schema::string (_xsd_ksp_preconditioner_type)
01586 {
01587 }
01588 
01589 ksp_preconditioner_type::
01590 ksp_preconditioner_type (const ksp_preconditioner_type& v,
01591                          ::xml_schema::flags f,
01592                          ::xml_schema::type* c)
01593 : ::xml_schema::string (v, f, c)
01594 {
01595 }
01596 
01597 ksp_preconditioner_type& ksp_preconditioner_type::
01598 operator= (_xsd_ksp_preconditioner_type v)
01599 {
01600   static_cast< ::xml_schema::string& > (*this) = 
01601   ::xml_schema::string (_xsd_ksp_preconditioner_type_literals_[v]);
01602 
01603   return *this;
01604 }
01605 
01606 
01607 // simulation_type
01608 // 
01609 
01610 const simulation_type::SpaceDimension::container& simulation_type::
01611 SpaceDimension () const
01612 {
01613   return this->_xsd_SpaceDimension_;
01614 }
01615 
01616 simulation_type::SpaceDimension::container& simulation_type::
01617 SpaceDimension ()
01618 {
01619   return this->_xsd_SpaceDimension_;
01620 }
01621 
01622 void simulation_type::
01623 SpaceDimension (const SpaceDimension::type& SpaceDimension)
01624 {
01625   this->_xsd_SpaceDimension_.set (SpaceDimension);
01626 }
01627 
01628 void simulation_type::
01629 SpaceDimension (const SpaceDimension::container& SpaceDimension)
01630 {
01631   this->_xsd_SpaceDimension_ = SpaceDimension;
01632 }
01633 
01634 const simulation_type::SimulationDuration::container& simulation_type::
01635 SimulationDuration () const
01636 {
01637   return this->_xsd_SimulationDuration_;
01638 }
01639 
01640 simulation_type::SimulationDuration::container& simulation_type::
01641 SimulationDuration ()
01642 {
01643   return this->_xsd_SimulationDuration_;
01644 }
01645 
01646 void simulation_type::
01647 SimulationDuration (const SimulationDuration::type& SimulationDuration)
01648 {
01649   this->_xsd_SimulationDuration_.set (SimulationDuration);
01650 }
01651 
01652 void simulation_type::
01653 SimulationDuration (const SimulationDuration::container& SimulationDuration)
01654 {
01655   this->_xsd_SimulationDuration_ = SimulationDuration;
01656 }
01657 
01658 void simulation_type::
01659 SimulationDuration (::std::auto_ptr< SimulationDuration::type > SimulationDuration)
01660 {
01661   this->_xsd_SimulationDuration_.set (SimulationDuration);
01662 }
01663 
01664 const simulation_type::Domain::container& simulation_type::
01665 Domain () const
01666 {
01667   return this->_xsd_Domain_;
01668 }
01669 
01670 simulation_type::Domain::container& simulation_type::
01671 Domain ()
01672 {
01673   return this->_xsd_Domain_;
01674 }
01675 
01676 void simulation_type::
01677 Domain (const Domain::type& Domain)
01678 {
01679   this->_xsd_Domain_.set (Domain);
01680 }
01681 
01682 void simulation_type::
01683 Domain (const Domain::container& Domain)
01684 {
01685   this->_xsd_Domain_ = Domain;
01686 }
01687 
01688 void simulation_type::
01689 Domain (::std::auto_ptr< Domain::type > Domain)
01690 {
01691   this->_xsd_Domain_.set (Domain);
01692 }
01693 
01694 const simulation_type::Mesh::container& simulation_type::
01695 Mesh () const
01696 {
01697   return this->_xsd_Mesh_;
01698 }
01699 
01700 simulation_type::Mesh::container& simulation_type::
01701 Mesh ()
01702 {
01703   return this->_xsd_Mesh_;
01704 }
01705 
01706 void simulation_type::
01707 Mesh (const Mesh::type& Mesh)
01708 {
01709   this->_xsd_Mesh_.set (Mesh);
01710 }
01711 
01712 void simulation_type::
01713 Mesh (const Mesh::container& Mesh)
01714 {
01715   this->_xsd_Mesh_ = Mesh;
01716 }
01717 
01718 void simulation_type::
01719 Mesh (::std::auto_ptr< Mesh::type > Mesh)
01720 {
01721   this->_xsd_Mesh_.set (Mesh);
01722 }
01723 
01724 const simulation_type::IonicModels::container& simulation_type::
01725 IonicModels () const
01726 {
01727   return this->_xsd_IonicModels_;
01728 }
01729 
01730 simulation_type::IonicModels::container& simulation_type::
01731 IonicModels ()
01732 {
01733   return this->_xsd_IonicModels_;
01734 }
01735 
01736 void simulation_type::
01737 IonicModels (const IonicModels::type& IonicModels)
01738 {
01739   this->_xsd_IonicModels_.set (IonicModels);
01740 }
01741 
01742 void simulation_type::
01743 IonicModels (const IonicModels::container& IonicModels)
01744 {
01745   this->_xsd_IonicModels_ = IonicModels;
01746 }
01747 
01748 void simulation_type::
01749 IonicModels (::std::auto_ptr< IonicModels::type > IonicModels)
01750 {
01751   this->_xsd_IonicModels_.set (IonicModels);
01752 }
01753 
01754 // simulation_type::Stimuli::_xsd_Stimuli_::Stimuli
01755 // 
01756 
01757 const simulation_type::Stimuli::_xsd_Stimuli_::Stimuli::Stimulus::container& simulation_type::Stimuli::_xsd_Stimuli_::Stimuli::
01758 Stimulus () const
01759 {
01760   return this->_xsd_Stimulus_;
01761 }
01762 
01763 simulation_type::Stimuli::_xsd_Stimuli_::Stimuli::Stimulus::container& simulation_type::Stimuli::_xsd_Stimuli_::Stimuli::
01764 Stimulus ()
01765 {
01766   return this->_xsd_Stimulus_;
01767 }
01768 
01769 void simulation_type::Stimuli::_xsd_Stimuli_::Stimuli::
01770 Stimulus (const Stimulus::container& Stimulus)
01771 {
01772   this->_xsd_Stimulus_ = Stimulus;
01773 }
01774 
01775 
01776 const simulation_type::Stimuli::container& simulation_type::
01777 Stimuli () const
01778 {
01779   return this->_xsd_Stimuli_;
01780 }
01781 
01782 simulation_type::Stimuli::container& simulation_type::
01783 Stimuli ()
01784 {
01785   return this->_xsd_Stimuli_;
01786 }
01787 
01788 void simulation_type::
01789 Stimuli (const Stimuli::type& Stimuli)
01790 {
01791   this->_xsd_Stimuli_.set (Stimuli);
01792 }
01793 
01794 void simulation_type::
01795 Stimuli (const Stimuli::container& Stimuli)
01796 {
01797   this->_xsd_Stimuli_ = Stimuli;
01798 }
01799 
01800 void simulation_type::
01801 Stimuli (::std::auto_ptr< Stimuli::type > Stimuli)
01802 {
01803   this->_xsd_Stimuli_.set (Stimuli);
01804 }
01805 
01806 // simulation_type::CellHeterogeneities::_xsd_CellHeterogeneities_::CellHeterogeneities
01807 // 
01808 
01809 const simulation_type::CellHeterogeneities::_xsd_CellHeterogeneities_::CellHeterogeneities::CellHeterogeneity::container& simulation_type::CellHeterogeneities::_xsd_CellHeterogeneities_::CellHeterogeneities::
01810 CellHeterogeneity () const
01811 {
01812   return this->_xsd_CellHeterogeneity_;
01813 }
01814 
01815 simulation_type::CellHeterogeneities::_xsd_CellHeterogeneities_::CellHeterogeneities::CellHeterogeneity::container& simulation_type::CellHeterogeneities::_xsd_CellHeterogeneities_::CellHeterogeneities::
01816 CellHeterogeneity ()
01817 {
01818   return this->_xsd_CellHeterogeneity_;
01819 }
01820 
01821 void simulation_type::CellHeterogeneities::_xsd_CellHeterogeneities_::CellHeterogeneities::
01822 CellHeterogeneity (const CellHeterogeneity::container& CellHeterogeneity)
01823 {
01824   this->_xsd_CellHeterogeneity_ = CellHeterogeneity;
01825 }
01826 
01827 
01828 const simulation_type::CellHeterogeneities::container& simulation_type::
01829 CellHeterogeneities () const
01830 {
01831   return this->_xsd_CellHeterogeneities_;
01832 }
01833 
01834 simulation_type::CellHeterogeneities::container& simulation_type::
01835 CellHeterogeneities ()
01836 {
01837   return this->_xsd_CellHeterogeneities_;
01838 }
01839 
01840 void simulation_type::
01841 CellHeterogeneities (const CellHeterogeneities::type& CellHeterogeneities)
01842 {
01843   this->_xsd_CellHeterogeneities_.set (CellHeterogeneities);
01844 }
01845 
01846 void simulation_type::
01847 CellHeterogeneities (const CellHeterogeneities::container& CellHeterogeneities)
01848 {
01849   this->_xsd_CellHeterogeneities_ = CellHeterogeneities;
01850 }
01851 
01852 void simulation_type::
01853 CellHeterogeneities (::std::auto_ptr< CellHeterogeneities::type > CellHeterogeneities)
01854 {
01855   this->_xsd_CellHeterogeneities_.set (CellHeterogeneities);
01856 }
01857 
01858 // simulation_type::ConductivityHeterogeneities::_xsd_ConductivityHeterogeneities_::ConductivityHeterogeneities
01859 // 
01860 
01861 const simulation_type::ConductivityHeterogeneities::_xsd_ConductivityHeterogeneities_::ConductivityHeterogeneities::ConductivityHeterogeneity::container& simulation_type::ConductivityHeterogeneities::_xsd_ConductivityHeterogeneities_::ConductivityHeterogeneities::
01862 ConductivityHeterogeneity () const
01863 {
01864   return this->_xsd_ConductivityHeterogeneity_;
01865 }
01866 
01867 simulation_type::ConductivityHeterogeneities::_xsd_ConductivityHeterogeneities_::ConductivityHeterogeneities::ConductivityHeterogeneity::container& simulation_type::ConductivityHeterogeneities::_xsd_ConductivityHeterogeneities_::ConductivityHeterogeneities::
01868 ConductivityHeterogeneity ()
01869 {
01870   return this->_xsd_ConductivityHeterogeneity_;
01871 }
01872 
01873 void simulation_type::ConductivityHeterogeneities::_xsd_ConductivityHeterogeneities_::ConductivityHeterogeneities::
01874 ConductivityHeterogeneity (const ConductivityHeterogeneity::container& ConductivityHeterogeneity)
01875 {
01876   this->_xsd_ConductivityHeterogeneity_ = ConductivityHeterogeneity;
01877 }
01878 
01879 
01880 const simulation_type::ConductivityHeterogeneities::container& simulation_type::
01881 ConductivityHeterogeneities () const
01882 {
01883   return this->_xsd_ConductivityHeterogeneities_;
01884 }
01885 
01886 simulation_type::ConductivityHeterogeneities::container& simulation_type::
01887 ConductivityHeterogeneities ()
01888 {
01889   return this->_xsd_ConductivityHeterogeneities_;
01890 }
01891 
01892 void simulation_type::
01893 ConductivityHeterogeneities (const ConductivityHeterogeneities::type& ConductivityHeterogeneities)
01894 {
01895   this->_xsd_ConductivityHeterogeneities_.set (ConductivityHeterogeneities);
01896 }
01897 
01898 void simulation_type::
01899 ConductivityHeterogeneities (const ConductivityHeterogeneities::container& ConductivityHeterogeneities)
01900 {
01901   this->_xsd_ConductivityHeterogeneities_ = ConductivityHeterogeneities;
01902 }
01903 
01904 void simulation_type::
01905 ConductivityHeterogeneities (::std::auto_ptr< ConductivityHeterogeneities::type > ConductivityHeterogeneities)
01906 {
01907   this->_xsd_ConductivityHeterogeneities_.set (ConductivityHeterogeneities);
01908 }
01909 
01910 const simulation_type::OutputDirectory::container& simulation_type::
01911 OutputDirectory () const
01912 {
01913   return this->_xsd_OutputDirectory_;
01914 }
01915 
01916 simulation_type::OutputDirectory::container& simulation_type::
01917 OutputDirectory ()
01918 {
01919   return this->_xsd_OutputDirectory_;
01920 }
01921 
01922 void simulation_type::
01923 OutputDirectory (const OutputDirectory::type& OutputDirectory)
01924 {
01925   this->_xsd_OutputDirectory_.set (OutputDirectory);
01926 }
01927 
01928 void simulation_type::
01929 OutputDirectory (const OutputDirectory::container& OutputDirectory)
01930 {
01931   this->_xsd_OutputDirectory_ = OutputDirectory;
01932 }
01933 
01934 void simulation_type::
01935 OutputDirectory (::std::auto_ptr< OutputDirectory::type > OutputDirectory)
01936 {
01937   this->_xsd_OutputDirectory_.set (OutputDirectory);
01938 }
01939 
01940 const simulation_type::OutputFilenamePrefix::container& simulation_type::
01941 OutputFilenamePrefix () const
01942 {
01943   return this->_xsd_OutputFilenamePrefix_;
01944 }
01945 
01946 simulation_type::OutputFilenamePrefix::container& simulation_type::
01947 OutputFilenamePrefix ()
01948 {
01949   return this->_xsd_OutputFilenamePrefix_;
01950 }
01951 
01952 void simulation_type::
01953 OutputFilenamePrefix (const OutputFilenamePrefix::type& OutputFilenamePrefix)
01954 {
01955   this->_xsd_OutputFilenamePrefix_.set (OutputFilenamePrefix);
01956 }
01957 
01958 void simulation_type::
01959 OutputFilenamePrefix (const OutputFilenamePrefix::container& OutputFilenamePrefix)
01960 {
01961   this->_xsd_OutputFilenamePrefix_ = OutputFilenamePrefix;
01962 }
01963 
01964 void simulation_type::
01965 OutputFilenamePrefix (::std::auto_ptr< OutputFilenamePrefix::type > OutputFilenamePrefix)
01966 {
01967   this->_xsd_OutputFilenamePrefix_.set (OutputFilenamePrefix);
01968 }
01969 
01970 
01971 // physiological_type
01972 // 
01973 
01974 const physiological_type::IntracellularConductivities::container& physiological_type::
01975 IntracellularConductivities () const
01976 {
01977   return this->_xsd_IntracellularConductivities_;
01978 }
01979 
01980 physiological_type::IntracellularConductivities::container& physiological_type::
01981 IntracellularConductivities ()
01982 {
01983   return this->_xsd_IntracellularConductivities_;
01984 }
01985 
01986 void physiological_type::
01987 IntracellularConductivities (const IntracellularConductivities::type& IntracellularConductivities)
01988 {
01989   this->_xsd_IntracellularConductivities_.set (IntracellularConductivities);
01990 }
01991 
01992 void physiological_type::
01993 IntracellularConductivities (const IntracellularConductivities::container& IntracellularConductivities)
01994 {
01995   this->_xsd_IntracellularConductivities_ = IntracellularConductivities;
01996 }
01997 
01998 void physiological_type::
01999 IntracellularConductivities (::std::auto_ptr< IntracellularConductivities::type > IntracellularConductivities)
02000 {
02001   this->_xsd_IntracellularConductivities_.set (IntracellularConductivities);
02002 }
02003 
02004 const physiological_type::ExtracellularConductivities::container& physiological_type::
02005 ExtracellularConductivities () const
02006 {
02007   return this->_xsd_ExtracellularConductivities_;
02008 }
02009 
02010 physiological_type::ExtracellularConductivities::container& physiological_type::
02011 ExtracellularConductivities ()
02012 {
02013   return this->_xsd_ExtracellularConductivities_;
02014 }
02015 
02016 void physiological_type::
02017 ExtracellularConductivities (const ExtracellularConductivities::type& ExtracellularConductivities)
02018 {
02019   this->_xsd_ExtracellularConductivities_.set (ExtracellularConductivities);
02020 }
02021 
02022 void physiological_type::
02023 ExtracellularConductivities (const ExtracellularConductivities::container& ExtracellularConductivities)
02024 {
02025   this->_xsd_ExtracellularConductivities_ = ExtracellularConductivities;
02026 }
02027 
02028 void physiological_type::
02029 ExtracellularConductivities (::std::auto_ptr< ExtracellularConductivities::type > ExtracellularConductivities)
02030 {
02031   this->_xsd_ExtracellularConductivities_.set (ExtracellularConductivities);
02032 }
02033 
02034 const physiological_type::BathConductivity::container& physiological_type::
02035 BathConductivity () const
02036 {
02037   return this->_xsd_BathConductivity_;
02038 }
02039 
02040 physiological_type::BathConductivity::container& physiological_type::
02041 BathConductivity ()
02042 {
02043   return this->_xsd_BathConductivity_;
02044 }
02045 
02046 void physiological_type::
02047 BathConductivity (const BathConductivity::type& BathConductivity)
02048 {
02049   this->_xsd_BathConductivity_.set (BathConductivity);
02050 }
02051 
02052 void physiological_type::
02053 BathConductivity (const BathConductivity::container& BathConductivity)
02054 {
02055   this->_xsd_BathConductivity_ = BathConductivity;
02056 }
02057 
02058 void physiological_type::
02059 BathConductivity (::std::auto_ptr< BathConductivity::type > BathConductivity)
02060 {
02061   this->_xsd_BathConductivity_.set (BathConductivity);
02062 }
02063 
02064 const physiological_type::SurfaceAreaToVolumeRatio::container& physiological_type::
02065 SurfaceAreaToVolumeRatio () const
02066 {
02067   return this->_xsd_SurfaceAreaToVolumeRatio_;
02068 }
02069 
02070 physiological_type::SurfaceAreaToVolumeRatio::container& physiological_type::
02071 SurfaceAreaToVolumeRatio ()
02072 {
02073   return this->_xsd_SurfaceAreaToVolumeRatio_;
02074 }
02075 
02076 void physiological_type::
02077 SurfaceAreaToVolumeRatio (const SurfaceAreaToVolumeRatio::type& SurfaceAreaToVolumeRatio)
02078 {
02079   this->_xsd_SurfaceAreaToVolumeRatio_.set (SurfaceAreaToVolumeRatio);
02080 }
02081 
02082 void physiological_type::
02083 SurfaceAreaToVolumeRatio (const SurfaceAreaToVolumeRatio::container& SurfaceAreaToVolumeRatio)
02084 {
02085   this->_xsd_SurfaceAreaToVolumeRatio_ = SurfaceAreaToVolumeRatio;
02086 }
02087 
02088 void physiological_type::
02089 SurfaceAreaToVolumeRatio (::std::auto_ptr< SurfaceAreaToVolumeRatio::type > SurfaceAreaToVolumeRatio)
02090 {
02091   this->_xsd_SurfaceAreaToVolumeRatio_.set (SurfaceAreaToVolumeRatio);
02092 }
02093 
02094 const physiological_type::Capacitance::container& physiological_type::
02095 Capacitance () const
02096 {
02097   return this->_xsd_Capacitance_;
02098 }
02099 
02100 physiological_type::Capacitance::container& physiological_type::
02101 Capacitance ()
02102 {
02103   return this->_xsd_Capacitance_;
02104 }
02105 
02106 void physiological_type::
02107 Capacitance (const Capacitance::type& Capacitance)
02108 {
02109   this->_xsd_Capacitance_.set (Capacitance);
02110 }
02111 
02112 void physiological_type::
02113 Capacitance (const Capacitance::container& Capacitance)
02114 {
02115   this->_xsd_Capacitance_ = Capacitance;
02116 }
02117 
02118 void physiological_type::
02119 Capacitance (::std::auto_ptr< Capacitance::type > Capacitance)
02120 {
02121   this->_xsd_Capacitance_.set (Capacitance);
02122 }
02123 
02124 
02125 // numerical_type
02126 // 
02127 
02128 const numerical_type::TimeSteps::container& numerical_type::
02129 TimeSteps () const
02130 {
02131   return this->_xsd_TimeSteps_;
02132 }
02133 
02134 numerical_type::TimeSteps::container& numerical_type::
02135 TimeSteps ()
02136 {
02137   return this->_xsd_TimeSteps_;
02138 }
02139 
02140 void numerical_type::
02141 TimeSteps (const TimeSteps::type& TimeSteps)
02142 {
02143   this->_xsd_TimeSteps_.set (TimeSteps);
02144 }
02145 
02146 void numerical_type::
02147 TimeSteps (const TimeSteps::container& TimeSteps)
02148 {
02149   this->_xsd_TimeSteps_ = TimeSteps;
02150 }
02151 
02152 void numerical_type::
02153 TimeSteps (::std::auto_ptr< TimeSteps::type > TimeSteps)
02154 {
02155   this->_xsd_TimeSteps_.set (TimeSteps);
02156 }
02157 
02158 const numerical_type::KSPTolerances::container& numerical_type::
02159 KSPTolerances () const
02160 {
02161   return this->_xsd_KSPTolerances_;
02162 }
02163 
02164 numerical_type::KSPTolerances::container& numerical_type::
02165 KSPTolerances ()
02166 {
02167   return this->_xsd_KSPTolerances_;
02168 }
02169 
02170 void numerical_type::
02171 KSPTolerances (const KSPTolerances::type& KSPTolerances)
02172 {
02173   this->_xsd_KSPTolerances_.set (KSPTolerances);
02174 }
02175 
02176 void numerical_type::
02177 KSPTolerances (const KSPTolerances::container& KSPTolerances)
02178 {
02179   this->_xsd_KSPTolerances_ = KSPTolerances;
02180 }
02181 
02182 void numerical_type::
02183 KSPTolerances (::std::auto_ptr< KSPTolerances::type > KSPTolerances)
02184 {
02185   this->_xsd_KSPTolerances_.set (KSPTolerances);
02186 }
02187 
02188 const numerical_type::KSPSolver::container& numerical_type::
02189 KSPSolver () const
02190 {
02191   return this->_xsd_KSPSolver_;
02192 }
02193 
02194 numerical_type::KSPSolver::container& numerical_type::
02195 KSPSolver ()
02196 {
02197   return this->_xsd_KSPSolver_;
02198 }
02199 
02200 void numerical_type::
02201 KSPSolver (const KSPSolver::type& KSPSolver)
02202 {
02203   this->_xsd_KSPSolver_.set (KSPSolver);
02204 }
02205 
02206 void numerical_type::
02207 KSPSolver (const KSPSolver::container& KSPSolver)
02208 {
02209   this->_xsd_KSPSolver_ = KSPSolver;
02210 }
02211 
02212 void numerical_type::
02213 KSPSolver (::std::auto_ptr< KSPSolver::type > KSPSolver)
02214 {
02215   this->_xsd_KSPSolver_.set (KSPSolver);
02216 }
02217 
02218 const numerical_type::KSPPreconditioner::container& numerical_type::
02219 KSPPreconditioner () const
02220 {
02221   return this->_xsd_KSPPreconditioner_;
02222 }
02223 
02224 numerical_type::KSPPreconditioner::container& numerical_type::
02225 KSPPreconditioner ()
02226 {
02227   return this->_xsd_KSPPreconditioner_;
02228 }
02229 
02230 void numerical_type::
02231 KSPPreconditioner (const KSPPreconditioner::type& KSPPreconditioner)
02232 {
02233   this->_xsd_KSPPreconditioner_.set (KSPPreconditioner);
02234 }
02235 
02236 void numerical_type::
02237 KSPPreconditioner (const KSPPreconditioner::container& KSPPreconditioner)
02238 {
02239   this->_xsd_KSPPreconditioner_ = KSPPreconditioner;
02240 }
02241 
02242 void numerical_type::
02243 KSPPreconditioner (::std::auto_ptr< KSPPreconditioner::type > KSPPreconditioner)
02244 {
02245   this->_xsd_KSPPreconditioner_.set (KSPPreconditioner);
02246 }
02247 
02248 
02249 // chaste_parameters_type
02250 // 
02251 
02252 const chaste_parameters_type::Simulation::type& chaste_parameters_type::
02253 Simulation () const
02254 {
02255   return this->_xsd_Simulation_.get ();
02256 }
02257 
02258 chaste_parameters_type::Simulation::type& chaste_parameters_type::
02259 Simulation ()
02260 {
02261   return this->_xsd_Simulation_.get ();
02262 }
02263 
02264 void chaste_parameters_type::
02265 Simulation (const Simulation::type& Simulation)
02266 {
02267   this->_xsd_Simulation_.set (Simulation);
02268 }
02269 
02270 void chaste_parameters_type::
02271 Simulation (::std::auto_ptr< Simulation::type > Simulation)
02272 {
02273   this->_xsd_Simulation_.set (Simulation);
02274 }
02275 
02276 const chaste_parameters_type::Physiological::type& chaste_parameters_type::
02277 Physiological () const
02278 {
02279   return this->_xsd_Physiological_.get ();
02280 }
02281 
02282 chaste_parameters_type::Physiological::type& chaste_parameters_type::
02283 Physiological ()
02284 {
02285   return this->_xsd_Physiological_.get ();
02286 }
02287 
02288 void chaste_parameters_type::
02289 Physiological (const Physiological::type& Physiological)
02290 {
02291   this->_xsd_Physiological_.set (Physiological);
02292 }
02293 
02294 void chaste_parameters_type::
02295 Physiological (::std::auto_ptr< Physiological::type > Physiological)
02296 {
02297   this->_xsd_Physiological_.set (Physiological);
02298 }
02299 
02300 const chaste_parameters_type::Numerical::type& chaste_parameters_type::
02301 Numerical () const
02302 {
02303   return this->_xsd_Numerical_.get ();
02304 }
02305 
02306 chaste_parameters_type::Numerical::type& chaste_parameters_type::
02307 Numerical ()
02308 {
02309   return this->_xsd_Numerical_.get ();
02310 }
02311 
02312 void chaste_parameters_type::
02313 Numerical (const Numerical::type& Numerical)
02314 {
02315   this->_xsd_Numerical_.set (Numerical);
02316 }
02317 
02318 void chaste_parameters_type::
02319 Numerical (::std::auto_ptr< Numerical::type > Numerical)
02320 {
02321   this->_xsd_Numerical_.set (Numerical);
02322 }
02323 
02324 
02325 #include <xsd/cxx/xml/dom/elements.hxx>
02326 #include <xsd/cxx/xml/dom/parser.hxx>
02327 
02328 // time_type
02329 //
02330 
02331 // time_type::unit
02332 // 
02333 
02334 const time_type::unit::type time_type::unit::default_value_ (
02335   ::std::basic_string< char > ("ms"), 0, 0, 0);
02336 
02337 time_type::
02338 time_type (const _xsd_time_type::base_& _xsd_time_type,
02339            const unit::type& _xsd_unit)
02340 : ::xsd::cxx::tree::fundamental_base< ::xml_schema::decimal, char, ::xml_schema::simple_type > (_xsd_time_type),
02341 _xsd_unit_ (_xsd_unit,
02342             ::xml_schema::flags (),
02343             this)
02344 {
02345 }
02346 
02347 time_type::
02348 time_type (const time_type& _xsd_time_type,
02349            ::xml_schema::flags f,
02350            ::xml_schema::type* c)
02351 : ::xsd::cxx::tree::fundamental_base< ::xml_schema::decimal, char, ::xml_schema::simple_type > (_xsd_time_type, f, c),
02352 _xsd_unit_ (_xsd_time_type._xsd_unit_,
02353             f | ::xml_schema::flags::not_root,
02354             this)
02355 {
02356 }
02357 
02358 time_type::
02359 time_type (const ::xercesc::DOMElement& e,
02360            ::xml_schema::flags f,
02361            ::xml_schema::type* c)
02362 : ::xsd::cxx::tree::fundamental_base< ::xml_schema::decimal, char, ::xml_schema::simple_type > (e, f, c),
02363 _xsd_unit_ (f | ::xml_schema::flags::not_root, this)
02364 {
02365   parse (e, f);
02366 }
02367 
02368 void time_type::
02369 parse (const ::xercesc::DOMElement& e, ::xml_schema::flags f)
02370 {
02371   ::xsd::cxx::xml::dom::parser< char > p (e);
02372 
02373   while (p.more_attributes ())
02374   {
02375     const ::xsd::cxx::xml::dom::attribute< char > a (p.next_attribute ());
02376 
02377     if (a.name () == "unit" && a.namespace_ ().empty ())
02378     {
02379       ::std::auto_ptr< unit::type > r (
02380         unit::traits::create (
02381           a.dom_attribute (),
02382           f | ::xml_schema::flags::not_root,
02383           this));
02384 
02385       this->unit (r);
02386       continue;
02387     }
02388   }
02389 
02390   if (!_xsd_unit_.present ())
02391   {
02392     this->unit (
02393       unit::traits::create (
02394         ::std::basic_string< char > ("ms"),
02395         &e,
02396         f | ::xml_schema::flags::not_root,
02397         this));
02398   }
02399 }
02400 
02401 time_type* time_type::
02402 _clone (::xml_schema::flags f,
02403         ::xml_schema::type* c) const
02404 {
02405   return new time_type (*this, f, c);
02406 }
02407 
02408 // dimensionless_type
02409 //
02410 
02411 // dimensionless_type::unit
02412 // 
02413 
02414 const dimensionless_type::unit::type dimensionless_type::unit::default_value_ (
02415   ::std::basic_string< char > ("dimensionless"), 0, 0, 0);
02416 
02417 dimensionless_type::
02418 dimensionless_type (const _xsd_dimensionless_type::base_& _xsd_dimensionless_type,
02419                     const unit::type& _xsd_unit)
02420 : ::xsd::cxx::tree::fundamental_base< ::xml_schema::decimal, char, ::xml_schema::simple_type > (_xsd_dimensionless_type),
02421 _xsd_unit_ (_xsd_unit,
02422             ::xml_schema::flags (),
02423             this)
02424 {
02425 }
02426 
02427 dimensionless_type::
02428 dimensionless_type (const dimensionless_type& _xsd_dimensionless_type,
02429                     ::xml_schema::flags f,
02430                     ::xml_schema::type* c)
02431 : ::xsd::cxx::tree::fundamental_base< ::xml_schema::decimal, char, ::xml_schema::simple_type > (_xsd_dimensionless_type, f, c),
02432 _xsd_unit_ (_xsd_dimensionless_type._xsd_unit_,
02433             f | ::xml_schema::flags::not_root,
02434             this)
02435 {
02436 }
02437 
02438 dimensionless_type::
02439 dimensionless_type (const ::xercesc::DOMElement& e,
02440                     ::xml_schema::flags f,
02441                     ::xml_schema::type* c)
02442 : ::xsd::cxx::tree::fundamental_base< ::xml_schema::decimal, char, ::xml_schema::simple_type > (e, f, c),
02443 _xsd_unit_ (f | ::xml_schema::flags::not_root, this)
02444 {
02445   parse (e, f);
02446 }
02447 
02448 void dimensionless_type::
02449 parse (const ::xercesc::DOMElement& e, ::xml_schema::flags f)
02450 {
02451   ::xsd::cxx::xml::dom::parser< char > p (e);
02452 
02453   while (p.more_attributes ())
02454   {
02455     const ::xsd::cxx::xml::dom::attribute< char > a (p.next_attribute ());
02456 
02457     if (a.name () == "unit" && a.namespace_ ().empty ())
02458     {
02459       ::std::auto_ptr< unit::type > r (
02460         unit::traits::create (
02461           a.dom_attribute (),
02462           f | ::xml_schema::flags::not_root,
02463           this));
02464 
02465       this->unit (r);
02466       continue;
02467     }
02468   }
02469 
02470   if (!_xsd_unit_.present ())
02471   {
02472     this->unit (
02473       unit::traits::create (
02474         ::std::basic_string< char > ("dimensionless"),
02475         &e,
02476         f | ::xml_schema::flags::not_root,
02477         this));
02478   }
02479 }
02480 
02481 dimensionless_type* dimensionless_type::
02482 _clone (::xml_schema::flags f,
02483         ::xml_schema::type* c) const
02484 {
02485   return new dimensionless_type (*this, f, c);
02486 }
02487 
02488 // conductivity_type
02489 //
02490 
02491 // conductivity_type::unit
02492 // 
02493 
02494 const conductivity_type::unit::type conductivity_type::unit::default_value_ (
02495   ::std::basic_string< char > ("mS/cm"), 0, 0, 0);
02496 
02497 conductivity_type::
02498 conductivity_type (const _xsd_conductivity_type::base_& _xsd_conductivity_type,
02499                    const unit::type& _xsd_unit)
02500 : ::xsd::cxx::tree::fundamental_base< ::xml_schema::decimal, char, ::xml_schema::simple_type > (_xsd_conductivity_type),
02501 _xsd_unit_ (_xsd_unit,
02502             ::xml_schema::flags (),
02503             this)
02504 {
02505 }
02506 
02507 conductivity_type::
02508 conductivity_type (const conductivity_type& _xsd_conductivity_type,
02509                    ::xml_schema::flags f,
02510                    ::xml_schema::type* c)
02511 : ::xsd::cxx::tree::fundamental_base< ::xml_schema::decimal, char, ::xml_schema::simple_type > (_xsd_conductivity_type, f, c),
02512 _xsd_unit_ (_xsd_conductivity_type._xsd_unit_,
02513             f | ::xml_schema::flags::not_root,
02514             this)
02515 {
02516 }
02517 
02518 conductivity_type::
02519 conductivity_type (const ::xercesc::DOMElement& e,
02520                    ::xml_schema::flags f,
02521                    ::xml_schema::type* c)
02522 : ::xsd::cxx::tree::fundamental_base< ::xml_schema::decimal, char, ::xml_schema::simple_type > (e, f, c),
02523 _xsd_unit_ (f | ::xml_schema::flags::not_root, this)
02524 {
02525   parse (e, f);
02526 }
02527 
02528 void conductivity_type::
02529 parse (const ::xercesc::DOMElement& e, ::xml_schema::flags f)
02530 {
02531   ::xsd::cxx::xml::dom::parser< char > p (e);
02532 
02533   while (p.more_attributes ())
02534   {
02535     const ::xsd::cxx::xml::dom::attribute< char > a (p.next_attribute ());
02536 
02537     if (a.name () == "unit" && a.namespace_ ().empty ())
02538     {
02539       ::std::auto_ptr< unit::type > r (
02540         unit::traits::create (
02541           a.dom_attribute (),
02542           f | ::xml_schema::flags::not_root,
02543           this));
02544 
02545       this->unit (r);
02546       continue;
02547     }
02548   }
02549 
02550   if (!_xsd_unit_.present ())
02551   {
02552     this->unit (
02553       unit::traits::create (
02554         ::std::basic_string< char > ("mS/cm"),
02555         &e,
02556         f | ::xml_schema::flags::not_root,
02557         this));
02558   }
02559 }
02560 
02561 conductivity_type* conductivity_type::
02562 _clone (::xml_schema::flags f,
02563         ::xml_schema::type* c) const
02564 {
02565   return new conductivity_type (*this, f, c);
02566 }
02567 
02568 // stimulus_strength_type
02569 //
02570 
02571 // stimulus_strength_type::unit
02572 // 
02573 
02574 const stimulus_strength_type::unit::type stimulus_strength_type::unit::default_value_ (
02575   ::std::basic_string< char > ("uA/cm^3"), 0, 0, 0);
02576 
02577 stimulus_strength_type::
02578 stimulus_strength_type (const _xsd_stimulus_strength_type::base_& _xsd_stimulus_strength_type,
02579                         const unit::type& _xsd_unit)
02580 : ::xsd::cxx::tree::fundamental_base< ::xml_schema::decimal, char, ::xml_schema::simple_type > (_xsd_stimulus_strength_type),
02581 _xsd_unit_ (_xsd_unit,
02582             ::xml_schema::flags (),
02583             this)
02584 {
02585 }
02586 
02587 stimulus_strength_type::
02588 stimulus_strength_type (const stimulus_strength_type& _xsd_stimulus_strength_type,
02589                         ::xml_schema::flags f,
02590                         ::xml_schema::type* c)
02591 : ::xsd::cxx::tree::fundamental_base< ::xml_schema::decimal, char, ::xml_schema::simple_type > (_xsd_stimulus_strength_type, f, c),
02592 _xsd_unit_ (_xsd_stimulus_strength_type._xsd_unit_,
02593             f | ::xml_schema::flags::not_root,
02594             this)
02595 {
02596 }
02597 
02598 stimulus_strength_type::
02599 stimulus_strength_type (const ::xercesc::DOMElement& e,
02600                         ::xml_schema::flags f,
02601                         ::xml_schema::type* c)
02602 : ::xsd::cxx::tree::fundamental_base< ::xml_schema::decimal, char, ::xml_schema::simple_type > (e, f, c),
02603 _xsd_unit_ (f | ::xml_schema::flags::not_root, this)
02604 {
02605   parse (e, f);
02606 }
02607 
02608 void stimulus_strength_type::
02609 parse (const ::xercesc::DOMElement& e, ::xml_schema::flags f)
02610 {
02611   ::xsd::cxx::xml::dom::parser< char > p (e);
02612 
02613   while (p.more_attributes ())
02614   {
02615     const ::xsd::cxx::xml::dom::attribute< char > a (p.next_attribute ());
02616 
02617     if (a.name () == "unit" && a.namespace_ ().empty ())
02618     {
02619       ::std::auto_ptr< unit::type > r (
02620         unit::traits::create (
02621           a.dom_attribute (),
02622           f | ::xml_schema::flags::not_root,
02623           this));
02624 
02625       this->unit (r);
02626       continue;
02627     }
02628   }
02629 
02630   if (!_xsd_unit_.present ())
02631   {
02632     this->unit (
02633       unit::traits::create (
02634         ::std::basic_string< char > ("uA/cm^3"),
02635         &e,
02636         f | ::xml_schema::flags::not_root,
02637         this));
02638   }
02639 }
02640 
02641 stimulus_strength_type* stimulus_strength_type::
02642 _clone (::xml_schema::flags f,
02643         ::xml_schema::type* c) const
02644 {
02645   return new stimulus_strength_type (*this, f, c);
02646 }
02647 
02648 // inverse_length_type
02649 //
02650 
02651 // inverse_length_type::unit
02652 // 
02653 
02654 const inverse_length_type::unit::type inverse_length_type::unit::default_value_ (
02655   ::std::basic_string< char > ("1/cm"), 0, 0, 0);
02656 
02657 inverse_length_type::
02658 inverse_length_type (const _xsd_inverse_length_type::base_& _xsd_inverse_length_type,
02659                      const unit::type& _xsd_unit)
02660 : ::xsd::cxx::tree::fundamental_base< ::xml_schema::decimal, char, ::xml_schema::simple_type > (_xsd_inverse_length_type),
02661 _xsd_unit_ (_xsd_unit,
02662             ::xml_schema::flags (),
02663             this)
02664 {
02665 }
02666 
02667 inverse_length_type::
02668 inverse_length_type (const inverse_length_type& _xsd_inverse_length_type,
02669                      ::xml_schema::flags f,
02670                      ::xml_schema::type* c)
02671 : ::xsd::cxx::tree::fundamental_base< ::xml_schema::decimal, char, ::xml_schema::simple_type > (_xsd_inverse_length_type, f, c),
02672 _xsd_unit_ (_xsd_inverse_length_type._xsd_unit_,
02673             f | ::xml_schema::flags::not_root,
02674             this)
02675 {
02676 }
02677 
02678 inverse_length_type::
02679 inverse_length_type (const ::xercesc::DOMElement& e,
02680                      ::xml_schema::flags f,
02681                      ::xml_schema::type* c)
02682 : ::xsd::cxx::tree::fundamental_base< ::xml_schema::decimal, char, ::xml_schema::simple_type > (e, f, c),
02683 _xsd_unit_ (f | ::xml_schema::flags::not_root, this)
02684 {
02685   parse (e, f);
02686 }
02687 
02688 void inverse_length_type::
02689 parse (const ::xercesc::DOMElement& e, ::xml_schema::flags f)
02690 {
02691   ::xsd::cxx::xml::dom::parser< char > p (e);
02692 
02693   while (p.more_attributes ())
02694   {
02695     const ::xsd::cxx::xml::dom::attribute< char > a (p.next_attribute ());
02696 
02697     if (a.name () == "unit" && a.namespace_ ().empty ())
02698     {
02699       ::std::auto_ptr< unit::type > r (
02700         unit::traits::create (
02701           a.dom_attribute (),
02702           f | ::xml_schema::flags::not_root,
02703           this));
02704 
02705       this->unit (r);
02706       continue;
02707     }
02708   }
02709 
02710   if (!_xsd_unit_.present ())
02711   {
02712     this->unit (
02713       unit::traits::create (
02714         ::std::basic_string< char > ("1/cm"),
02715         &e,
02716         f | ::xml_schema::flags::not_root,
02717         this));
02718   }
02719 }
02720 
02721 inverse_length_type* inverse_length_type::
02722 _clone (::xml_schema::flags f,
02723         ::xml_schema::type* c) const
02724 {
02725   return new inverse_length_type (*this, f, c);
02726 }
02727 
02728 // capacitance_type
02729 //
02730 
02731 // capacitance_type::unit
02732 // 
02733 
02734 const capacitance_type::unit::type capacitance_type::unit::default_value_ (
02735   ::std::basic_string< char > ("uF/cm^2"), 0, 0, 0);
02736 
02737 capacitance_type::
02738 capacitance_type (const _xsd_capacitance_type::base_& _xsd_capacitance_type,
02739                   const unit::type& _xsd_unit)
02740 : ::xsd::cxx::tree::fundamental_base< ::xml_schema::decimal, char, ::xml_schema::simple_type > (_xsd_capacitance_type),
02741 _xsd_unit_ (_xsd_unit,
02742             ::xml_schema::flags (),
02743             this)
02744 {
02745 }
02746 
02747 capacitance_type::
02748 capacitance_type (const capacitance_type& _xsd_capacitance_type,
02749                   ::xml_schema::flags f,
02750                   ::xml_schema::type* c)
02751 : ::xsd::cxx::tree::fundamental_base< ::xml_schema::decimal, char, ::xml_schema::simple_type > (_xsd_capacitance_type, f, c),
02752 _xsd_unit_ (_xsd_capacitance_type._xsd_unit_,
02753             f | ::xml_schema::flags::not_root,
02754             this)
02755 {
02756 }
02757 
02758 capacitance_type::
02759 capacitance_type (const ::xercesc::DOMElement& e,
02760                   ::xml_schema::flags f,
02761                   ::xml_schema::type* c)
02762 : ::xsd::cxx::tree::fundamental_base< ::xml_schema::decimal, char, ::xml_schema::simple_type > (e, f, c),
02763 _xsd_unit_ (f | ::xml_schema::flags::not_root, this)
02764 {
02765   parse (e, f);
02766 }
02767 
02768 void capacitance_type::
02769 parse (const ::xercesc::DOMElement& e, ::xml_schema::flags f)
02770 {
02771   ::xsd::cxx::xml::dom::parser< char > p (e);
02772 
02773   while (p.more_attributes ())
02774   {
02775     const ::xsd::cxx::xml::dom::attribute< char > a (p.next_attribute ());
02776 
02777     if (a.name () == "unit" && a.namespace_ ().empty ())
02778     {
02779       ::std::auto_ptr< unit::type > r (
02780         unit::traits::create (
02781           a.dom_attribute (),
02782           f | ::xml_schema::flags::not_root,
02783           this));
02784 
02785       this->unit (r);
02786       continue;
02787     }
02788   }
02789 
02790   if (!_xsd_unit_.present ())
02791   {
02792     this->unit (
02793       unit::traits::create (
02794         ::std::basic_string< char > ("uF/cm^2"),
02795         &e,
02796         f | ::xml_schema::flags::not_root,
02797         this));
02798   }
02799 }
02800 
02801 capacitance_type* capacitance_type::
02802 _clone (::xml_schema::flags f,
02803         ::xml_schema::type* c) const
02804 {
02805   return new capacitance_type (*this, f, c);
02806 }
02807 
02808 // location_type
02809 //
02810 
02811 // location_type::unit
02812 // 
02813 
02814 const location_type::unit::type location_type::unit::default_value_ (
02815   ::std::basic_string< char > ("cm"), 0, 0, 0);
02816 
02817 location_type::
02818 location_type (const Cuboid::type& _xsd_Cuboid,
02819                const unit::type& _xsd_unit)
02820 : ::xml_schema::type (),
02821 _xsd_Cuboid_ (_xsd_Cuboid,
02822               ::xml_schema::flags (),
02823               this),
02824 _xsd_unit_ (_xsd_unit,
02825             ::xml_schema::flags (),
02826             this)
02827 {
02828 }
02829 
02830 location_type::
02831 location_type (const location_type& _xsd_location_type,
02832                ::xml_schema::flags f,
02833                ::xml_schema::type* c)
02834 : ::xml_schema::type (_xsd_location_type, f, c),
02835 _xsd_Cuboid_ (_xsd_location_type._xsd_Cuboid_,
02836               f | ::xml_schema::flags::not_root,
02837               this),
02838 _xsd_unit_ (_xsd_location_type._xsd_unit_,
02839             f | ::xml_schema::flags::not_root,
02840             this)
02841 {
02842 }
02843 
02844 location_type::
02845 location_type (const ::xercesc::DOMElement& e,
02846                ::xml_schema::flags f,
02847                ::xml_schema::type* c)
02848 : ::xml_schema::type (e, f, c),
02849 _xsd_Cuboid_ (f | ::xml_schema::flags::not_root, this),
02850 _xsd_unit_ (f | ::xml_schema::flags::not_root, this)
02851 {
02852   parse (e, f);
02853 }
02854 
02855 void location_type::
02856 parse (const ::xercesc::DOMElement& e, ::xml_schema::flags f)
02857 {
02858   ::xsd::cxx::xml::dom::parser< char > p (e);
02859 
02860   while (p.more_elements ())
02861   {
02862     const ::xsd::cxx::xml::dom::element< char > e (p.next_element ());
02863 
02864     // Cuboid
02865     //
02866     {
02867       if (e.name () == "Cuboid" && e.namespace_ ().empty ())
02868       {
02869         ::std::auto_ptr< Cuboid::type > r (
02870           Cuboid::traits::create (
02871             e.dom_element (),
02872             f | ::xml_schema::flags::not_root,
02873             this));
02874 
02875         if (_xsd_Cuboid_.present ())
02876           continue;
02877         this->Cuboid (r);
02878         continue;
02879       }
02880     }
02881   }
02882 
02883   if (!_xsd_Cuboid_.present ())
02884   {
02885     throw ::xsd::cxx::tree::expected_element< char > (
02886       "Cuboid",
02887       "");
02888   }
02889 
02890   while (p.more_attributes ())
02891   {
02892     const ::xsd::cxx::xml::dom::attribute< char > a (p.next_attribute ());
02893 
02894     if (a.name () == "unit" && a.namespace_ ().empty ())
02895     {
02896       ::std::auto_ptr< unit::type > r (
02897         unit::traits::create (
02898           a.dom_attribute (),
02899           f | ::xml_schema::flags::not_root,
02900           this));
02901 
02902       this->unit (r);
02903       continue;
02904     }
02905   }
02906 
02907   if (!_xsd_unit_.present ())
02908   {
02909     this->unit (
02910       unit::traits::create (
02911         ::std::basic_string< char > ("cm"),
02912         &e,
02913         f | ::xml_schema::flags::not_root,
02914         this));
02915   }
02916 }
02917 
02918 location_type* location_type::
02919 _clone (::xml_schema::flags f,
02920         ::xml_schema::type* c) const
02921 {
02922   return new location_type (*this, f, c);
02923 }
02924 
02925 // domain_type
02926 //
02927 
02928 domain_type::
02929 domain_type (const ::xercesc::DOMElement& e,
02930              ::xml_schema::flags f,
02931              ::xml_schema::type* c)
02932 : ::xml_schema::string (e, f, c)
02933 {
02934   _xsd_domain_type_convert ();
02935 }
02936 
02937 domain_type::
02938 domain_type (const ::xercesc::DOMAttr& a,
02939              ::xml_schema::flags f,
02940              ::xml_schema::type* c)
02941 : ::xml_schema::string (a, f, c)
02942 {
02943   _xsd_domain_type_convert ();
02944 }
02945 
02946 domain_type::
02947 domain_type (const ::std::basic_string< char >& s,
02948              const ::xercesc::DOMElement* e,
02949              ::xml_schema::flags f,
02950              ::xml_schema::type* c)
02951 : ::xml_schema::string (s, e, f, c)
02952 {
02953   _xsd_domain_type_convert ();
02954 }
02955 
02956 domain_type* domain_type::
02957 _clone (::xml_schema::flags f,
02958         ::xml_schema::type* c) const
02959 {
02960   return new domain_type (*this, f, c);
02961 }
02962 
02963 domain_type::_xsd_domain_type domain_type::
02964 _xsd_domain_type_convert () const
02965 {
02966   ::xsd::cxx::tree::enum_comparator< char > c (_xsd_domain_type_literals_);
02967   const _xsd_domain_type* i (::std::lower_bound (
02968                                _xsd_domain_type_indexes_,
02969                                _xsd_domain_type_indexes_ + 2,
02970                                *this,
02971                                c));
02972 
02973   if (i == _xsd_domain_type_indexes_ + 2 || _xsd_domain_type_literals_[*i] != *this)
02974   {
02975     throw ::xsd::cxx::tree::unexpected_enumerator < char > (*this);
02976   }
02977 
02978   return *i;
02979 }
02980 
02981 const char* const domain_type::
02982 _xsd_domain_type_literals_[2] =
02983 {
02984   "Mono",
02985   "Bi"
02986 };
02987 
02988 const domain_type::_xsd_domain_type domain_type::
02989 _xsd_domain_type_indexes_[2] =
02990 {
02991   ::domain_type::Bi,
02992   ::domain_type::Mono
02993 };
02994 
02995 // ionic_models_available_type
02996 //
02997 
02998 ionic_models_available_type::
02999 ionic_models_available_type (const ::xercesc::DOMElement& e,
03000                              ::xml_schema::flags f,
03001                              ::xml_schema::type* c)
03002 : ::xml_schema::string (e, f, c)
03003 {
03004   _xsd_ionic_models_available_type_convert ();
03005 }
03006 
03007 ionic_models_available_type::
03008 ionic_models_available_type (const ::xercesc::DOMAttr& a,
03009                              ::xml_schema::flags f,
03010                              ::xml_schema::type* c)
03011 : ::xml_schema::string (a, f, c)
03012 {
03013   _xsd_ionic_models_available_type_convert ();
03014 }
03015 
03016 ionic_models_available_type::
03017 ionic_models_available_type (const ::std::basic_string< char >& s,
03018                              const ::xercesc::DOMElement* e,
03019                              ::xml_schema::flags f,
03020                              ::xml_schema::type* c)
03021 : ::xml_schema::string (s, e, f, c)
03022 {
03023   _xsd_ionic_models_available_type_convert ();
03024 }
03025 
03026 ionic_models_available_type* ionic_models_available_type::
03027 _clone (::xml_schema::flags f,
03028         ::xml_schema::type* c) const
03029 {
03030   return new ionic_models_available_type (*this, f, c);
03031 }
03032 
03033 ionic_models_available_type::_xsd_ionic_models_available_type ionic_models_available_type::
03034 _xsd_ionic_models_available_type_convert () const
03035 {
03036   ::xsd::cxx::tree::enum_comparator< char > c (_xsd_ionic_models_available_type_literals_);
03037   const _xsd_ionic_models_available_type* i (::std::lower_bound (
03038                                                _xsd_ionic_models_available_type_indexes_,
03039                                                _xsd_ionic_models_available_type_indexes_ + 9,
03040                                                *this,
03041                                                c));
03042 
03043   if (i == _xsd_ionic_models_available_type_indexes_ + 9 || _xsd_ionic_models_available_type_literals_[*i] != *this)
03044   {
03045     throw ::xsd::cxx::tree::unexpected_enumerator < char > (*this);
03046   }
03047 
03048   return *i;
03049 }
03050 
03051 const char* const ionic_models_available_type::
03052 _xsd_ionic_models_available_type_literals_[9] =
03053 {
03054   "Fox2002BackwardEuler",
03055   "LuoRudyIBackwardEuler",
03056   "LuoRudyI",
03057   "FaberRudy2000Optimised",
03058   "FaberRudy2000",
03059   "DifrancescoNoble",
03060   "MahajanShiferaw",
03061   "HodgkinHuxley",
03062   "tenTusscher2006"
03063 };
03064 
03065 const ionic_models_available_type::_xsd_ionic_models_available_type ionic_models_available_type::
03066 _xsd_ionic_models_available_type_indexes_[9] =
03067 {
03068   ::ionic_models_available_type::DifrancescoNoble,
03069   ::ionic_models_available_type::FaberRudy2000,
03070   ::ionic_models_available_type::FaberRudy2000Optimised,
03071   ::ionic_models_available_type::Fox2002BackwardEuler,
03072   ::ionic_models_available_type::HodgkinHuxley,
03073   ::ionic_models_available_type::LuoRudyI,
03074   ::ionic_models_available_type::LuoRudyIBackwardEuler,
03075   ::ionic_models_available_type::MahajanShiferaw,
03076   ::ionic_models_available_type::tenTusscher2006
03077 };
03078 
03079 // ionic_model_region_type
03080 //
03081 
03082 ionic_model_region_type::
03083 ionic_model_region_type (const IonicModel::type& _xsd_IonicModel,
03084                          const Location::type& _xsd_Location)
03085 : ::xml_schema::type (),
03086 _xsd_IonicModel_ (_xsd_IonicModel,
03087                   ::xml_schema::flags (),
03088                   this),
03089 _xsd_Location_ (_xsd_Location,
03090                 ::xml_schema::flags (),
03091                 this)
03092 {
03093 }
03094 
03095 ionic_model_region_type::
03096 ionic_model_region_type (const ionic_model_region_type& _xsd_ionic_model_region_type,
03097                          ::xml_schema::flags f,
03098                          ::xml_schema::type* c)
03099 : ::xml_schema::type (_xsd_ionic_model_region_type, f, c),
03100 _xsd_IonicModel_ (_xsd_ionic_model_region_type._xsd_IonicModel_,
03101                   f | ::xml_schema::flags::not_root,
03102                   this),
03103 _xsd_Location_ (_xsd_ionic_model_region_type._xsd_Location_,
03104                 f | ::xml_schema::flags::not_root,
03105                 this)
03106 {
03107 }
03108 
03109 ionic_model_region_type::
03110 ionic_model_region_type (const ::xercesc::DOMElement& e,
03111                          ::xml_schema::flags f,
03112                          ::xml_schema::type* c)
03113 : ::xml_schema::type (e, f, c),
03114 _xsd_IonicModel_ (f | ::xml_schema::flags::not_root, this),
03115 _xsd_Location_ (f | ::xml_schema::flags::not_root, this)
03116 {
03117   parse (e, f);
03118 }
03119 
03120 void ionic_model_region_type::
03121 parse (const ::xercesc::DOMElement& e, ::xml_schema::flags f)
03122 {
03123   ::xsd::cxx::xml::dom::parser< char > p (e);
03124 
03125   while (p.more_elements ())
03126   {
03127     const ::xsd::cxx::xml::dom::element< char > e (p.next_element ());
03128 
03129     // IonicModel
03130     //
03131     {
03132       if (e.name () == "IonicModel" && e.namespace_ ().empty ())
03133       {
03134         ::std::auto_ptr< IonicModel::type > r (
03135           IonicModel::traits::create (
03136             e.dom_element (),
03137             f | ::xml_schema::flags::not_root,
03138             this));
03139 
03140         if (_xsd_IonicModel_.present ())
03141           continue;
03142         this->IonicModel (r);
03143         continue;
03144       }
03145     }
03146 
03147     // Location
03148     //
03149     {
03150       if (e.name () == "Location" && e.namespace_ ().empty ())
03151       {
03152         ::std::auto_ptr< Location::type > r (
03153           Location::traits::create (
03154             e.dom_element (),
03155             f | ::xml_schema::flags::not_root,
03156             this));
03157 
03158         if (_xsd_Location_.present ())
03159           continue;
03160         this->Location (r);
03161         continue;
03162       }
03163     }
03164   }
03165 
03166   if (!_xsd_IonicModel_.present ())
03167   {
03168     throw ::xsd::cxx::tree::expected_element< char > (
03169       "IonicModel",
03170       "");
03171   }
03172 
03173   if (!_xsd_Location_.present ())
03174   {
03175     throw ::xsd::cxx::tree::expected_element< char > (
03176       "Location",
03177       "");
03178   }
03179 }
03180 
03181 ionic_model_region_type* ionic_model_region_type::
03182 _clone (::xml_schema::flags f,
03183         ::xml_schema::type* c) const
03184 {
03185   return new ionic_model_region_type (*this, f, c);
03186 }
03187 
03188 // ionic_models_type
03189 //
03190 
03191 ionic_models_type::
03192 ionic_models_type (const Default::type& _xsd_Default)
03193 : ::xml_schema::type (),
03194 _xsd_Default_ (_xsd_Default,
03195                ::xml_schema::flags (),
03196                this),
03197 _xsd_Region_ (::xml_schema::flags (), this)
03198 {
03199 }
03200 
03201 ionic_models_type::
03202 ionic_models_type (const ionic_models_type& _xsd_ionic_models_type,
03203                    ::xml_schema::flags f,
03204                    ::xml_schema::type* c)
03205 : ::xml_schema::type (_xsd_ionic_models_type, f, c),
03206 _xsd_Default_ (_xsd_ionic_models_type._xsd_Default_,
03207                f | ::xml_schema::flags::not_root,
03208                this),
03209 _xsd_Region_ (_xsd_ionic_models_type._xsd_Region_,
03210               f | ::xml_schema::flags::not_root,
03211               this)
03212 {
03213 }
03214 
03215 ionic_models_type::
03216 ionic_models_type (const ::xercesc::DOMElement& e,
03217                    ::xml_schema::flags f,
03218                    ::xml_schema::type* c)
03219 : ::xml_schema::type (e, f, c),
03220 _xsd_Default_ (f | ::xml_schema::flags::not_root, this),
03221 _xsd_Region_ (f | ::xml_schema::flags::not_root, this)
03222 {
03223   parse (e, f);
03224 }
03225 
03226 void ionic_models_type::
03227 parse (const ::xercesc::DOMElement& e, ::xml_schema::flags f)
03228 {
03229   ::xsd::cxx::xml::dom::parser< char > p (e);
03230 
03231   while (p.more_elements ())
03232   {
03233     const ::xsd::cxx::xml::dom::element< char > e (p.next_element ());
03234 
03235     // Default
03236     //
03237     {
03238       if (e.name () == "Default" && e.namespace_ ().empty ())
03239       {
03240         ::std::auto_ptr< Default::type > r (
03241           Default::traits::create (
03242             e.dom_element (),
03243             f | ::xml_schema::flags::not_root,
03244             this));
03245 
03246         if (_xsd_Default_.present ())
03247           continue;
03248         this->Default (r);
03249         continue;
03250       }
03251     }
03252 
03253     // Region
03254     //
03255     {
03256       if (e.name () == "Region" && e.namespace_ ().empty ())
03257       {
03258         ::std::auto_ptr< Region::type > r (
03259           Region::traits::create (
03260             e.dom_element (),
03261             f | ::xml_schema::flags::not_root,
03262             this));
03263 
03264         this->Region ().push_back (r);
03265         continue;
03266       }
03267     }
03268   }
03269 
03270   if (!_xsd_Default_.present ())
03271   {
03272     throw ::xsd::cxx::tree::expected_element< char > (
03273       "Default",
03274       "");
03275   }
03276 }
03277 
03278 ionic_models_type* ionic_models_type::
03279 _clone (::xml_schema::flags f,
03280         ::xml_schema::type* c) const
03281 {
03282   return new ionic_models_type (*this, f, c);
03283 }
03284 
03285 // media_type
03286 //
03287 
03288 media_type::
03289 media_type (const ::xercesc::DOMElement& e,
03290             ::xml_schema::flags f,
03291             ::xml_schema::type* c)
03292 : ::xml_schema::string (e, f, c)
03293 {
03294   _xsd_media_type_convert ();
03295 }
03296 
03297 media_type::
03298 media_type (const ::xercesc::DOMAttr& a,
03299             ::xml_schema::flags f,
03300             ::xml_schema::type* c)
03301 : ::xml_schema::string (a, f, c)
03302 {
03303   _xsd_media_type_convert ();
03304 }
03305 
03306 media_type::
03307 media_type (const ::std::basic_string< char >& s,
03308             const ::xercesc::DOMElement* e,
03309             ::xml_schema::flags f,
03310             ::xml_schema::type* c)
03311 : ::xml_schema::string (s, e, f, c)
03312 {
03313   _xsd_media_type_convert ();
03314 }
03315 
03316 media_type* media_type::
03317 _clone (::xml_schema::flags f,
03318         ::xml_schema::type* c) const
03319 {
03320   return new media_type (*this, f, c);
03321 }
03322 
03323 media_type::_xsd_media_type media_type::
03324 _xsd_media_type_convert () const
03325 {
03326   ::xsd::cxx::tree::enum_comparator< char > c (_xsd_media_type_literals_);
03327   const _xsd_media_type* i (::std::lower_bound (
03328                               _xsd_media_type_indexes_,
03329                               _xsd_media_type_indexes_ + 3,
03330                               *this,
03331                               c));
03332 
03333   if (i == _xsd_media_type_indexes_ + 3 || _xsd_media_type_literals_[*i] != *this)
03334   {
03335     throw ::xsd::cxx::tree::unexpected_enumerator < char > (*this);
03336   }
03337 
03338   return *i;
03339 }
03340 
03341 const char* const media_type::
03342 _xsd_media_type_literals_[3] =
03343 {
03344   "Orthotropic",
03345   "Axisymmetric",
03346   "NoFibreOrientation"
03347 };
03348 
03349 const media_type::_xsd_media_type media_type::
03350 _xsd_media_type_indexes_[3] =
03351 {
03352   ::media_type::Axisymmetric,
03353   ::media_type::NoFibreOrientation,
03354   ::media_type::Orthotropic
03355 };
03356 
03357 // point_type
03358 //
03359 
03360 point_type::
03361 point_type (const x::type& _xsd_x,
03362             const y::type& _xsd_y,
03363             const z::type& _xsd_z)
03364 : ::xml_schema::type (),
03365 _xsd_x_ (_xsd_x,
03366          ::xml_schema::flags (),
03367          this),
03368 _xsd_y_ (_xsd_y,
03369          ::xml_schema::flags (),
03370          this),
03371 _xsd_z_ (_xsd_z,
03372          ::xml_schema::flags (),
03373          this)
03374 {
03375 }
03376 
03377 point_type::
03378 point_type (const point_type& _xsd_point_type,
03379             ::xml_schema::flags f,
03380             ::xml_schema::type* c)
03381 : ::xml_schema::type (_xsd_point_type, f, c),
03382 _xsd_x_ (_xsd_point_type._xsd_x_,
03383          f | ::xml_schema::flags::not_root,
03384          this),
03385 _xsd_y_ (_xsd_point_type._xsd_y_,
03386          f | ::xml_schema::flags::not_root,
03387          this),
03388 _xsd_z_ (_xsd_point_type._xsd_z_,
03389          f | ::xml_schema::flags::not_root,
03390          this)
03391 {
03392 }
03393 
03394 point_type::
03395 point_type (const ::xercesc::DOMElement& e,
03396             ::xml_schema::flags f,
03397             ::xml_schema::type* c)
03398 : ::xml_schema::type (e, f, c),
03399 _xsd_x_ (f | ::xml_schema::flags::not_root, this),
03400 _xsd_y_ (f | ::xml_schema::flags::not_root, this),
03401 _xsd_z_ (f | ::xml_schema::flags::not_root, this)
03402 {
03403   parse (e, f);
03404 }
03405 
03406 void point_type::
03407 parse (const ::xercesc::DOMElement& e, ::xml_schema::flags f)
03408 {
03409   ::xsd::cxx::xml::dom::parser< char > p (e);
03410 
03411   while (p.more_attributes ())
03412   {
03413     const ::xsd::cxx::xml::dom::attribute< char > a (p.next_attribute ());
03414 
03415     if (a.name () == "x" && a.namespace_ ().empty ())
03416     {
03417       this->x (
03418         x::traits::create (
03419           a.dom_attribute (),
03420           f | ::xml_schema::flags::not_root,
03421           this));
03422       continue;
03423     }
03424 
03425     if (a.name () == "y" && a.namespace_ ().empty ())
03426     {
03427       this->y (
03428         y::traits::create (
03429           a.dom_attribute (),
03430           f | ::xml_schema::flags::not_root,
03431           this));
03432       continue;
03433     }
03434 
03435     if (a.name () == "z" && a.namespace_ ().empty ())
03436     {
03437       this->z (
03438         z::traits::create (
03439           a.dom_attribute (),
03440           f | ::xml_schema::flags::not_root,
03441           this));
03442       continue;
03443     }
03444   }
03445 
03446   if (!_xsd_x_.present ())
03447   {
03448     throw ::xsd::cxx::tree::expected_attribute< char > (
03449       "x",
03450       "");
03451   }
03452 
03453   if (!_xsd_y_.present ())
03454   {
03455     throw ::xsd::cxx::tree::expected_attribute< char > (
03456       "y",
03457       "");
03458   }
03459 
03460   if (!_xsd_z_.present ())
03461   {
03462     throw ::xsd::cxx::tree::expected_attribute< char > (
03463       "z",
03464       "");
03465   }
03466 }
03467 
03468 point_type* point_type::
03469 _clone (::xml_schema::flags f,
03470         ::xml_schema::type* c) const
03471 {
03472   return new point_type (*this, f, c);
03473 }
03474 
03475 // box_type
03476 //
03477 
03478 box_type::
03479 box_type (const LowerCoordinates::type& _xsd_LowerCoordinates,
03480           const UpperCoordinates::type& _xsd_UpperCoordinates)
03481 : ::xml_schema::type (),
03482 _xsd_LowerCoordinates_ (_xsd_LowerCoordinates,
03483                         ::xml_schema::flags (),
03484                         this),
03485 _xsd_UpperCoordinates_ (_xsd_UpperCoordinates,
03486                         ::xml_schema::flags (),
03487                         this)
03488 {
03489 }
03490 
03491 box_type::
03492 box_type (const box_type& _xsd_box_type,
03493           ::xml_schema::flags f,
03494           ::xml_schema::type* c)
03495 : ::xml_schema::type (_xsd_box_type, f, c),
03496 _xsd_LowerCoordinates_ (_xsd_box_type._xsd_LowerCoordinates_,
03497                         f | ::xml_schema::flags::not_root,
03498                         this),
03499 _xsd_UpperCoordinates_ (_xsd_box_type._xsd_UpperCoordinates_,
03500                         f | ::xml_schema::flags::not_root,
03501                         this)
03502 {
03503 }
03504 
03505 box_type::
03506 box_type (const ::xercesc::DOMElement& e,
03507           ::xml_schema::flags f,
03508           ::xml_schema::type* c)
03509 : ::xml_schema::type (e, f, c),
03510 _xsd_LowerCoordinates_ (f | ::xml_schema::flags::not_root, this),
03511 _xsd_UpperCoordinates_ (f | ::xml_schema::flags::not_root, this)
03512 {
03513   parse (e, f);
03514 }
03515 
03516 void box_type::
03517 parse (const ::xercesc::DOMElement& e, ::xml_schema::flags f)
03518 {
03519   ::xsd::cxx::xml::dom::parser< char > p (e);
03520 
03521   while (p.more_elements ())
03522   {
03523     const ::xsd::cxx::xml::dom::element< char > e (p.next_element ());
03524 
03525     // LowerCoordinates
03526     //
03527     {
03528       if (e.name () == "LowerCoordinates" && e.namespace_ ().empty ())
03529       {
03530         ::std::auto_ptr< LowerCoordinates::type > r (
03531           LowerCoordinates::traits::create (
03532             e.dom_element (),
03533             f | ::xml_schema::flags::not_root,
03534             this));
03535 
03536         if (_xsd_LowerCoordinates_.present ())
03537           continue;
03538         this->LowerCoordinates (r);
03539         continue;
03540       }
03541     }
03542 
03543     // UpperCoordinates
03544     //
03545     {
03546       if (e.name () == "UpperCoordinates" && e.namespace_ ().empty ())
03547       {
03548         ::std::auto_ptr< UpperCoordinates::type > r (
03549           UpperCoordinates::traits::create (
03550             e.dom_element (),
03551             f | ::xml_schema::flags::not_root,
03552             this));
03553 
03554         if (_xsd_UpperCoordinates_.present ())
03555           continue;
03556         this->UpperCoordinates (r);
03557         continue;
03558       }
03559     }
03560   }
03561 
03562   if (!_xsd_LowerCoordinates_.present ())
03563   {
03564     throw ::xsd::cxx::tree::expected_element< char > (
03565       "LowerCoordinates",
03566       "");
03567   }
03568 
03569   if (!_xsd_UpperCoordinates_.present ())
03570   {
03571     throw ::xsd::cxx::tree::expected_element< char > (
03572       "UpperCoordinates",
03573       "");
03574   }
03575 }
03576 
03577 box_type* box_type::
03578 _clone (::xml_schema::flags f,
03579         ::xml_schema::type* c) const
03580 {
03581   return new box_type (*this, f, c);
03582 }
03583 
03584 // stimulus_type
03585 //
03586 
03587 stimulus_type::
03588 stimulus_type (const Strength::type& _xsd_Strength,
03589                const Duration::type& _xsd_Duration,
03590                const Delay::type& _xsd_Delay,
03591                const Location::type& _xsd_Location)
03592 : ::xml_schema::type (),
03593 _xsd_Strength_ (_xsd_Strength,
03594                 ::xml_schema::flags (),
03595                 this),
03596 _xsd_Duration_ (_xsd_Duration,
03597                 ::xml_schema::flags (),
03598                 this),
03599 _xsd_Delay_ (_xsd_Delay,
03600              ::xml_schema::flags (),
03601              this),
03602 _xsd_Location_ (_xsd_Location,
03603                 ::xml_schema::flags (),
03604                 this)
03605 {
03606 }
03607 
03608 stimulus_type::
03609 stimulus_type (const stimulus_type& _xsd_stimulus_type,
03610                ::xml_schema::flags f,
03611                ::xml_schema::type* c)
03612 : ::xml_schema::type (_xsd_stimulus_type, f, c),
03613 _xsd_Strength_ (_xsd_stimulus_type._xsd_Strength_,
03614                 f | ::xml_schema::flags::not_root,
03615                 this),
03616 _xsd_Duration_ (_xsd_stimulus_type._xsd_Duration_,
03617                 f | ::xml_schema::flags::not_root,
03618                 this),
03619 _xsd_Delay_ (_xsd_stimulus_type._xsd_Delay_,
03620              f | ::xml_schema::flags::not_root,
03621              this),
03622 _xsd_Location_ (_xsd_stimulus_type._xsd_Location_,
03623                 f | ::xml_schema::flags::not_root,
03624                 this)
03625 {
03626 }
03627 
03628 stimulus_type::
03629 stimulus_type (const ::xercesc::DOMElement& e,
03630                ::xml_schema::flags f,
03631                ::xml_schema::type* c)
03632 : ::xml_schema::type (e, f, c),
03633 _xsd_Strength_ (f | ::xml_schema::flags::not_root, this),
03634 _xsd_Duration_ (f | ::xml_schema::flags::not_root, this),
03635 _xsd_Delay_ (f | ::xml_schema::flags::not_root, this),
03636 _xsd_Location_ (f | ::xml_schema::flags::not_root, this)
03637 {
03638   parse (e, f);
03639 }
03640 
03641 void stimulus_type::
03642 parse (const ::xercesc::DOMElement& e, ::xml_schema::flags f)
03643 {
03644   ::xsd::cxx::xml::dom::parser< char > p (e);
03645 
03646   while (p.more_elements ())
03647   {
03648     const ::xsd::cxx::xml::dom::element< char > e (p.next_element ());
03649 
03650     // Strength
03651     //
03652     {
03653       if (e.name () == "Strength" && e.namespace_ ().empty ())
03654       {
03655         ::std::auto_ptr< Strength::type > r (
03656           Strength::traits::create (
03657             e.dom_element (),
03658             f | ::xml_schema::flags::not_root,
03659             this));
03660 
03661         if (_xsd_Strength_.present ())
03662           continue;
03663         this->Strength (r);
03664         continue;
03665       }
03666     }
03667 
03668     // Duration
03669     //
03670     {
03671       if (e.name () == "Duration" && e.namespace_ ().empty ())
03672       {
03673         ::std::auto_ptr< Duration::type > r (
03674           Duration::traits::create (
03675             e.dom_element (),
03676             f | ::xml_schema::flags::not_root,
03677             this));
03678 
03679         if (_xsd_Duration_.present ())
03680           continue;
03681         this->Duration (r);
03682         continue;
03683       }
03684     }
03685 
03686     // Delay
03687     //
03688     {
03689       if (e.name () == "Delay" && e.namespace_ ().empty ())
03690       {
03691         ::std::auto_ptr< Delay::type > r (
03692           Delay::traits::create (
03693             e.dom_element (),
03694             f | ::xml_schema::flags::not_root,
03695             this));
03696 
03697         if (_xsd_Delay_.present ())
03698           continue;
03699         this->Delay (r);
03700         continue;
03701       }
03702     }
03703 
03704     // Location
03705     //
03706     {
03707       if (e.name () == "Location" && e.namespace_ ().empty ())
03708       {
03709         ::std::auto_ptr< Location::type > r (
03710           Location::traits::create (
03711             e.dom_element (),
03712             f | ::xml_schema::flags::not_root,
03713             this));
03714 
03715         if (_xsd_Location_.present ())
03716           continue;
03717         this->Location (r);
03718         continue;
03719       }
03720     }
03721   }
03722 
03723   if (!_xsd_Strength_.present ())
03724   {
03725     throw ::xsd::cxx::tree::expected_element< char > (
03726       "Strength",
03727       "");
03728   }
03729 
03730   if (!_xsd_Duration_.present ())
03731   {
03732     throw ::xsd::cxx::tree::expected_element< char > (
03733       "Duration",
03734       "");
03735   }
03736 
03737   if (!_xsd_Delay_.present ())
03738   {
03739     throw ::xsd::cxx::tree::expected_element< char > (
03740       "Delay",
03741       "");
03742   }
03743 
03744   if (!_xsd_Location_.present ())
03745   {
03746     throw ::xsd::cxx::tree::expected_element< char > (
03747       "Location",
03748       "");
03749   }
03750 }
03751 
03752 stimulus_type* stimulus_type::
03753 _clone (::xml_schema::flags f,
03754         ::xml_schema::type* c) const
03755 {
03756   return new stimulus_type (*this, f, c);
03757 }
03758 
03759 // cell_heterogeneity_type
03760 //
03761 
03762 cell_heterogeneity_type::
03763 cell_heterogeneity_type (const ScaleFactorGks::type& _xsd_ScaleFactorGks,
03764                          const ScaleFactorIto::type& _xsd_ScaleFactorIto,
03765                          const ScaleFactorGkr::type& _xsd_ScaleFactorGkr,
03766                          const Location::type& _xsd_Location)
03767 : ::xml_schema::type (),
03768 _xsd_ScaleFactorGks_ (_xsd_ScaleFactorGks,
03769                       ::xml_schema::flags (),
03770                       this),
03771 _xsd_ScaleFactorIto_ (_xsd_ScaleFactorIto,
03772                       ::xml_schema::flags (),
03773                       this),
03774 _xsd_ScaleFactorGkr_ (_xsd_ScaleFactorGkr,
03775                       ::xml_schema::flags (),
03776                       this),
03777 _xsd_Location_ (_xsd_Location,
03778                 ::xml_schema::flags (),
03779                 this)
03780 {
03781 }
03782 
03783 cell_heterogeneity_type::
03784 cell_heterogeneity_type (const cell_heterogeneity_type& _xsd_cell_heterogeneity_type,
03785                          ::xml_schema::flags f,
03786                          ::xml_schema::type* c)
03787 : ::xml_schema::type (_xsd_cell_heterogeneity_type, f, c),
03788 _xsd_ScaleFactorGks_ (_xsd_cell_heterogeneity_type._xsd_ScaleFactorGks_,
03789                       f | ::xml_schema::flags::not_root,
03790                       this),
03791 _xsd_ScaleFactorIto_ (_xsd_cell_heterogeneity_type._xsd_ScaleFactorIto_,
03792                       f | ::xml_schema::flags::not_root,
03793                       this),
03794 _xsd_ScaleFactorGkr_ (_xsd_cell_heterogeneity_type._xsd_ScaleFactorGkr_,
03795                       f | ::xml_schema::flags::not_root,
03796                       this),
03797 _xsd_Location_ (_xsd_cell_heterogeneity_type._xsd_Location_,
03798                 f | ::xml_schema::flags::not_root,
03799                 this)
03800 {
03801 }
03802 
03803 cell_heterogeneity_type::
03804 cell_heterogeneity_type (const ::xercesc::DOMElement& e,
03805                          ::xml_schema::flags f,
03806                          ::xml_schema::type* c)
03807 : ::xml_schema::type (e, f, c),
03808 _xsd_ScaleFactorGks_ (f | ::xml_schema::flags::not_root, this),
03809 _xsd_ScaleFactorIto_ (f | ::xml_schema::flags::not_root, this),
03810 _xsd_ScaleFactorGkr_ (f | ::xml_schema::flags::not_root, this),
03811 _xsd_Location_ (f | ::xml_schema::flags::not_root, this)
03812 {
03813   parse (e, f);
03814 }
03815 
03816 void cell_heterogeneity_type::
03817 parse (const ::xercesc::DOMElement& e, ::xml_schema::flags f)
03818 {
03819   ::xsd::cxx::xml::dom::parser< char > p (e);
03820 
03821   while (p.more_elements ())
03822   {
03823     const ::xsd::cxx::xml::dom::element< char > e (p.next_element ());
03824 
03825     // ScaleFactorGks
03826     //
03827     {
03828       if (e.name () == "ScaleFactorGks" && e.namespace_ ().empty ())
03829       {
03830         ::std::auto_ptr< ScaleFactorGks::type > r (
03831           ScaleFactorGks::traits::create (
03832             e.dom_element (),
03833             f | ::xml_schema::flags::not_root,
03834             this));
03835 
03836         if (_xsd_ScaleFactorGks_.present ())
03837           continue;
03838         this->ScaleFactorGks (r);
03839         continue;
03840       }
03841     }
03842 
03843     // ScaleFactorIto
03844     //
03845     {
03846       if (e.name () == "ScaleFactorIto" && e.namespace_ ().empty ())
03847       {
03848         ::std::auto_ptr< ScaleFactorIto::type > r (
03849           ScaleFactorIto::traits::create (
03850             e.dom_element (),
03851             f | ::xml_schema::flags::not_root,
03852             this));
03853 
03854         if (_xsd_ScaleFactorIto_.present ())
03855           continue;
03856         this->ScaleFactorIto (r);
03857         continue;
03858       }
03859     }
03860 
03861     // ScaleFactorGkr
03862     //
03863     {
03864       if (e.name () == "ScaleFactorGkr" && e.namespace_ ().empty ())
03865       {
03866         ::std::auto_ptr< ScaleFactorGkr::type > r (
03867           ScaleFactorGkr::traits::create (
03868             e.dom_element (),
03869             f | ::xml_schema::flags::not_root,
03870             this));
03871 
03872         if (_xsd_ScaleFactorGkr_.present ())
03873           continue;
03874         this->ScaleFactorGkr (r);
03875         continue;
03876       }
03877     }
03878 
03879     // Location
03880     //
03881     {
03882       if (e.name () == "Location" && e.namespace_ ().empty ())
03883       {
03884         ::std::auto_ptr< Location::type > r (
03885           Location::traits::create (
03886             e.dom_element (),
03887             f | ::xml_schema::flags::not_root,
03888             this));
03889 
03890         if (_xsd_Location_.present ())
03891           continue;
03892         this->Location (r);
03893         continue;
03894       }
03895     }
03896   }
03897 
03898   if (!_xsd_ScaleFactorGks_.present ())
03899   {
03900     throw ::xsd::cxx::tree::expected_element< char > (
03901       "ScaleFactorGks",
03902       "");
03903   }
03904 
03905   if (!_xsd_ScaleFactorIto_.present ())
03906   {
03907     throw ::xsd::cxx::tree::expected_element< char > (
03908       "ScaleFactorIto",
03909       "");
03910   }
03911 
03912   if (!_xsd_ScaleFactorGkr_.present ())
03913   {
03914     throw ::xsd::cxx::tree::expected_element< char > (
03915       "ScaleFactorGkr",
03916       "");
03917   }
03918 
03919   if (!_xsd_Location_.present ())
03920   {
03921     throw ::xsd::cxx::tree::expected_element< char > (
03922       "Location",
03923       "");
03924   }
03925 }
03926 
03927 cell_heterogeneity_type* cell_heterogeneity_type::
03928 _clone (::xml_schema::flags f,
03929         ::xml_schema::type* c) const
03930 {
03931   return new cell_heterogeneity_type (*this, f, c);
03932 }
03933 
03934 // conductivity_heterogeneity_type
03935 //
03936 
03937 conductivity_heterogeneity_type::
03938 conductivity_heterogeneity_type (const Location::type& _xsd_Location)
03939 : ::xml_schema::type (),
03940 _xsd_IntracellularConductivities_ (::xml_schema::flags (), this),
03941 _xsd_ExtracellularConductivities_ (::xml_schema::flags (), this),
03942 _xsd_Location_ (_xsd_Location,
03943                 ::xml_schema::flags (),
03944                 this)
03945 {
03946 }
03947 
03948 conductivity_heterogeneity_type::
03949 conductivity_heterogeneity_type (const conductivity_heterogeneity_type& _xsd_conductivity_heterogeneity_type,
03950                                  ::xml_schema::flags f,
03951                                  ::xml_schema::type* c)
03952 : ::xml_schema::type (_xsd_conductivity_heterogeneity_type, f, c),
03953 _xsd_IntracellularConductivities_ (_xsd_conductivity_heterogeneity_type._xsd_IntracellularConductivities_,
03954                                    f | ::xml_schema::flags::not_root,
03955                                    this),
03956 _xsd_ExtracellularConductivities_ (_xsd_conductivity_heterogeneity_type._xsd_ExtracellularConductivities_,
03957                                    f | ::xml_schema::flags::not_root,
03958                                    this),
03959 _xsd_Location_ (_xsd_conductivity_heterogeneity_type._xsd_Location_,
03960                 f | ::xml_schema::flags::not_root,
03961                 this)
03962 {
03963 }
03964 
03965 conductivity_heterogeneity_type::
03966 conductivity_heterogeneity_type (const ::xercesc::DOMElement& e,
03967                                  ::xml_schema::flags f,
03968                                  ::xml_schema::type* c)
03969 : ::xml_schema::type (e, f, c),
03970 _xsd_IntracellularConductivities_ (f | ::xml_schema::flags::not_root, this),
03971 _xsd_ExtracellularConductivities_ (f | ::xml_schema::flags::not_root, this),
03972 _xsd_Location_ (f | ::xml_schema::flags::not_root, this)
03973 {
03974   parse (e, f);
03975 }
03976 
03977 void conductivity_heterogeneity_type::
03978 parse (const ::xercesc::DOMElement& e, ::xml_schema::flags f)
03979 {
03980   ::xsd::cxx::xml::dom::parser< char > p (e);
03981 
03982   while (p.more_elements ())
03983   {
03984     const ::xsd::cxx::xml::dom::element< char > e (p.next_element ());
03985 
03986     // IntracellularConductivities
03987     //
03988     {
03989       if (e.name () == "IntracellularConductivities" && e.namespace_ ().empty ())
03990       {
03991         ::std::auto_ptr< IntracellularConductivities::type > r (
03992           IntracellularConductivities::traits::create (
03993             e.dom_element (),
03994             f | ::xml_schema::flags::not_root,
03995             this));
03996 
03997         if (this->IntracellularConductivities ())
03998           continue;
03999         this->IntracellularConductivities (r);
04000         continue;
04001       }
04002     }
04003 
04004     // ExtracellularConductivities
04005     //
04006     {
04007       if (e.name () == "ExtracellularConductivities" && e.namespace_ ().empty ())
04008       {
04009         ::std::auto_ptr< ExtracellularConductivities::type > r (
04010           ExtracellularConductivities::traits::create (
04011             e.dom_element (),
04012             f | ::xml_schema::flags::not_root,
04013             this));
04014 
04015         if (this->ExtracellularConductivities ())
04016           continue;
04017         this->ExtracellularConductivities (r);
04018         continue;
04019       }
04020     }
04021 
04022     // Location
04023     //
04024     {
04025       if (e.name () == "Location" && e.namespace_ ().empty ())
04026       {
04027         ::std::auto_ptr< Location::type > r (
04028           Location::traits::create (
04029             e.dom_element (),
04030             f | ::xml_schema::flags::not_root,
04031             this));
04032 
04033         if (_xsd_Location_.present ())
04034           continue;
04035         this->Location (r);
04036         continue;
04037       }
04038     }
04039   }
04040 
04041   if (!_xsd_Location_.present ())
04042   {
04043     throw ::xsd::cxx::tree::expected_element< char > (
04044       "Location",
04045       "");
04046   }
04047 }
04048 
04049 conductivity_heterogeneity_type* conductivity_heterogeneity_type::
04050 _clone (::xml_schema::flags f,
04051         ::xml_schema::type* c) const
04052 {
04053   return new conductivity_heterogeneity_type (*this, f, c);
04054 }
04055 
04056 // slab_type
04057 //
04058 
04059 slab_type::
04060 slab_type (const x::type& _xsd_x,
04061            const y::type& _xsd_y,
04062            const z::type& _xsd_z,
04063            const inter_node_space::type& _xsd_inter_node_space)
04064 : ::xml_schema::type (),
04065 _xsd_x_ (_xsd_x,
04066          ::xml_schema::flags (),
04067          this),
04068 _xsd_y_ (_xsd_y,
04069          ::xml_schema::flags (),
04070          this),
04071 _xsd_z_ (_xsd_z,
04072          ::xml_schema::flags (),
04073          this),
04074 _xsd_inter_node_space_ (_xsd_inter_node_space,
04075                         ::xml_schema::flags (),
04076                         this)
04077 {
04078 }
04079 
04080 slab_type::
04081 slab_type (const slab_type& _xsd_slab_type,
04082            ::xml_schema::flags f,
04083            ::xml_schema::type* c)
04084 : ::xml_schema::type (_xsd_slab_type, f, c),
04085 _xsd_x_ (_xsd_slab_type._xsd_x_,
04086          f | ::xml_schema::flags::not_root,
04087          this),
04088 _xsd_y_ (_xsd_slab_type._xsd_y_,
04089          f | ::xml_schema::flags::not_root,
04090          this),
04091 _xsd_z_ (_xsd_slab_type._xsd_z_,
04092          f | ::xml_schema::flags::not_root,
04093          this),
04094 _xsd_inter_node_space_ (_xsd_slab_type._xsd_inter_node_space_,
04095                         f | ::xml_schema::flags::not_root,
04096                         this)
04097 {
04098 }
04099 
04100 slab_type::
04101 slab_type (const ::xercesc::DOMElement& e,
04102            ::xml_schema::flags f,
04103            ::xml_schema::type* c)
04104 : ::xml_schema::type (e, f, c),
04105 _xsd_x_ (f | ::xml_schema::flags::not_root, this),
04106 _xsd_y_ (f | ::xml_schema::flags::not_root, this),
04107 _xsd_z_ (f | ::xml_schema::flags::not_root, this),
04108 _xsd_inter_node_space_ (f | ::xml_schema::flags::not_root, this)
04109 {
04110   parse (e, f);
04111 }
04112 
04113 void slab_type::
04114 parse (const ::xercesc::DOMElement& e, ::xml_schema::flags f)
04115 {
04116   ::xsd::cxx::xml::dom::parser< char > p (e);
04117 
04118   while (p.more_attributes ())
04119   {
04120     const ::xsd::cxx::xml::dom::attribute< char > a (p.next_attribute ());
04121 
04122     if (a.name () == "x" && a.namespace_ ().empty ())
04123     {
04124       this->x (
04125         x::traits::create (
04126           a.dom_attribute (),
04127           f | ::xml_schema::flags::not_root,
04128           this));
04129       continue;
04130     }
04131 
04132     if (a.name () == "y" && a.namespace_ ().empty ())
04133     {
04134       this->y (
04135         y::traits::create (
04136           a.dom_attribute (),
04137           f | ::xml_schema::flags::not_root,
04138           this));
04139       continue;
04140     }
04141 
04142     if (a.name () == "z" && a.namespace_ ().empty ())
04143     {
04144       this->z (
04145         z::traits::create (
04146           a.dom_attribute (),
04147           f | ::xml_schema::flags::not_root,
04148           this));
04149       continue;
04150     }
04151 
04152     if (a.name () == "inter_node_space" && a.namespace_ ().empty ())
04153     {
04154       this->inter_node_space (
04155         inter_node_space::traits::create (
04156           a.dom_attribute (),
04157           f | ::xml_schema::flags::not_root,
04158           this));
04159       continue;
04160     }
04161   }
04162 
04163   if (!_xsd_x_.present ())
04164   {
04165     throw ::xsd::cxx::tree::expected_attribute< char > (
04166       "x",
04167       "");
04168   }
04169 
04170   if (!_xsd_y_.present ())
04171   {
04172     throw ::xsd::cxx::tree::expected_attribute< char > (
04173       "y",
04174       "");
04175   }
04176 
04177   if (!_xsd_z_.present ())
04178   {
04179     throw ::xsd::cxx::tree::expected_attribute< char > (
04180       "z",
04181       "");
04182   }
04183 
04184   if (!_xsd_inter_node_space_.present ())
04185   {
04186     throw ::xsd::cxx::tree::expected_attribute< char > (
04187       "inter_node_space",
04188       "");
04189   }
04190 }
04191 
04192 slab_type* slab_type::
04193 _clone (::xml_schema::flags f,
04194         ::xml_schema::type* c) const
04195 {
04196   return new slab_type (*this, f, c);
04197 }
04198 
04199 // sheet_type
04200 //
04201 
04202 sheet_type::
04203 sheet_type (const x::type& _xsd_x,
04204             const y::type& _xsd_y,
04205             const inter_node_space::type& _xsd_inter_node_space)
04206 : ::xml_schema::type (),
04207 _xsd_x_ (_xsd_x,
04208          ::xml_schema::flags (),
04209          this),
04210 _xsd_y_ (_xsd_y,
04211          ::xml_schema::flags (),
04212          this),
04213 _xsd_inter_node_space_ (_xsd_inter_node_space,
04214                         ::xml_schema::flags (),
04215                         this)
04216 {
04217 }
04218 
04219 sheet_type::
04220 sheet_type (const sheet_type& _xsd_sheet_type,
04221             ::xml_schema::flags f,
04222             ::xml_schema::type* c)
04223 : ::xml_schema::type (_xsd_sheet_type, f, c),
04224 _xsd_x_ (_xsd_sheet_type._xsd_x_,
04225          f | ::xml_schema::flags::not_root,
04226          this),
04227 _xsd_y_ (_xsd_sheet_type._xsd_y_,
04228          f | ::xml_schema::flags::not_root,
04229          this),
04230 _xsd_inter_node_space_ (_xsd_sheet_type._xsd_inter_node_space_,
04231                         f | ::xml_schema::flags::not_root,
04232                         this)
04233 {
04234 }
04235 
04236 sheet_type::
04237 sheet_type (const ::xercesc::DOMElement& e,
04238             ::xml_schema::flags f,
04239             ::xml_schema::type* c)
04240 : ::xml_schema::type (e, f, c),
04241 _xsd_x_ (f | ::xml_schema::flags::not_root, this),
04242 _xsd_y_ (f | ::xml_schema::flags::not_root, this),
04243 _xsd_inter_node_space_ (f | ::xml_schema::flags::not_root, this)
04244 {
04245   parse (e, f);
04246 }
04247 
04248 void sheet_type::
04249 parse (const ::xercesc::DOMElement& e, ::xml_schema::flags f)
04250 {
04251   ::xsd::cxx::xml::dom::parser< char > p (e);
04252 
04253   while (p.more_attributes ())
04254   {
04255     const ::xsd::cxx::xml::dom::attribute< char > a (p.next_attribute ());
04256 
04257     if (a.name () == "x" && a.namespace_ ().empty ())
04258     {
04259       this->x (
04260         x::traits::create (
04261           a.dom_attribute (),
04262           f | ::xml_schema::flags::not_root,
04263           this));
04264       continue;
04265     }
04266 
04267     if (a.name () == "y" && a.namespace_ ().empty ())
04268     {
04269       this->y (
04270         y::traits::create (
04271           a.dom_attribute (),
04272           f | ::xml_schema::flags::not_root,
04273           this));
04274       continue;
04275     }
04276 
04277     if (a.name () == "inter_node_space" && a.namespace_ ().empty ())
04278     {
04279       this->inter_node_space (
04280         inter_node_space::traits::create (
04281           a.dom_attribute (),
04282           f | ::xml_schema::flags::not_root,
04283           this));
04284       continue;
04285     }
04286   }
04287 
04288   if (!_xsd_x_.present ())
04289   {
04290     throw ::xsd::cxx::tree::expected_attribute< char > (
04291       "x",
04292       "");
04293   }
04294 
04295   if (!_xsd_y_.present ())
04296   {
04297     throw ::xsd::cxx::tree::expected_attribute< char > (
04298       "y",
04299       "");
04300   }
04301 
04302   if (!_xsd_inter_node_space_.present ())
04303   {
04304     throw ::xsd::cxx::tree::expected_attribute< char > (
04305       "inter_node_space",
04306       "");
04307   }
04308 }
04309 
04310 sheet_type* sheet_type::
04311 _clone (::xml_schema::flags f,
04312         ::xml_schema::type* c) const
04313 {
04314   return new sheet_type (*this, f, c);
04315 }
04316 
04317 // fibre_type
04318 //
04319 
04320 fibre_type::
04321 fibre_type (const x::type& _xsd_x,
04322             const inter_node_space::type& _xsd_inter_node_space)
04323 : ::xml_schema::type (),
04324 _xsd_x_ (_xsd_x,
04325          ::xml_schema::flags (),
04326          this),
04327 _xsd_inter_node_space_ (_xsd_inter_node_space,
04328                         ::xml_schema::flags (),
04329                         this)
04330 {
04331 }
04332 
04333 fibre_type::
04334 fibre_type (const fibre_type& _xsd_fibre_type,
04335             ::xml_schema::flags f,
04336             ::xml_schema::type* c)
04337 : ::xml_schema::type (_xsd_fibre_type, f, c),
04338 _xsd_x_ (_xsd_fibre_type._xsd_x_,
04339          f | ::xml_schema::flags::not_root,
04340          this),
04341 _xsd_inter_node_space_ (_xsd_fibre_type._xsd_inter_node_space_,
04342                         f | ::xml_schema::flags::not_root,
04343                         this)
04344 {
04345 }
04346 
04347 fibre_type::
04348 fibre_type (const ::xercesc::DOMElement& e,
04349             ::xml_schema::flags f,
04350             ::xml_schema::type* c)
04351 : ::xml_schema::type (e, f, c),
04352 _xsd_x_ (f | ::xml_schema::flags::not_root, this),
04353 _xsd_inter_node_space_ (f | ::xml_schema::flags::not_root, this)
04354 {
04355   parse (e, f);
04356 }
04357 
04358 void fibre_type::
04359 parse (const ::xercesc::DOMElement& e, ::xml_schema::flags f)
04360 {
04361   ::xsd::cxx::xml::dom::parser< char > p (e);
04362 
04363   while (p.more_attributes ())
04364   {
04365     const ::xsd::cxx::xml::dom::attribute< char > a (p.next_attribute ());
04366 
04367     if (a.name () == "x" && a.namespace_ ().empty ())
04368     {
04369       this->x (
04370         x::traits::create (
04371           a.dom_attribute (),
04372           f | ::xml_schema::flags::not_root,
04373           this));
04374       continue;
04375     }
04376 
04377     if (a.name () == "inter_node_space" && a.namespace_ ().empty ())
04378     {
04379       this->inter_node_space (
04380         inter_node_space::traits::create (
04381           a.dom_attribute (),
04382           f | ::xml_schema::flags::not_root,
04383           this));
04384       continue;
04385     }
04386   }
04387 
04388   if (!_xsd_x_.present ())
04389   {
04390     throw ::xsd::cxx::tree::expected_attribute< char > (
04391       "x",
04392       "");
04393   }
04394 
04395   if (!_xsd_inter_node_space_.present ())
04396   {
04397     throw ::xsd::cxx::tree::expected_attribute< char > (
04398       "inter_node_space",
04399       "");
04400   }
04401 }
04402 
04403 fibre_type* fibre_type::
04404 _clone (::xml_schema::flags f,
04405         ::xml_schema::type* c) const
04406 {
04407   return new fibre_type (*this, f, c);
04408 }
04409 
04410 // load_mesh_type
04411 //
04412 
04413 load_mesh_type::
04414 load_mesh_type (const name::type& _xsd_name,
04415                 const conductivity_media::type& _xsd_conductivity_media)
04416 : ::xml_schema::type (),
04417 _xsd_name_ (_xsd_name,
04418             ::xml_schema::flags (),
04419             this),
04420 _xsd_conductivity_media_ (_xsd_conductivity_media,
04421                           ::xml_schema::flags (),
04422                           this)
04423 {
04424 }
04425 
04426 load_mesh_type::
04427 load_mesh_type (const load_mesh_type& _xsd_load_mesh_type,
04428                 ::xml_schema::flags f,
04429                 ::xml_schema::type* c)
04430 : ::xml_schema::type (_xsd_load_mesh_type, f, c),
04431 _xsd_name_ (_xsd_load_mesh_type._xsd_name_,
04432             f | ::xml_schema::flags::not_root,
04433             this),
04434 _xsd_conductivity_media_ (_xsd_load_mesh_type._xsd_conductivity_media_,
04435                           f | ::xml_schema::flags::not_root,
04436                           this)
04437 {
04438 }
04439 
04440 load_mesh_type::
04441 load_mesh_type (const ::xercesc::DOMElement& e,
04442                 ::xml_schema::flags f,
04443                 ::xml_schema::type* c)
04444 : ::xml_schema::type (e, f, c),
04445 _xsd_name_ (f | ::xml_schema::flags::not_root, this),
04446 _xsd_conductivity_media_ (f | ::xml_schema::flags::not_root, this)
04447 {
04448   parse (e, f);
04449 }
04450 
04451 void load_mesh_type::
04452 parse (const ::xercesc::DOMElement& e, ::xml_schema::flags f)
04453 {
04454   ::xsd::cxx::xml::dom::parser< char > p (e);
04455 
04456   while (p.more_attributes ())
04457   {
04458     const ::xsd::cxx::xml::dom::attribute< char > a (p.next_attribute ());
04459 
04460     if (a.name () == "name" && a.namespace_ ().empty ())
04461     {
04462       ::std::auto_ptr< name::type > r (
04463         name::traits::create (
04464           a.dom_attribute (),
04465           f | ::xml_schema::flags::not_root,
04466           this));
04467 
04468       this->name (r);
04469       continue;
04470     }
04471 
04472     if (a.name () == "conductivity_media" && a.namespace_ ().empty ())
04473     {
04474       ::std::auto_ptr< conductivity_media::type > r (
04475         conductivity_media::traits::create (
04476           a.dom_attribute (),
04477           f | ::xml_schema::flags::not_root,
04478           this));
04479 
04480       this->conductivity_media (r);
04481       continue;
04482     }
04483   }
04484 
04485   if (!_xsd_name_.present ())
04486   {
04487     throw ::xsd::cxx::tree::expected_attribute< char > (
04488       "name",
04489       "");
04490   }
04491 
04492   if (!_xsd_conductivity_media_.present ())
04493   {
04494     throw ::xsd::cxx::tree::expected_attribute< char > (
04495       "conductivity_media",
04496       "");
04497   }
04498 }
04499 
04500 load_mesh_type* load_mesh_type::
04501 _clone (::xml_schema::flags f,
04502         ::xml_schema::type* c) const
04503 {
04504   return new load_mesh_type (*this, f, c);
04505 }
04506 
04507 // mesh_type
04508 //
04509 
04510 // mesh_type::unit
04511 // 
04512 
04513 const mesh_type::unit::type mesh_type::unit::default_value_ (
04514   ::std::basic_string< char > ("cm"), 0, 0, 0);
04515 
04516 mesh_type::
04517 mesh_type (const unit::type& _xsd_unit)
04518 : ::xml_schema::type (),
04519 _xsd_Slab_ (::xml_schema::flags (), this),
04520 _xsd_Sheet_ (::xml_schema::flags (), this),
04521 _xsd_Fibre_ (::xml_schema::flags (), this),
04522 _xsd_LoadMesh_ (::xml_schema::flags (), this),
04523 _xsd_unit_ (_xsd_unit,
04524             ::xml_schema::flags (),
04525             this)
04526 {
04527 }
04528 
04529 mesh_type::
04530 mesh_type (const mesh_type& _xsd_mesh_type,
04531            ::xml_schema::flags f,
04532            ::xml_schema::type* c)
04533 : ::xml_schema::type (_xsd_mesh_type, f, c),
04534 _xsd_Slab_ (_xsd_mesh_type._xsd_Slab_,
04535             f | ::xml_schema::flags::not_root,
04536             this),
04537 _xsd_Sheet_ (_xsd_mesh_type._xsd_Sheet_,
04538              f | ::xml_schema::flags::not_root,
04539              this),
04540 _xsd_Fibre_ (_xsd_mesh_type._xsd_Fibre_,
04541              f | ::xml_schema::flags::not_root,
04542              this),
04543 _xsd_LoadMesh_ (_xsd_mesh_type._xsd_LoadMesh_,
04544                 f | ::xml_schema::flags::not_root,
04545                 this),
04546 _xsd_unit_ (_xsd_mesh_type._xsd_unit_,
04547             f | ::xml_schema::flags::not_root,
04548             this)
04549 {
04550 }
04551 
04552 mesh_type::
04553 mesh_type (const ::xercesc::DOMElement& e,
04554            ::xml_schema::flags f,
04555            ::xml_schema::type* c)
04556 : ::xml_schema::type (e, f, c),
04557 _xsd_Slab_ (f | ::xml_schema::flags::not_root, this),
04558 _xsd_Sheet_ (f | ::xml_schema::flags::not_root, this),
04559 _xsd_Fibre_ (f | ::xml_schema::flags::not_root, this),
04560 _xsd_LoadMesh_ (f | ::xml_schema::flags::not_root, this),
04561 _xsd_unit_ (f | ::xml_schema::flags::not_root, this)
04562 {
04563   parse (e, f);
04564 }
04565 
04566 void mesh_type::
04567 parse (const ::xercesc::DOMElement& e, ::xml_schema::flags f)
04568 {
04569   ::xsd::cxx::xml::dom::parser< char > p (e);
04570 
04571   while (p.more_elements ())
04572   {
04573     const ::xsd::cxx::xml::dom::element< char > e (p.next_element ());
04574 
04575     // Slab
04576     //
04577     {
04578       if (e.name () == "Slab" && e.namespace_ ().empty ())
04579       {
04580         ::std::auto_ptr< Slab::type > r (
04581           Slab::traits::create (
04582             e.dom_element (),
04583             f | ::xml_schema::flags::not_root,
04584             this));
04585 
04586         if (this->Slab ())
04587           continue;
04588         this->Slab (r);
04589         continue;
04590       }
04591     }
04592 
04593     // Sheet
04594     //
04595     {
04596       if (e.name () == "Sheet" && e.namespace_ ().empty ())
04597       {
04598         ::std::auto_ptr< Sheet::type > r (
04599           Sheet::traits::create (
04600             e.dom_element (),
04601             f | ::xml_schema::flags::not_root,
04602             this));
04603 
04604         if (this->Sheet ())
04605           continue;
04606         this->Sheet (r);
04607         continue;
04608       }
04609     }
04610 
04611     // Fibre
04612     //
04613     {
04614       if (e.name () == "Fibre" && e.namespace_ ().empty ())
04615       {
04616         ::std::auto_ptr< Fibre::type > r (
04617           Fibre::traits::create (
04618             e.dom_element (),
04619             f | ::xml_schema::flags::not_root,
04620             this));
04621 
04622         if (this->Fibre ())
04623           continue;
04624         this->Fibre (r);
04625         continue;
04626       }
04627     }
04628 
04629     // LoadMesh
04630     //
04631     {
04632       if (e.name () == "LoadMesh" && e.namespace_ ().empty ())
04633       {
04634         ::std::auto_ptr< LoadMesh::type > r (
04635           LoadMesh::traits::create (
04636             e.dom_element (),
04637             f | ::xml_schema::flags::not_root,
04638             this));
04639 
04640         if (this->LoadMesh ())
04641           continue;
04642         this->LoadMesh (r);
04643         continue;
04644       }
04645     }
04646   }
04647 
04648   while (p.more_attributes ())
04649   {
04650     const ::xsd::cxx::xml::dom::attribute< char > a (p.next_attribute ());
04651 
04652     if (a.name () == "unit" && a.namespace_ ().empty ())
04653     {
04654       ::std::auto_ptr< unit::type > r (
04655         unit::traits::create (
04656           a.dom_attribute (),
04657           f | ::xml_schema::flags::not_root,
04658           this));
04659 
04660       this->unit (r);
04661       continue;
04662     }
04663   }
04664 
04665   if (!_xsd_unit_.present ())
04666   {
04667     this->unit (
04668       unit::traits::create (
04669         ::std::basic_string< char > ("cm"),
04670         &e,
04671         f | ::xml_schema::flags::not_root,
04672         this));
04673   }
04674 }
04675 
04676 mesh_type* mesh_type::
04677 _clone (::xml_schema::flags f,
04678         ::xml_schema::type* c) const
04679 {
04680   return new mesh_type (*this, f, c);
04681 }
04682 
04683 // conductivities_type
04684 //
04685 
04686 // conductivities_type::unit
04687 // 
04688 
04689 const conductivities_type::unit::type conductivities_type::unit::default_value_ (
04690   ::std::basic_string< char > ("mS/cm"), 0, 0, 0);
04691 
04692 conductivities_type::
04693 conductivities_type (const longi::type& _xsd_longi,
04694                      const trans::type& _xsd_trans,
04695                      const normal::type& _xsd_normal,
04696                      const unit::type& _xsd_unit)
04697 : ::xml_schema::type (),
04698 _xsd_longi_ (_xsd_longi,
04699              ::xml_schema::flags (),
04700              this),
04701 _xsd_trans_ (_xsd_trans,
04702              ::xml_schema::flags (),
04703              this),
04704 _xsd_normal_ (_xsd_normal,
04705               ::xml_schema::flags (),
04706               this),
04707 _xsd_unit_ (_xsd_unit,
04708             ::xml_schema::flags (),
04709             this)
04710 {
04711 }
04712 
04713 conductivities_type::
04714 conductivities_type (const conductivities_type& _xsd_conductivities_type,
04715                      ::xml_schema::flags f,
04716                      ::xml_schema::type* c)
04717 : ::xml_schema::type (_xsd_conductivities_type, f, c),
04718 _xsd_longi_ (_xsd_conductivities_type._xsd_longi_,
04719              f | ::xml_schema::flags::not_root,
04720              this),
04721 _xsd_trans_ (_xsd_conductivities_type._xsd_trans_,
04722              f | ::xml_schema::flags::not_root,
04723              this),
04724 _xsd_normal_ (_xsd_conductivities_type._xsd_normal_,
04725               f | ::xml_schema::flags::not_root,
04726               this),
04727 _xsd_unit_ (_xsd_conductivities_type._xsd_unit_,
04728             f | ::xml_schema::flags::not_root,
04729             this)
04730 {
04731 }
04732 
04733 conductivities_type::
04734 conductivities_type (const ::xercesc::DOMElement& e,
04735                      ::xml_schema::flags f,
04736                      ::xml_schema::type* c)
04737 : ::xml_schema::type (e, f, c),
04738 _xsd_longi_ (f | ::xml_schema::flags::not_root, this),
04739 _xsd_trans_ (f | ::xml_schema::flags::not_root, this),
04740 _xsd_normal_ (f | ::xml_schema::flags::not_root, this),
04741 _xsd_unit_ (f | ::xml_schema::flags::not_root, this)
04742 {
04743   parse (e, f);
04744 }
04745 
04746 void conductivities_type::
04747 parse (const ::xercesc::DOMElement& e, ::xml_schema::flags f)
04748 {
04749   ::xsd::cxx::xml::dom::parser< char > p (e);
04750 
04751   while (p.more_attributes ())
04752   {
04753     const ::xsd::cxx::xml::dom::attribute< char > a (p.next_attribute ());
04754 
04755     if (a.name () == "longi" && a.namespace_ ().empty ())
04756     {
04757       this->longi (
04758         longi::traits::create (
04759           a.dom_attribute (),
04760           f | ::xml_schema::flags::not_root,
04761           this));
04762       continue;
04763     }
04764 
04765     if (a.name () == "trans" && a.namespace_ ().empty ())
04766     {
04767       this->trans (
04768         trans::traits::create (
04769           a.dom_attribute (),
04770           f | ::xml_schema::flags::not_root,
04771           this));
04772       continue;
04773     }
04774 
04775     if (a.name () == "normal" && a.namespace_ ().empty ())
04776     {
04777       this->normal (
04778         normal::traits::create (
04779           a.dom_attribute (),
04780           f | ::xml_schema::flags::not_root,
04781           this));
04782       continue;
04783     }
04784 
04785     if (a.name () == "unit" && a.namespace_ ().empty ())
04786     {
04787       ::std::auto_ptr< unit::type > r (
04788         unit::traits::create (
04789           a.dom_attribute (),
04790           f | ::xml_schema::flags::not_root,
04791           this));
04792 
04793       this->unit (r);
04794       continue;
04795     }
04796   }
04797 
04798   if (!_xsd_longi_.present ())
04799   {
04800     throw ::xsd::cxx::tree::expected_attribute< char > (
04801       "longi",
04802       "");
04803   }
04804 
04805   if (!_xsd_trans_.present ())
04806   {
04807     throw ::xsd::cxx::tree::expected_attribute< char > (
04808       "trans",
04809       "");
04810   }
04811 
04812   if (!_xsd_normal_.present ())
04813   {
04814     throw ::xsd::cxx::tree::expected_attribute< char > (
04815       "normal",
04816       "");
04817   }
04818 
04819   if (!_xsd_unit_.present ())
04820   {
04821     this->unit (
04822       unit::traits::create (
04823         ::std::basic_string< char > ("mS/cm"),
04824         &e,
04825         f | ::xml_schema::flags::not_root,
04826         this));
04827   }
04828 }
04829 
04830 conductivities_type* conductivities_type::
04831 _clone (::xml_schema::flags f,
04832         ::xml_schema::type* c) const
04833 {
04834   return new conductivities_type (*this, f, c);
04835 }
04836 
04837 // time_steps_type
04838 //
04839 
04840 // time_steps_type::unit
04841 // 
04842 
04843 const time_steps_type::unit::type time_steps_type::unit::default_value_ (
04844   ::std::basic_string< char > ("ms"), 0, 0, 0);
04845 
04846 time_steps_type::
04847 time_steps_type (const ode::type& _xsd_ode,
04848                  const pde::type& _xsd_pde,
04849                  const printing::type& _xsd_printing,
04850                  const unit::type& _xsd_unit)
04851 : ::xml_schema::type (),
04852 _xsd_ode_ (_xsd_ode,
04853            ::xml_schema::flags (),
04854            this),
04855 _xsd_pde_ (_xsd_pde,
04856            ::xml_schema::flags (),
04857            this),
04858 _xsd_printing_ (_xsd_printing,
04859                 ::xml_schema::flags (),
04860                 this),
04861 _xsd_unit_ (_xsd_unit,
04862             ::xml_schema::flags (),
04863             this)
04864 {
04865 }
04866 
04867 time_steps_type::
04868 time_steps_type (const time_steps_type& _xsd_time_steps_type,
04869                  ::xml_schema::flags f,
04870                  ::xml_schema::type* c)
04871 : ::xml_schema::type (_xsd_time_steps_type, f, c),
04872 _xsd_ode_ (_xsd_time_steps_type._xsd_ode_,
04873            f | ::xml_schema::flags::not_root,
04874            this),
04875 _xsd_pde_ (_xsd_time_steps_type._xsd_pde_,
04876            f | ::xml_schema::flags::not_root,
04877            this),
04878 _xsd_printing_ (_xsd_time_steps_type._xsd_printing_,
04879                 f | ::xml_schema::flags::not_root,
04880                 this),
04881 _xsd_unit_ (_xsd_time_steps_type._xsd_unit_,
04882             f | ::xml_schema::flags::not_root,
04883             this)
04884 {
04885 }
04886 
04887 time_steps_type::
04888 time_steps_type (const ::xercesc::DOMElement& e,
04889                  ::xml_schema::flags f,
04890                  ::xml_schema::type* c)
04891 : ::xml_schema::type (e, f, c),
04892 _xsd_ode_ (f | ::xml_schema::flags::not_root, this),
04893 _xsd_pde_ (f | ::xml_schema::flags::not_root, this),
04894 _xsd_printing_ (f | ::xml_schema::flags::not_root, this),
04895 _xsd_unit_ (f | ::xml_schema::flags::not_root, this)
04896 {
04897   parse (e, f);
04898 }
04899 
04900 void time_steps_type::
04901 parse (const ::xercesc::DOMElement& e, ::xml_schema::flags f)
04902 {
04903   ::xsd::cxx::xml::dom::parser< char > p (e);
04904 
04905   while (p.more_attributes ())
04906   {
04907     const ::xsd::cxx::xml::dom::attribute< char > a (p.next_attribute ());
04908 
04909     if (a.name () == "ode" && a.namespace_ ().empty ())
04910     {
04911       this->ode (
04912         ode::traits::create (
04913           a.dom_attribute (),
04914           f | ::xml_schema::flags::not_root,
04915           this));
04916       continue;
04917     }
04918 
04919     if (a.name () == "pde" && a.namespace_ ().empty ())
04920     {
04921       this->pde (
04922         pde::traits::create (
04923           a.dom_attribute (),
04924           f | ::xml_schema::flags::not_root,
04925           this));
04926       continue;
04927     }
04928 
04929     if (a.name () == "printing" && a.namespace_ ().empty ())
04930     {
04931       this->printing (
04932         printing::traits::create (
04933           a.dom_attribute (),
04934           f | ::xml_schema::flags::not_root,
04935           this));
04936       continue;
04937     }
04938 
04939     if (a.name () == "unit" && a.namespace_ ().empty ())
04940     {
04941       ::std::auto_ptr< unit::type > r (
04942         unit::traits::create (
04943           a.dom_attribute (),
04944           f | ::xml_schema::flags::not_root,
04945           this));
04946 
04947       this->unit (r);
04948       continue;
04949     }
04950   }
04951 
04952   if (!_xsd_ode_.present ())
04953   {
04954     throw ::xsd::cxx::tree::expected_attribute< char > (
04955       "ode",
04956       "");
04957   }
04958 
04959   if (!_xsd_pde_.present ())
04960   {
04961     throw ::xsd::cxx::tree::expected_attribute< char > (
04962       "pde",
04963       "");
04964   }
04965 
04966   if (!_xsd_printing_.present ())
04967   {
04968     throw ::xsd::cxx::tree::expected_attribute< char > (
04969       "printing",
04970       "");
04971   }
04972 
04973   if (!_xsd_unit_.present ())
04974   {
04975     this->unit (
04976       unit::traits::create (
04977         ::std::basic_string< char > ("ms"),
04978         &e,
04979         f | ::xml_schema::flags::not_root,
04980         this));
04981   }
04982 }
04983 
04984 time_steps_type* time_steps_type::
04985 _clone (::xml_schema::flags f,
04986         ::xml_schema::type* c) const
04987 {
04988   return new time_steps_type (*this, f, c);
04989 }
04990 
04991 // ksp_use_type
04992 //
04993 
04994 ksp_use_type::
04995 ksp_use_type (const ::xercesc::DOMElement& e,
04996               ::xml_schema::flags f,
04997               ::xml_schema::type* c)
04998 : ::xml_schema::string (e, f, c)
04999 {
05000   _xsd_ksp_use_type_convert ();
05001 }
05002 
05003 ksp_use_type::
05004 ksp_use_type (const ::xercesc::DOMAttr& a,
05005               ::xml_schema::flags f,
05006               ::xml_schema::type* c)
05007 : ::xml_schema::string (a, f, c)
05008 {
05009   _xsd_ksp_use_type_convert ();
05010 }
05011 
05012 ksp_use_type::
05013 ksp_use_type (const ::std::basic_string< char >& s,
05014               const ::xercesc::DOMElement* e,
05015               ::xml_schema::flags f,
05016               ::xml_schema::type* c)
05017 : ::xml_schema::string (s, e, f, c)
05018 {
05019   _xsd_ksp_use_type_convert ();
05020 }
05021 
05022 ksp_use_type* ksp_use_type::
05023 _clone (::xml_schema::flags f,
05024         ::xml_schema::type* c) const
05025 {
05026   return new ksp_use_type (*this, f, c);
05027 }
05028 
05029 ksp_use_type::_xsd_ksp_use_type ksp_use_type::
05030 _xsd_ksp_use_type_convert () const
05031 {
05032   ::xsd::cxx::tree::enum_comparator< char > c (_xsd_ksp_use_type_literals_);
05033   const _xsd_ksp_use_type* i (::std::lower_bound (
05034                                 _xsd_ksp_use_type_indexes_,
05035                                 _xsd_ksp_use_type_indexes_ + 2,
05036                                 *this,
05037                                 c));
05038 
05039   if (i == _xsd_ksp_use_type_indexes_ + 2 || _xsd_ksp_use_type_literals_[*i] != *this)
05040   {
05041     throw ::xsd::cxx::tree::unexpected_enumerator < char > (*this);
05042   }
05043 
05044   return *i;
05045 }
05046 
05047 const char* const ksp_use_type::
05048 _xsd_ksp_use_type_literals_[2] =
05049 {
05050   "relative",
05051   "absolute"
05052 };
05053 
05054 const ksp_use_type::_xsd_ksp_use_type ksp_use_type::
05055 _xsd_ksp_use_type_indexes_[2] =
05056 {
05057   ::ksp_use_type::absolute,
05058   ::ksp_use_type::relative
05059 };
05060 
05061 // ksp_tolerances_type
05062 //
05063 
05064 ksp_tolerances_type::
05065 ksp_tolerances_type ()
05066 : ::xml_schema::type (),
05067 _xsd_KSPRelative_ (::xml_schema::flags (), this),
05068 _xsd_KSPAbsolute_ (::xml_schema::flags (), this)
05069 {
05070 }
05071 
05072 ksp_tolerances_type::
05073 ksp_tolerances_type (const ksp_tolerances_type& _xsd_ksp_tolerances_type,
05074                      ::xml_schema::flags f,
05075                      ::xml_schema::type* c)
05076 : ::xml_schema::type (_xsd_ksp_tolerances_type, f, c),
05077 _xsd_KSPRelative_ (_xsd_ksp_tolerances_type._xsd_KSPRelative_,
05078                    f | ::xml_schema::flags::not_root,
05079                    this),
05080 _xsd_KSPAbsolute_ (_xsd_ksp_tolerances_type._xsd_KSPAbsolute_,
05081                    f | ::xml_schema::flags::not_root,
05082                    this)
05083 {
05084 }
05085 
05086 ksp_tolerances_type::
05087 ksp_tolerances_type (const ::xercesc::DOMElement& e,
05088                      ::xml_schema::flags f,
05089                      ::xml_schema::type* c)
05090 : ::xml_schema::type (e, f, c),
05091 _xsd_KSPRelative_ (f | ::xml_schema::flags::not_root, this),
05092 _xsd_KSPAbsolute_ (f | ::xml_schema::flags::not_root, this)
05093 {
05094   parse (e, f);
05095 }
05096 
05097 void ksp_tolerances_type::
05098 parse (const ::xercesc::DOMElement& e, ::xml_schema::flags f)
05099 {
05100   ::xsd::cxx::xml::dom::parser< char > p (e);
05101 
05102   while (p.more_elements ())
05103   {
05104     const ::xsd::cxx::xml::dom::element< char > e (p.next_element ());
05105 
05106     // KSPRelative
05107     //
05108     {
05109       if (e.name () == "KSPRelative" && e.namespace_ ().empty ())
05110       {
05111         if (this->KSPRelative ())
05112           continue;
05113         this->KSPRelative (
05114           KSPRelative::traits::create (
05115             e.dom_element (),
05116             f | ::xml_schema::flags::not_root,
05117             this));
05118         continue;
05119       }
05120     }
05121 
05122     // KSPAbsolute
05123     //
05124     {
05125       if (e.name () == "KSPAbsolute" && e.namespace_ ().empty ())
05126       {
05127         if (this->KSPAbsolute ())
05128           continue;
05129         this->KSPAbsolute (
05130           KSPAbsolute::traits::create (
05131             e.dom_element (),
05132             f | ::xml_schema::flags::not_root,
05133             this));
05134         continue;
05135       }
05136     }
05137   }
05138 }
05139 
05140 ksp_tolerances_type* ksp_tolerances_type::
05141 _clone (::xml_schema::flags f,
05142         ::xml_schema::type* c) const
05143 {
05144   return new ksp_tolerances_type (*this, f, c);
05145 }
05146 
05147 // ksp_solver_type
05148 //
05149 
05150 ksp_solver_type::
05151 ksp_solver_type (const ::xercesc::DOMElement& e,
05152                  ::xml_schema::flags f,
05153                  ::xml_schema::type* c)
05154 : ::xml_schema::string (e, f, c)
05155 {
05156   _xsd_ksp_solver_type_convert ();
05157 }
05158 
05159 ksp_solver_type::
05160 ksp_solver_type (const ::xercesc::DOMAttr& a,
05161                  ::xml_schema::flags f,
05162                  ::xml_schema::type* c)
05163 : ::xml_schema::string (a, f, c)
05164 {
05165   _xsd_ksp_solver_type_convert ();
05166 }
05167 
05168 ksp_solver_type::
05169 ksp_solver_type (const ::std::basic_string< char >& s,
05170                  const ::xercesc::DOMElement* e,
05171                  ::xml_schema::flags f,
05172                  ::xml_schema::type* c)
05173 : ::xml_schema::string (s, e, f, c)
05174 {
05175   _xsd_ksp_solver_type_convert ();
05176 }
05177 
05178 ksp_solver_type* ksp_solver_type::
05179 _clone (::xml_schema::flags f,
05180         ::xml_schema::type* c) const
05181 {
05182   return new ksp_solver_type (*this, f, c);
05183 }
05184 
05185 ksp_solver_type::_xsd_ksp_solver_type ksp_solver_type::
05186 _xsd_ksp_solver_type_convert () const
05187 {
05188   ::xsd::cxx::tree::enum_comparator< char > c (_xsd_ksp_solver_type_literals_);
05189   const _xsd_ksp_solver_type* i (::std::lower_bound (
05190                                    _xsd_ksp_solver_type_indexes_,
05191                                    _xsd_ksp_solver_type_indexes_ + 3,
05192                                    *this,
05193                                    c));
05194 
05195   if (i == _xsd_ksp_solver_type_indexes_ + 3 || _xsd_ksp_solver_type_literals_[*i] != *this)
05196   {
05197     throw ::xsd::cxx::tree::unexpected_enumerator < char > (*this);
05198   }
05199 
05200   return *i;
05201 }
05202 
05203 const char* const ksp_solver_type::
05204 _xsd_ksp_solver_type_literals_[3] =
05205 {
05206   "cg",
05207   "symmlq",
05208   "gmres"
05209 };
05210 
05211 const ksp_solver_type::_xsd_ksp_solver_type ksp_solver_type::
05212 _xsd_ksp_solver_type_indexes_[3] =
05213 {
05214   ::ksp_solver_type::cg,
05215   ::ksp_solver_type::gmres,
05216   ::ksp_solver_type::symmlq
05217 };
05218 
05219 // ksp_preconditioner_type
05220 //
05221 
05222 ksp_preconditioner_type::
05223 ksp_preconditioner_type (const ::xercesc::DOMElement& e,
05224                          ::xml_schema::flags f,
05225                          ::xml_schema::type* c)
05226 : ::xml_schema::string (e, f, c)
05227 {
05228   _xsd_ksp_preconditioner_type_convert ();
05229 }
05230 
05231 ksp_preconditioner_type::
05232 ksp_preconditioner_type (const ::xercesc::DOMAttr& a,
05233                          ::xml_schema::flags f,
05234                          ::xml_schema::type* c)
05235 : ::xml_schema::string (a, f, c)
05236 {
05237   _xsd_ksp_preconditioner_type_convert ();
05238 }
05239 
05240 ksp_preconditioner_type::
05241 ksp_preconditioner_type (const ::std::basic_string< char >& s,
05242                          const ::xercesc::DOMElement* e,
05243                          ::xml_schema::flags f,
05244                          ::xml_schema::type* c)
05245 : ::xml_schema::string (s, e, f, c)
05246 {
05247   _xsd_ksp_preconditioner_type_convert ();
05248 }
05249 
05250 ksp_preconditioner_type* ksp_preconditioner_type::
05251 _clone (::xml_schema::flags f,
05252         ::xml_schema::type* c) const
05253 {
05254   return new ksp_preconditioner_type (*this, f, c);
05255 }
05256 
05257 ksp_preconditioner_type::_xsd_ksp_preconditioner_type ksp_preconditioner_type::
05258 _xsd_ksp_preconditioner_type_convert () const
05259 {
05260   ::xsd::cxx::tree::enum_comparator< char > c (_xsd_ksp_preconditioner_type_literals_);
05261   const _xsd_ksp_preconditioner_type* i (::std::lower_bound (
05262                                            _xsd_ksp_preconditioner_type_indexes_,
05263                                            _xsd_ksp_preconditioner_type_indexes_ + 5,
05264                                            *this,
05265                                            c));
05266 
05267   if (i == _xsd_ksp_preconditioner_type_indexes_ + 5 || _xsd_ksp_preconditioner_type_literals_[*i] != *this)
05268   {
05269     throw ::xsd::cxx::tree::unexpected_enumerator < char > (*this);
05270   }
05271 
05272   return *i;
05273 }
05274 
05275 const char* const ksp_preconditioner_type::
05276 _xsd_ksp_preconditioner_type_literals_[5] =
05277 {
05278   "ilu",
05279   "jacobi",
05280   "bjacobi",
05281   "hypre",
05282   "none"
05283 };
05284 
05285 const ksp_preconditioner_type::_xsd_ksp_preconditioner_type ksp_preconditioner_type::
05286 _xsd_ksp_preconditioner_type_indexes_[5] =
05287 {
05288   ::ksp_preconditioner_type::bjacobi,
05289   ::ksp_preconditioner_type::hypre,
05290   ::ksp_preconditioner_type::ilu,
05291   ::ksp_preconditioner_type::jacobi,
05292   ::ksp_preconditioner_type::none
05293 };
05294 
05295 // simulation_type
05296 //
05297 
05298 // simulation_type::Stimuli::_xsd_Stimuli_::Stimuli
05299 //
05300 
05301 simulation_type::Stimuli::_xsd_Stimuli_::Stimuli::
05302 Stimuli ()
05303 : ::xml_schema::type (),
05304 _xsd_Stimulus_ (::xml_schema::flags (), this)
05305 {
05306 }
05307 
05308 simulation_type::Stimuli::_xsd_Stimuli_::Stimuli::
05309 Stimuli (const Stimuli& _xsd_Stimuli,
05310          ::xml_schema::flags f,
05311          ::xml_schema::type* c)
05312 : ::xml_schema::type (_xsd_Stimuli, f, c),
05313 _xsd_Stimulus_ (_xsd_Stimuli._xsd_Stimulus_,
05314                 f | ::xml_schema::flags::not_root,
05315                 this)
05316 {
05317 }
05318 
05319 simulation_type::Stimuli::_xsd_Stimuli_::Stimuli::
05320 Stimuli (const ::xercesc::DOMElement& e,
05321          ::xml_schema::flags f,
05322          ::xml_schema::type* c)
05323 : ::xml_schema::type (e, f, c),
05324 _xsd_Stimulus_ (f | ::xml_schema::flags::not_root, this)
05325 {
05326   parse (e, f);
05327 }
05328 
05329 void simulation_type::Stimuli::_xsd_Stimuli_::Stimuli::
05330 parse (const ::xercesc::DOMElement& e, ::xml_schema::flags f)
05331 {
05332   ::xsd::cxx::xml::dom::parser< char > p (e);
05333 
05334   while (p.more_elements ())
05335   {
05336     const ::xsd::cxx::xml::dom::element< char > e (p.next_element ());
05337 
05338     // Stimulus
05339     //
05340     {
05341       if (e.name () == "Stimulus" && e.namespace_ ().empty ())
05342       {
05343         ::std::auto_ptr< Stimulus::type > r (
05344           Stimulus::traits::create (
05345             e.dom_element (),
05346             f | ::xml_schema::flags::not_root,
05347             this));
05348 
05349         this->Stimulus ().push_back (r);
05350         continue;
05351       }
05352     }
05353   }
05354 }
05355 
05356 simulation_type::Stimuli::_xsd_Stimuli_::Stimuli* simulation_type::Stimuli::_xsd_Stimuli_::Stimuli::
05357 _clone (::xml_schema::flags f,
05358         ::xml_schema::type* c) const
05359 {
05360   return new Stimuli (*this, f, c);
05361 }
05362 
05363 // simulation_type::CellHeterogeneities::_xsd_CellHeterogeneities_::CellHeterogeneities
05364 //
05365 
05366 simulation_type::CellHeterogeneities::_xsd_CellHeterogeneities_::CellHeterogeneities::
05367 CellHeterogeneities ()
05368 : ::xml_schema::type (),
05369 _xsd_CellHeterogeneity_ (::xml_schema::flags (), this)
05370 {
05371 }
05372 
05373 simulation_type::CellHeterogeneities::_xsd_CellHeterogeneities_::CellHeterogeneities::
05374 CellHeterogeneities (const CellHeterogeneities& _xsd_CellHeterogeneities,
05375                      ::xml_schema::flags f,
05376                      ::xml_schema::type* c)
05377 : ::xml_schema::type (_xsd_CellHeterogeneities, f, c),
05378 _xsd_CellHeterogeneity_ (_xsd_CellHeterogeneities._xsd_CellHeterogeneity_,
05379                          f | ::xml_schema::flags::not_root,
05380                          this)
05381 {
05382 }
05383 
05384 simulation_type::CellHeterogeneities::_xsd_CellHeterogeneities_::CellHeterogeneities::
05385 CellHeterogeneities (const ::xercesc::DOMElement& e,
05386                      ::xml_schema::flags f,
05387                      ::xml_schema::type* c)
05388 : ::xml_schema::type (e, f, c),
05389 _xsd_CellHeterogeneity_ (f | ::xml_schema::flags::not_root, this)
05390 {
05391   parse (e, f);
05392 }
05393 
05394 void simulation_type::CellHeterogeneities::_xsd_CellHeterogeneities_::CellHeterogeneities::
05395 parse (const ::xercesc::DOMElement& e, ::xml_schema::flags f)
05396 {
05397   ::xsd::cxx::xml::dom::parser< char > p (e);
05398 
05399   while (p.more_elements ())
05400   {
05401     const ::xsd::cxx::xml::dom::element< char > e (p.next_element ());
05402 
05403     // CellHeterogeneity
05404     //
05405     {
05406       if (e.name () == "CellHeterogeneity" && e.namespace_ ().empty ())
05407       {
05408         ::std::auto_ptr< CellHeterogeneity::type > r (
05409           CellHeterogeneity::traits::create (
05410             e.dom_element (),
05411             f | ::xml_schema::flags::not_root,
05412             this));
05413 
05414         this->CellHeterogeneity ().push_back (r);
05415         continue;
05416       }
05417     }
05418   }
05419 }
05420 
05421 simulation_type::CellHeterogeneities::_xsd_CellHeterogeneities_::CellHeterogeneities* simulation_type::CellHeterogeneities::_xsd_CellHeterogeneities_::CellHeterogeneities::
05422 _clone (::xml_schema::flags f,
05423         ::xml_schema::type* c) const
05424 {
05425   return new CellHeterogeneities (*this, f, c);
05426 }
05427 
05428 // simulation_type::ConductivityHeterogeneities::_xsd_ConductivityHeterogeneities_::ConductivityHeterogeneities
05429 //
05430 
05431 simulation_type::ConductivityHeterogeneities::_xsd_ConductivityHeterogeneities_::ConductivityHeterogeneities::
05432 ConductivityHeterogeneities ()
05433 : ::xml_schema::type (),
05434 _xsd_ConductivityHeterogeneity_ (::xml_schema::flags (), this)
05435 {
05436 }
05437 
05438 simulation_type::ConductivityHeterogeneities::_xsd_ConductivityHeterogeneities_::ConductivityHeterogeneities::
05439 ConductivityHeterogeneities (const ConductivityHeterogeneities& _xsd_ConductivityHeterogeneities,
05440                              ::xml_schema::flags f,
05441                              ::xml_schema::type* c)
05442 : ::xml_schema::type (_xsd_ConductivityHeterogeneities, f, c),
05443 _xsd_ConductivityHeterogeneity_ (_xsd_ConductivityHeterogeneities._xsd_ConductivityHeterogeneity_,
05444                                  f | ::xml_schema::flags::not_root,
05445                                  this)
05446 {
05447 }
05448 
05449 simulation_type::ConductivityHeterogeneities::_xsd_ConductivityHeterogeneities_::ConductivityHeterogeneities::
05450 ConductivityHeterogeneities (const ::xercesc::DOMElement& e,
05451                              ::xml_schema::flags f,
05452                              ::xml_schema::type* c)
05453 : ::xml_schema::type (e, f, c),
05454 _xsd_ConductivityHeterogeneity_ (f | ::xml_schema::flags::not_root, this)
05455 {
05456   parse (e, f);
05457 }
05458 
05459 void simulation_type::ConductivityHeterogeneities::_xsd_ConductivityHeterogeneities_::ConductivityHeterogeneities::
05460 parse (const ::xercesc::DOMElement& e, ::xml_schema::flags f)
05461 {
05462   ::xsd::cxx::xml::dom::parser< char > p (e);
05463 
05464   while (p.more_elements ())
05465   {
05466     const ::xsd::cxx::xml::dom::element< char > e (p.next_element ());
05467 
05468     // ConductivityHeterogeneity
05469     //
05470     {
05471       if (e.name () == "ConductivityHeterogeneity" && e.namespace_ ().empty ())
05472       {
05473         ::std::auto_ptr< ConductivityHeterogeneity::type > r (
05474           ConductivityHeterogeneity::traits::create (
05475             e.dom_element (),
05476             f | ::xml_schema::flags::not_root,
05477             this));
05478 
05479         this->ConductivityHeterogeneity ().push_back (r);
05480         continue;
05481       }
05482     }
05483   }
05484 }
05485 
05486 simulation_type::ConductivityHeterogeneities::_xsd_ConductivityHeterogeneities_::ConductivityHeterogeneities* simulation_type::ConductivityHeterogeneities::_xsd_ConductivityHeterogeneities_::ConductivityHeterogeneities::
05487 _clone (::xml_schema::flags f,
05488         ::xml_schema::type* c) const
05489 {
05490   return new ConductivityHeterogeneities (*this, f, c);
05491 }
05492 
05493 simulation_type::
05494 simulation_type ()
05495 : ::xml_schema::type (),
05496 _xsd_SpaceDimension_ (::xml_schema::flags (), this),
05497 _xsd_SimulationDuration_ (::xml_schema::flags (), this),
05498 _xsd_Domain_ (::xml_schema::flags (), this),
05499 _xsd_Mesh_ (::xml_schema::flags (), this),
05500 _xsd_IonicModels_ (::xml_schema::flags (), this),
05501 _xsd_Stimuli_ (::xml_schema::flags (), this),
05502 _xsd_CellHeterogeneities_ (::xml_schema::flags (), this),
05503 _xsd_ConductivityHeterogeneities_ (::xml_schema::flags (), this),
05504 _xsd_OutputDirectory_ (::xml_schema::flags (), this),
05505 _xsd_OutputFilenamePrefix_ (::xml_schema::flags (), this)
05506 {
05507 }
05508 
05509 simulation_type::
05510 simulation_type (const simulation_type& _xsd_simulation_type,
05511                  ::xml_schema::flags f,
05512                  ::xml_schema::type* c)
05513 : ::xml_schema::type (_xsd_simulation_type, f, c),
05514 _xsd_SpaceDimension_ (_xsd_simulation_type._xsd_SpaceDimension_,
05515                       f | ::xml_schema::flags::not_root,
05516                       this),
05517 _xsd_SimulationDuration_ (_xsd_simulation_type._xsd_SimulationDuration_,
05518                           f | ::xml_schema::flags::not_root,
05519                           this),
05520 _xsd_Domain_ (_xsd_simulation_type._xsd_Domain_,
05521               f | ::xml_schema::flags::not_root,
05522               this),
05523 _xsd_Mesh_ (_xsd_simulation_type._xsd_Mesh_,
05524             f | ::xml_schema::flags::not_root,
05525             this),
05526 _xsd_IonicModels_ (_xsd_simulation_type._xsd_IonicModels_,
05527                    f | ::xml_schema::flags::not_root,
05528                    this),
05529 _xsd_Stimuli_ (_xsd_simulation_type._xsd_Stimuli_,
05530                f | ::xml_schema::flags::not_root,
05531                this),
05532 _xsd_CellHeterogeneities_ (_xsd_simulation_type._xsd_CellHeterogeneities_,
05533                            f | ::xml_schema::flags::not_root,
05534                            this),
05535 _xsd_ConductivityHeterogeneities_ (_xsd_simulation_type._xsd_ConductivityHeterogeneities_,
05536                                    f | ::xml_schema::flags::not_root,
05537                                    this),
05538 _xsd_OutputDirectory_ (_xsd_simulation_type._xsd_OutputDirectory_,
05539                        f | ::xml_schema::flags::not_root,
05540                        this),
05541 _xsd_OutputFilenamePrefix_ (_xsd_simulation_type._xsd_OutputFilenamePrefix_,
05542                             f | ::xml_schema::flags::not_root,
05543                             this)
05544 {
05545 }
05546 
05547 simulation_type::
05548 simulation_type (const ::xercesc::DOMElement& e,
05549                  ::xml_schema::flags f,
05550                  ::xml_schema::type* c)
05551 : ::xml_schema::type (e, f, c),
05552 _xsd_SpaceDimension_ (f | ::xml_schema::flags::not_root, this),
05553 _xsd_SimulationDuration_ (f | ::xml_schema::flags::not_root, this),
05554 _xsd_Domain_ (f | ::xml_schema::flags::not_root, this),
05555 _xsd_Mesh_ (f | ::xml_schema::flags::not_root, this),
05556 _xsd_IonicModels_ (f | ::xml_schema::flags::not_root, this),
05557 _xsd_Stimuli_ (f | ::xml_schema::flags::not_root, this),
05558 _xsd_CellHeterogeneities_ (f | ::xml_schema::flags::not_root, this),
05559 _xsd_ConductivityHeterogeneities_ (f | ::xml_schema::flags::not_root, this),
05560 _xsd_OutputDirectory_ (f | ::xml_schema::flags::not_root, this),
05561 _xsd_OutputFilenamePrefix_ (f | ::xml_schema::flags::not_root, this)
05562 {
05563   parse (e, f);
05564 }
05565 
05566 void simulation_type::
05567 parse (const ::xercesc::DOMElement& e, ::xml_schema::flags f)
05568 {
05569   ::xsd::cxx::xml::dom::parser< char > p (e);
05570 
05571   while (p.more_elements ())
05572   {
05573     const ::xsd::cxx::xml::dom::element< char > e (p.next_element ());
05574 
05575     // SpaceDimension
05576     //
05577     {
05578       if (e.name () == "SpaceDimension" && e.namespace_ ().empty ())
05579       {
05580         if (this->SpaceDimension ())
05581           continue;
05582         this->SpaceDimension (
05583           SpaceDimension::traits::create (
05584             e.dom_element (),
05585             f | ::xml_schema::flags::not_root,
05586             this));
05587         continue;
05588       }
05589     }
05590 
05591     // SimulationDuration
05592     //
05593     {
05594       if (e.name () == "SimulationDuration" && e.namespace_ ().empty ())
05595       {
05596         ::std::auto_ptr< SimulationDuration::type > r (
05597           SimulationDuration::traits::create (
05598             e.dom_element (),
05599             f | ::xml_schema::flags::not_root,
05600             this));
05601 
05602         if (this->SimulationDuration ())
05603           continue;
05604         this->SimulationDuration (r);
05605         continue;
05606       }
05607     }
05608 
05609     // Domain
05610     //
05611     {
05612       if (e.name () == "Domain" && e.namespace_ ().empty ())
05613       {
05614         ::std::auto_ptr< Domain::type > r (
05615           Domain::traits::create (
05616             e.dom_element (),
05617             f | ::xml_schema::flags::not_root,
05618             this));
05619 
05620         if (this->Domain ())
05621           continue;
05622         this->Domain (r);
05623         continue;
05624       }
05625     }
05626 
05627     // Mesh
05628     //
05629     {
05630       if (e.name () == "Mesh" && e.namespace_ ().empty ())
05631       {
05632         ::std::auto_ptr< Mesh::type > r (
05633           Mesh::traits::create (
05634             e.dom_element (),
05635             f | ::xml_schema::flags::not_root,
05636             this));
05637 
05638         if (this->Mesh ())
05639           continue;
05640         this->Mesh (r);
05641         continue;
05642       }
05643     }
05644 
05645     // IonicModels
05646     //
05647     {
05648       if (e.name () == "IonicModels" && e.namespace_ ().empty ())
05649       {
05650         ::std::auto_ptr< IonicModels::type > r (
05651           IonicModels::traits::create (
05652             e.dom_element (),
05653             f | ::xml_schema::flags::not_root,
05654             this));
05655 
05656         if (this->IonicModels ())
05657           continue;
05658         this->IonicModels (r);
05659         continue;
05660       }
05661     }
05662 
05663     // Stimuli
05664     //
05665     {
05666       if (e.name () == "Stimuli" && e.namespace_ ().empty ())
05667       {
05668         ::std::auto_ptr< Stimuli::type > r (
05669           Stimuli::traits::create (
05670             e.dom_element (),
05671             f | ::xml_schema::flags::not_root,
05672             this));
05673 
05674         if (this->Stimuli ())
05675           continue;
05676         this->Stimuli (r);
05677         continue;
05678       }
05679     }
05680 
05681     // CellHeterogeneities
05682     //
05683     {
05684       if (e.name () == "CellHeterogeneities" && e.namespace_ ().empty ())
05685       {
05686         ::std::auto_ptr< CellHeterogeneities::type > r (
05687           CellHeterogeneities::traits::create (
05688             e.dom_element (),
05689             f | ::xml_schema::flags::not_root,
05690             this));
05691 
05692         if (this->CellHeterogeneities ())
05693           continue;
05694         this->CellHeterogeneities (r);
05695         continue;
05696       }
05697     }
05698 
05699     // ConductivityHeterogeneities
05700     //
05701     {
05702       if (e.name () == "ConductivityHeterogeneities" && e.namespace_ ().empty ())
05703       {
05704         ::std::auto_ptr< ConductivityHeterogeneities::type > r (
05705           ConductivityHeterogeneities::traits::create (
05706             e.dom_element (),
05707             f | ::xml_schema::flags::not_root,
05708             this));
05709 
05710         if (this->ConductivityHeterogeneities ())
05711           continue;
05712         this->ConductivityHeterogeneities (r);
05713         continue;
05714       }
05715     }
05716 
05717     // OutputDirectory
05718     //
05719     {
05720       if (e.name () == "OutputDirectory" && e.namespace_ ().empty ())
05721       {
05722         ::std::auto_ptr< OutputDirectory::type > r (
05723           OutputDirectory::traits::create (
05724             e.dom_element (),
05725             f | ::xml_schema::flags::not_root,
05726             this));
05727 
05728         if (this->OutputDirectory ())
05729           continue;
05730         this->OutputDirectory (r);
05731         continue;
05732       }
05733     }
05734 
05735     // OutputFilenamePrefix
05736     //
05737     {
05738       if (e.name () == "OutputFilenamePrefix" && e.namespace_ ().empty ())
05739       {
05740         ::std::auto_ptr< OutputFilenamePrefix::type > r (
05741           OutputFilenamePrefix::traits::create (
05742             e.dom_element (),
05743             f | ::xml_schema::flags::not_root,
05744             this));
05745 
05746         if (this->OutputFilenamePrefix ())
05747           continue;
05748         this->OutputFilenamePrefix (r);
05749         continue;
05750       }
05751     }
05752   }
05753 }
05754 
05755 simulation_type* simulation_type::
05756 _clone (::xml_schema::flags f,
05757         ::xml_schema::type* c) const
05758 {
05759   return new simulation_type (*this, f, c);
05760 }
05761 
05762 // physiological_type
05763 //
05764 
05765 physiological_type::
05766 physiological_type ()
05767 : ::xml_schema::type (),
05768 _xsd_IntracellularConductivities_ (::xml_schema::flags (), this),
05769 _xsd_ExtracellularConductivities_ (::xml_schema::flags (), this),
05770 _xsd_BathConductivity_ (::xml_schema::flags (), this),
05771 _xsd_SurfaceAreaToVolumeRatio_ (::xml_schema::flags (), this),
05772 _xsd_Capacitance_ (::xml_schema::flags (), this)
05773 {
05774 }
05775 
05776 physiological_type::
05777 physiological_type (const physiological_type& _xsd_physiological_type,
05778                     ::xml_schema::flags f,
05779                     ::xml_schema::type* c)
05780 : ::xml_schema::type (_xsd_physiological_type, f, c),
05781 _xsd_IntracellularConductivities_ (_xsd_physiological_type._xsd_IntracellularConductivities_,
05782                                    f | ::xml_schema::flags::not_root,
05783                                    this),
05784 _xsd_ExtracellularConductivities_ (_xsd_physiological_type._xsd_ExtracellularConductivities_,
05785                                    f | ::xml_schema::flags::not_root,
05786                                    this),
05787 _xsd_BathConductivity_ (_xsd_physiological_type._xsd_BathConductivity_,
05788                         f | ::xml_schema::flags::not_root,
05789                         this),
05790 _xsd_SurfaceAreaToVolumeRatio_ (_xsd_physiological_type._xsd_SurfaceAreaToVolumeRatio_,
05791                                 f | ::xml_schema::flags::not_root,
05792                                 this),
05793 _xsd_Capacitance_ (_xsd_physiological_type._xsd_Capacitance_,
05794                    f | ::xml_schema::flags::not_root,
05795                    this)
05796 {
05797 }
05798 
05799 physiological_type::
05800 physiological_type (const ::xercesc::DOMElement& e,
05801                     ::xml_schema::flags f,
05802                     ::xml_schema::type* c)
05803 : ::xml_schema::type (e, f, c),
05804 _xsd_IntracellularConductivities_ (f | ::xml_schema::flags::not_root, this),
05805 _xsd_ExtracellularConductivities_ (f | ::xml_schema::flags::not_root, this),
05806 _xsd_BathConductivity_ (f | ::xml_schema::flags::not_root, this),
05807 _xsd_SurfaceAreaToVolumeRatio_ (f | ::xml_schema::flags::not_root, this),
05808 _xsd_Capacitance_ (f | ::xml_schema::flags::not_root, this)
05809 {
05810   parse (e, f);
05811 }
05812 
05813 void physiological_type::
05814 parse (const ::xercesc::DOMElement& e, ::xml_schema::flags f)
05815 {
05816   ::xsd::cxx::xml::dom::parser< char > p (e);
05817 
05818   while (p.more_elements ())
05819   {
05820     const ::xsd::cxx::xml::dom::element< char > e (p.next_element ());
05821 
05822     // IntracellularConductivities
05823     //
05824     {
05825       if (e.name () == "IntracellularConductivities" && e.namespace_ ().empty ())
05826       {
05827         ::std::auto_ptr< IntracellularConductivities::type > r (
05828           IntracellularConductivities::traits::create (
05829             e.dom_element (),
05830             f | ::xml_schema::flags::not_root,
05831             this));
05832 
05833         if (this->IntracellularConductivities ())
05834           continue;
05835         this->IntracellularConductivities (r);
05836         continue;
05837       }
05838     }
05839 
05840     // ExtracellularConductivities
05841     //
05842     {
05843       if (e.name () == "ExtracellularConductivities" && e.namespace_ ().empty ())
05844       {
05845         ::std::auto_ptr< ExtracellularConductivities::type > r (
05846           ExtracellularConductivities::traits::create (
05847             e.dom_element (),
05848             f | ::xml_schema::flags::not_root,
05849             this));
05850 
05851         if (this->ExtracellularConductivities ())
05852           continue;
05853         this->ExtracellularConductivities (r);
05854         continue;
05855       }
05856     }
05857 
05858     // BathConductivity
05859     //
05860     {
05861       if (e.name () == "BathConductivity" && e.namespace_ ().empty ())
05862       {
05863         ::std::auto_ptr< BathConductivity::type > r (
05864           BathConductivity::traits::create (
05865             e.dom_element (),
05866             f | ::xml_schema::flags::not_root,
05867             this));
05868 
05869         if (this->BathConductivity ())
05870           continue;
05871         this->BathConductivity (r);
05872         continue;
05873       }
05874     }
05875 
05876     // SurfaceAreaToVolumeRatio
05877     //
05878     {
05879       if (e.name () == "SurfaceAreaToVolumeRatio" && e.namespace_ ().empty ())
05880       {
05881         ::std::auto_ptr< SurfaceAreaToVolumeRatio::type > r (
05882           SurfaceAreaToVolumeRatio::traits::create (
05883             e.dom_element (),
05884             f | ::xml_schema::flags::not_root,
05885             this));
05886 
05887         if (this->SurfaceAreaToVolumeRatio ())
05888           continue;
05889         this->SurfaceAreaToVolumeRatio (r);
05890         continue;
05891       }
05892     }
05893 
05894     // Capacitance
05895     //
05896     {
05897       if (e.name () == "Capacitance" && e.namespace_ ().empty ())
05898       {
05899         ::std::auto_ptr< Capacitance::type > r (
05900           Capacitance::traits::create (
05901             e.dom_element (),
05902             f | ::xml_schema::flags::not_root,
05903             this));
05904 
05905         if (this->Capacitance ())
05906           continue;
05907         this->Capacitance (r);
05908         continue;
05909       }
05910     }
05911   }
05912 }
05913 
05914 physiological_type* physiological_type::
05915 _clone (::xml_schema::flags f,
05916         ::xml_schema::type* c) const
05917 {
05918   return new physiological_type (*this, f, c);
05919 }
05920 
05921 // numerical_type
05922 //
05923 
05924 numerical_type::
05925 numerical_type ()
05926 : ::xml_schema::type (),
05927 _xsd_TimeSteps_ (::xml_schema::flags (), this),
05928 _xsd_KSPTolerances_ (::xml_schema::flags (), this),
05929 _xsd_KSPSolver_ (::xml_schema::flags (), this),
05930 _xsd_KSPPreconditioner_ (::xml_schema::flags (), this)
05931 {
05932 }
05933 
05934 numerical_type::
05935 numerical_type (const numerical_type& _xsd_numerical_type,
05936                 ::xml_schema::flags f,
05937                 ::xml_schema::type* c)
05938 : ::xml_schema::type (_xsd_numerical_type, f, c),
05939 _xsd_TimeSteps_ (_xsd_numerical_type._xsd_TimeSteps_,
05940                  f | ::xml_schema::flags::not_root,
05941                  this),
05942 _xsd_KSPTolerances_ (_xsd_numerical_type._xsd_KSPTolerances_,
05943                      f | ::xml_schema::flags::not_root,
05944                      this),
05945 _xsd_KSPSolver_ (_xsd_numerical_type._xsd_KSPSolver_,
05946                  f | ::xml_schema::flags::not_root,
05947                  this),
05948 _xsd_KSPPreconditioner_ (_xsd_numerical_type._xsd_KSPPreconditioner_,
05949                          f | ::xml_schema::flags::not_root,
05950                          this)
05951 {
05952 }
05953 
05954 numerical_type::
05955 numerical_type (const ::xercesc::DOMElement& e,
05956                 ::xml_schema::flags f,
05957                 ::xml_schema::type* c)
05958 : ::xml_schema::type (e, f, c),
05959 _xsd_TimeSteps_ (f | ::xml_schema::flags::not_root, this),
05960 _xsd_KSPTolerances_ (f | ::xml_schema::flags::not_root, this),
05961 _xsd_KSPSolver_ (f | ::xml_schema::flags::not_root, this),
05962 _xsd_KSPPreconditioner_ (f | ::xml_schema::flags::not_root, this)
05963 {
05964   parse (e, f);
05965 }
05966 
05967 void numerical_type::
05968 parse (const ::xercesc::DOMElement& e, ::xml_schema::flags f)
05969 {
05970   ::xsd::cxx::xml::dom::parser< char > p (e);
05971 
05972   while (p.more_elements ())
05973   {
05974     const ::xsd::cxx::xml::dom::element< char > e (p.next_element ());
05975 
05976     // TimeSteps
05977     //
05978     {
05979       if (e.name () == "TimeSteps" && e.namespace_ ().empty ())
05980       {
05981         ::std::auto_ptr< TimeSteps::type > r (
05982           TimeSteps::traits::create (
05983             e.dom_element (),
05984             f | ::xml_schema::flags::not_root,
05985             this));
05986 
05987         if (this->TimeSteps ())
05988           continue;
05989         this->TimeSteps (r);
05990         continue;
05991       }
05992     }
05993 
05994     // KSPTolerances
05995     //
05996     {
05997       if (e.name () == "KSPTolerances" && e.namespace_ ().empty ())
05998       {
05999         ::std::auto_ptr< KSPTolerances::type > r (
06000           KSPTolerances::traits::create (
06001             e.dom_element (),
06002             f | ::xml_schema::flags::not_root,
06003             this));
06004 
06005         if (this->KSPTolerances ())
06006           continue;
06007         this->KSPTolerances (r);
06008         continue;
06009       }
06010     }
06011 
06012     // KSPSolver
06013     //
06014     {
06015       if (e.name () == "KSPSolver" && e.namespace_ ().empty ())
06016       {
06017         ::std::auto_ptr< KSPSolver::type > r (
06018           KSPSolver::traits::create (
06019             e.dom_element (),
06020             f | ::xml_schema::flags::not_root,
06021             this));
06022 
06023         if (this->KSPSolver ())
06024           continue;
06025         this->KSPSolver (r);
06026         continue;
06027       }
06028     }
06029 
06030     // KSPPreconditioner
06031     //
06032     {
06033       if (e.name () == "KSPPreconditioner" && e.namespace_ ().empty ())
06034       {
06035         ::std::auto_ptr< KSPPreconditioner::type > r (
06036           KSPPreconditioner::traits::create (
06037             e.dom_element (),
06038             f | ::xml_schema::flags::not_root,
06039             this));
06040 
06041         if (this->KSPPreconditioner ())
06042           continue;
06043         this->KSPPreconditioner (r);
06044         continue;
06045       }
06046     }
06047   }
06048 }
06049 
06050 numerical_type* numerical_type::
06051 _clone (::xml_schema::flags f,
06052         ::xml_schema::type* c) const
06053 {
06054   return new numerical_type (*this, f, c);
06055 }
06056 
06057 // chaste_parameters_type
06058 //
06059 
06060 chaste_parameters_type::
06061 chaste_parameters_type (const Simulation::type& _xsd_Simulation,
06062                         const Physiological::type& _xsd_Physiological,
06063                         const Numerical::type& _xsd_Numerical)
06064 : ::xml_schema::type (),
06065 _xsd_Simulation_ (_xsd_Simulation,
06066                   ::xml_schema::flags (),
06067                   this),
06068 _xsd_Physiological_ (_xsd_Physiological,
06069                      ::xml_schema::flags (),
06070                      this),
06071 _xsd_Numerical_ (_xsd_Numerical,
06072                  ::xml_schema::flags (),
06073                  this)
06074 {
06075 }
06076 
06077 chaste_parameters_type::
06078 chaste_parameters_type (const chaste_parameters_type& _xsd_chaste_parameters_type,
06079                         ::xml_schema::flags f,
06080                         ::xml_schema::type* c)
06081 : ::xml_schema::type (_xsd_chaste_parameters_type, f, c),
06082 _xsd_Simulation_ (_xsd_chaste_parameters_type._xsd_Simulation_,
06083                   f | ::xml_schema::flags::not_root,
06084                   this),
06085 _xsd_Physiological_ (_xsd_chaste_parameters_type._xsd_Physiological_,
06086                      f | ::xml_schema::flags::not_root,
06087                      this),
06088 _xsd_Numerical_ (_xsd_chaste_parameters_type._xsd_Numerical_,
06089                  f | ::xml_schema::flags::not_root,
06090                  this)
06091 {
06092 }
06093 
06094 chaste_parameters_type::
06095 chaste_parameters_type (const ::xercesc::DOMElement& e,
06096                         ::xml_schema::flags f,
06097                         ::xml_schema::type* c)
06098 : ::xml_schema::type (e, f, c),
06099 _xsd_Simulation_ (f | ::xml_schema::flags::not_root, this),
06100 _xsd_Physiological_ (f | ::xml_schema::flags::not_root, this),
06101 _xsd_Numerical_ (f | ::xml_schema::flags::not_root, this)
06102 {
06103   parse (e, f);
06104 }
06105 
06106 void chaste_parameters_type::
06107 parse (const ::xercesc::DOMElement& e, ::xml_schema::flags f)
06108 {
06109   ::xsd::cxx::xml::dom::parser< char > p (e);
06110 
06111   while (p.more_elements ())
06112   {
06113     const ::xsd::cxx::xml::dom::element< char > e (p.next_element ());
06114 
06115     // Simulation
06116     //
06117     {
06118       if (e.name () == "Simulation" && e.namespace_ ().empty ())
06119       {
06120         ::std::auto_ptr< Simulation::type > r (
06121           Simulation::traits::create (
06122             e.dom_element (),
06123             f | ::xml_schema::flags::not_root,
06124             this));
06125 
06126         if (_xsd_Simulation_.present ())
06127           continue;
06128         this->Simulation (r);
06129         continue;
06130       }
06131     }
06132 
06133     // Physiological
06134     //
06135     {
06136       if (e.name () == "Physiological" && e.namespace_ ().empty ())
06137       {
06138         ::std::auto_ptr< Physiological::type > r (
06139           Physiological::traits::create (
06140             e.dom_element (),
06141             f | ::xml_schema::flags::not_root,
06142             this));
06143 
06144         if (_xsd_Physiological_.present ())
06145           continue;
06146         this->Physiological (r);
06147         continue;
06148       }
06149     }
06150 
06151     // Numerical
06152     //
06153     {
06154       if (e.name () == "Numerical" && e.namespace_ ().empty ())
06155       {
06156         ::std::auto_ptr< Numerical::type > r (
06157           Numerical::traits::create (
06158             e.dom_element (),
06159             f | ::xml_schema::flags::not_root,
06160             this));
06161 
06162         if (_xsd_Numerical_.present ())
06163           continue;
06164         this->Numerical (r);
06165         continue;
06166       }
06167     }
06168   }
06169 
06170   if (!_xsd_Simulation_.present ())
06171   {
06172     throw ::xsd::cxx::tree::expected_element< char > (
06173       "Simulation",
06174       "");
06175   }
06176 
06177   if (!_xsd_Physiological_.present ())
06178   {
06179     throw ::xsd::cxx::tree::expected_element< char > (
06180       "Physiological",
06181       "");
06182   }
06183 
06184   if (!_xsd_Numerical_.present ())
06185   {
06186     throw ::xsd::cxx::tree::expected_element< char > (
06187       "Numerical",
06188       "");
06189   }
06190 }
06191 
06192 chaste_parameters_type* chaste_parameters_type::
06193 _clone (::xml_schema::flags f,
06194         ::xml_schema::type* c) const
06195 {
06196   return new chaste_parameters_type (*this, f, c);
06197 }
06198 
06199 #include <istream>
06200 #include <xercesc/framework/Wrapper4InputSource.hpp>
06201 #include <xsd/cxx/xml/sax/std-input-source.hxx>
06202 #include <xsd/cxx/tree/error-handler.hxx>
06203 
06204 ::std::auto_ptr< ::chaste_parameters_type >
06205 ChasteParameters (const ::std::basic_string< char >& u,
06206                   ::xml_schema::flags f,
06207                   const ::xsd::cxx::tree::properties< char >& p)
06208 {
06209   ::xsd::cxx::xml::auto_initializer i (
06210     (f & ::xml_schema::flags::dont_initialize) == 0,
06211     (f & ::xml_schema::flags::keep_dom) == 0);
06212 
06213   ::xsd::cxx::tree::error_handler< char > h;
06214 
06215   ::xsd::cxx::xml::dom::auto_ptr< ::xercesc::DOMDocument > d (
06216     ::xsd::cxx::xml::dom::parse< char > (u, h, p, f));
06217 
06218   h.throw_if_failed< ::xsd::cxx::tree::parsing< char > > ();
06219 
06220   return ::ChasteParameters (
06221     static_cast< const ::xercesc::DOMDocument& > (*d), f);
06222 }
06223 
06224 ::std::auto_ptr< ::chaste_parameters_type >
06225 ChasteParameters (const ::std::basic_string< char >& u,
06226                   ::xsd::cxx::xml::error_handler< char >& h,
06227                   ::xml_schema::flags f,
06228                   const ::xsd::cxx::tree::properties< char >& p)
06229 {
06230   ::xsd::cxx::xml::auto_initializer i (
06231     (f & ::xml_schema::flags::dont_initialize) == 0,
06232     (f & ::xml_schema::flags::keep_dom) == 0);
06233 
06234   ::xsd::cxx::xml::dom::auto_ptr< ::xercesc::DOMDocument > d (
06235     ::xsd::cxx::xml::dom::parse< char > (u, h, p, f));
06236 
06237   if (!d)
06238   {
06239     throw ::xsd::cxx::tree::parsing< char > ();
06240   }
06241 
06242   return ::ChasteParameters (
06243     static_cast< const ::xercesc::DOMDocument& > (*d), f);
06244 }
06245 
06246 ::std::auto_ptr< ::chaste_parameters_type >
06247 ChasteParameters (const ::std::basic_string< char >& u,
06248                   ::xercesc::DOMErrorHandler& h,
06249                   ::xml_schema::flags f,
06250                   const ::xsd::cxx::tree::properties< char >& p)
06251 {
06252   ::xsd::cxx::xml::dom::auto_ptr< ::xercesc::DOMDocument > d (
06253     ::xsd::cxx::xml::dom::parse< char > (u, h, p, f));
06254 
06255   if (!d)
06256   {
06257     throw ::xsd::cxx::tree::parsing< char > ();
06258   }
06259 
06260   return ::ChasteParameters (
06261     static_cast< const ::xercesc::DOMDocument& > (*d), f);
06262 }
06263 
06264 ::std::auto_ptr< ::chaste_parameters_type >
06265 ChasteParameters (::std::istream& is,
06266                   ::xml_schema::flags f,
06267                   const ::xsd::cxx::tree::properties< char >& p)
06268 {
06269   ::xsd::cxx::xml::auto_initializer i (
06270     (f & ::xml_schema::flags::dont_initialize) == 0,
06271     (f & ::xml_schema::flags::keep_dom) == 0);
06272 
06273   ::xsd::cxx::xml::sax::std_input_source isrc (is);
06274   ::xercesc::Wrapper4InputSource wrap (&isrc, false);
06275   return ::ChasteParameters (wrap, f, p);
06276 }
06277 
06278 ::std::auto_ptr< ::chaste_parameters_type >
06279 ChasteParameters (::std::istream& is,
06280                   ::xsd::cxx::xml::error_handler< char >& h,
06281                   ::xml_schema::flags f,
06282                   const ::xsd::cxx::tree::properties< char >& p)
06283 {
06284   ::xsd::cxx::xml::auto_initializer i (
06285     (f & ::xml_schema::flags::dont_initialize) == 0,
06286     (f & ::xml_schema::flags::keep_dom) == 0);
06287 
06288   ::xsd::cxx::xml::sax::std_input_source isrc (is);
06289   ::xercesc::Wrapper4InputSource wrap (&isrc, false);
06290   return ::ChasteParameters (wrap, h, f, p);
06291 }
06292 
06293 ::std::auto_ptr< ::chaste_parameters_type >
06294 ChasteParameters (::std::istream& is,
06295                   ::xercesc::DOMErrorHandler& h,
06296                   ::xml_schema::flags f,
06297                   const ::xsd::cxx::tree::properties< char >& p)
06298 {
06299   ::xsd::cxx::xml::sax::std_input_source isrc (is);
06300   ::xercesc::Wrapper4InputSource wrap (&isrc, false);
06301   return ::ChasteParameters (wrap, h, f, p);
06302 }
06303 
06304 ::std::auto_ptr< ::chaste_parameters_type >
06305 ChasteParameters (::std::istream& is,
06306                   const ::std::basic_string< char >& sid,
06307                   ::xml_schema::flags f,
06308                   const ::xsd::cxx::tree::properties< char >& p)
06309 {
06310   ::xsd::cxx::xml::auto_initializer i (
06311     (f & ::xml_schema::flags::dont_initialize) == 0,
06312     (f & ::xml_schema::flags::keep_dom) == 0);
06313 
06314   ::xsd::cxx::xml::sax::std_input_source isrc (is, sid);
06315   ::xercesc::Wrapper4InputSource wrap (&isrc, false);
06316   return ::ChasteParameters (wrap, f, p);
06317 }
06318 
06319 ::std::auto_ptr< ::chaste_parameters_type >
06320 ChasteParameters (::std::istream& is,
06321                   const ::std::basic_string< char >& sid,
06322                   ::xsd::cxx::xml::error_handler< char >& h,
06323                   ::xml_schema::flags f,
06324                   const ::xsd::cxx::tree::properties< char >& p)
06325 {
06326   ::xsd::cxx::xml::auto_initializer i (
06327     (f & ::xml_schema::flags::dont_initialize) == 0,
06328     (f & ::xml_schema::flags::keep_dom) == 0);
06329 
06330   ::xsd::cxx::xml::sax::std_input_source isrc (is, sid);
06331   ::xercesc::Wrapper4InputSource wrap (&isrc, false);
06332   return ::ChasteParameters (wrap, h, f, p);
06333 }
06334 
06335 ::std::auto_ptr< ::chaste_parameters_type >
06336 ChasteParameters (::std::istream& is,
06337                   const ::std::basic_string< char >& sid,
06338                   ::xercesc::DOMErrorHandler& h,
06339                   ::xml_schema::flags f,
06340                   const ::xsd::cxx::tree::properties< char >& p)
06341 {
06342   ::xsd::cxx::xml::sax::std_input_source isrc (is, sid);
06343   ::xercesc::Wrapper4InputSource wrap (&isrc, false);
06344   return ::ChasteParameters (wrap, h, f, p);
06345 }
06346 
06347 ::std::auto_ptr< ::chaste_parameters_type >
06348 ChasteParameters (const ::xercesc::DOMInputSource& i,
06349                   ::xml_schema::flags f,
06350                   const ::xsd::cxx::tree::properties< char >& p)
06351 {
06352   ::xsd::cxx::tree::error_handler< char > h;
06353 
06354   ::xsd::cxx::xml::dom::auto_ptr< ::xercesc::DOMDocument > d (
06355     ::xsd::cxx::xml::dom::parse< char > (i, h, p, f));
06356 
06357   h.throw_if_failed< ::xsd::cxx::tree::parsing< char > > ();
06358 
06359   return ::ChasteParameters (
06360     static_cast< const ::xercesc::DOMDocument& > (*d), f, p);
06361 }
06362 
06363 ::std::auto_ptr< ::chaste_parameters_type >
06364 ChasteParameters (const ::xercesc::DOMInputSource& i,
06365                   ::xsd::cxx::xml::error_handler< char >& h,
06366                   ::xml_schema::flags f,
06367                   const ::xsd::cxx::tree::properties< char >& p)
06368 {
06369   ::xsd::cxx::xml::dom::auto_ptr< ::xercesc::DOMDocument > d (
06370     ::xsd::cxx::xml::dom::parse< char > (i, h, p, f));
06371 
06372   if (!d)
06373   {
06374     throw ::xsd::cxx::tree::parsing< char > ();
06375   }
06376 
06377   return ::ChasteParameters (
06378     static_cast< const ::xercesc::DOMDocument& > (*d), f, p);
06379 }
06380 
06381 ::std::auto_ptr< ::chaste_parameters_type >
06382 ChasteParameters (const ::xercesc::DOMInputSource& i,
06383                   ::xercesc::DOMErrorHandler& h,
06384                   ::xml_schema::flags f,
06385                   const ::xsd::cxx::tree::properties< char >& p)
06386 {
06387   ::xsd::cxx::xml::dom::auto_ptr< ::xercesc::DOMDocument > d (
06388     ::xsd::cxx::xml::dom::parse< char > (i, h, p, f));
06389 
06390   if (!d)
06391   {
06392     throw ::xsd::cxx::tree::parsing< char > ();
06393   }
06394 
06395   return ::ChasteParameters (
06396     static_cast< const ::xercesc::DOMDocument& > (*d), f, p);
06397 }
06398 
06399 ::std::auto_ptr< ::chaste_parameters_type >
06400 ChasteParameters (const ::xercesc::DOMDocument& d,
06401                   ::xml_schema::flags f,
06402                   const ::xsd::cxx::tree::properties< char >&)
06403 {
06404   ::xsd::cxx::xml::dom::auto_ptr< ::xercesc::DOMDocument > c (
06405     (f & ::xml_schema::flags::keep_dom) 
06406     ? static_cast< ::xercesc::DOMDocument* > (d.cloneNode (true))
06407     : 0);
06408 
06409   const ::xsd::cxx::xml::dom::element< char > e (
06410     c.get ()
06411     ? *c->getDocumentElement ()
06412     : *d.getDocumentElement ());
06413 
06414   if (e.name () == "ChasteParameters" &&
06415       e.namespace_ () == "")
06416   {
06417     ::std::auto_ptr< ::chaste_parameters_type > r (
06418       ::xsd::cxx::tree::traits< ::chaste_parameters_type, char >::create (
06419         e.dom_element (), f, 0));
06420     if (f & ::xml_schema::flags::keep_dom) c.release ();
06421     return r;
06422   }
06423 
06424   throw ::xsd::cxx::tree::unexpected_element < char > (
06425     e.name (),
06426     e.namespace_ (),
06427     "ChasteParameters",
06428     "");
06429 }
06430 
06431 #include <ostream>
06432 #include <xsd/cxx/xml/dom/elements.hxx>
06433 #include <xsd/cxx/xml/dom/serialization.hxx>
06434 #include <xsd/cxx/tree/error-handler.hxx>
06435 
06436 void
06437 operator<< (::xercesc::DOMElement& e,
06438             const time_type& i)
06439 {
06440   e << static_cast< const ::xsd::cxx::tree::fundamental_base< ::xml_schema::decimal, char, ::xml_schema::simple_type >& > (i);
06441 
06442   {
06443     ::xsd::cxx::xml::dom::attribute< char > a (
06444       "unit",
06445       e);
06446 
06447     a.dom_attribute () << i.unit ();
06448   }
06449 }
06450 
06451 void
06452 operator<< (::xercesc::DOMElement& e,
06453             const dimensionless_type& i)
06454 {
06455   e << static_cast< const ::xsd::cxx::tree::fundamental_base< ::xml_schema::decimal, char, ::xml_schema::simple_type >& > (i);
06456 
06457   {
06458     ::xsd::cxx::xml::dom::attribute< char > a (
06459       "unit",
06460       e);
06461 
06462     a.dom_attribute () << i.unit ();
06463   }
06464 }
06465 
06466 void
06467 operator<< (::xercesc::DOMElement& e,
06468             const conductivity_type& i)
06469 {
06470   e << static_cast< const ::xsd::cxx::tree::fundamental_base< ::xml_schema::decimal, char, ::xml_schema::simple_type >& > (i);
06471 
06472   {
06473     ::xsd::cxx::xml::dom::attribute< char > a (
06474       "unit",
06475       e);
06476 
06477     a.dom_attribute () << i.unit ();
06478   }
06479 }
06480 
06481 void
06482 operator<< (::xercesc::DOMElement& e,
06483             const stimulus_strength_type& i)
06484 {
06485   e << static_cast< const ::xsd::cxx::tree::fundamental_base< ::xml_schema::decimal, char, ::xml_schema::simple_type >& > (i);
06486 
06487   {
06488     ::xsd::cxx::xml::dom::attribute< char > a (
06489       "unit",
06490       e);
06491 
06492     a.dom_attribute () << i.unit ();
06493   }
06494 }
06495 
06496 void
06497 operator<< (::xercesc::DOMElement& e,
06498             const inverse_length_type& i)
06499 {
06500   e << static_cast< const ::xsd::cxx::tree::fundamental_base< ::xml_schema::decimal, char, ::xml_schema::simple_type >& > (i);
06501 
06502   {
06503     ::xsd::cxx::xml::dom::attribute< char > a (
06504       "unit",
06505       e);
06506 
06507     a.dom_attribute () << i.unit ();
06508   }
06509 }
06510 
06511 void
06512 operator<< (::xercesc::DOMElement& e,
06513             const capacitance_type& i)
06514 {
06515   e << static_cast< const ::xsd::cxx::tree::fundamental_base< ::xml_schema::decimal, char, ::xml_schema::simple_type >& > (i);
06516 
06517   {
06518     ::xsd::cxx::xml::dom::attribute< char > a (
06519       "unit",
06520       e);
06521 
06522     a.dom_attribute () << i.unit ();
06523   }
06524 }
06525 
06526 void
06527 operator<< (::xercesc::DOMElement& e,
06528             const location_type& i)
06529 {
06530   while (::xercesc::DOMNode* n = e.getFirstChild ())
06531     e.removeChild (n);
06532 
06533   {
06534     ::xsd::cxx::xml::dom::element< char > s (
06535       "Cuboid",
06536       e);
06537     s.dom_element () << i.Cuboid ();
06538   }
06539 
06540   {
06541     ::xsd::cxx::xml::dom::attribute< char > a (
06542       "unit",
06543       e);
06544 
06545     a.dom_attribute () << i.unit ();
06546   }
06547 }
06548 
06549 void
06550 operator<< (::xercesc::DOMElement& e,
06551             domain_type i)
06552 {
06553   e << static_cast< const ::xml_schema::string& > (i);
06554 }
06555 
06556 void
06557 operator<< (::xercesc::DOMAttr& a,
06558             domain_type i)
06559 {
06560   a << static_cast< const ::xml_schema::string& > (i);
06561 }
06562 
06563 void
06564 operator<< (::xsd::cxx::tree::list_stream< char >& l,
06565             domain_type i)
06566 {
06567   l << static_cast< const ::xml_schema::string& > (i);
06568 }
06569 
06570 void
06571 operator<< (::xercesc::DOMElement& e,
06572             ionic_models_available_type i)
06573 {
06574   e << static_cast< const ::xml_schema::string& > (i);
06575 }
06576 
06577 void
06578 operator<< (::xercesc::DOMAttr& a,
06579             ionic_models_available_type i)
06580 {
06581   a << static_cast< const ::xml_schema::string& > (i);
06582 }
06583 
06584 void
06585 operator<< (::xsd::cxx::tree::list_stream< char >& l,
06586             ionic_models_available_type i)
06587 {
06588   l << static_cast< const ::xml_schema::string& > (i);
06589 }
06590 
06591 void
06592 operator<< (::xercesc::DOMElement& e,
06593             const ionic_model_region_type& i)
06594 {
06595   while (::xercesc::DOMNode* n = e.getFirstChild ())
06596     e.removeChild (n);
06597 
06598   {
06599     ::xsd::cxx::xml::dom::element< char > s (
06600       "IonicModel",
06601       e);
06602     s.dom_element () << i.IonicModel ();
06603   }
06604 
06605   {
06606     ::xsd::cxx::xml::dom::element< char > s (
06607       "Location",
06608       e);
06609     s.dom_element () << i.Location ();
06610   }
06611 }
06612 
06613 void
06614 operator<< (::xercesc::DOMElement& e,
06615             const ionic_models_type& i)
06616 {
06617   while (::xercesc::DOMNode* n = e.getFirstChild ())
06618     e.removeChild (n);
06619 
06620   {
06621     ::xsd::cxx::xml::dom::element< char > s (
06622       "Default",
06623       e);
06624     s.dom_element () << i.Default ();
06625   }
06626 
06627   {
06628     for (ionic_models_type::Region::const_iterator
06629          b (i.Region ().begin ()), n (i.Region ().end ());
06630          b != n; ++b)
06631     {
06632       ::xsd::cxx::xml::dom::element< char > s (
06633         "Region",
06634         e);
06635       s.dom_element () << *b;
06636     }
06637   }
06638 }
06639 
06640 void
06641 operator<< (::xercesc::DOMElement& e,
06642             media_type i)
06643 {
06644   e << static_cast< const ::xml_schema::string& > (i);
06645 }
06646 
06647 void
06648 operator<< (::xercesc::DOMAttr& a,
06649             media_type i)
06650 {
06651   a << static_cast< const ::xml_schema::string& > (i);
06652 }
06653 
06654 void
06655 operator<< (::xsd::cxx::tree::list_stream< char >& l,
06656             media_type i)
06657 {
06658   l << static_cast< const ::xml_schema::string& > (i);
06659 }
06660 
06661 void
06662 operator<< (::xercesc::DOMElement& e,
06663             const point_type& i)
06664 {
06665   while (::xercesc::DOMNode* n = e.getFirstChild ())
06666     e.removeChild (n);
06667 
06668   {
06669     ::xsd::cxx::xml::dom::attribute< char > a (
06670       "x",
06671       e);
06672 
06673     a.dom_attribute () << i.x ();
06674   }
06675 
06676   {
06677     ::xsd::cxx::xml::dom::attribute< char > a (
06678       "y",
06679       e);
06680 
06681     a.dom_attribute () << i.y ();
06682   }
06683 
06684   {
06685     ::xsd::cxx::xml::dom::attribute< char > a (
06686       "z",
06687       e);
06688 
06689     a.dom_attribute () << i.z ();
06690   }
06691 }
06692 
06693 void
06694 operator<< (::xercesc::DOMElement& e,
06695             const box_type& i)
06696 {
06697   while (::xercesc::DOMNode* n = e.getFirstChild ())
06698     e.removeChild (n);
06699 
06700   {
06701     ::xsd::cxx::xml::dom::element< char > s (
06702       "LowerCoordinates",
06703       e);
06704     s.dom_element () << i.LowerCoordinates ();
06705   }
06706 
06707   {
06708     ::xsd::cxx::xml::dom::element< char > s (
06709       "UpperCoordinates",
06710       e);
06711     s.dom_element () << i.UpperCoordinates ();
06712   }
06713 }
06714 
06715 void
06716 operator<< (::xercesc::DOMElement& e,
06717             const stimulus_type& i)
06718 {
06719   while (::xercesc::DOMNode* n = e.getFirstChild ())
06720     e.removeChild (n);
06721 
06722   {
06723     ::xsd::cxx::xml::dom::element< char > s (
06724       "Strength",
06725       e);
06726     s.dom_element () << i.Strength ();
06727   }
06728 
06729   {
06730     ::xsd::cxx::xml::dom::element< char > s (
06731       "Duration",
06732       e);
06733     s.dom_element () << i.Duration ();
06734   }
06735 
06736   {
06737     ::xsd::cxx::xml::dom::element< char > s (
06738       "Delay",
06739       e);
06740     s.dom_element () << i.Delay ();
06741   }
06742 
06743   {
06744     ::xsd::cxx::xml::dom::element< char > s (
06745       "Location",
06746       e);
06747     s.dom_element () << i.Location ();
06748   }
06749 }
06750 
06751 void
06752 operator<< (::xercesc::DOMElement& e,
06753             const cell_heterogeneity_type& i)
06754 {
06755   while (::xercesc::DOMNode* n = e.getFirstChild ())
06756     e.removeChild (n);
06757 
06758   {
06759     ::xsd::cxx::xml::dom::element< char > s (
06760       "ScaleFactorGks",
06761       e);
06762     s.dom_element () << i.ScaleFactorGks ();
06763   }
06764 
06765   {
06766     ::xsd::cxx::xml::dom::element< char > s (
06767       "ScaleFactorIto",
06768       e);
06769     s.dom_element () << i.ScaleFactorIto ();
06770   }
06771 
06772   {
06773     ::xsd::cxx::xml::dom::element< char > s (
06774       "ScaleFactorGkr",
06775       e);
06776     s.dom_element () << i.ScaleFactorGkr ();
06777   }
06778 
06779   {
06780     ::xsd::cxx::xml::dom::element< char > s (
06781       "Location",
06782       e);
06783     s.dom_element () << i.Location ();
06784   }
06785 }
06786 
06787 void
06788 operator<< (::xercesc::DOMElement& e,
06789             const conductivity_heterogeneity_type& i)
06790 {
06791   while (::xercesc::DOMNode* n = e.getFirstChild ())
06792     e.removeChild (n);
06793 
06794   {
06795     if (i.IntracellularConductivities ())
06796     {
06797       ::xsd::cxx::xml::dom::element< char > s (
06798         "IntracellularConductivities",
06799         e);
06800       s.dom_element () << *i.IntracellularConductivities ();
06801     }
06802   }
06803 
06804   {
06805     if (i.ExtracellularConductivities ())
06806     {
06807       ::xsd::cxx::xml::dom::element< char > s (
06808         "ExtracellularConductivities",
06809         e);
06810       s.dom_element () << *i.ExtracellularConductivities ();
06811     }
06812   }
06813 
06814   {
06815     ::xsd::cxx::xml::dom::element< char > s (
06816       "Location",
06817       e);
06818     s.dom_element () << i.Location ();
06819   }
06820 }
06821 
06822 void
06823 operator<< (::xercesc::DOMElement& e,
06824             const slab_type& i)
06825 {
06826   while (::xercesc::DOMNode* n = e.getFirstChild ())
06827     e.removeChild (n);
06828 
06829   {
06830     ::xsd::cxx::xml::dom::attribute< char > a (
06831       "x",
06832       e);
06833 
06834     a.dom_attribute () << i.x ();
06835   }
06836 
06837   {
06838     ::xsd::cxx::xml::dom::attribute< char > a (
06839       "y",
06840       e);
06841 
06842     a.dom_attribute () << i.y ();
06843   }
06844 
06845   {
06846     ::xsd::cxx::xml::dom::attribute< char > a (
06847       "z",
06848       e);
06849 
06850     a.dom_attribute () << i.z ();
06851   }
06852 
06853   {
06854     ::xsd::cxx::xml::dom::attribute< char > a (
06855       "inter_node_space",
06856       e);
06857 
06858     a.dom_attribute () << i.inter_node_space ();
06859   }
06860 }
06861 
06862 void
06863 operator<< (::xercesc::DOMElement& e,
06864             const sheet_type& i)
06865 {
06866   while (::xercesc::DOMNode* n = e.getFirstChild ())
06867     e.removeChild (n);
06868 
06869   {
06870     ::xsd::cxx::xml::dom::attribute< char > a (
06871       "x",
06872       e);
06873 
06874     a.dom_attribute () << i.x ();
06875   }
06876 
06877   {
06878     ::xsd::cxx::xml::dom::attribute< char > a (
06879       "y",
06880       e);
06881 
06882     a.dom_attribute () << i.y ();
06883   }
06884 
06885   {
06886     ::xsd::cxx::xml::dom::attribute< char > a (
06887       "inter_node_space",
06888       e);
06889 
06890     a.dom_attribute () << i.inter_node_space ();
06891   }
06892 }
06893 
06894 void
06895 operator<< (::xercesc::DOMElement& e,
06896             const fibre_type& i)
06897 {
06898   while (::xercesc::DOMNode* n = e.getFirstChild ())
06899     e.removeChild (n);
06900 
06901   {
06902     ::xsd::cxx::xml::dom::attribute< char > a (
06903       "x",
06904       e);
06905 
06906     a.dom_attribute () << i.x ();
06907   }
06908 
06909   {
06910     ::xsd::cxx::xml::dom::attribute< char > a (
06911       "inter_node_space",
06912       e);
06913 
06914     a.dom_attribute () << i.inter_node_space ();
06915   }
06916 }
06917 
06918 void
06919 operator<< (::xercesc::DOMElement& e,
06920             const load_mesh_type& i)
06921 {
06922   while (::xercesc::DOMNode* n = e.getFirstChild ())
06923     e.removeChild (n);
06924 
06925   {
06926     ::xsd::cxx::xml::dom::attribute< char > a (
06927       "name",
06928       e);
06929 
06930     a.dom_attribute () << i.name ();
06931   }
06932 
06933   {
06934     ::xsd::cxx::xml::dom::attribute< char > a (
06935       "conductivity_media",
06936       e);
06937 
06938     a.dom_attribute () << i.conductivity_media ();
06939   }
06940 }
06941 
06942 void
06943 operator<< (::xercesc::DOMElement& e,
06944             const mesh_type& i)
06945 {
06946   while (::xercesc::DOMNode* n = e.getFirstChild ())
06947     e.removeChild (n);
06948 
06949   {
06950     if (i.Slab ())
06951     {
06952       ::xsd::cxx::xml::dom::element< char > s (
06953         "Slab",
06954         e);
06955       s.dom_element () << *i.Slab ();
06956     }
06957   }
06958 
06959   {
06960     if (i.Sheet ())
06961     {
06962       ::xsd::cxx::xml::dom::element< char > s (
06963         "Sheet",
06964         e);
06965       s.dom_element () << *i.Sheet ();
06966     }
06967   }
06968 
06969   {
06970     if (i.Fibre ())
06971     {
06972       ::xsd::cxx::xml::dom::element< char > s (
06973         "Fibre",
06974         e);
06975       s.dom_element () << *i.Fibre ();
06976     }
06977   }
06978 
06979   {
06980     if (i.LoadMesh ())
06981     {
06982       ::xsd::cxx::xml::dom::element< char > s (
06983         "LoadMesh",
06984         e);
06985       s.dom_element () << *i.LoadMesh ();
06986     }
06987   }
06988 
06989   {
06990     ::xsd::cxx::xml::dom::attribute< char > a (
06991       "unit",
06992       e);
06993 
06994     a.dom_attribute () << i.unit ();
06995   }
06996 }
06997 
06998 void
06999 operator<< (::xercesc::DOMElement& e,
07000             const conductivities_type& i)
07001 {
07002   while (::xercesc::DOMNode* n = e.getFirstChild ())
07003     e.removeChild (n);
07004 
07005   {
07006     ::xsd::cxx::xml::dom::attribute< char > a (
07007       "longi",
07008       e);
07009 
07010     a.dom_attribute () << i.longi ();
07011   }
07012 
07013   {
07014     ::xsd::cxx::xml::dom::attribute< char > a (
07015       "trans",
07016       e);
07017 
07018     a.dom_attribute () << i.trans ();
07019   }
07020 
07021   {
07022     ::xsd::cxx::xml::dom::attribute< char > a (
07023       "normal",
07024       e);
07025 
07026     a.dom_attribute () << i.normal ();
07027   }
07028 
07029   {
07030     ::xsd::cxx::xml::dom::attribute< char > a (
07031       "unit",
07032       e);
07033 
07034     a.dom_attribute () << i.unit ();
07035   }
07036 }
07037 
07038 void
07039 operator<< (::xercesc::DOMElement& e,
07040             const time_steps_type& i)
07041 {
07042   while (::xercesc::DOMNode* n = e.getFirstChild ())
07043     e.removeChild (n);
07044 
07045   {
07046     ::xsd::cxx::xml::dom::attribute< char > a (
07047       "ode",
07048       e);
07049 
07050     a.dom_attribute () << i.ode ();
07051   }
07052 
07053   {
07054     ::xsd::cxx::xml::dom::attribute< char > a (
07055       "pde",
07056       e);
07057 
07058     a.dom_attribute () << i.pde ();
07059   }
07060 
07061   {
07062     ::xsd::cxx::xml::dom::attribute< char > a (
07063       "printing",
07064       e);
07065 
07066     a.dom_attribute () << i.printing ();
07067   }
07068 
07069   {
07070     ::xsd::cxx::xml::dom::attribute< char > a (
07071       "unit",
07072       e);
07073 
07074     a.dom_attribute () << i.unit ();
07075   }
07076 }
07077 
07078 void
07079 operator<< (::xercesc::DOMElement& e,
07080             ksp_use_type i)
07081 {
07082   e << static_cast< const ::xml_schema::string& > (i);
07083 }
07084 
07085 void
07086 operator<< (::xercesc::DOMAttr& a,
07087             ksp_use_type i)
07088 {
07089   a << static_cast< const ::xml_schema::string& > (i);
07090 }
07091 
07092 void
07093 operator<< (::xsd::cxx::tree::list_stream< char >& l,
07094             ksp_use_type i)
07095 {
07096   l << static_cast< const ::xml_schema::string& > (i);
07097 }
07098 
07099 void
07100 operator<< (::xercesc::DOMElement& e,
07101             const ksp_tolerances_type& i)
07102 {
07103   while (::xercesc::DOMNode* n = e.getFirstChild ())
07104     e.removeChild (n);
07105 
07106   {
07107     if (i.KSPRelative ())
07108     {
07109       ::xsd::cxx::xml::dom::element< char > s (
07110         "KSPRelative",
07111         e);
07112       s.dom_element () << *i.KSPRelative ();
07113     }
07114   }
07115 
07116   {
07117     if (i.KSPAbsolute ())
07118     {
07119       ::xsd::cxx::xml::dom::element< char > s (
07120         "KSPAbsolute",
07121         e);
07122       s.dom_element () << *i.KSPAbsolute ();
07123     }
07124   }
07125 }
07126 
07127 void
07128 operator<< (::xercesc::DOMElement& e,
07129             ksp_solver_type i)
07130 {
07131   e << static_cast< const ::xml_schema::string& > (i);
07132 }
07133 
07134 void
07135 operator<< (::xercesc::DOMAttr& a,
07136             ksp_solver_type i)
07137 {
07138   a << static_cast< const ::xml_schema::string& > (i);
07139 }
07140 
07141 void
07142 operator<< (::xsd::cxx::tree::list_stream< char >& l,
07143             ksp_solver_type i)
07144 {
07145   l << static_cast< const ::xml_schema::string& > (i);
07146 }
07147 
07148 void
07149 operator<< (::xercesc::DOMElement& e,
07150             ksp_preconditioner_type i)
07151 {
07152   e << static_cast< const ::xml_schema::string& > (i);
07153 }
07154 
07155 void
07156 operator<< (::xercesc::DOMAttr& a,
07157             ksp_preconditioner_type i)
07158 {
07159   a << static_cast< const ::xml_schema::string& > (i);
07160 }
07161 
07162 void
07163 operator<< (::xsd::cxx::tree::list_stream< char >& l,
07164             ksp_preconditioner_type i)
07165 {
07166   l << static_cast< const ::xml_schema::string& > (i);
07167 }
07168 
07169 void
07170 operator<< (::xercesc::DOMElement& e,
07171             const simulation_type::Stimuli::type& i)
07172 {
07173   while (::xercesc::DOMNode* n = e.getFirstChild ())
07174     e.removeChild (n);
07175 
07176   {
07177     for (simulation_type::Stimuli::type::Stimulus::const_iterator
07178          b (i.Stimulus ().begin ()), n (i.Stimulus ().end ());
07179          b != n; ++b)
07180     {
07181       ::xsd::cxx::xml::dom::element< char > s (
07182         "Stimulus",
07183         e);
07184       s.dom_element () << *b;
07185     }
07186   }
07187 }
07188 
07189 void
07190 operator<< (::xercesc::DOMElement& e,
07191             const simulation_type::CellHeterogeneities::type& i)
07192 {
07193   while (::xercesc::DOMNode* n = e.getFirstChild ())
07194     e.removeChild (n);
07195 
07196   {
07197     for (simulation_type::CellHeterogeneities::type::CellHeterogeneity::const_iterator
07198          b (i.CellHeterogeneity ().begin ()), n (i.CellHeterogeneity ().end ());
07199          b != n; ++b)
07200     {
07201       ::xsd::cxx::xml::dom::element< char > s (
07202         "CellHeterogeneity",
07203         e);
07204       s.dom_element () << *b;
07205     }
07206   }
07207 }
07208 
07209 void
07210 operator<< (::xercesc::DOMElement& e,
07211             const simulation_type::ConductivityHeterogeneities::type& i)
07212 {
07213   while (::xercesc::DOMNode* n = e.getFirstChild ())
07214     e.removeChild (n);
07215 
07216   {
07217     for (simulation_type::ConductivityHeterogeneities::type::ConductivityHeterogeneity::const_iterator
07218          b (i.ConductivityHeterogeneity ().begin ()), n (i.ConductivityHeterogeneity ().end ());
07219          b != n; ++b)
07220     {
07221       ::xsd::cxx::xml::dom::element< char > s (
07222         "ConductivityHeterogeneity",
07223         e);
07224       s.dom_element () << *b;
07225     }
07226   }
07227 }
07228 
07229 void
07230 operator<< (::xercesc::DOMElement& e,
07231             const simulation_type& i)
07232 {
07233   while (::xercesc::DOMNode* n = e.getFirstChild ())
07234     e.removeChild (n);
07235 
07236   {
07237     if (i.SpaceDimension ())
07238     {
07239       ::xsd::cxx::xml::dom::element< char > s (
07240         "SpaceDimension",
07241         e);
07242       s.dom_element () << *i.SpaceDimension ();
07243     }
07244   }
07245 
07246   {
07247     if (i.SimulationDuration ())
07248     {
07249       ::xsd::cxx::xml::dom::element< char > s (
07250         "SimulationDuration",
07251         e);
07252       s.dom_element () << *i.SimulationDuration ();
07253     }
07254   }
07255 
07256   {
07257     if (i.Domain ())
07258     {
07259       ::xsd::cxx::xml::dom::element< char > s (
07260         "Domain",
07261         e);
07262       s.dom_element () << *i.Domain ();
07263     }
07264   }
07265 
07266   {
07267     if (i.Mesh ())
07268     {
07269       ::xsd::cxx::xml::dom::element< char > s (
07270         "Mesh",
07271         e);
07272       s.dom_element () << *i.Mesh ();
07273     }
07274   }
07275 
07276   {
07277     if (i.IonicModels ())
07278     {
07279       ::xsd::cxx::xml::dom::element< char > s (
07280         "IonicModels",
07281         e);
07282       s.dom_element () << *i.IonicModels ();
07283     }
07284   }
07285 
07286   {
07287     if (i.Stimuli ())
07288     {
07289       ::xsd::cxx::xml::dom::element< char > s (
07290         "Stimuli",
07291         e);
07292       s.dom_element () << *i.Stimuli ();
07293     }
07294   }
07295 
07296   {
07297     if (i.CellHeterogeneities ())
07298     {
07299       ::xsd::cxx::xml::dom::element< char > s (
07300         "CellHeterogeneities",
07301         e);
07302       s.dom_element () << *i.CellHeterogeneities ();
07303     }
07304   }
07305 
07306   {
07307     if (i.ConductivityHeterogeneities ())
07308     {
07309       ::xsd::cxx::xml::dom::element< char > s (
07310         "ConductivityHeterogeneities",
07311         e);
07312       s.dom_element () << *i.ConductivityHeterogeneities ();
07313     }
07314   }
07315 
07316   {
07317     if (i.OutputDirectory ())
07318     {
07319       ::xsd::cxx::xml::dom::element< char > s (
07320         "OutputDirectory",
07321         e);
07322       s.dom_element () << *i.OutputDirectory ();
07323     }
07324   }
07325 
07326   {
07327     if (i.OutputFilenamePrefix ())
07328     {
07329       ::xsd::cxx::xml::dom::element< char > s (
07330         "OutputFilenamePrefix",
07331         e);
07332       s.dom_element () << *i.OutputFilenamePrefix ();
07333     }
07334   }
07335 }
07336 
07337 void
07338 operator<< (::xercesc::DOMElement& e,
07339             const physiological_type& i)
07340 {
07341   while (::xercesc::DOMNode* n = e.getFirstChild ())
07342     e.removeChild (n);
07343 
07344   {
07345     if (i.IntracellularConductivities ())
07346     {
07347       ::xsd::cxx::xml::dom::element< char > s (
07348         "IntracellularConductivities",
07349         e);
07350       s.dom_element () << *i.IntracellularConductivities ();
07351     }
07352   }
07353 
07354   {
07355     if (i.ExtracellularConductivities ())
07356     {
07357       ::xsd::cxx::xml::dom::element< char > s (
07358         "ExtracellularConductivities",
07359         e);
07360       s.dom_element () << *i.ExtracellularConductivities ();
07361     }
07362   }
07363 
07364   {
07365     if (i.BathConductivity ())
07366     {
07367       ::xsd::cxx::xml::dom::element< char > s (
07368         "BathConductivity",
07369         e);
07370       s.dom_element () << *i.BathConductivity ();
07371     }
07372   }
07373 
07374   {
07375     if (i.SurfaceAreaToVolumeRatio ())
07376     {
07377       ::xsd::cxx::xml::dom::element< char > s (
07378         "SurfaceAreaToVolumeRatio",
07379         e);
07380       s.dom_element () << *i.SurfaceAreaToVolumeRatio ();
07381     }
07382   }
07383 
07384   {
07385     if (i.Capacitance ())
07386     {
07387       ::xsd::cxx::xml::dom::element< char > s (
07388         "Capacitance",
07389         e);
07390       s.dom_element () << *i.Capacitance ();
07391     }
07392   }
07393 }
07394 
07395 void
07396 operator<< (::xercesc::DOMElement& e,
07397             const numerical_type& i)
07398 {
07399   while (::xercesc::DOMNode* n = e.getFirstChild ())
07400     e.removeChild (n);
07401 
07402   {
07403     if (i.TimeSteps ())
07404     {
07405       ::xsd::cxx::xml::dom::element< char > s (
07406         "TimeSteps",
07407         e);
07408       s.dom_element () << *i.TimeSteps ();
07409     }
07410   }
07411 
07412   {
07413     if (i.KSPTolerances ())
07414     {
07415       ::xsd::cxx::xml::dom::element< char > s (
07416         "KSPTolerances",
07417         e);
07418       s.dom_element () << *i.KSPTolerances ();
07419     }
07420   }
07421 
07422   {
07423     if (i.KSPSolver ())
07424     {
07425       ::xsd::cxx::xml::dom::element< char > s (
07426         "KSPSolver",
07427         e);
07428       s.dom_element () << *i.KSPSolver ();
07429     }
07430   }
07431 
07432   {
07433     if (i.KSPPreconditioner ())
07434     {
07435       ::xsd::cxx::xml::dom::element< char > s (
07436         "KSPPreconditioner",
07437         e);
07438       s.dom_element () << *i.KSPPreconditioner ();
07439     }
07440   }
07441 }
07442 
07443 void
07444 operator<< (::xercesc::DOMElement& e,
07445             const chaste_parameters_type& i)
07446 {
07447   while (::xercesc::DOMNode* n = e.getFirstChild ())
07448     e.removeChild (n);
07449 
07450   {
07451     ::xsd::cxx::xml::dom::element< char > s (
07452       "Simulation",
07453       e);
07454     s.dom_element () << i.Simulation ();
07455   }
07456 
07457   {
07458     ::xsd::cxx::xml::dom::element< char > s (
07459       "Physiological",
07460       e);
07461     s.dom_element () << i.Physiological ();
07462   }
07463 
07464   {
07465     ::xsd::cxx::xml::dom::element< char > s (
07466       "Numerical",
07467       e);
07468     s.dom_element () << i.Numerical ();
07469   }
07470 }
07471 
07472 void
07473 ChasteParameters (::xercesc::DOMDocument& d,
07474                   const ::chaste_parameters_type& s,
07475                   ::xml_schema::flags)
07476 {
07477   ::xsd::cxx::xml::dom::element< char > e (*d.getDocumentElement ());
07478 
07479   if (e.name () == "ChasteParameters" &&
07480       e.namespace_ () == "")
07481   {
07482     e.dom_element () << s;
07483   }
07484   else
07485   {
07486     throw ::xsd::cxx::tree::unexpected_element < char > (
07487       e.name (),
07488       e.namespace_ (),
07489       "ChasteParameters",
07490       "");
07491   }
07492 }
07493 
07494 ::xsd::cxx::xml::dom::auto_ptr< ::xercesc::DOMDocument >
07495 ChasteParameters (const ::chaste_parameters_type& s,
07496                   const ::xsd::cxx::xml::dom::namespace_infomap< char >& m,
07497                   ::xml_schema::flags f)
07498 {
07499   try
07500   {
07501     ::xsd::cxx::xml::dom::auto_ptr< ::xercesc::DOMDocument > d (
07502       ::xsd::cxx::xml::dom::serialize< char > (
07503         "ChasteParameters",
07504         "",
07505         m,
07506         f));
07507     ::ChasteParameters (*d, s, f);
07508     return d;
07509   }
07510   catch (const ::xsd::cxx::xml::dom::mapping< char >& e)
07511   {
07512     throw ::xsd::cxx::tree::no_namespace_mapping< char > (e.name ());
07513   }
07514   catch (const ::xsd::cxx::xml::dom::xsi_already_in_use&)
07515   {
07516     throw ::xsd::cxx::tree::xsi_already_in_use< char > ();
07517   }
07518 }
07519 
07520 void
07521 ChasteParameters (::xercesc::XMLFormatTarget& t,
07522                   const ::chaste_parameters_type& s,
07523                   const ::xsd::cxx::xml::dom::namespace_infomap< char >& m,
07524                   const ::std::basic_string< char >& e,
07525                   ::xml_schema::flags f)
07526 {
07527   ::xsd::cxx::xml::dom::auto_ptr< ::xercesc::DOMDocument > d (
07528     ::ChasteParameters (s, m, f));
07529 
07530   ::xsd::cxx::tree::error_handler< char > h;
07531 
07532   if (!::xsd::cxx::xml::dom::serialize (t, *d, e, h, f))
07533   {
07534     h.throw_if_failed< ::xsd::cxx::tree::serialization< char > > ();
07535   }
07536 }
07537 
07538 void
07539 ChasteParameters (::xercesc::XMLFormatTarget& t,
07540                   const ::chaste_parameters_type& s,
07541                   const ::xsd::cxx::xml::dom::namespace_infomap< char >& m,
07542                   ::xsd::cxx::xml::error_handler< char >& h,
07543                   const ::std::basic_string< char >& e,
07544                   ::xml_schema::flags f)
07545 {
07546   ::xsd::cxx::xml::dom::auto_ptr< ::xercesc::DOMDocument > d (
07547     ::ChasteParameters (s, m, f));
07548   if (!::xsd::cxx::xml::dom::serialize (t, *d, e, h, f))
07549   {
07550     throw ::xsd::cxx::tree::serialization< char > ();
07551   }
07552 }
07553 
07554 void
07555 ChasteParameters (::xercesc::XMLFormatTarget& t,
07556                   const ::chaste_parameters_type& s,
07557                   const ::xsd::cxx::xml::dom::namespace_infomap< char >& m,
07558                   ::xercesc::DOMErrorHandler& h,
07559                   const ::std::basic_string< char >& e,
07560                   ::xml_schema::flags f)
07561 {
07562   ::xsd::cxx::xml::dom::auto_ptr< ::xercesc::DOMDocument > d (
07563     ::ChasteParameters (s, m, f));
07564   if (!::xsd::cxx::xml::dom::serialize (t, *d, e, h, f))
07565   {
07566     throw ::xsd::cxx::tree::serialization< char > ();
07567   }
07568 }
07569 
07570 void
07571 ChasteParameters (::std::ostream& o,
07572                   const ::chaste_parameters_type& s,
07573                   const ::xsd::cxx::xml::dom::namespace_infomap< char >& m,
07574                   const ::std::basic_string< char >& e,
07575                   ::xml_schema::flags f)
07576 {
07577   ::xsd::cxx::xml::auto_initializer i (
07578     (f & ::xml_schema::flags::dont_initialize) == 0);
07579 
07580   ::xsd::cxx::xml::dom::auto_ptr< ::xercesc::DOMDocument > d (
07581     ::ChasteParameters (s, m, f));
07582 
07583   ::xsd::cxx::tree::error_handler< char > h;
07584 
07585   ::xsd::cxx::xml::dom::ostream_format_target t (o);
07586   if (!::xsd::cxx::xml::dom::serialize (t, *d, e, h, f))
07587   {
07588     h.throw_if_failed< ::xsd::cxx::tree::serialization< char > > ();
07589   }
07590 }
07591 
07592 void
07593 ChasteParameters (::std::ostream& o,
07594                   const ::chaste_parameters_type& s,
07595                   const ::xsd::cxx::xml::dom::namespace_infomap< char >& m,
07596                   ::xsd::cxx::xml::error_handler< char >& h,
07597                   const ::std::basic_string< char >& e,
07598                   ::xml_schema::flags f)
07599 {
07600   ::xsd::cxx::xml::auto_initializer i (
07601     (f & ::xml_schema::flags::dont_initialize) == 0);
07602 
07603   ::xsd::cxx::xml::dom::auto_ptr< ::xercesc::DOMDocument > d (
07604     ::ChasteParameters (s, m, f));
07605   ::xsd::cxx::xml::dom::ostream_format_target t (o);
07606   if (!::xsd::cxx::xml::dom::serialize (t, *d, e, h, f))
07607   {
07608     throw ::xsd::cxx::tree::serialization< char > ();
07609   }
07610 }
07611 
07612 void
07613 ChasteParameters (::std::ostream& o,
07614                   const ::chaste_parameters_type& s,
07615                   const ::xsd::cxx::xml::dom::namespace_infomap< char >& m,
07616                   ::xercesc::DOMErrorHandler& h,
07617                   const ::std::basic_string< char >& e,
07618                   ::xml_schema::flags f)
07619 {
07620   ::xsd::cxx::xml::dom::auto_ptr< ::xercesc::DOMDocument > d (
07621     ::ChasteParameters (s, m, f));
07622   ::xsd::cxx::xml::dom::ostream_format_target t (o);
07623   if (!::xsd::cxx::xml::dom::serialize (t, *d, e, h, f))
07624   {
07625     throw ::xsd::cxx::tree::serialization< char > ();
07626   }
07627 }
07628 
07629 #include <xsd/cxx/post.hxx>
07630 
07631 // Begin epilogue.
07632 //
07633 #undef COVERAGE_IGNORE
07634 //
07635 // End epilogue.
07636 

Generated on Wed Mar 18 12:51:51 2009 for Chaste by  doxygen 1.5.5