Hermes2D  3.0
subdomains_h2d_xml.cpp
1 // Copyright (C) 2005-2010 Code Synthesis Tools CC
2 //
3 // This program was generated by CodeSynthesis XSD, an XML Schema to
4 // C++ data binding compiler.
5 //
6 // This program is free software; you can redistribute it and/or modify
7 // it under the terms of the GNU General Public License version 2 as
8 // published by the Free Software Foundation.
9 //
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software
17 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 //
19 // In addition, as a special exception, Code Synthesis Tools CC gives
20 // permission to link this program with the Xerces-C++ library (or with
21 // modified versions of Xerces-C++ that use the same license as Xerces-C++),
22 // and distribute linked combinations including the two. You must obey
23 // the GNU General Public License version 2 in all respects for all of
24 // the code used other than Xerces-C++. If you modify this copy of the
25 // program, you may extend this exception to your version of the program,
26 // but you are not obligated to do so. If you do not wish to do so, delete
27 // this exception statement from your version.
28 //
29 // Furthermore, Code Synthesis Tools CC makes a special exception for
30 // the Free/Libre and Open Source Software (FLOSS) which is described
31 // in the accompanying FLOSSE file.
32 //
33 
34 // Begin prologue.
35 //
36 //
37 // End prologue.
38 
39 #include <xsd/cxx/pre.hxx>
40 
41 #include "subdomains_h2d_xml.h"
42 
43 namespace XMLSubdomains
44 {
45  // elements_type
46  //
47 
49  el () const
50  {
51  return this->el_;
52  }
53 
55  el ()
56  {
57  return this->el_;
58  }
59 
60  void elements_type::
61  el (const el_sequence& s)
62  {
63  this->el_ = s;
64  }
65 
66 
67  // el_t
68  //
69 
70  const el_t::v1_type& el_t::
71  v1 () const
72  {
73  return this->v1_.get ();
74  }
75 
77  v1 ()
78  {
79  return this->v1_.get ();
80  }
81 
82  void el_t::
83  v1 (const v1_type& x)
84  {
85  this->v1_.set (x);
86  }
87 
88  const el_t::v2_type& el_t::
89  v2 () const
90  {
91  return this->v2_.get ();
92  }
93 
95  v2 ()
96  {
97  return this->v2_.get ();
98  }
99 
100  void el_t::
101  v2 (const v2_type& x)
102  {
103  this->v2_.set (x);
104  }
105 
106  const el_t::v3_type& el_t::
107  v3 () const
108  {
109  return this->v3_.get ();
110  }
111 
113  v3 ()
114  {
115  return this->v3_.get ();
116  }
117 
118  void el_t::
119  v3 (const v3_type& x)
120  {
121  this->v3_.set (x);
122  }
123 
124  const el_t::m_type& el_t::
125  m () const
126  {
127  return this->m_.get ();
128  }
129 
131  m ()
132  {
133  return this->m_.get ();
134  }
135 
136  void el_t::
137  m (const m_type& x)
138  {
139  this->m_.set (x);
140  }
141 
142  void el_t::
143  m (::std::auto_ptr< m_type > x)
144  {
145  this->m_.set (x);
146  }
147 
148  const el_t::i_type& el_t::
149  i () const
150  {
151  return this->i_.get ();
152  }
153 
155  i ()
156  {
157  return this->i_.get ();
158  }
159 
160  void el_t::
161  i (const i_type& x)
162  {
163  this->i_.set (x);
164  }
165 
166 
167  // t_t
168  //
169 
170 
171  // q_t
172  //
173 
174  const q_t::v4_type& q_t::
175  v4 () const
176  {
177  return this->v4_.get ();
178  }
179 
181  v4 ()
182  {
183  return this->v4_.get ();
184  }
185 
186  void q_t::
187  v4 (const v4_type& x)
188  {
189  this->v4_.set (x);
190  }
191 
192 
193  // edges_type
194  //
195 
197  ed () const
198  {
199  return this->ed_;
200  }
201 
203  ed ()
204  {
205  return this->ed_;
206  }
207 
208  void edges_type::
209  ed (const ed_sequence& s)
210  {
211  this->ed_ = s;
212  }
213 
214 
215  // domain
216  //
217 
219  variables () const
220  {
221  return this->variables_;
222  }
223 
226  {
227  return this->variables_;
228  }
229 
230  void domain::
232  {
233  this->variables_.set (x);
234  }
235 
236  void domain::
238  {
239  this->variables_ = x;
240  }
241 
242  void domain::
243  variables (::std::auto_ptr< variables_type > x)
244  {
245  this->variables_.set (x);
246  }
247 
249  vertices () const
250  {
251  return this->vertices_.get ();
252  }
253 
256  {
257  return this->vertices_.get ();
258  }
259 
260  void domain::
262  {
263  this->vertices_.set (x);
264  }
265 
266  void domain::
267  vertices (::std::auto_ptr< vertices_type > x)
268  {
269  this->vertices_.set (x);
270  }
271 
273  elements () const
274  {
275  return this->elements_.get ();
276  }
277 
280  {
281  return this->elements_.get ();
282  }
283 
284  void domain::
286  {
287  this->elements_.set (x);
288  }
289 
290  void domain::
291  elements (::std::auto_ptr< elements_type > x)
292  {
293  this->elements_.set (x);
294  }
295 
297  edges () const
298  {
299  return this->edges_.get ();
300  }
301 
304  {
305  return this->edges_.get ();
306  }
307 
308  void domain::
309  edges (const edges_type& x)
310  {
311  this->edges_.set (x);
312  }
313 
314  void domain::
315  edges (::std::auto_ptr< edges_type > x)
316  {
317  this->edges_.set (x);
318  }
319 
321  curves () const
322  {
323  return this->curves_;
324  }
325 
328  {
329  return this->curves_;
330  }
331 
332  void domain::
334  {
335  this->curves_.set (x);
336  }
337 
338  void domain::
340  {
341  this->curves_ = x;
342  }
343 
344  void domain::
345  curves (::std::auto_ptr< curves_type > x)
346  {
347  this->curves_.set (x);
348  }
349 
351  subdomains () const
352  {
353  return this->subdomains_.get ();
354  }
355 
358  {
359  return this->subdomains_.get ();
360  }
361 
362  void domain::
364  {
365  this->subdomains_.set (x);
366  }
367 
368  void domain::
369  subdomains (::std::auto_ptr< subdomains_type > x)
370  {
371  this->subdomains_.set (x);
372  }
373 
374 
375  // ed
376  //
377 
378  const ed::v1_type& ed::
379  v1 () const
380  {
381  return this->v1_.get ();
382  }
383 
385  v1 ()
386  {
387  return this->v1_.get ();
388  }
389 
390  void ed::
391  v1 (const v1_type& x)
392  {
393  this->v1_.set (x);
394  }
395 
396  const ed::v2_type& ed::
397  v2 () const
398  {
399  return this->v2_.get ();
400  }
401 
403  v2 ()
404  {
405  return this->v2_.get ();
406  }
407 
408  void ed::
409  v2 (const v2_type& x)
410  {
411  this->v2_.set (x);
412  }
413 
414  const ed::m_type& ed::
415  m () const
416  {
417  return this->m_.get ();
418  }
419 
421  m ()
422  {
423  return this->m_.get ();
424  }
425 
426  void ed::
427  m (const m_type& x)
428  {
429  this->m_.set (x);
430  }
431 
432  void ed::
433  m (::std::auto_ptr< m_type > x)
434  {
435  this->m_.set (x);
436  }
437 
438  const ed::i_type& ed::
439  i () const
440  {
441  return this->i_.get ();
442  }
443 
445  i ()
446  {
447  return this->i_.get ();
448  }
449 
450  void ed::
451  i (const i_type& x)
452  {
453  this->i_.set (x);
454  }
455 
456 
457  // subdomains
458  //
459 
461  subdomain () const
462  {
463  return this->subdomain_;
464  }
465 
468  {
469  return this->subdomain_;
470  }
471 
472  void subdomains::
474  {
475  this->subdomain_ = s;
476  }
477 
478 
479  // subdomain
480  //
481 
483  vertices () const
484  {
485  return this->vertices_;
486  }
487 
490  {
491  return this->vertices_;
492  }
493 
494  void subdomain::
496  {
497  this->vertices_.set (x);
498  }
499 
500  void subdomain::
502  {
503  this->vertices_ = x;
504  }
505 
506  void subdomain::
507  vertices (::std::auto_ptr< vertices_type > x)
508  {
509  this->vertices_.set (x);
510  }
511 
513  elements () const
514  {
515  return this->elements_;
516  }
517 
520  {
521  return this->elements_;
522  }
523 
524  void subdomain::
526  {
527  this->elements_.set (x);
528  }
529 
530  void subdomain::
532  {
533  this->elements_ = x;
534  }
535 
536  void subdomain::
537  elements (::std::auto_ptr< elements_type > x)
538  {
539  this->elements_.set (x);
540  }
541 
544  {
545  return this->boundary_edges_;
546  }
547 
550  {
551  return this->boundary_edges_;
552  }
553 
554  void subdomain::
556  {
557  this->boundary_edges_.set (x);
558  }
559 
560  void subdomain::
562  {
563  this->boundary_edges_ = x;
564  }
565 
566  void subdomain::
567  boundary_edges (::std::auto_ptr< boundary_edges_type > x)
568  {
569  this->boundary_edges_.set (x);
570  }
571 
573  inner_edges () const
574  {
575  return this->inner_edges_;
576  }
577 
580  {
581  return this->inner_edges_;
582  }
583 
584  void subdomain::
586  {
587  this->inner_edges_.set (x);
588  }
589 
590  void subdomain::
592  {
593  this->inner_edges_ = x;
594  }
595 
596  void subdomain::
597  inner_edges (::std::auto_ptr< inner_edges_type > x)
598  {
599  this->inner_edges_.set (x);
600  }
601 
603  refinements () const
604  {
605  return this->refinements_;
606  }
607 
610  {
611  return this->refinements_;
612  }
613 
614  void subdomain::
616  {
617  this->refinements_.set (x);
618  }
619 
620  void subdomain::
622  {
623  this->refinements_ = x;
624  }
625 
626  void subdomain::
627  refinements (::std::auto_ptr< refinements_type > x)
628  {
629  this->refinements_.set (x);
630  }
631 
633  name () const
634  {
635  return this->name_.get ();
636  }
637 
640  {
641  return this->name_.get ();
642  }
643 
644  void subdomain::
645  name (const name_type& x)
646  {
647  this->name_.set (x);
648  }
649 
650  void subdomain::
651  name (::std::auto_ptr< name_type > x)
652  {
653  this->name_.set (x);
654  }
655 
656 
657  // vertices
658  //
659 
661  i () const
662  {
663  return this->i_;
664  }
665 
667  i ()
668  {
669  return this->i_;
670  }
671 
672  void vertices::
673  i (const i_sequence& s)
674  {
675  this->i_ = s;
676  }
677 
678 
679  // elements
680  //
681 
683  i () const
684  {
685  return this->i_;
686  }
687 
689  i ()
690  {
691  return this->i_;
692  }
693 
694  void elements::
695  i (const i_sequence& s)
696  {
697  this->i_ = s;
698  }
699 
700 
701  // boundary_edges
702  //
703 
705  i () const
706  {
707  return this->i_;
708  }
709 
711  i ()
712  {
713  return this->i_;
714  }
715 
716  void boundary_edges::
717  i (const i_sequence& s)
718  {
719  this->i_ = s;
720  }
721 
722 
723  // inner_edges
724  //
725 
727  i () const
728  {
729  return this->i_;
730  }
731 
733  i ()
734  {
735  return this->i_;
736  }
737 
738  void inner_edges::
739  i (const i_sequence& s)
740  {
741  this->i_ = s;
742  }
743 }
744 
745 #include <xsd/cxx/xml/dom/parsing-source.hxx>
746 
747 #include <xsd/cxx/tree/type-factory-map.hxx>
748 
749 namespace _xsd
750 {
751  static
752  const ::xsd::cxx::tree::type_factory_plate< 0, char >
753  type_factory_plate_init;
754 }
755 
756 namespace XMLSubdomains
757 {
758  static
759  const ::xsd::cxx::tree::element_factory_initializer< 0, char, ::XMLSubdomains::t_t >
760  _xsd_t_element_factory_init (
761  "el",
762  "XMLSubdomains",
763  "t",
764  "XMLSubdomains");
765 
766 
767  static
768  const ::xsd::cxx::tree::element_factory_initializer< 0, char, ::XMLSubdomains::q_t >
769  _xsd_q_element_factory_init (
770  "el",
771  "XMLSubdomains",
772  "q",
773  "XMLSubdomains");
774 
775 
776  // elements_type
777  //
778 
781  : ::xml_schema::type (),
782  el_ (::xml_schema::flags (), this)
783  {
784  }
785 
788  ::xml_schema::flags f,
790  : ::xml_schema::type (x, f, c),
791  el_ (x.el_, f, this)
792  {
793  }
794 
796  elements_type (const ::xercesc::DOMElement& e,
797  ::xml_schema::flags f,
799  : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
800  el_ (f, this)
801  {
802  if ((f & ::xml_schema::flags::base) == 0)
803  {
804  ::xsd::cxx::xml::dom::parser< char > p (e, true, false);
805  this->parse (p, f);
806  }
807  }
808 
809  void elements_type::
810  parse (::xsd::cxx::xml::dom::parser< char >& p,
811  ::xml_schema::flags f)
812  {
813  for (; p.more_elements (); p.next_element ())
814  {
815  const ::xercesc::DOMElement& i (p.cur_element ());
816  const ::xsd::cxx::xml::qualified_name< char > n (
817  ::xsd::cxx::xml::dom::name< char > (i));
818 
819  // el
820  //
821  {
822  ::xsd::cxx::tree::type_factory_map< char >& tfm (
823  ::xsd::cxx::tree::type_factory_map_instance< 0, char > ());
824 
825  ::std::auto_ptr< ::xsd::cxx::tree::type > tmp (
826  tfm.create (
827  "el",
828  "XMLSubdomains",
829  &::xsd::cxx::tree::factory_impl< el_type >,
830  true, true, i, n, f, this));
831 
832  if (tmp.get () != 0)
833  {
834  ::std::auto_ptr< el_type > r (
835  dynamic_cast< el_type* > (tmp.get ()));
836 
837  if (r.get ())
838  tmp.release ();
839  else
840  throw ::xsd::cxx::tree::not_derived< char > ();
841 
842  this->el_.push_back (r);
843  continue;
844  }
845  }
846 
847  break;
848  }
849  }
850 
851  elements_type* elements_type::
853  ::xml_schema::container* c) const
854  {
855  return new class elements_type (*this, f, c);
856  }
857 
860  {
861  }
862 
863  // el_t
864  //
865 
866  el_t::
867  el_t (const v1_type& v1,
868  const v2_type& v2,
869  const v3_type& v3,
870  const m_type& m,
871  const i_type& i)
872  : ::xml_schema::type (),
873  v1_ (v1, ::xml_schema::flags (), this),
874  v2_ (v2, ::xml_schema::flags (), this),
875  v3_ (v3, ::xml_schema::flags (), this),
876  m_ (m, ::xml_schema::flags (), this),
877  i_ (i, ::xml_schema::flags (), this)
878  {
879  }
880 
881  el_t::
882  el_t (const el_t& x,
883  ::xml_schema::flags f,
885  : ::xml_schema::type (x, f, c),
886  v1_ (x.v1_, f, this),
887  v2_ (x.v2_, f, this),
888  v3_ (x.v3_, f, this),
889  m_ (x.m_, f, this),
890  i_ (x.i_, f, this)
891  {
892  }
893 
894  el_t::
895  el_t (const ::xercesc::DOMElement& e,
896  ::xml_schema::flags f,
898  : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
899  v1_ (f, this),
900  v2_ (f, this),
901  v3_ (f, this),
902  m_ (f, this),
903  i_ (f, this)
904  {
905  if ((f & ::xml_schema::flags::base) == 0)
906  {
907  ::xsd::cxx::xml::dom::parser< char > p (e, false, true);
908  this->parse (p, f);
909  }
910  }
911 
912  void el_t::
913  parse (::xsd::cxx::xml::dom::parser< char >& p,
914  ::xml_schema::flags f)
915  {
916  while (p.more_attributes ())
917  {
918  const ::xercesc::DOMAttr& i (p.next_attribute ());
919  const ::xsd::cxx::xml::qualified_name< char > n (
920  ::xsd::cxx::xml::dom::name< char > (i));
921 
922  if (n.name () == "v1" && n.namespace_ ().empty ())
923  {
924  this->v1_.set (v1_traits::create (i, f, this));
925  continue;
926  }
927 
928  if (n.name () == "v2" && n.namespace_ ().empty ())
929  {
930  this->v2_.set (v2_traits::create (i, f, this));
931  continue;
932  }
933 
934  if (n.name () == "v3" && n.namespace_ ().empty ())
935  {
936  this->v3_.set (v3_traits::create (i, f, this));
937  continue;
938  }
939 
940  if (n.name () == "m" && n.namespace_ ().empty ())
941  {
942  ::std::auto_ptr< m_type > r (
943  m_traits::create (i, f, this));
944 
945  this->m_.set (r);
946  continue;
947  }
948 
949  if (n.name () == "i" && n.namespace_ ().empty ())
950  {
951  this->i_.set (i_traits::create (i, f, this));
952  continue;
953  }
954  }
955 
956  if (!v1_.present ())
957  {
958  throw ::xsd::cxx::tree::expected_attribute< char > (
959  "v1",
960  "");
961  }
962 
963  if (!v2_.present ())
964  {
965  throw ::xsd::cxx::tree::expected_attribute< char > (
966  "v2",
967  "");
968  }
969 
970  if (!v3_.present ())
971  {
972  throw ::xsd::cxx::tree::expected_attribute< char > (
973  "v3",
974  "");
975  }
976 
977  if (!m_.present ())
978  {
979  throw ::xsd::cxx::tree::expected_attribute< char > (
980  "m",
981  "");
982  }
983 
984  if (!i_.present ())
985  {
986  throw ::xsd::cxx::tree::expected_attribute< char > (
987  "i",
988  "");
989  }
990  }
991 
992  el_t* el_t::
994  ::xml_schema::container* c) const
995  {
996  return new class el_t (*this, f, c);
997  }
998 
999  el_t::
1001  {
1002  }
1003 
1004  static
1005  const ::xsd::cxx::tree::type_factory_initializer< 0, char, el_t >
1006  _xsd_el_t_type_factory_init (
1007  "el_t",
1008  "XMLSubdomains");
1009 
1010  // t_t
1011  //
1012 
1013  t_t::
1014  t_t (const v1_type& v1,
1015  const v2_type& v2,
1016  const v3_type& v3,
1017  const m_type& m,
1018  const i_type& i)
1019  : ::XMLSubdomains::el_t (v1,
1020  v2,
1021  v3,
1022  m,
1023  i)
1024  {
1025  }
1026 
1027  t_t::
1028  t_t (const t_t& x,
1029  ::xml_schema::flags f,
1030  ::xml_schema::container* c)
1031  : ::XMLSubdomains::el_t (x, f, c)
1032  {
1033  }
1034 
1035  t_t::
1036  t_t (const ::xercesc::DOMElement& e,
1037  ::xml_schema::flags f,
1038  ::xml_schema::container* c)
1039  : ::XMLSubdomains::el_t (e, f, c)
1040  {
1041  }
1042 
1043  t_t* t_t::
1045  ::xml_schema::container* c) const
1046  {
1047  return new class t_t (*this, f, c);
1048  }
1049 
1050  t_t::
1052  {
1053  }
1054 
1055  static
1056  const ::xsd::cxx::tree::type_factory_initializer< 0, char, t_t >
1057  _xsd_t_t_type_factory_init (
1058  "t_t",
1059  "XMLSubdomains");
1060 
1061  // q_t
1062  //
1063 
1064  q_t::
1065  q_t (const v1_type& v1,
1066  const v2_type& v2,
1067  const v3_type& v3,
1068  const m_type& m,
1069  const i_type& i,
1070  const v4_type& v4)
1071  : ::XMLSubdomains::el_t (v1,
1072  v2,
1073  v3,
1074  m,
1075  i),
1076  v4_ (v4, ::xml_schema::flags (), this)
1077  {
1078  }
1079 
1080  q_t::
1081  q_t (const q_t& x,
1082  ::xml_schema::flags f,
1083  ::xml_schema::container* c)
1084  : ::XMLSubdomains::el_t (x, f, c),
1085  v4_ (x.v4_, f, this)
1086  {
1087  }
1088 
1089  q_t::
1090  q_t (const ::xercesc::DOMElement& e,
1091  ::xml_schema::flags f,
1092  ::xml_schema::container* c)
1093  : ::XMLSubdomains::el_t (e, f | ::xml_schema::flags::base, c),
1094  v4_ (f, this)
1095  {
1096  if ((f & ::xml_schema::flags::base) == 0)
1097  {
1098  ::xsd::cxx::xml::dom::parser< char > p (e, false, true);
1099  this->parse (p, f);
1100  }
1101  }
1102 
1103  void q_t::
1104  parse (::xsd::cxx::xml::dom::parser< char >& p,
1105  ::xml_schema::flags f)
1106  {
1107  this->::XMLSubdomains::el_t::parse (p, f);
1108 
1109  p.reset_attributes ();
1110 
1111  while (p.more_attributes ())
1112  {
1113  const ::xercesc::DOMAttr& i (p.next_attribute ());
1114  const ::xsd::cxx::xml::qualified_name< char > n (
1115  ::xsd::cxx::xml::dom::name< char > (i));
1116 
1117  if (n.name () == "v4" && n.namespace_ ().empty ())
1118  {
1119  this->v4_.set (v4_traits::create (i, f, this));
1120  continue;
1121  }
1122  }
1123 
1124  if (!v4_.present ())
1125  {
1126  throw ::xsd::cxx::tree::expected_attribute< char > (
1127  "v4",
1128  "");
1129  }
1130  }
1131 
1132  q_t* q_t::
1134  ::xml_schema::container* c) const
1135  {
1136  return new class q_t (*this, f, c);
1137  }
1138 
1139  q_t::
1141  {
1142  }
1143 
1144  static
1145  const ::xsd::cxx::tree::type_factory_initializer< 0, char, q_t >
1146  _xsd_q_t_type_factory_init (
1147  "q_t",
1148  "XMLSubdomains");
1149 
1150  // edges_type
1151  //
1152 
1153  edges_type::
1155  : ::xml_schema::type (),
1156  ed_ (::xml_schema::flags (), this)
1157  {
1158  }
1159 
1160  edges_type::
1162  ::xml_schema::flags f,
1163  ::xml_schema::container* c)
1164  : ::xml_schema::type (x, f, c),
1165  ed_ (x.ed_, f, this)
1166  {
1167  }
1168 
1169  edges_type::
1170  edges_type (const ::xercesc::DOMElement& e,
1171  ::xml_schema::flags f,
1172  ::xml_schema::container* c)
1173  : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
1174  ed_ (f, this)
1175  {
1176  if ((f & ::xml_schema::flags::base) == 0)
1177  {
1178  ::xsd::cxx::xml::dom::parser< char > p (e, true, false);
1179  this->parse (p, f);
1180  }
1181  }
1182 
1183  void edges_type::
1184  parse (::xsd::cxx::xml::dom::parser< char >& p,
1185  ::xml_schema::flags f)
1186  {
1187  for (; p.more_elements (); p.next_element ())
1188  {
1189  const ::xercesc::DOMElement& i (p.cur_element ());
1190  const ::xsd::cxx::xml::qualified_name< char > n (
1191  ::xsd::cxx::xml::dom::name< char > (i));
1192 
1193  // ed
1194  //
1195  if (n.name () == "ed" && n.namespace_ ().empty ())
1196  {
1197  ::std::auto_ptr< ed_type > r (
1198  ed_traits::create (i, f, this));
1199 
1200  this->ed_.push_back (r);
1201  continue;
1202  }
1203 
1204  break;
1205  }
1206  }
1207 
1208  edges_type* edges_type::
1210  ::xml_schema::container* c) const
1211  {
1212  return new class edges_type (*this, f, c);
1213  }
1214 
1215  edges_type::
1217  {
1218  }
1219 
1220  // domain
1221  //
1222 
1223  domain::
1225  const elements_type& elements,
1226  const edges_type& edges,
1227  const subdomains_type& subdomains)
1228  : ::xml_schema::type (),
1229  variables_ (::xml_schema::flags (), this),
1230  vertices_ (vertices, ::xml_schema::flags (), this),
1231  elements_ (elements, ::xml_schema::flags (), this),
1232  edges_ (edges, ::xml_schema::flags (), this),
1233  curves_ (::xml_schema::flags (), this),
1234  subdomains_ (subdomains, ::xml_schema::flags (), this)
1235  {
1236  }
1237 
1238  domain::
1239  domain (::std::auto_ptr< vertices_type >& vertices,
1240  ::std::auto_ptr< elements_type >& elements,
1241  ::std::auto_ptr< edges_type >& edges,
1242  ::std::auto_ptr< subdomains_type >& subdomains)
1243  : ::xml_schema::type (),
1244  variables_ (::xml_schema::flags (), this),
1245  vertices_ (vertices, ::xml_schema::flags (), this),
1246  elements_ (elements, ::xml_schema::flags (), this),
1247  edges_ (edges, ::xml_schema::flags (), this),
1248  curves_ (::xml_schema::flags (), this),
1249  subdomains_ (subdomains, ::xml_schema::flags (), this)
1250  {
1251  }
1252 
1253  domain::
1254  domain (const domain& x,
1255  ::xml_schema::flags f,
1256  ::xml_schema::container* c)
1257  : ::xml_schema::type (x, f, c),
1258  variables_ (x.variables_, f, this),
1259  vertices_ (x.vertices_, f, this),
1260  elements_ (x.elements_, f, this),
1261  edges_ (x.edges_, f, this),
1262  curves_ (x.curves_, f, this),
1263  subdomains_ (x.subdomains_, f, this)
1264  {
1265  }
1266 
1267  domain::
1268  domain (const ::xercesc::DOMElement& e,
1269  ::xml_schema::flags f,
1270  ::xml_schema::container* c)
1271  : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
1272  variables_ (f, this),
1273  vertices_ (f, this),
1274  elements_ (f, this),
1275  edges_ (f, this),
1276  curves_ (f, this),
1277  subdomains_ (f, this)
1278  {
1279  if ((f & ::xml_schema::flags::base) == 0)
1280  {
1281  ::xsd::cxx::xml::dom::parser< char > p (e, true, false);
1282  this->parse (p, f);
1283  }
1284  }
1285 
1286  void domain::
1287  parse (::xsd::cxx::xml::dom::parser< char >& p,
1288  ::xml_schema::flags f)
1289  {
1290  for (; p.more_elements (); p.next_element ())
1291  {
1292  const ::xercesc::DOMElement& i (p.cur_element ());
1293  const ::xsd::cxx::xml::qualified_name< char > n (
1294  ::xsd::cxx::xml::dom::name< char > (i));
1295 
1296  // variables
1297  //
1298  if (n.name () == "variables" && n.namespace_ ().empty ())
1299  {
1300  ::std::auto_ptr< variables_type > r (
1301  variables_traits::create (i, f, this));
1302 
1303  if (!this->variables_)
1304  {
1305  this->variables_.set (r);
1306  continue;
1307  }
1308  }
1309 
1310  // vertices
1311  //
1312  if (n.name () == "vertices" && n.namespace_ ().empty ())
1313  {
1314  ::std::auto_ptr< vertices_type > r (
1315  vertices_traits::create (i, f, this));
1316 
1317  if (!vertices_.present ())
1318  {
1319  this->vertices_.set (r);
1320  continue;
1321  }
1322  }
1323 
1324  // elements
1325  //
1326  if (n.name () == "elements" && n.namespace_ ().empty ())
1327  {
1328  ::std::auto_ptr< elements_type > r (
1329  elements_traits::create (i, f, this));
1330 
1331  if (!elements_.present ())
1332  {
1333  this->elements_.set (r);
1334  continue;
1335  }
1336  }
1337 
1338  // edges
1339  //
1340  if (n.name () == "edges" && n.namespace_ ().empty ())
1341  {
1342  ::std::auto_ptr< edges_type > r (
1343  edges_traits::create (i, f, this));
1344 
1345  if (!edges_.present ())
1346  {
1347  this->edges_.set (r);
1348  continue;
1349  }
1350  }
1351 
1352  // curves
1353  //
1354  if (n.name () == "curves" && n.namespace_ ().empty ())
1355  {
1356  ::std::auto_ptr< curves_type > r (
1357  curves_traits::create (i, f, this));
1358 
1359  if (!this->curves_)
1360  {
1361  this->curves_.set (r);
1362  continue;
1363  }
1364  }
1365 
1366  // subdomains
1367  //
1368  if (n.name () == "subdomains" && n.namespace_ ().empty ())
1369  {
1370  ::std::auto_ptr< subdomains_type > r (
1371  subdomains_traits::create (i, f, this));
1372 
1373  if (!subdomains_.present ())
1374  {
1375  this->subdomains_.set (r);
1376  continue;
1377  }
1378  }
1379 
1380  break;
1381  }
1382 
1383  if (!vertices_.present ())
1384  {
1385  throw ::xsd::cxx::tree::expected_element< char > (
1386  "vertices",
1387  "");
1388  }
1389 
1390  if (!elements_.present ())
1391  {
1392  throw ::xsd::cxx::tree::expected_element< char > (
1393  "elements",
1394  "");
1395  }
1396 
1397  if (!edges_.present ())
1398  {
1399  throw ::xsd::cxx::tree::expected_element< char > (
1400  "edges",
1401  "");
1402  }
1403 
1404  if (!subdomains_.present ())
1405  {
1406  throw ::xsd::cxx::tree::expected_element< char > (
1407  "subdomains",
1408  "");
1409  }
1410  }
1411 
1412  domain* domain::
1414  ::xml_schema::container* c) const
1415  {
1416  return new class domain (*this, f, c);
1417  }
1418 
1419  domain::
1421  {
1422  }
1423 
1424  // ed
1425  //
1426 
1427  ed::
1428  ed (const v1_type& v1,
1429  const v2_type& v2,
1430  const m_type& m,
1431  const i_type& i)
1432  : ::xml_schema::type (),
1433  v1_ (v1, ::xml_schema::flags (), this),
1434  v2_ (v2, ::xml_schema::flags (), this),
1435  m_ (m, ::xml_schema::flags (), this),
1436  i_ (i, ::xml_schema::flags (), this)
1437  {
1438  }
1439 
1440  ed::
1441  ed (const ed& x,
1442  ::xml_schema::flags f,
1443  ::xml_schema::container* c)
1444  : ::xml_schema::type (x, f, c),
1445  v1_ (x.v1_, f, this),
1446  v2_ (x.v2_, f, this),
1447  m_ (x.m_, f, this),
1448  i_ (x.i_, f, this)
1449  {
1450  }
1451 
1452  ed::
1453  ed (const ::xercesc::DOMElement& e,
1454  ::xml_schema::flags f,
1455  ::xml_schema::container* c)
1456  : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
1457  v1_ (f, this),
1458  v2_ (f, this),
1459  m_ (f, this),
1460  i_ (f, this)
1461  {
1462  if ((f & ::xml_schema::flags::base) == 0)
1463  {
1464  ::xsd::cxx::xml::dom::parser< char > p (e, false, true);
1465  this->parse (p, f);
1466  }
1467  }
1468 
1469  void ed::
1470  parse (::xsd::cxx::xml::dom::parser< char >& p,
1471  ::xml_schema::flags f)
1472  {
1473  while (p.more_attributes ())
1474  {
1475  const ::xercesc::DOMAttr& i (p.next_attribute ());
1476  const ::xsd::cxx::xml::qualified_name< char > n (
1477  ::xsd::cxx::xml::dom::name< char > (i));
1478 
1479  if (n.name () == "v1" && n.namespace_ ().empty ())
1480  {
1481  this->v1_.set (v1_traits::create (i, f, this));
1482  continue;
1483  }
1484 
1485  if (n.name () == "v2" && n.namespace_ ().empty ())
1486  {
1487  this->v2_.set (v2_traits::create (i, f, this));
1488  continue;
1489  }
1490 
1491  if (n.name () == "m" && n.namespace_ ().empty ())
1492  {
1493  ::std::auto_ptr< m_type > r (
1494  m_traits::create (i, f, this));
1495 
1496  this->m_.set (r);
1497  continue;
1498  }
1499 
1500  if (n.name () == "i" && n.namespace_ ().empty ())
1501  {
1502  this->i_.set (i_traits::create (i, f, this));
1503  continue;
1504  }
1505  }
1506 
1507  if (!v1_.present ())
1508  {
1509  throw ::xsd::cxx::tree::expected_attribute< char > (
1510  "v1",
1511  "");
1512  }
1513 
1514  if (!v2_.present ())
1515  {
1516  throw ::xsd::cxx::tree::expected_attribute< char > (
1517  "v2",
1518  "");
1519  }
1520 
1521  if (!m_.present ())
1522  {
1523  throw ::xsd::cxx::tree::expected_attribute< char > (
1524  "m",
1525  "");
1526  }
1527 
1528  if (!i_.present ())
1529  {
1530  throw ::xsd::cxx::tree::expected_attribute< char > (
1531  "i",
1532  "");
1533  }
1534  }
1535 
1536  ed* ed::
1538  ::xml_schema::container* c) const
1539  {
1540  return new class ed (*this, f, c);
1541  }
1542 
1543  ed::
1545  {
1546  }
1547 
1548  // subdomains
1549  //
1550 
1551  subdomains::
1553  : ::xml_schema::type (),
1554  subdomain_ (::xml_schema::flags (), this)
1555  {
1556  }
1557 
1558  subdomains::
1560  ::xml_schema::flags f,
1561  ::xml_schema::container* c)
1562  : ::xml_schema::type (x, f, c),
1563  subdomain_ (x.subdomain_, f, this)
1564  {
1565  }
1566 
1567  subdomains::
1568  subdomains (const ::xercesc::DOMElement& e,
1569  ::xml_schema::flags f,
1570  ::xml_schema::container* c)
1571  : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
1572  subdomain_ (f, this)
1573  {
1574  if ((f & ::xml_schema::flags::base) == 0)
1575  {
1576  ::xsd::cxx::xml::dom::parser< char > p (e, true, false);
1577  this->parse (p, f);
1578  }
1579  }
1580 
1581  void subdomains::
1582  parse (::xsd::cxx::xml::dom::parser< char >& p,
1583  ::xml_schema::flags f)
1584  {
1585  for (; p.more_elements (); p.next_element ())
1586  {
1587  const ::xercesc::DOMElement& i (p.cur_element ());
1588  const ::xsd::cxx::xml::qualified_name< char > n (
1589  ::xsd::cxx::xml::dom::name< char > (i));
1590 
1591  // subdomain
1592  //
1593  if (n.name () == "subdomain" && n.namespace_ ().empty ())
1594  {
1595  ::std::auto_ptr< subdomain_type > r (
1596  subdomain_traits::create (i, f, this));
1597 
1598  this->subdomain_.push_back (r);
1599  continue;
1600  }
1601 
1602  break;
1603  }
1604  }
1605 
1606  subdomains* subdomains::
1608  ::xml_schema::container* c) const
1609  {
1610  return new class subdomains (*this, f, c);
1611  }
1612 
1613  subdomains::
1615  {
1616  }
1617 
1618  // subdomain
1619  //
1620 
1621  subdomain::
1623  : ::xml_schema::type (),
1624  vertices_ (::xml_schema::flags (), this),
1625  elements_ (::xml_schema::flags (), this),
1626  boundary_edges_ (::xml_schema::flags (), this),
1627  inner_edges_ (::xml_schema::flags (), this),
1628  refinements_ (::xml_schema::flags (), this),
1629  name_ (name, ::xml_schema::flags (), this)
1630  {
1631  }
1632 
1633  subdomain::
1635  ::xml_schema::flags f,
1636  ::xml_schema::container* c)
1637  : ::xml_schema::type (x, f, c),
1638  vertices_ (x.vertices_, f, this),
1639  elements_ (x.elements_, f, this),
1640  boundary_edges_ (x.boundary_edges_, f, this),
1641  inner_edges_ (x.inner_edges_, f, this),
1642  refinements_ (x.refinements_, f, this),
1643  name_ (x.name_, f, this)
1644  {
1645  }
1646 
1647  subdomain::
1648  subdomain (const ::xercesc::DOMElement& e,
1649  ::xml_schema::flags f,
1650  ::xml_schema::container* c)
1651  : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
1652  vertices_ (f, this),
1653  elements_ (f, this),
1654  boundary_edges_ (f, this),
1655  inner_edges_ (f, this),
1656  refinements_ (f, this),
1657  name_ (f, this)
1658  {
1659  if ((f & ::xml_schema::flags::base) == 0)
1660  {
1661  ::xsd::cxx::xml::dom::parser< char > p (e, true, true);
1662  this->parse (p, f);
1663  }
1664  }
1665 
1666  void subdomain::
1667  parse (::xsd::cxx::xml::dom::parser< char >& p,
1668  ::xml_schema::flags f)
1669  {
1670  for (; p.more_elements (); p.next_element ())
1671  {
1672  const ::xercesc::DOMElement& i (p.cur_element ());
1673  const ::xsd::cxx::xml::qualified_name< char > n (
1674  ::xsd::cxx::xml::dom::name< char > (i));
1675 
1676  // vertices
1677  //
1678  if (n.name () == "vertices" && n.namespace_ ().empty ())
1679  {
1680  ::std::auto_ptr< vertices_type > r (
1681  vertices_traits::create (i, f, this));
1682 
1683  if (!this->vertices_)
1684  {
1685  this->vertices_.set (r);
1686  continue;
1687  }
1688  }
1689 
1690  // elements
1691  //
1692  if (n.name () == "elements" && n.namespace_ ().empty ())
1693  {
1694  ::std::auto_ptr< elements_type > r (
1695  elements_traits::create (i, f, this));
1696 
1697  if (!this->elements_)
1698  {
1699  this->elements_.set (r);
1700  continue;
1701  }
1702  }
1703 
1704  // boundary_edges
1705  //
1706  if (n.name () == "boundary_edges" && n.namespace_ ().empty ())
1707  {
1708  ::std::auto_ptr< boundary_edges_type > r (
1709  boundary_edges_traits::create (i, f, this));
1710 
1711  if (!this->boundary_edges_)
1712  {
1713  this->boundary_edges_.set (r);
1714  continue;
1715  }
1716  }
1717 
1718  // inner_edges
1719  //
1720  if (n.name () == "inner_edges" && n.namespace_ ().empty ())
1721  {
1722  ::std::auto_ptr< inner_edges_type > r (
1723  inner_edges_traits::create (i, f, this));
1724 
1725  if (!this->inner_edges_)
1726  {
1727  this->inner_edges_.set (r);
1728  continue;
1729  }
1730  }
1731 
1732  // refinements
1733  //
1734  if (n.name () == "refinements" && n.namespace_ ().empty ())
1735  {
1736  ::std::auto_ptr< refinements_type > r (
1737  refinements_traits::create (i, f, this));
1738 
1739  if (!this->refinements_)
1740  {
1741  this->refinements_.set (r);
1742  continue;
1743  }
1744  }
1745 
1746  break;
1747  }
1748 
1749  while (p.more_attributes ())
1750  {
1751  const ::xercesc::DOMAttr& i (p.next_attribute ());
1752  const ::xsd::cxx::xml::qualified_name< char > n (
1753  ::xsd::cxx::xml::dom::name< char > (i));
1754 
1755  if (n.name () == "name" && n.namespace_ ().empty ())
1756  {
1757  ::std::auto_ptr< name_type > r (
1758  name_traits::create (i, f, this));
1759 
1760  this->name_.set (r);
1761  continue;
1762  }
1763  }
1764 
1765  if (!name_.present ())
1766  {
1767  throw ::xsd::cxx::tree::expected_attribute< char > (
1768  "name",
1769  "");
1770  }
1771  }
1772 
1773  subdomain* subdomain::
1775  ::xml_schema::container* c) const
1776  {
1777  return new class subdomain (*this, f, c);
1778  }
1779 
1780  subdomain::
1782  {
1783  }
1784 
1785  // vertices
1786  //
1787 
1788  vertices::
1790  : ::xml_schema::type (),
1791  i_ (::xml_schema::flags (), this)
1792  {
1793  }
1794 
1795  vertices::
1797  ::xml_schema::flags f,
1798  ::xml_schema::container* c)
1799  : ::xml_schema::type (x, f, c),
1800  i_ (x.i_, f, this)
1801  {
1802  }
1803 
1804  vertices::
1805  vertices (const ::xercesc::DOMElement& e,
1806  ::xml_schema::flags f,
1807  ::xml_schema::container* c)
1808  : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
1809  i_ (f, this)
1810  {
1811  if ((f & ::xml_schema::flags::base) == 0)
1812  {
1813  ::xsd::cxx::xml::dom::parser< char > p (e, true, false);
1814  this->parse (p, f);
1815  }
1816  }
1817 
1818  void vertices::
1819  parse (::xsd::cxx::xml::dom::parser< char >& p,
1820  ::xml_schema::flags f)
1821  {
1822  for (; p.more_elements (); p.next_element ())
1823  {
1824  const ::xercesc::DOMElement& i (p.cur_element ());
1825  const ::xsd::cxx::xml::qualified_name< char > n (
1826  ::xsd::cxx::xml::dom::name< char > (i));
1827 
1828  // i
1829  //
1830  if (n.name () == "i" && n.namespace_ ().empty ())
1831  {
1832  this->i_.push_back (i_traits::create (i, f, this));
1833  continue;
1834  }
1835 
1836  break;
1837  }
1838  }
1839 
1840  vertices* vertices::
1842  ::xml_schema::container* c) const
1843  {
1844  return new class vertices (*this, f, c);
1845  }
1846 
1847  vertices::
1849  {
1850  }
1851 
1852  // elements
1853  //
1854 
1855  elements::
1857  : ::xml_schema::type (),
1858  i_ (::xml_schema::flags (), this)
1859  {
1860  }
1861 
1862  elements::
1864  ::xml_schema::flags f,
1865  ::xml_schema::container* c)
1866  : ::xml_schema::type (x, f, c),
1867  i_ (x.i_, f, this)
1868  {
1869  }
1870 
1871  elements::
1872  elements (const ::xercesc::DOMElement& e,
1873  ::xml_schema::flags f,
1874  ::xml_schema::container* c)
1875  : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
1876  i_ (f, this)
1877  {
1878  if ((f & ::xml_schema::flags::base) == 0)
1879  {
1880  ::xsd::cxx::xml::dom::parser< char > p (e, true, false);
1881  this->parse (p, f);
1882  }
1883  }
1884 
1885  void elements::
1886  parse (::xsd::cxx::xml::dom::parser< char >& p,
1887  ::xml_schema::flags f)
1888  {
1889  for (; p.more_elements (); p.next_element ())
1890  {
1891  const ::xercesc::DOMElement& i (p.cur_element ());
1892  const ::xsd::cxx::xml::qualified_name< char > n (
1893  ::xsd::cxx::xml::dom::name< char > (i));
1894 
1895  // i
1896  //
1897  if (n.name () == "i" && n.namespace_ ().empty ())
1898  {
1899  this->i_.push_back (i_traits::create (i, f, this));
1900  continue;
1901  }
1902 
1903  break;
1904  }
1905  }
1906 
1907  elements* elements::
1909  ::xml_schema::container* c) const
1910  {
1911  return new class elements (*this, f, c);
1912  }
1913 
1914  elements::
1916  {
1917  }
1918 
1919  // boundary_edges
1920  //
1921 
1924  : ::xml_schema::type (),
1925  i_ (::xml_schema::flags (), this)
1926  {
1927  }
1928 
1931  ::xml_schema::flags f,
1932  ::xml_schema::container* c)
1933  : ::xml_schema::type (x, f, c),
1934  i_ (x.i_, f, this)
1935  {
1936  }
1937 
1939  boundary_edges (const ::xercesc::DOMElement& e,
1940  ::xml_schema::flags f,
1941  ::xml_schema::container* c)
1942  : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
1943  i_ (f, this)
1944  {
1945  if ((f & ::xml_schema::flags::base) == 0)
1946  {
1947  ::xsd::cxx::xml::dom::parser< char > p (e, true, false);
1948  this->parse (p, f);
1949  }
1950  }
1951 
1952  void boundary_edges::
1953  parse (::xsd::cxx::xml::dom::parser< char >& p,
1954  ::xml_schema::flags f)
1955  {
1956  for (; p.more_elements (); p.next_element ())
1957  {
1958  const ::xercesc::DOMElement& i (p.cur_element ());
1959  const ::xsd::cxx::xml::qualified_name< char > n (
1960  ::xsd::cxx::xml::dom::name< char > (i));
1961 
1962  // i
1963  //
1964  if (n.name () == "i" && n.namespace_ ().empty ())
1965  {
1966  this->i_.push_back (i_traits::create (i, f, this));
1967  continue;
1968  }
1969 
1970  break;
1971  }
1972  }
1973 
1974  boundary_edges* boundary_edges::
1976  ::xml_schema::container* c) const
1977  {
1978  return new class boundary_edges (*this, f, c);
1979  }
1980 
1983  {
1984  }
1985 
1986  // inner_edges
1987  //
1988 
1991  : ::xml_schema::type (),
1992  i_ (::xml_schema::flags (), this)
1993  {
1994  }
1995 
1998  ::xml_schema::flags f,
1999  ::xml_schema::container* c)
2000  : ::xml_schema::type (x, f, c),
2001  i_ (x.i_, f, this)
2002  {
2003  }
2004 
2006  inner_edges (const ::xercesc::DOMElement& e,
2007  ::xml_schema::flags f,
2008  ::xml_schema::container* c)
2009  : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
2010  i_ (f, this)
2011  {
2012  if ((f & ::xml_schema::flags::base) == 0)
2013  {
2014  ::xsd::cxx::xml::dom::parser< char > p (e, true, false);
2015  this->parse (p, f);
2016  }
2017  }
2018 
2019  void inner_edges::
2020  parse (::xsd::cxx::xml::dom::parser< char >& p,
2021  ::xml_schema::flags f)
2022  {
2023  for (; p.more_elements (); p.next_element ())
2024  {
2025  const ::xercesc::DOMElement& i (p.cur_element ());
2026  const ::xsd::cxx::xml::qualified_name< char > n (
2027  ::xsd::cxx::xml::dom::name< char > (i));
2028 
2029  // i
2030  //
2031  if (n.name () == "i" && n.namespace_ ().empty ())
2032  {
2033  this->i_.push_back (i_traits::create (i, f, this));
2034  continue;
2035  }
2036 
2037  break;
2038  }
2039  }
2040 
2041  inner_edges* inner_edges::
2043  ::xml_schema::container* c) const
2044  {
2045  return new class inner_edges (*this, f, c);
2046  }
2047 
2050  {
2051  }
2052 }
2053 
2054 #include <ostream>
2055 
2056 #include <xsd/cxx/tree/std-ostream-map.hxx>
2057 
2058 namespace _xsd
2059 {
2060  static
2061  const ::xsd::cxx::tree::std_ostream_plate< 0, char >
2062  std_ostream_plate_init;
2063 }
2064 
2065 namespace XMLSubdomains
2066 {
2067  ::std::ostream&
2068  operator<< (::std::ostream& o, const elements_type& i)
2069  {
2070  {
2071  ::xsd::cxx::tree::std_ostream_map< char >& om (
2072  ::xsd::cxx::tree::std_ostream_map_instance< 0, char > ());
2073 
2075  b (i.el ().begin ()), e (i.el ().end ());
2076  b != e; ++b)
2077  {
2078  o << ::std::endl << "el: ";
2079  om.insert (o, *b);
2080  }
2081  }
2082 
2083  return o;
2084  }
2085 
2086  ::std::ostream&
2087  operator<< (::std::ostream& o, const el_t& i)
2088  {
2089  o << ::std::endl << "v1: " << i.v1 ();
2090  o << ::std::endl << "v2: " << i.v2 ();
2091  o << ::std::endl << "v3: " << i.v3 ();
2092  o << ::std::endl << "m: " << i.m ();
2093  o << ::std::endl << "i: " << i.i ();
2094  return o;
2095  }
2096 
2097  static
2098  const ::xsd::cxx::tree::std_ostream_initializer< 0, char, el_t >
2099  _xsd_el_t_std_ostream_init;
2100 
2101  ::std::ostream&
2102  operator<< (::std::ostream& o, const t_t& i)
2103  {
2104  o << static_cast< const ::XMLSubdomains::el_t& > (i);
2105 
2106  return o;
2107  }
2108 
2109  static
2110  const ::xsd::cxx::tree::std_ostream_initializer< 0, char, t_t >
2111  _xsd_t_t_std_ostream_init;
2112 
2113  ::std::ostream&
2114  operator<< (::std::ostream& o, const q_t& i)
2115  {
2116  o << static_cast< const ::XMLSubdomains::el_t& > (i);
2117 
2118  o << ::std::endl << "v4: " << i.v4 ();
2119  return o;
2120  }
2121 
2122  static
2123  const ::xsd::cxx::tree::std_ostream_initializer< 0, char, q_t >
2124  _xsd_q_t_std_ostream_init;
2125 
2126  ::std::ostream&
2127  operator<< (::std::ostream& o, const edges_type& i)
2128  {
2130  b (i.ed ().begin ()), e (i.ed ().end ());
2131  b != e; ++b)
2132  {
2133  o << ::std::endl << "ed: " << *b;
2134  }
2135 
2136  return o;
2137  }
2138 
2139  ::std::ostream&
2140  operator<< (::std::ostream& o, const domain& i)
2141  {
2142  if (i.variables ())
2143  {
2144  o << ::std::endl << "variables: " << *i.variables ();
2145  }
2146 
2147  o << ::std::endl << "vertices: " << i.vertices ();
2148  o << ::std::endl << "elements: " << i.elements ();
2149  o << ::std::endl << "edges: " << i.edges ();
2150  if (i.curves ())
2151  {
2152  o << ::std::endl << "curves: " << *i.curves ();
2153  }
2154 
2155  o << ::std::endl << "subdomains: " << i.subdomains ();
2156  return o;
2157  }
2158 
2159  ::std::ostream&
2160  operator<< (::std::ostream& o, const ed& i)
2161  {
2162  o << ::std::endl << "v1: " << i.v1 ();
2163  o << ::std::endl << "v2: " << i.v2 ();
2164  o << ::std::endl << "m: " << i.m ();
2165  o << ::std::endl << "i: " << i.i ();
2166  return o;
2167  }
2168 
2169  ::std::ostream&
2170  operator<< (::std::ostream& o, const subdomains& i)
2171  {
2173  b (i.subdomain ().begin ()), e (i.subdomain ().end ());
2174  b != e; ++b)
2175  {
2176  o << ::std::endl << "subdomain: " << *b;
2177  }
2178 
2179  return o;
2180  }
2181 
2182  ::std::ostream&
2183  operator<< (::std::ostream& o, const subdomain& i)
2184  {
2185  if (i.vertices ())
2186  {
2187  o << ::std::endl << "vertices: " << *i.vertices ();
2188  }
2189 
2190  if (i.elements ())
2191  {
2192  o << ::std::endl << "elements: " << *i.elements ();
2193  }
2194 
2195  if (i.boundary_edges ())
2196  {
2197  o << ::std::endl << "boundary_edges: " << *i.boundary_edges ();
2198  }
2199 
2200  if (i.inner_edges ())
2201  {
2202  o << ::std::endl << "inner_edges: " << *i.inner_edges ();
2203  }
2204 
2205  if (i.refinements ())
2206  {
2207  o << ::std::endl << "refinements: " << *i.refinements ();
2208  }
2209 
2210  o << ::std::endl << "name: " << i.name ();
2211  return o;
2212  }
2213 
2214  ::std::ostream&
2215  operator<< (::std::ostream& o, const vertices& i)
2216  {
2218  b (i.i ().begin ()), e (i.i ().end ());
2219  b != e; ++b)
2220  {
2221  o << ::std::endl << "i: " << *b;
2222  }
2223 
2224  return o;
2225  }
2226 
2227  ::std::ostream&
2228  operator<< (::std::ostream& o, const elements& i)
2229  {
2231  b (i.i ().begin ()), e (i.i ().end ());
2232  b != e; ++b)
2233  {
2234  o << ::std::endl << "i: " << *b;
2235  }
2236 
2237  return o;
2238  }
2239 
2240  ::std::ostream&
2241  operator<< (::std::ostream& o, const boundary_edges& i)
2242  {
2244  b (i.i ().begin ()), e (i.i ().end ());
2245  b != e; ++b)
2246  {
2247  o << ::std::endl << "i: " << *b;
2248  }
2249 
2250  return o;
2251  }
2252 
2253  ::std::ostream&
2254  operator<< (::std::ostream& o, const inner_edges& i)
2255  {
2257  b (i.i ().begin ()), e (i.i ().end ());
2258  b != e; ++b)
2259  {
2260  o << ::std::endl << "i: " << *b;
2261  }
2262 
2263  return o;
2264  }
2265 }
2266 
2267 #include <istream>
2268 #include <xsd/cxx/xml/sax/std-input-source.hxx>
2269 #include <xsd/cxx/tree/error-handler.hxx>
2270 
2271 namespace XMLSubdomains
2272 {
2273  ::std::auto_ptr< ::XMLSubdomains::domain >
2275  ::xml_schema::flags f,
2277  {
2278  ::xsd::cxx::xml::auto_initializer i (
2279  (f & ::xml_schema::flags::dont_initialize) == 0,
2280  (f & ::xml_schema::flags::keep_dom) == 0);
2281 
2282  ::xsd::cxx::tree::error_handler< char > h;
2283 
2284  ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d (
2285  ::xsd::cxx::xml::dom::parse< char > (
2286  u, h, p, f));
2287 
2288  h.throw_if_failed< ::xsd::cxx::tree::parsing< char > > ();
2289 
2290  ::std::auto_ptr< ::XMLSubdomains::domain > r (
2292  d, f | ::xml_schema::flags::own_dom, p));
2293 
2294  return r;
2295  }
2296 
2297  ::std::auto_ptr< ::XMLSubdomains::domain >
2300  ::xml_schema::flags f,
2302  {
2303  ::xsd::cxx::xml::auto_initializer i (
2304  (f & ::xml_schema::flags::dont_initialize) == 0,
2305  (f & ::xml_schema::flags::keep_dom) == 0);
2306 
2307  ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d (
2308  ::xsd::cxx::xml::dom::parse< char > (
2309  u, h, p, f));
2310 
2311  if (!d.get ())
2312  throw ::xsd::cxx::tree::parsing< char > ();
2313 
2314  ::std::auto_ptr< ::XMLSubdomains::domain > r (
2316  d, f | ::xml_schema::flags::own_dom, p));
2317 
2318  return r;
2319  }
2320 
2321  ::std::auto_ptr< ::XMLSubdomains::domain >
2323  ::xercesc::DOMErrorHandler& h,
2324  ::xml_schema::flags f,
2326  {
2327  ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d (
2328  ::xsd::cxx::xml::dom::parse< char > (
2329  u, h, p, f));
2330 
2331  if (!d.get ())
2332  throw ::xsd::cxx::tree::parsing< char > ();
2333 
2334  ::std::auto_ptr< ::XMLSubdomains::domain > r (
2336  d, f | ::xml_schema::flags::own_dom, p));
2337 
2338  return r;
2339  }
2340 
2341  ::std::auto_ptr< ::XMLSubdomains::domain >
2342  domain_ (::std::istream& is,
2343  ::xml_schema::flags f,
2345  {
2346  ::xsd::cxx::xml::auto_initializer i (
2347  (f & ::xml_schema::flags::dont_initialize) == 0,
2348  (f & ::xml_schema::flags::keep_dom) == 0);
2349 
2350  ::xsd::cxx::xml::sax::std_input_source isrc (is);
2351  return ::XMLSubdomains::domain_ (isrc, f, p);
2352  }
2353 
2354  ::std::auto_ptr< ::XMLSubdomains::domain >
2355  domain_ (::std::istream& is,
2357  ::xml_schema::flags f,
2359  {
2360  ::xsd::cxx::xml::auto_initializer i (
2361  (f & ::xml_schema::flags::dont_initialize) == 0,
2362  (f & ::xml_schema::flags::keep_dom) == 0);
2363 
2364  ::xsd::cxx::xml::sax::std_input_source isrc (is);
2365  return ::XMLSubdomains::domain_ (isrc, h, f, p);
2366  }
2367 
2368  ::std::auto_ptr< ::XMLSubdomains::domain >
2369  domain_ (::std::istream& is,
2370  ::xercesc::DOMErrorHandler& h,
2371  ::xml_schema::flags f,
2373  {
2374  ::xsd::cxx::xml::sax::std_input_source isrc (is);
2375  return ::XMLSubdomains::domain_ (isrc, h, f, p);
2376  }
2377 
2378  ::std::auto_ptr< ::XMLSubdomains::domain >
2379  domain_ (::std::istream& is,
2380  const ::std::string& sid,
2381  ::xml_schema::flags f,
2383  {
2384  ::xsd::cxx::xml::auto_initializer i (
2385  (f & ::xml_schema::flags::dont_initialize) == 0,
2386  (f & ::xml_schema::flags::keep_dom) == 0);
2387 
2388  ::xsd::cxx::xml::sax::std_input_source isrc (is, sid);
2389  return ::XMLSubdomains::domain_ (isrc, f, p);
2390  }
2391 
2392  ::std::auto_ptr< ::XMLSubdomains::domain >
2393  domain_ (::std::istream& is,
2394  const ::std::string& sid,
2396  ::xml_schema::flags f,
2398  {
2399  ::xsd::cxx::xml::auto_initializer i (
2400  (f & ::xml_schema::flags::dont_initialize) == 0,
2401  (f & ::xml_schema::flags::keep_dom) == 0);
2402 
2403  ::xsd::cxx::xml::sax::std_input_source isrc (is, sid);
2404  return ::XMLSubdomains::domain_ (isrc, h, f, p);
2405  }
2406 
2407  ::std::auto_ptr< ::XMLSubdomains::domain >
2408  domain_ (::std::istream& is,
2409  const ::std::string& sid,
2410  ::xercesc::DOMErrorHandler& h,
2411  ::xml_schema::flags f,
2413  {
2414  ::xsd::cxx::xml::sax::std_input_source isrc (is, sid);
2415  return ::XMLSubdomains::domain_ (isrc, h, f, p);
2416  }
2417 
2418  ::std::auto_ptr< ::XMLSubdomains::domain >
2419  domain_ (::xercesc::InputSource& i,
2420  ::xml_schema::flags f,
2422  {
2423  ::xsd::cxx::tree::error_handler< char > h;
2424 
2425  ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d (
2426  ::xsd::cxx::xml::dom::parse< char > (
2427  i, h, p, f));
2428 
2429  h.throw_if_failed< ::xsd::cxx::tree::parsing< char > > ();
2430 
2431  ::std::auto_ptr< ::XMLSubdomains::domain > r (
2433  d, f | ::xml_schema::flags::own_dom, p));
2434 
2435  return r;
2436  }
2437 
2438  ::std::auto_ptr< ::XMLSubdomains::domain >
2439  domain_ (::xercesc::InputSource& i,
2441  ::xml_schema::flags f,
2443  {
2444  ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d (
2445  ::xsd::cxx::xml::dom::parse< char > (
2446  i, h, p, f));
2447 
2448  if (!d.get ())
2449  throw ::xsd::cxx::tree::parsing< char > ();
2450 
2451  ::std::auto_ptr< ::XMLSubdomains::domain > r (
2453  d, f | ::xml_schema::flags::own_dom, p));
2454 
2455  return r;
2456  }
2457 
2458  ::std::auto_ptr< ::XMLSubdomains::domain >
2459  domain_ (::xercesc::InputSource& i,
2460  ::xercesc::DOMErrorHandler& h,
2461  ::xml_schema::flags f,
2463  {
2464  ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d (
2465  ::xsd::cxx::xml::dom::parse< char > (
2466  i, h, p, f));
2467 
2468  if (!d.get ())
2469  throw ::xsd::cxx::tree::parsing< char > ();
2470 
2471  ::std::auto_ptr< ::XMLSubdomains::domain > r (
2473  d, f | ::xml_schema::flags::own_dom, p));
2474 
2475  return r;
2476  }
2477 
2478  ::std::auto_ptr< ::XMLSubdomains::domain >
2479  domain_ (const ::xercesc::DOMDocument& d,
2480  ::xml_schema::flags f,
2482  {
2483  if (f & ::xml_schema::flags::keep_dom)
2484  {
2485  ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > c (
2486  static_cast< ::xercesc::DOMDocument* > (d.cloneNode (true)));
2487 
2488  ::std::auto_ptr< ::XMLSubdomains::domain > r (
2490  c, f | ::xml_schema::flags::own_dom, p));
2491 
2492  return r;
2493  }
2494 
2495  const ::xercesc::DOMElement& e (*d.getDocumentElement ());
2496  const ::xsd::cxx::xml::qualified_name< char > n (
2497  ::xsd::cxx::xml::dom::name< char > (e));
2498 
2499  if (n.name () == "domain" &&
2500  n.namespace_ () == "XMLSubdomains")
2501  {
2502  ::std::auto_ptr< ::XMLSubdomains::domain > r (
2503  ::xsd::cxx::tree::traits< ::XMLSubdomains::domain, char >::create (
2504  e, f, 0));
2505  return r;
2506  }
2507 
2508  throw ::xsd::cxx::tree::unexpected_element < char > (
2509  n.name (),
2510  n.namespace_ (),
2511  "domain",
2512  "XMLSubdomains");
2513  }
2514 
2515  ::std::auto_ptr< ::XMLSubdomains::domain >
2516  domain_ (::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument >& d,
2517  ::xml_schema::flags f,
2519  {
2520  ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > c (
2521  ((f & ::xml_schema::flags::keep_dom) &&
2522  !(f & ::xml_schema::flags::own_dom))
2523  ? static_cast< ::xercesc::DOMDocument* > (d->cloneNode (true))
2524  : 0);
2525 
2526  ::xercesc::DOMDocument& doc (c.get () ? *c : *d);
2527  const ::xercesc::DOMElement& e (*doc.getDocumentElement ());
2528 
2529  const ::xsd::cxx::xml::qualified_name< char > n (
2530  ::xsd::cxx::xml::dom::name< char > (e));
2531 
2532  if (f & ::xml_schema::flags::keep_dom)
2533  doc.setUserData (::xml_schema::dom::tree_node_key,
2534  (c.get () ? &c : &d),
2535  0);
2536 
2537  if (n.name () == "domain" &&
2538  n.namespace_ () == "XMLSubdomains")
2539  {
2540  ::std::auto_ptr< ::XMLSubdomains::domain > r (
2541  ::xsd::cxx::tree::traits< ::XMLSubdomains::domain, char >::create (
2542  e, f, 0));
2543  return r;
2544  }
2545 
2546  throw ::xsd::cxx::tree::unexpected_element < char > (
2547  n.name (),
2548  n.namespace_ (),
2549  "domain",
2550  "XMLSubdomains");
2551  }
2552 }
2553 
2554 #include <ostream>
2555 #include <xsd/cxx/tree/error-handler.hxx>
2556 #include <xsd/cxx/xml/dom/serialization-source.hxx>
2557 
2558 #include <xsd/cxx/tree/type-serializer-map.hxx>
2559 
2560 namespace _xsd
2561 {
2562  static
2563  const ::xsd::cxx::tree::type_serializer_plate< 0, char >
2564  type_serializer_plate_init;
2565 }
2566 
2567 namespace XMLSubdomains
2568 {
2569  void
2570  domain_ (::std::ostream& o,
2571  const ::XMLSubdomains::domain& s,
2574  ::xml_schema::flags f)
2575  {
2576  ::xsd::cxx::xml::auto_initializer i (
2577  (f & ::xml_schema::flags::dont_initialize) == 0);
2578 
2579  ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d (
2580  ::XMLSubdomains::domain_ (s, m, f));
2581 
2582  ::xsd::cxx::tree::error_handler< char > h;
2583 
2584  ::xsd::cxx::xml::dom::ostream_format_target t (o);
2585  if (!::xsd::cxx::xml::dom::serialize (t, *d, e, h, f))
2586  {
2587  h.throw_if_failed< ::xsd::cxx::tree::serialization< char > > ();
2588  }
2589  }
2590 
2591  void
2592  domain_ (::std::ostream& o,
2593  const ::XMLSubdomains::domain& s,
2597  ::xml_schema::flags f)
2598  {
2599  ::xsd::cxx::xml::auto_initializer i (
2600  (f & ::xml_schema::flags::dont_initialize) == 0);
2601 
2602  ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d (
2603  ::XMLSubdomains::domain_ (s, m, f));
2604  ::xsd::cxx::xml::dom::ostream_format_target t (o);
2605  if (!::xsd::cxx::xml::dom::serialize (t, *d, e, h, f))
2606  {
2607  throw ::xsd::cxx::tree::serialization< char > ();
2608  }
2609  }
2610 
2611  void
2612  domain_ (::std::ostream& o,
2613  const ::XMLSubdomains::domain& s,
2614  ::xercesc::DOMErrorHandler& h,
2617  ::xml_schema::flags f)
2618  {
2619  ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d (
2620  ::XMLSubdomains::domain_ (s, m, f));
2621  ::xsd::cxx::xml::dom::ostream_format_target t (o);
2622  if (!::xsd::cxx::xml::dom::serialize (t, *d, e, h, f))
2623  {
2624  throw ::xsd::cxx::tree::serialization< char > ();
2625  }
2626  }
2627 
2628  void
2629  domain_ (::xercesc::XMLFormatTarget& t,
2630  const ::XMLSubdomains::domain& s,
2633  ::xml_schema::flags f)
2634  {
2635  ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d (
2636  ::XMLSubdomains::domain_ (s, m, f));
2637 
2638  ::xsd::cxx::tree::error_handler< char > h;
2639 
2640  if (!::xsd::cxx::xml::dom::serialize (t, *d, e, h, f))
2641  {
2642  h.throw_if_failed< ::xsd::cxx::tree::serialization< char > > ();
2643  }
2644  }
2645 
2646  void
2647  domain_ (::xercesc::XMLFormatTarget& t,
2648  const ::XMLSubdomains::domain& s,
2652  ::xml_schema::flags f)
2653  {
2654  ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d (
2655  ::XMLSubdomains::domain_ (s, m, f));
2656  if (!::xsd::cxx::xml::dom::serialize (t, *d, e, h, f))
2657  {
2658  throw ::xsd::cxx::tree::serialization< char > ();
2659  }
2660  }
2661 
2662  void
2663  domain_ (::xercesc::XMLFormatTarget& t,
2664  const ::XMLSubdomains::domain& s,
2665  ::xercesc::DOMErrorHandler& h,
2668  ::xml_schema::flags f)
2669  {
2670  ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d (
2671  ::XMLSubdomains::domain_ (s, m, f));
2672  if (!::xsd::cxx::xml::dom::serialize (t, *d, e, h, f))
2673  {
2674  throw ::xsd::cxx::tree::serialization< char > ();
2675  }
2676  }
2677 
2678  void
2679  domain_ (::xercesc::DOMDocument& d,
2680  const ::XMLSubdomains::domain& s,
2682  {
2683  ::xercesc::DOMElement& e (*d.getDocumentElement ());
2684  const ::xsd::cxx::xml::qualified_name< char > n (
2685  ::xsd::cxx::xml::dom::name< char > (e));
2686 
2687  if (n.name () == "domain" &&
2688  n.namespace_ () == "XMLSubdomains")
2689  {
2690  e << s;
2691  }
2692  else
2693  {
2694  throw ::xsd::cxx::tree::unexpected_element < char > (
2695  n.name (),
2696  n.namespace_ (),
2697  "domain",
2698  "XMLSubdomains");
2699  }
2700  }
2701 
2702  ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument >
2703  domain_ (const ::XMLSubdomains::domain& s,
2705  ::xml_schema::flags f)
2706  {
2707  ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d (
2708  ::xsd::cxx::xml::dom::serialize< char > (
2709  "domain",
2710  "XMLSubdomains",
2711  m, f));
2712 
2713  ::XMLSubdomains::domain_ (*d, s, f);
2714  return d;
2715  }
2716 
2717  static
2718  const ::xsd::cxx::tree::element_serializer_initializer< 0, char, ::XMLSubdomains::t_t >
2719  _xsd_t_element_serializer_init (
2720  "el",
2721  "XMLSubdomains",
2722  "t",
2723  "XMLSubdomains");
2724 
2725 
2726  static
2727  const ::xsd::cxx::tree::element_serializer_initializer< 0, char, ::XMLSubdomains::q_t >
2728  _xsd_q_element_serializer_init (
2729  "el",
2730  "XMLSubdomains",
2731  "q",
2732  "XMLSubdomains");
2733 
2734 
2735  void
2736  operator<< (::xercesc::DOMElement& e, const elements_type& i)
2737  {
2738  e << static_cast< const ::xml_schema::type& > (i);
2739 
2740  // el
2741  //
2742  {
2743  ::xsd::cxx::tree::type_serializer_map< char >& tsm (
2744  ::xsd::cxx::tree::type_serializer_map_instance< 0, char > ());
2745 
2747  b (i.el ().begin ()), n (i.el ().end ());
2748  b != n; ++b)
2749  {
2750  if (typeid (elements_type::el_type) == typeid (*b))
2751  {
2752  ::xercesc::DOMElement& s (
2753  ::xsd::cxx::xml::dom::create_element (
2754  "el",
2755  "XMLSubdomains",
2756  e));
2757 
2758  s << *b;
2759  }
2760  else
2761  tsm.serialize (
2762  "el",
2763  "XMLSubdomains",
2764  true, true, e, *b);
2765  }
2766  }
2767  }
2768 
2769  void
2770  operator<< (::xercesc::DOMElement& e, const el_t& i)
2771  {
2772  e << static_cast< const ::xml_schema::type& > (i);
2773 
2774  // v1
2775  //
2776  {
2777  ::xercesc::DOMAttr& a (
2778  ::xsd::cxx::xml::dom::create_attribute (
2779  "v1",
2780  e));
2781 
2782  a << i.v1 ();
2783  }
2784 
2785  // v2
2786  //
2787  {
2788  ::xercesc::DOMAttr& a (
2789  ::xsd::cxx::xml::dom::create_attribute (
2790  "v2",
2791  e));
2792 
2793  a << i.v2 ();
2794  }
2795 
2796  // v3
2797  //
2798  {
2799  ::xercesc::DOMAttr& a (
2800  ::xsd::cxx::xml::dom::create_attribute (
2801  "v3",
2802  e));
2803 
2804  a << i.v3 ();
2805  }
2806 
2807  // m
2808  //
2809  {
2810  ::xercesc::DOMAttr& a (
2811  ::xsd::cxx::xml::dom::create_attribute (
2812  "m",
2813  e));
2814 
2815  a << i.m ();
2816  }
2817 
2818  // i
2819  //
2820  {
2821  ::xercesc::DOMAttr& a (
2822  ::xsd::cxx::xml::dom::create_attribute (
2823  "i",
2824  e));
2825 
2826  a << i.i ();
2827  }
2828  }
2829 
2830  static
2831  const ::xsd::cxx::tree::type_serializer_initializer< 0, char, el_t >
2832  _xsd_el_t_type_serializer_init (
2833  "el_t",
2834  "XMLSubdomains");
2835 
2836 
2837  void
2838  operator<< (::xercesc::DOMElement& e, const t_t& i)
2839  {
2840  e << static_cast< const ::XMLSubdomains::el_t& > (i);
2841  }
2842 
2843  static
2844  const ::xsd::cxx::tree::type_serializer_initializer< 0, char, t_t >
2845  _xsd_t_t_type_serializer_init (
2846  "t_t",
2847  "XMLSubdomains");
2848 
2849 
2850  void
2851  operator<< (::xercesc::DOMElement& e, const q_t& i)
2852  {
2853  e << static_cast< const ::XMLSubdomains::el_t& > (i);
2854 
2855  // v4
2856  //
2857  {
2858  ::xercesc::DOMAttr& a (
2859  ::xsd::cxx::xml::dom::create_attribute (
2860  "v4",
2861  e));
2862 
2863  a << i.v4 ();
2864  }
2865  }
2866 
2867  static
2868  const ::xsd::cxx::tree::type_serializer_initializer< 0, char, q_t >
2869  _xsd_q_t_type_serializer_init (
2870  "q_t",
2871  "XMLSubdomains");
2872 
2873 
2874  void
2875  operator<< (::xercesc::DOMElement& e, const edges_type& i)
2876  {
2877  e << static_cast< const ::xml_schema::type& > (i);
2878 
2879  // ed
2880  //
2882  b (i.ed ().begin ()), n (i.ed ().end ());
2883  b != n; ++b)
2884  {
2885  ::xercesc::DOMElement& s (
2886  ::xsd::cxx::xml::dom::create_element (
2887  "ed",
2888  e));
2889 
2890  s << *b;
2891  }
2892  }
2893 
2894  void
2895  operator<< (::xercesc::DOMElement& e, const domain& i)
2896  {
2897  e << static_cast< const ::xml_schema::type& > (i);
2898 
2899  // variables
2900  //
2901  if (i.variables ())
2902  {
2903  ::xercesc::DOMElement& s (
2904  ::xsd::cxx::xml::dom::create_element (
2905  "variables",
2906  e));
2907 
2908  s << *i.variables ();
2909  }
2910 
2911  // vertices
2912  //
2913  {
2914  ::xercesc::DOMElement& s (
2915  ::xsd::cxx::xml::dom::create_element (
2916  "vertices",
2917  e));
2918 
2919  s << i.vertices ();
2920  }
2921 
2922  // elements
2923  //
2924  {
2925  ::xercesc::DOMElement& s (
2926  ::xsd::cxx::xml::dom::create_element (
2927  "elements",
2928  e));
2929 
2930  s << i.elements ();
2931  }
2932 
2933  // edges
2934  //
2935  {
2936  ::xercesc::DOMElement& s (
2937  ::xsd::cxx::xml::dom::create_element (
2938  "edges",
2939  e));
2940 
2941  s << i.edges ();
2942  }
2943 
2944  // curves
2945  //
2946  if (i.curves ())
2947  {
2948  ::xercesc::DOMElement& s (
2949  ::xsd::cxx::xml::dom::create_element (
2950  "curves",
2951  e));
2952 
2953  s << *i.curves ();
2954  }
2955 
2956  // subdomains
2957  //
2958  {
2959  ::xercesc::DOMElement& s (
2960  ::xsd::cxx::xml::dom::create_element (
2961  "subdomains",
2962  e));
2963 
2964  s << i.subdomains ();
2965  }
2966  }
2967 
2968  void
2969  operator<< (::xercesc::DOMElement& e, const ed& i)
2970  {
2971  e << static_cast< const ::xml_schema::type& > (i);
2972 
2973  // v1
2974  //
2975  {
2976  ::xercesc::DOMAttr& a (
2977  ::xsd::cxx::xml::dom::create_attribute (
2978  "v1",
2979  e));
2980 
2981  a << i.v1 ();
2982  }
2983 
2984  // v2
2985  //
2986  {
2987  ::xercesc::DOMAttr& a (
2988  ::xsd::cxx::xml::dom::create_attribute (
2989  "v2",
2990  e));
2991 
2992  a << i.v2 ();
2993  }
2994 
2995  // m
2996  //
2997  {
2998  ::xercesc::DOMAttr& a (
2999  ::xsd::cxx::xml::dom::create_attribute (
3000  "m",
3001  e));
3002 
3003  a << i.m ();
3004  }
3005 
3006  // i
3007  //
3008  {
3009  ::xercesc::DOMAttr& a (
3010  ::xsd::cxx::xml::dom::create_attribute (
3011  "i",
3012  e));
3013 
3014  a << i.i ();
3015  }
3016  }
3017 
3018  void
3019  operator<< (::xercesc::DOMElement& e, const subdomains& i)
3020  {
3021  e << static_cast< const ::xml_schema::type& > (i);
3022 
3023  // subdomain
3024  //
3026  b (i.subdomain ().begin ()), n (i.subdomain ().end ());
3027  b != n; ++b)
3028  {
3029  ::xercesc::DOMElement& s (
3030  ::xsd::cxx::xml::dom::create_element (
3031  "subdomain",
3032  e));
3033 
3034  s << *b;
3035  }
3036  }
3037 
3038  void
3039  operator<< (::xercesc::DOMElement& e, const subdomain& i)
3040  {
3041  e << static_cast< const ::xml_schema::type& > (i);
3042 
3043  // vertices
3044  //
3045  if (i.vertices ())
3046  {
3047  ::xercesc::DOMElement& s (
3048  ::xsd::cxx::xml::dom::create_element (
3049  "vertices",
3050  e));
3051 
3052  s << *i.vertices ();
3053  }
3054 
3055  // elements
3056  //
3057  if (i.elements ())
3058  {
3059  ::xercesc::DOMElement& s (
3060  ::xsd::cxx::xml::dom::create_element (
3061  "elements",
3062  e));
3063 
3064  s << *i.elements ();
3065  }
3066 
3067  // boundary_edges
3068  //
3069  if (i.boundary_edges ())
3070  {
3071  ::xercesc::DOMElement& s (
3072  ::xsd::cxx::xml::dom::create_element (
3073  "boundary_edges",
3074  e));
3075 
3076  s << *i.boundary_edges ();
3077  }
3078 
3079  // inner_edges
3080  //
3081  if (i.inner_edges ())
3082  {
3083  ::xercesc::DOMElement& s (
3084  ::xsd::cxx::xml::dom::create_element (
3085  "inner_edges",
3086  e));
3087 
3088  s << *i.inner_edges ();
3089  }
3090 
3091  // refinements
3092  //
3093  if (i.refinements ())
3094  {
3095  ::xercesc::DOMElement& s (
3096  ::xsd::cxx::xml::dom::create_element (
3097  "refinements",
3098  e));
3099 
3100  s << *i.refinements ();
3101  }
3102 
3103  // name
3104  //
3105  {
3106  ::xercesc::DOMAttr& a (
3107  ::xsd::cxx::xml::dom::create_attribute (
3108  "name",
3109  e));
3110 
3111  a << i.name ();
3112  }
3113  }
3114 
3115  void
3116  operator<< (::xercesc::DOMElement& e, const vertices& i)
3117  {
3118  e << static_cast< const ::xml_schema::type& > (i);
3119 
3120  // i
3121  //
3123  b (i.i ().begin ()), n (i.i ().end ());
3124  b != n; ++b)
3125  {
3126  ::xercesc::DOMElement& s (
3127  ::xsd::cxx::xml::dom::create_element (
3128  "i",
3129  e));
3130 
3131  s << *b;
3132  }
3133  }
3134 
3135  void
3136  operator<< (::xercesc::DOMElement& e, const elements& i)
3137  {
3138  e << static_cast< const ::xml_schema::type& > (i);
3139 
3140  // i
3141  //
3143  b (i.i ().begin ()), n (i.i ().end ());
3144  b != n; ++b)
3145  {
3146  ::xercesc::DOMElement& s (
3147  ::xsd::cxx::xml::dom::create_element (
3148  "i",
3149  e));
3150 
3151  s << *b;
3152  }
3153  }
3154 
3155  void
3156  operator<< (::xercesc::DOMElement& e, const boundary_edges& i)
3157  {
3158  e << static_cast< const ::xml_schema::type& > (i);
3159 
3160  // i
3161  //
3163  b (i.i ().begin ()), n (i.i ().end ());
3164  b != n; ++b)
3165  {
3166  ::xercesc::DOMElement& s (
3167  ::xsd::cxx::xml::dom::create_element (
3168  "i",
3169  e));
3170 
3171  s << *b;
3172  }
3173  }
3174 
3175  void
3176  operator<< (::xercesc::DOMElement& e, const inner_edges& i)
3177  {
3178  e << static_cast< const ::xml_schema::type& > (i);
3179 
3180  // i
3181  //
3183  b (i.i ().begin ()), n (i.i ().end ());
3184  b != n; ++b)
3185  {
3186  ::xercesc::DOMElement& s (
3187  ::xsd::cxx::xml::dom::create_element (
3188  "i",
3189  e));
3190 
3191  s << *b;
3192  }
3193  }
3194 }
3195 
3196 #include <xsd/cxx/post.hxx>
3197 
3198 // Begin epilogue.
3199 //
3200 //
3201 // End epilogue.
3202 
const i_sequence & i() const
Return a read-only (constant) reference to the element sequence.
virtual ~inner_edges()
Destructor.
const v4_type & v4() const
Return a read-only (constant) reference to the attribute.
virtual ~elements()
Destructor.
const subdomains_type & subdomains() const
Return a read-only (constant) reference to the element.
Class corresponding to the elements schema type.
const v3_type & v3() const
Return a read-only (constant) reference to the attribute.
virtual ~vertices()
Destructor.
::xsd::cxx::tree::optional< inner_edges_type > inner_edges_optional
Element optional container type.
virtual ~ed()
Destructor.
const vertices_type & vertices() const
Return a read-only (constant) reference to the element.
Class corresponding to the elements_type schema type.
virtual ~elements_type()
Destructor.
virtual t_t * _clone(::xml_schema::flags f=0,::xml_schema::container *c=0) const
Copy the instance polymorphically.
const curves_optional & curves() const
Return a read-only (constant) reference to the element container.
::xsd::cxx::tree::flags flags
Parsing and serialization flags.
Class corresponding to the subdomains schema type.
virtual elements * _clone(::xml_schema::flags f=0,::xml_schema::container *c=0) const
Copy the instance polymorphically.
const v2_type & v2() const
Return a read-only (constant) reference to the attribute.
::xsd::cxx::tree::optional< refinements_type > refinements_optional
Element optional container type.
::xsd::cxx::tree::optional< boundary_edges_type > boundary_edges_optional
Element optional container type.
ed(const v1_type &, const v2_type &, const m_type &, const i_type &)
Create an instance from the ultimate base and initializers for required elements and attributes...
Class corresponding to the q_t schema type.
::xsd::cxx::tree::optional< elements_type > elements_optional
Element optional container type.
virtual ~subdomains()
Destructor.
const variables_optional & variables() const
Return a read-only (constant) reference to the element container.
vertices()
Create an instance from the ultimate base and initializers for required elements and attributes...
edges_type()
Create an instance from the ultimate base and initializers for required elements and attributes...
q_t(const v1_type &, const v2_type &, const v3_type &, const m_type &, const i_type &, const v4_type &)
Create an instance from the ultimate base and initializers for required elements and attributes...
virtual el_t * _clone(::xml_schema::flags f=0,::xml_schema::container *c=0) const
Copy the instance polymorphically.
Generated from subdomains_h2d_xml.xsd.
const i_type & i() const
Return a read-only (constant) reference to the attribute.
::xsd::cxx::tree::sequence< subdomain_type > subdomain_sequence
Element sequence container type.
const elements_optional & elements() const
Return a read-only (constant) reference to the element container.
const ed_sequence & ed() const
Return a read-only (constant) reference to the element sequence.
::xsd::cxx::tree::sequence< ed_type > ed_sequence
Element sequence container type.
subdomain(const name_type &)
Create an instance from the ultimate base and initializers for required elements and attributes...
Class corresponding to the vertices_type schema type.
Definition: mesh_h2d_xml.h:818
subdomain_sequence::const_iterator subdomain_const_iterator
Element constant iterator type.
t_t(const v1_type &, const v2_type &, const v3_type &, const m_type &, const i_type &)
Create an instance from the ultimate base and initializers for required elements and attributes...
const m_type & m() const
Return a read-only (constant) reference to the attribute.
const i_type & i() const
Return a read-only (constant) reference to the attribute.
el_t(const v1_type &, const v2_type &, const v3_type &, const m_type &, const i_type &)
Create an instance from the ultimate base and initializers for required elements and attributes...
::xsd::cxx::tree::type type
C++ type corresponding to the anyType XML Schema built-in type.
Class corresponding to the domain schema type.
const el_sequence & el() const
Return a read-only (constant) reference to the element sequence.
::xml_schema::integer v2_type
Attribute type.
i_sequence::const_iterator i_const_iterator
Element constant iterator type.
virtual ~q_t()
Destructor.
Class corresponding to the inner_edges schema type.
C++ namespace for the XMLSubdomains schema namespace.
Class corresponding to the vertices schema type.
const i_sequence & i() const
Return a read-only (constant) reference to the element sequence.
virtual ~t_t()
Destructor.
::xsd::cxx::tree::sequence< i_type > i_sequence
Element sequence container type.
Class corresponding to the edges_type schema type.
virtual ~boundary_edges()
Destructor.
const subdomain_sequence & subdomain() const
Return a read-only (constant) reference to the element sequence.
const inner_edges_optional & inner_edges() const
Return a read-only (constant) reference to the element container.
::xml_schema::string m_type
Attribute type.
Class corresponding to the subdomain schema type.
const i_sequence & i() const
Return a read-only (constant) reference to the element sequence.
elements_type()
Create an instance from the ultimate base and initializers for required elements and attributes...
::xsd::cxx::tree::optional< variables_type > variables_optional
Element optional container type.
i_sequence::const_iterator i_const_iterator
Element constant iterator type.
virtual ~subdomain()
Destructor.
::xml_schema::string name_type
Attribute type.
::xsd::cxx::tree::optional< curves_type > curves_optional
Element optional container type.
::xsd::cxx::tree::name< char, token > name
C++ type corresponding to the Name XML Schema built-in type.
const v2_type & v2() const
Return a read-only (constant) reference to the attribute.
const name_type & name() const
Return a read-only (constant) reference to the attribute.
::xsd::cxx::xml::dom::namespace_infomap< char > namespace_infomap
Namespace serialization information map.
Class corresponding to the el_t schema type.
i_sequence::const_iterator i_const_iterator
Element constant iterator type.
const boundary_edges_optional & boundary_edges() const
Return a read-only (constant) reference to the element container.
virtual subdomains * _clone(::xml_schema::flags f=0,::xml_schema::container *c=0) const
Copy the instance polymorphically.
::xsd::cxx::xml::error_handler< char > error_handler
Error handler callback interface.
Class corresponding to the variables_type schema type.
Definition: mesh_h2d_xml.h:671
const XMLCh *const tree_node_key
DOM user data key for back pointers to tree nodes.
::xsd::cxx::tree::properties< char > properties
Parsing properties.
virtual ~domain()
Destructor.
const v1_type & v1() const
Return a read-only (constant) reference to the attribute.
Class corresponding to the boundary_edges schema type.
virtual ~el_t()
Destructor.
::xsd::cxx::tree::sequence< i_type > i_sequence
Element sequence container type.
::xml_schema::integer i_type
Attribute type.
ed_sequence::const_iterator ed_const_iterator
Element constant iterator type.
virtual ~edges_type()
Destructor.
virtual vertices * _clone(::xml_schema::flags f=0,::xml_schema::container *c=0) const
Copy the instance polymorphically.
virtual boundary_edges * _clone(::xml_schema::flags f=0,::xml_schema::container *c=0) const
Copy the instance polymorphically.
const refinements_optional & refinements() const
Return a read-only (constant) reference to the element container.
C++ namespace for the http://www.w3.org/2001/XMLSchema schema namespace.
::xsd::cxx::tree::string< char, simple_type > string
C++ type corresponding to the string XML Schema built-in type.
subdomains()
Create an instance from the ultimate base and initializers for required elements and attributes...
const v1_type & v1() const
Return a read-only (constant) reference to the attribute.
i_sequence::const_iterator i_const_iterator
Element constant iterator type.
inner_edges()
Create an instance from the ultimate base and initializers for required elements and attributes...
::xml_schema::integer v1_type
Attribute type.
::xsd::cxx::tree::sequence< i_type > i_sequence
Element sequence container type.
elements()
Create an instance from the ultimate base and initializers for required elements and attributes...
virtual inner_edges * _clone(::xml_schema::flags f=0,::xml_schema::container *c=0) const
Copy the instance polymorphically.
domain(const vertices_type &, const elements_type &, const edges_type &, const subdomains_type &)
Create an instance from the ultimate base and initializers for required elements and attributes...
::xml_schema::string m_type
Attribute type.
const i_sequence & i() const
Return a read-only (constant) reference to the element sequence.
::xml_schema::integer v2_type
Attribute type.
virtual q_t * _clone(::xml_schema::flags f=0,::xml_schema::container *c=0) const
Copy the instance polymorphically.
::XMLSubdomains::el_t el_type
Element type.
const vertices_optional & vertices() const
Return a read-only (constant) reference to the element container.
::xml_schema::integer v3_type
Attribute type.
Class corresponding to the ed schema type.
::xsd::cxx::tree::type container
Alias for the anyType type.
::xml_schema::integer i_type
Attribute type.
const m_type & m() const
Return a read-only (constant) reference to the attribute.
::xsd::cxx::tree::sequence< i_type > i_sequence
Element sequence container type.
virtual edges_type * _clone(::xml_schema::flags f=0,::xml_schema::container *c=0) const
Copy the instance polymorphically.
boundary_edges()
Create an instance from the ultimate base and initializers for required elements and attributes...
el_sequence::const_iterator el_const_iterator
Element constant iterator type.
virtual domain * _clone(::xml_schema::flags f=0,::xml_schema::container *c=0) const
Copy the instance polymorphically.
const edges_type & edges() const
Return a read-only (constant) reference to the element.
::xml_schema::integer v1_type
Attribute type.
::std::auto_ptr< ::XMLSubdomains::domain > domain_(const ::std::string &uri,::xml_schema::flags f=0, const ::xml_schema::properties &p=::xml_schema::properties())
Parse a URI or a local file.
virtual ed * _clone(::xml_schema::flags f=0,::xml_schema::container *c=0) const
Copy the instance polymorphically.
Class corresponding to the t_t schema type.
Class corresponding to the refinements_type schema type.
::xml_schema::integer v4_type
Attribute type.
::xsd::cxx::tree::optional< vertices_type > vertices_optional
Element optional container type.
virtual subdomain * _clone(::xml_schema::flags f=0,::xml_schema::container *c=0) const
Copy the instance polymorphically.
const elements_type & elements() const
Return a read-only (constant) reference to the element.
::xsd::cxx::tree::sequence< el_type > el_sequence
Element sequence container type.
virtual elements_type * _clone(::xml_schema::flags f=0,::xml_schema::container *c=0) const
Copy the instance polymorphically.
Class corresponding to the curves_type schema type.