with each cell as a element.
TABLEDATA::TR_const_iterator triter( tdata.TR().begin() );
TABLEDATA::TR_const_iterator trend( tdata.TR().end() );
- int nrow = 0;
+ int nrow = 1;
string cell;
for ( ; triter != trend; ++triter ) {
TR::TD_const_iterator tditer( triter->TD().begin() );
@@ -1051,7 +1051,7 @@ int VOTable::data_binarydata( const NS::TABLE& table, const NS::BINARY& bdata,
/* Now write the rows. */
VOTableStream os( inbuf );
bool ok = true;
- int row = 0;
+ int nrow = 1;
while ( ok ) {
for ( int i = 0; i < (int) field_types.size(); i++ ) {
ok = os.readPrint( field_types[i], arraysizes[i], havenull[i],
@@ -1064,8 +1064,8 @@ int VOTable::data_binarydata( const NS::TABLE& table, const NS::BINARY& bdata,
}
}
if ( id_index == -1 && ok ) {
- out << '\t' << row;
- row++;
+ out << nrow << '\t';
+ nrow++;
}
if ( ok ) out << '\n';
}
@@ -1200,16 +1200,16 @@ int VOTable::data_fitsdata( const NS::FITS& fdata, ofstream& out, int& id_index,
}
char *s;
- for ( long row = 1; row <= nrows; row++ ) {
+ for ( long nrow = 1; nrow <= nrows; nrow++ ) {
for ( long col = 1; col <= ncols; col++ ) {
if ( col == ( ra_index + 1 ) ) {
- s = fits->getTableValue( row, col, rascale );
+ s = fits->getTableValue( nrow, col, rascale );
}
else if ( col == ( dec_index + 1 ) ) {
- s = fits->getTableValue( row, col, decscale );
+ s = fits->getTableValue( nrow, col, decscale );
}
else {
- s = fits->getTableValue( row, col, 1.0 );
+ s = fits->getTableValue( nrow, col, 1.0 );
}
if ( ! s ) {
return 0;
@@ -1221,7 +1221,7 @@ int VOTable::data_fitsdata( const NS::FITS& fdata, ofstream& out, int& id_index,
}
}
if ( id_index == -1 ) {
- out << '\t' << row;
+ out << '\t' << nrow;
}
out << '\n';
}
From da089fe5c6cf9a86d0be0810ab9a72896efcc525 Mon Sep 17 00:00:00 2001
From: "Peter W. Draper"
Date: Thu, 31 Jul 2014 17:28:23 +0100
Subject: [PATCH 05/13] gaiavo: add VOTable 1.3 support classes
---
applications/gaia/gaiavo/VOTable1.3.xsd | 20 +-
applications/gaia/gaiavo/generic/VOTable1.3.C | 10564 ++++++++++++++++
.../gaia/gaiavo/generic/VOTable1.3.hxx | 4773 +++++++
3 files changed, 15347 insertions(+), 10 deletions(-)
create mode 100644 applications/gaia/gaiavo/generic/VOTable1.3.C
create mode 100644 applications/gaia/gaiavo/generic/VOTable1.3.hxx
diff --git a/applications/gaia/gaiavo/VOTable1.3.xsd b/applications/gaia/gaiavo/VOTable1.3.xsd
index 8b3ffa6d9f5..b509e5fd73f 100644
--- a/applications/gaia/gaiavo/VOTable1.3.xsd
+++ b/applications/gaia/gaiavo/VOTable1.3.xsd
@@ -173,7 +173,7 @@
-
+
@@ -462,9 +462,9 @@
-
-
-
+
+
+
-
+
diff --git a/applications/gaia/gaiavo/generic/VOTable1.3.C b/applications/gaia/gaiavo/generic/VOTable1.3.C
new file mode 100644
index 00000000000..464dc8c4999
--- /dev/null
+++ b/applications/gaia/gaiavo/generic/VOTable1.3.C
@@ -0,0 +1,10564 @@
+// Copyright (C) 2005-2010 Code Synthesis Tools CC
+//
+// This program was generated by CodeSynthesis XSD, an XML Schema to
+// C++ data binding compiler.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2 as
+// published by the Free Software Foundation.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+//
+// In addition, as a special exception, Code Synthesis Tools CC gives
+// permission to link this program with the Xerces-C++ library (or with
+// modified versions of Xerces-C++ that use the same license as Xerces-C++),
+// and distribute linked combinations including the two. You must obey
+// the GNU General Public License version 2 in all respects for all of
+// the code used other than Xerces-C++. If you modify this copy of the
+// program, you may extend this exception to your version of the program,
+// but you are not obligated to do so. If you do not wish to do so, delete
+// this exception statement from your version.
+//
+// Furthermore, Code Synthesis Tools CC makes a special exception for
+// the Free/Libre and Open Source Software (FLOSS) which is described
+// in the accompanying FLOSSE file.
+//
+
+// Begin prologue.
+//
+//
+// End prologue.
+
+#include
+
+#include "VOTable1.3.hxx"
+
+namespace votable_13
+{
+ // anyTEXT
+ //
+
+ const anyTEXT::any_sequence& anyTEXT::
+ any () const
+ {
+ return this->any_;
+ }
+
+ anyTEXT::any_sequence& anyTEXT::
+ any ()
+ {
+ return this->any_;
+ }
+
+ void anyTEXT::
+ any (const any_sequence& s)
+ {
+ this->any_ = s;
+ }
+
+ const ::xercesc::DOMDocument& anyTEXT::
+ dom_document () const
+ {
+ return *dom_document_;
+ }
+
+ ::xercesc::DOMDocument& anyTEXT::
+ dom_document ()
+ {
+ return *dom_document_;
+ }
+
+
+ // astroYear
+ //
+
+
+ // ucdType
+ //
+
+
+ // arrayDEF
+ //
+
+
+ // encodingType
+ //
+
+ encodingType::
+ encodingType (value v)
+ : ::xml_schema::nmtoken (_xsd_encodingType_literals_[v])
+ {
+ }
+
+ encodingType::
+ encodingType (const char* v)
+ : ::xml_schema::nmtoken (v)
+ {
+ }
+
+ encodingType::
+ encodingType (const ::std::string& v)
+ : ::xml_schema::nmtoken (v)
+ {
+ }
+
+ encodingType::
+ encodingType (const ::xml_schema::nmtoken& v)
+ : ::xml_schema::nmtoken (v)
+ {
+ }
+
+ encodingType::
+ encodingType (const encodingType& v,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (v, f, c)
+ {
+ }
+
+ encodingType& encodingType::
+ operator= (value v)
+ {
+ static_cast< ::xml_schema::nmtoken& > (*this) =
+ ::xml_schema::nmtoken (_xsd_encodingType_literals_[v]);
+
+ return *this;
+ }
+
+
+ // dataType
+ //
+
+ dataType::
+ dataType (value v)
+ : ::xml_schema::nmtoken (_xsd_dataType_literals_[v])
+ {
+ }
+
+ dataType::
+ dataType (const char* v)
+ : ::xml_schema::nmtoken (v)
+ {
+ }
+
+ dataType::
+ dataType (const ::std::string& v)
+ : ::xml_schema::nmtoken (v)
+ {
+ }
+
+ dataType::
+ dataType (const ::xml_schema::nmtoken& v)
+ : ::xml_schema::nmtoken (v)
+ {
+ }
+
+ dataType::
+ dataType (const dataType& v,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (v, f, c)
+ {
+ }
+
+ dataType& dataType::
+ operator= (value v)
+ {
+ static_cast< ::xml_schema::nmtoken& > (*this) =
+ ::xml_schema::nmtoken (_xsd_dataType_literals_[v]);
+
+ return *this;
+ }
+
+
+ // precType
+ //
+
+
+ // yesno
+ //
+
+ yesno::
+ yesno (value v)
+ : ::xml_schema::nmtoken (_xsd_yesno_literals_[v])
+ {
+ }
+
+ yesno::
+ yesno (const char* v)
+ : ::xml_schema::nmtoken (v)
+ {
+ }
+
+ yesno::
+ yesno (const ::std::string& v)
+ : ::xml_schema::nmtoken (v)
+ {
+ }
+
+ yesno::
+ yesno (const ::xml_schema::nmtoken& v)
+ : ::xml_schema::nmtoken (v)
+ {
+ }
+
+ yesno::
+ yesno (const yesno& v,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (v, f, c)
+ {
+ }
+
+ yesno& yesno::
+ operator= (value v)
+ {
+ static_cast< ::xml_schema::nmtoken& > (*this) =
+ ::xml_schema::nmtoken (_xsd_yesno_literals_[v]);
+
+ return *this;
+ }
+
+
+ // MIN
+ //
+
+ const MIN::value_type& MIN::
+ value () const
+ {
+ return this->value_.get ();
+ }
+
+ MIN::value_type& MIN::
+ value ()
+ {
+ return this->value_.get ();
+ }
+
+ void MIN::
+ value (const value_type& x)
+ {
+ this->value_.set (x);
+ }
+
+ void MIN::
+ value (::std::auto_ptr< value_type > x)
+ {
+ this->value_.set (x);
+ }
+
+ const MIN::inclusive_type& MIN::
+ inclusive () const
+ {
+ return this->inclusive_.get ();
+ }
+
+ MIN::inclusive_type& MIN::
+ inclusive ()
+ {
+ return this->inclusive_.get ();
+ }
+
+ void MIN::
+ inclusive (const inclusive_type& x)
+ {
+ this->inclusive_.set (x);
+ }
+
+ void MIN::
+ inclusive (::std::auto_ptr< inclusive_type > x)
+ {
+ this->inclusive_.set (x);
+ }
+
+ const MIN::inclusive_type& MIN::
+ inclusive_default_value ()
+ {
+ return inclusive_default_value_;
+ }
+
+
+ // MAX
+ //
+
+ const MAX::value_type& MAX::
+ value () const
+ {
+ return this->value_.get ();
+ }
+
+ MAX::value_type& MAX::
+ value ()
+ {
+ return this->value_.get ();
+ }
+
+ void MAX::
+ value (const value_type& x)
+ {
+ this->value_.set (x);
+ }
+
+ void MAX::
+ value (::std::auto_ptr< value_type > x)
+ {
+ this->value_.set (x);
+ }
+
+ const MAX::inclusive_type& MAX::
+ inclusive () const
+ {
+ return this->inclusive_.get ();
+ }
+
+ MAX::inclusive_type& MAX::
+ inclusive ()
+ {
+ return this->inclusive_.get ();
+ }
+
+ void MAX::
+ inclusive (const inclusive_type& x)
+ {
+ this->inclusive_.set (x);
+ }
+
+ void MAX::
+ inclusive (::std::auto_ptr< inclusive_type > x)
+ {
+ this->inclusive_.set (x);
+ }
+
+ const MAX::inclusive_type& MAX::
+ inclusive_default_value ()
+ {
+ return inclusive_default_value_;
+ }
+
+
+ // OPTION
+ //
+
+ const OPTION::OPTION1_sequence& OPTION::
+ OPTION1 () const
+ {
+ return this->OPTION1_;
+ }
+
+ OPTION::OPTION1_sequence& OPTION::
+ OPTION1 ()
+ {
+ return this->OPTION1_;
+ }
+
+ void OPTION::
+ OPTION1 (const OPTION1_sequence& s)
+ {
+ this->OPTION1_ = s;
+ }
+
+ const OPTION::name_optional& OPTION::
+ name () const
+ {
+ return this->name_;
+ }
+
+ OPTION::name_optional& OPTION::
+ name ()
+ {
+ return this->name_;
+ }
+
+ void OPTION::
+ name (const name_type& x)
+ {
+ this->name_.set (x);
+ }
+
+ void OPTION::
+ name (const name_optional& x)
+ {
+ this->name_ = x;
+ }
+
+ void OPTION::
+ name (::std::auto_ptr< name_type > x)
+ {
+ this->name_.set (x);
+ }
+
+ const OPTION::value_type& OPTION::
+ value () const
+ {
+ return this->value_.get ();
+ }
+
+ OPTION::value_type& OPTION::
+ value ()
+ {
+ return this->value_.get ();
+ }
+
+ void OPTION::
+ value (const value_type& x)
+ {
+ this->value_.set (x);
+ }
+
+ void OPTION::
+ value (::std::auto_ptr< value_type > x)
+ {
+ this->value_.set (x);
+ }
+
+
+ // VALUES
+ //
+
+ const VALUES::MIN_optional& VALUES::
+ MIN () const
+ {
+ return this->MIN_;
+ }
+
+ VALUES::MIN_optional& VALUES::
+ MIN ()
+ {
+ return this->MIN_;
+ }
+
+ void VALUES::
+ MIN (const MIN_type& x)
+ {
+ this->MIN_.set (x);
+ }
+
+ void VALUES::
+ MIN (const MIN_optional& x)
+ {
+ this->MIN_ = x;
+ }
+
+ void VALUES::
+ MIN (::std::auto_ptr< MIN_type > x)
+ {
+ this->MIN_.set (x);
+ }
+
+ const VALUES::MAX_optional& VALUES::
+ MAX () const
+ {
+ return this->MAX_;
+ }
+
+ VALUES::MAX_optional& VALUES::
+ MAX ()
+ {
+ return this->MAX_;
+ }
+
+ void VALUES::
+ MAX (const MAX_type& x)
+ {
+ this->MAX_.set (x);
+ }
+
+ void VALUES::
+ MAX (const MAX_optional& x)
+ {
+ this->MAX_ = x;
+ }
+
+ void VALUES::
+ MAX (::std::auto_ptr< MAX_type > x)
+ {
+ this->MAX_.set (x);
+ }
+
+ const VALUES::OPTION_sequence& VALUES::
+ OPTION () const
+ {
+ return this->OPTION_;
+ }
+
+ VALUES::OPTION_sequence& VALUES::
+ OPTION ()
+ {
+ return this->OPTION_;
+ }
+
+ void VALUES::
+ OPTION (const OPTION_sequence& s)
+ {
+ this->OPTION_ = s;
+ }
+
+ const VALUES::ID_optional& VALUES::
+ ID () const
+ {
+ return this->ID_;
+ }
+
+ VALUES::ID_optional& VALUES::
+ ID ()
+ {
+ return this->ID_;
+ }
+
+ void VALUES::
+ ID (const ID_type& x)
+ {
+ this->ID_.set (x);
+ }
+
+ void VALUES::
+ ID (const ID_optional& x)
+ {
+ this->ID_ = x;
+ }
+
+ void VALUES::
+ ID (::std::auto_ptr< ID_type > x)
+ {
+ this->ID_.set (x);
+ }
+
+ const VALUES::type_type& VALUES::
+ type () const
+ {
+ return this->type_.get ();
+ }
+
+ VALUES::type_type& VALUES::
+ type ()
+ {
+ return this->type_.get ();
+ }
+
+ void VALUES::
+ type (const type_type& x)
+ {
+ this->type_.set (x);
+ }
+
+ void VALUES::
+ type (::std::auto_ptr< type_type > x)
+ {
+ this->type_.set (x);
+ }
+
+ const VALUES::type_type& VALUES::
+ type_default_value ()
+ {
+ return type_default_value_;
+ }
+
+ const VALUES::null_optional& VALUES::
+ null () const
+ {
+ return this->null_;
+ }
+
+ VALUES::null_optional& VALUES::
+ null ()
+ {
+ return this->null_;
+ }
+
+ void VALUES::
+ null (const null_type& x)
+ {
+ this->null_.set (x);
+ }
+
+ void VALUES::
+ null (const null_optional& x)
+ {
+ this->null_ = x;
+ }
+
+ void VALUES::
+ null (::std::auto_ptr< null_type > x)
+ {
+ this->null_.set (x);
+ }
+
+ const VALUES::ref_optional& VALUES::
+ ref () const
+ {
+ return this->ref_;
+ }
+
+ VALUES::ref_optional& VALUES::
+ ref ()
+ {
+ return this->ref_;
+ }
+
+ void VALUES::
+ ref (const ref_type& x)
+ {
+ this->ref_.set (x);
+ }
+
+ void VALUES::
+ ref (const ref_optional& x)
+ {
+ this->ref_ = x;
+ }
+
+ void VALUES::
+ ref (::std::auto_ptr< ref_type > x)
+ {
+ this->ref_.set (x);
+ }
+
+
+ // LINK
+ //
+
+ const LINK::ID_optional& LINK::
+ ID () const
+ {
+ return this->ID_;
+ }
+
+ LINK::ID_optional& LINK::
+ ID ()
+ {
+ return this->ID_;
+ }
+
+ void LINK::
+ ID (const ID_type& x)
+ {
+ this->ID_.set (x);
+ }
+
+ void LINK::
+ ID (const ID_optional& x)
+ {
+ this->ID_ = x;
+ }
+
+ void LINK::
+ ID (::std::auto_ptr< ID_type > x)
+ {
+ this->ID_.set (x);
+ }
+
+ const LINK::content_role_optional& LINK::
+ content_role () const
+ {
+ return this->content_role_;
+ }
+
+ LINK::content_role_optional& LINK::
+ content_role ()
+ {
+ return this->content_role_;
+ }
+
+ void LINK::
+ content_role (const content_role_type& x)
+ {
+ this->content_role_.set (x);
+ }
+
+ void LINK::
+ content_role (const content_role_optional& x)
+ {
+ this->content_role_ = x;
+ }
+
+ void LINK::
+ content_role (::std::auto_ptr< content_role_type > x)
+ {
+ this->content_role_.set (x);
+ }
+
+ const LINK::content_type_optional& LINK::
+ content_type () const
+ {
+ return this->content_type_;
+ }
+
+ LINK::content_type_optional& LINK::
+ content_type ()
+ {
+ return this->content_type_;
+ }
+
+ void LINK::
+ content_type (const content_type_type& x)
+ {
+ this->content_type_.set (x);
+ }
+
+ void LINK::
+ content_type (const content_type_optional& x)
+ {
+ this->content_type_ = x;
+ }
+
+ void LINK::
+ content_type (::std::auto_ptr< content_type_type > x)
+ {
+ this->content_type_.set (x);
+ }
+
+ const LINK::title_optional& LINK::
+ title () const
+ {
+ return this->title_;
+ }
+
+ LINK::title_optional& LINK::
+ title ()
+ {
+ return this->title_;
+ }
+
+ void LINK::
+ title (const title_type& x)
+ {
+ this->title_.set (x);
+ }
+
+ void LINK::
+ title (const title_optional& x)
+ {
+ this->title_ = x;
+ }
+
+ void LINK::
+ title (::std::auto_ptr< title_type > x)
+ {
+ this->title_.set (x);
+ }
+
+ const LINK::value_optional& LINK::
+ value () const
+ {
+ return this->value_;
+ }
+
+ LINK::value_optional& LINK::
+ value ()
+ {
+ return this->value_;
+ }
+
+ void LINK::
+ value (const value_type& x)
+ {
+ this->value_.set (x);
+ }
+
+ void LINK::
+ value (const value_optional& x)
+ {
+ this->value_ = x;
+ }
+
+ void LINK::
+ value (::std::auto_ptr< value_type > x)
+ {
+ this->value_.set (x);
+ }
+
+ const LINK::href_optional& LINK::
+ href () const
+ {
+ return this->href_;
+ }
+
+ LINK::href_optional& LINK::
+ href ()
+ {
+ return this->href_;
+ }
+
+ void LINK::
+ href (const href_type& x)
+ {
+ this->href_.set (x);
+ }
+
+ void LINK::
+ href (const href_optional& x)
+ {
+ this->href_ = x;
+ }
+
+ void LINK::
+ href (::std::auto_ptr< href_type > x)
+ {
+ this->href_.set (x);
+ }
+
+ const LINK::gref_optional& LINK::
+ gref () const
+ {
+ return this->gref_;
+ }
+
+ LINK::gref_optional& LINK::
+ gref ()
+ {
+ return this->gref_;
+ }
+
+ void LINK::
+ gref (const gref_type& x)
+ {
+ this->gref_.set (x);
+ }
+
+ void LINK::
+ gref (const gref_optional& x)
+ {
+ this->gref_ = x;
+ }
+
+ void LINK::
+ gref (::std::auto_ptr< gref_type > x)
+ {
+ this->gref_.set (x);
+ }
+
+ const LINK::action_optional& LINK::
+ action () const
+ {
+ return this->action_;
+ }
+
+ LINK::action_optional& LINK::
+ action ()
+ {
+ return this->action_;
+ }
+
+ void LINK::
+ action (const action_type& x)
+ {
+ this->action_.set (x);
+ }
+
+ void LINK::
+ action (const action_optional& x)
+ {
+ this->action_ = x;
+ }
+
+ void LINK::
+ action (::std::auto_ptr< action_type > x)
+ {
+ this->action_.set (x);
+ }
+
+
+ // INFO
+ //
+
+ const INFO::ID_optional& INFO::
+ ID () const
+ {
+ return this->ID_;
+ }
+
+ INFO::ID_optional& INFO::
+ ID ()
+ {
+ return this->ID_;
+ }
+
+ void INFO::
+ ID (const ID_type& x)
+ {
+ this->ID_.set (x);
+ }
+
+ void INFO::
+ ID (const ID_optional& x)
+ {
+ this->ID_ = x;
+ }
+
+ void INFO::
+ ID (::std::auto_ptr< ID_type > x)
+ {
+ this->ID_.set (x);
+ }
+
+ const INFO::name_type& INFO::
+ name () const
+ {
+ return this->name_.get ();
+ }
+
+ INFO::name_type& INFO::
+ name ()
+ {
+ return this->name_.get ();
+ }
+
+ void INFO::
+ name (const name_type& x)
+ {
+ this->name_.set (x);
+ }
+
+ void INFO::
+ name (::std::auto_ptr< name_type > x)
+ {
+ this->name_.set (x);
+ }
+
+ const INFO::value_type& INFO::
+ value () const
+ {
+ return this->value_.get ();
+ }
+
+ INFO::value_type& INFO::
+ value ()
+ {
+ return this->value_.get ();
+ }
+
+ void INFO::
+ value (const value_type& x)
+ {
+ this->value_.set (x);
+ }
+
+ void INFO::
+ value (::std::auto_ptr< value_type > x)
+ {
+ this->value_.set (x);
+ }
+
+ const INFO::unit_optional& INFO::
+ unit () const
+ {
+ return this->unit_;
+ }
+
+ INFO::unit_optional& INFO::
+ unit ()
+ {
+ return this->unit_;
+ }
+
+ void INFO::
+ unit (const unit_type& x)
+ {
+ this->unit_.set (x);
+ }
+
+ void INFO::
+ unit (const unit_optional& x)
+ {
+ this->unit_ = x;
+ }
+
+ void INFO::
+ unit (::std::auto_ptr< unit_type > x)
+ {
+ this->unit_.set (x);
+ }
+
+ const INFO::xtype_optional& INFO::
+ xtype () const
+ {
+ return this->xtype_;
+ }
+
+ INFO::xtype_optional& INFO::
+ xtype ()
+ {
+ return this->xtype_;
+ }
+
+ void INFO::
+ xtype (const xtype_type& x)
+ {
+ this->xtype_.set (x);
+ }
+
+ void INFO::
+ xtype (const xtype_optional& x)
+ {
+ this->xtype_ = x;
+ }
+
+ void INFO::
+ xtype (::std::auto_ptr< xtype_type > x)
+ {
+ this->xtype_.set (x);
+ }
+
+ const INFO::ref_optional& INFO::
+ ref () const
+ {
+ return this->ref_;
+ }
+
+ INFO::ref_optional& INFO::
+ ref ()
+ {
+ return this->ref_;
+ }
+
+ void INFO::
+ ref (const ref_type& x)
+ {
+ this->ref_.set (x);
+ }
+
+ void INFO::
+ ref (const ref_optional& x)
+ {
+ this->ref_ = x;
+ }
+
+ void INFO::
+ ref (::std::auto_ptr< ref_type > x)
+ {
+ this->ref_.set (x);
+ }
+
+ const INFO::ucd_optional& INFO::
+ ucd () const
+ {
+ return this->ucd_;
+ }
+
+ INFO::ucd_optional& INFO::
+ ucd ()
+ {
+ return this->ucd_;
+ }
+
+ void INFO::
+ ucd (const ucd_type& x)
+ {
+ this->ucd_.set (x);
+ }
+
+ void INFO::
+ ucd (const ucd_optional& x)
+ {
+ this->ucd_ = x;
+ }
+
+ void INFO::
+ ucd (::std::auto_ptr< ucd_type > x)
+ {
+ this->ucd_.set (x);
+ }
+
+ const INFO::utype_optional& INFO::
+ utype () const
+ {
+ return this->utype_;
+ }
+
+ INFO::utype_optional& INFO::
+ utype ()
+ {
+ return this->utype_;
+ }
+
+ void INFO::
+ utype (const utype_type& x)
+ {
+ this->utype_.set (x);
+ }
+
+ void INFO::
+ utype (const utype_optional& x)
+ {
+ this->utype_ = x;
+ }
+
+ void INFO::
+ utype (::std::auto_ptr< utype_type > x)
+ {
+ this->utype_.set (x);
+ }
+
+
+ // COOSYS
+ //
+
+ const COOSYS::ID_type& COOSYS::
+ ID () const
+ {
+ return this->ID_.get ();
+ }
+
+ COOSYS::ID_type& COOSYS::
+ ID ()
+ {
+ return this->ID_.get ();
+ }
+
+ void COOSYS::
+ ID (const ID_type& x)
+ {
+ this->ID_.set (x);
+ }
+
+ void COOSYS::
+ ID (::std::auto_ptr< ID_type > x)
+ {
+ this->ID_.set (x);
+ }
+
+ const COOSYS::equinox_optional& COOSYS::
+ equinox () const
+ {
+ return this->equinox_;
+ }
+
+ COOSYS::equinox_optional& COOSYS::
+ equinox ()
+ {
+ return this->equinox_;
+ }
+
+ void COOSYS::
+ equinox (const equinox_type& x)
+ {
+ this->equinox_.set (x);
+ }
+
+ void COOSYS::
+ equinox (const equinox_optional& x)
+ {
+ this->equinox_ = x;
+ }
+
+ void COOSYS::
+ equinox (::std::auto_ptr< equinox_type > x)
+ {
+ this->equinox_.set (x);
+ }
+
+ const COOSYS::epoch_optional& COOSYS::
+ epoch () const
+ {
+ return this->epoch_;
+ }
+
+ COOSYS::epoch_optional& COOSYS::
+ epoch ()
+ {
+ return this->epoch_;
+ }
+
+ void COOSYS::
+ epoch (const epoch_type& x)
+ {
+ this->epoch_.set (x);
+ }
+
+ void COOSYS::
+ epoch (const epoch_optional& x)
+ {
+ this->epoch_ = x;
+ }
+
+ void COOSYS::
+ epoch (::std::auto_ptr< epoch_type > x)
+ {
+ this->epoch_.set (x);
+ }
+
+ const COOSYS::system_type& COOSYS::
+ system () const
+ {
+ return this->system_.get ();
+ }
+
+ COOSYS::system_type& COOSYS::
+ system ()
+ {
+ return this->system_.get ();
+ }
+
+ void COOSYS::
+ system (const system_type& x)
+ {
+ this->system_.set (x);
+ }
+
+ void COOSYS::
+ system (::std::auto_ptr< system_type > x)
+ {
+ this->system_.set (x);
+ }
+
+ const COOSYS::system_type& COOSYS::
+ system_default_value ()
+ {
+ return system_default_value_;
+ }
+
+
+ // DEFINITIONS
+ //
+
+ const DEFINITIONS::COOSYS_sequence& DEFINITIONS::
+ COOSYS () const
+ {
+ return this->COOSYS_;
+ }
+
+ DEFINITIONS::COOSYS_sequence& DEFINITIONS::
+ COOSYS ()
+ {
+ return this->COOSYS_;
+ }
+
+ void DEFINITIONS::
+ COOSYS (const COOSYS_sequence& s)
+ {
+ this->COOSYS_ = s;
+ }
+
+ const DEFINITIONS::PARAM_sequence& DEFINITIONS::
+ PARAM () const
+ {
+ return this->PARAM_;
+ }
+
+ DEFINITIONS::PARAM_sequence& DEFINITIONS::
+ PARAM ()
+ {
+ return this->PARAM_;
+ }
+
+ void DEFINITIONS::
+ PARAM (const PARAM_sequence& s)
+ {
+ this->PARAM_ = s;
+ }
+
+
+ // FIELD
+ //
+
+ const FIELD::DESCRIPTION_optional& FIELD::
+ DESCRIPTION () const
+ {
+ return this->DESCRIPTION_;
+ }
+
+ FIELD::DESCRIPTION_optional& FIELD::
+ DESCRIPTION ()
+ {
+ return this->DESCRIPTION_;
+ }
+
+ void FIELD::
+ DESCRIPTION (const DESCRIPTION_type& x)
+ {
+ this->DESCRIPTION_.set (x);
+ }
+
+ void FIELD::
+ DESCRIPTION (const DESCRIPTION_optional& x)
+ {
+ this->DESCRIPTION_ = x;
+ }
+
+ void FIELD::
+ DESCRIPTION (::std::auto_ptr< DESCRIPTION_type > x)
+ {
+ this->DESCRIPTION_.set (x);
+ }
+
+ const FIELD::VALUES_optional& FIELD::
+ VALUES () const
+ {
+ return this->VALUES_;
+ }
+
+ FIELD::VALUES_optional& FIELD::
+ VALUES ()
+ {
+ return this->VALUES_;
+ }
+
+ void FIELD::
+ VALUES (const VALUES_type& x)
+ {
+ this->VALUES_.set (x);
+ }
+
+ void FIELD::
+ VALUES (const VALUES_optional& x)
+ {
+ this->VALUES_ = x;
+ }
+
+ void FIELD::
+ VALUES (::std::auto_ptr< VALUES_type > x)
+ {
+ this->VALUES_.set (x);
+ }
+
+ const FIELD::LINK_sequence& FIELD::
+ LINK () const
+ {
+ return this->LINK_;
+ }
+
+ FIELD::LINK_sequence& FIELD::
+ LINK ()
+ {
+ return this->LINK_;
+ }
+
+ void FIELD::
+ LINK (const LINK_sequence& s)
+ {
+ this->LINK_ = s;
+ }
+
+ const FIELD::ID_optional& FIELD::
+ ID () const
+ {
+ return this->ID_;
+ }
+
+ FIELD::ID_optional& FIELD::
+ ID ()
+ {
+ return this->ID_;
+ }
+
+ void FIELD::
+ ID (const ID_type& x)
+ {
+ this->ID_.set (x);
+ }
+
+ void FIELD::
+ ID (const ID_optional& x)
+ {
+ this->ID_ = x;
+ }
+
+ void FIELD::
+ ID (::std::auto_ptr< ID_type > x)
+ {
+ this->ID_.set (x);
+ }
+
+ const FIELD::unit_optional& FIELD::
+ unit () const
+ {
+ return this->unit_;
+ }
+
+ FIELD::unit_optional& FIELD::
+ unit ()
+ {
+ return this->unit_;
+ }
+
+ void FIELD::
+ unit (const unit_type& x)
+ {
+ this->unit_.set (x);
+ }
+
+ void FIELD::
+ unit (const unit_optional& x)
+ {
+ this->unit_ = x;
+ }
+
+ void FIELD::
+ unit (::std::auto_ptr< unit_type > x)
+ {
+ this->unit_.set (x);
+ }
+
+ const FIELD::datatype_optional& FIELD::
+ datatype () const
+ {
+ return this->datatype_;
+ }
+
+ FIELD::datatype_optional& FIELD::
+ datatype ()
+ {
+ return this->datatype_;
+ }
+
+ void FIELD::
+ datatype (const datatype_type& x)
+ {
+ this->datatype_.set (x);
+ }
+
+ void FIELD::
+ datatype (const datatype_optional& x)
+ {
+ this->datatype_ = x;
+ }
+
+ void FIELD::
+ datatype (::std::auto_ptr< datatype_type > x)
+ {
+ this->datatype_.set (x);
+ }
+
+ const FIELD::precision_optional& FIELD::
+ precision () const
+ {
+ return this->precision_;
+ }
+
+ FIELD::precision_optional& FIELD::
+ precision ()
+ {
+ return this->precision_;
+ }
+
+ void FIELD::
+ precision (const precision_type& x)
+ {
+ this->precision_.set (x);
+ }
+
+ void FIELD::
+ precision (const precision_optional& x)
+ {
+ this->precision_ = x;
+ }
+
+ void FIELD::
+ precision (::std::auto_ptr< precision_type > x)
+ {
+ this->precision_.set (x);
+ }
+
+ const FIELD::width_optional& FIELD::
+ width () const
+ {
+ return this->width_;
+ }
+
+ FIELD::width_optional& FIELD::
+ width ()
+ {
+ return this->width_;
+ }
+
+ void FIELD::
+ width (const width_type& x)
+ {
+ this->width_.set (x);
+ }
+
+ void FIELD::
+ width (const width_optional& x)
+ {
+ this->width_ = x;
+ }
+
+ const FIELD::xtype_optional& FIELD::
+ xtype () const
+ {
+ return this->xtype_;
+ }
+
+ FIELD::xtype_optional& FIELD::
+ xtype ()
+ {
+ return this->xtype_;
+ }
+
+ void FIELD::
+ xtype (const xtype_type& x)
+ {
+ this->xtype_.set (x);
+ }
+
+ void FIELD::
+ xtype (const xtype_optional& x)
+ {
+ this->xtype_ = x;
+ }
+
+ void FIELD::
+ xtype (::std::auto_ptr< xtype_type > x)
+ {
+ this->xtype_.set (x);
+ }
+
+ const FIELD::ref_optional& FIELD::
+ ref () const
+ {
+ return this->ref_;
+ }
+
+ FIELD::ref_optional& FIELD::
+ ref ()
+ {
+ return this->ref_;
+ }
+
+ void FIELD::
+ ref (const ref_type& x)
+ {
+ this->ref_.set (x);
+ }
+
+ void FIELD::
+ ref (const ref_optional& x)
+ {
+ this->ref_ = x;
+ }
+
+ void FIELD::
+ ref (::std::auto_ptr< ref_type > x)
+ {
+ this->ref_.set (x);
+ }
+
+ const FIELD::name_optional& FIELD::
+ name () const
+ {
+ return this->name_;
+ }
+
+ FIELD::name_optional& FIELD::
+ name ()
+ {
+ return this->name_;
+ }
+
+ void FIELD::
+ name (const name_type& x)
+ {
+ this->name_.set (x);
+ }
+
+ void FIELD::
+ name (const name_optional& x)
+ {
+ this->name_ = x;
+ }
+
+ void FIELD::
+ name (::std::auto_ptr< name_type > x)
+ {
+ this->name_.set (x);
+ }
+
+ const FIELD::ucd_optional& FIELD::
+ ucd () const
+ {
+ return this->ucd_;
+ }
+
+ FIELD::ucd_optional& FIELD::
+ ucd ()
+ {
+ return this->ucd_;
+ }
+
+ void FIELD::
+ ucd (const ucd_type& x)
+ {
+ this->ucd_.set (x);
+ }
+
+ void FIELD::
+ ucd (const ucd_optional& x)
+ {
+ this->ucd_ = x;
+ }
+
+ void FIELD::
+ ucd (::std::auto_ptr< ucd_type > x)
+ {
+ this->ucd_.set (x);
+ }
+
+ const FIELD::utype_optional& FIELD::
+ utype () const
+ {
+ return this->utype_;
+ }
+
+ FIELD::utype_optional& FIELD::
+ utype ()
+ {
+ return this->utype_;
+ }
+
+ void FIELD::
+ utype (const utype_type& x)
+ {
+ this->utype_.set (x);
+ }
+
+ void FIELD::
+ utype (const utype_optional& x)
+ {
+ this->utype_ = x;
+ }
+
+ void FIELD::
+ utype (::std::auto_ptr< utype_type > x)
+ {
+ this->utype_.set (x);
+ }
+
+ const FIELD::arraysize_optional& FIELD::
+ arraysize () const
+ {
+ return this->arraysize_;
+ }
+
+ FIELD::arraysize_optional& FIELD::
+ arraysize ()
+ {
+ return this->arraysize_;
+ }
+
+ void FIELD::
+ arraysize (const arraysize_type& x)
+ {
+ this->arraysize_.set (x);
+ }
+
+ void FIELD::
+ arraysize (const arraysize_optional& x)
+ {
+ this->arraysize_ = x;
+ }
+
+ void FIELD::
+ arraysize (::std::auto_ptr< arraysize_type > x)
+ {
+ this->arraysize_.set (x);
+ }
+
+ const FIELD::type_optional& FIELD::
+ type () const
+ {
+ return this->type_;
+ }
+
+ FIELD::type_optional& FIELD::
+ type ()
+ {
+ return this->type_;
+ }
+
+ void FIELD::
+ type (const type_type& x)
+ {
+ this->type_.set (x);
+ }
+
+ void FIELD::
+ type (const type_optional& x)
+ {
+ this->type_ = x;
+ }
+
+ void FIELD::
+ type (::std::auto_ptr< type_type > x)
+ {
+ this->type_.set (x);
+ }
+
+
+ // PARAM
+ //
+
+ const PARAM::value_optional& PARAM::
+ value () const
+ {
+ return this->value_;
+ }
+
+ PARAM::value_optional& PARAM::
+ value ()
+ {
+ return this->value_;
+ }
+
+ void PARAM::
+ value (const value_type& x)
+ {
+ this->value_.set (x);
+ }
+
+ void PARAM::
+ value (const value_optional& x)
+ {
+ this->value_ = x;
+ }
+
+ void PARAM::
+ value (::std::auto_ptr< value_type > x)
+ {
+ this->value_.set (x);
+ }
+
+
+ // GROUP
+ //
+
+ const GROUP::DESCRIPTION_optional& GROUP::
+ DESCRIPTION () const
+ {
+ return this->DESCRIPTION_;
+ }
+
+ GROUP::DESCRIPTION_optional& GROUP::
+ DESCRIPTION ()
+ {
+ return this->DESCRIPTION_;
+ }
+
+ void GROUP::
+ DESCRIPTION (const DESCRIPTION_type& x)
+ {
+ this->DESCRIPTION_.set (x);
+ }
+
+ void GROUP::
+ DESCRIPTION (const DESCRIPTION_optional& x)
+ {
+ this->DESCRIPTION_ = x;
+ }
+
+ void GROUP::
+ DESCRIPTION (::std::auto_ptr< DESCRIPTION_type > x)
+ {
+ this->DESCRIPTION_.set (x);
+ }
+
+ const GROUP::FIELDref_sequence& GROUP::
+ FIELDref () const
+ {
+ return this->FIELDref_;
+ }
+
+ GROUP::FIELDref_sequence& GROUP::
+ FIELDref ()
+ {
+ return this->FIELDref_;
+ }
+
+ void GROUP::
+ FIELDref (const FIELDref_sequence& s)
+ {
+ this->FIELDref_ = s;
+ }
+
+ const GROUP::PARAMref_sequence& GROUP::
+ PARAMref () const
+ {
+ return this->PARAMref_;
+ }
+
+ GROUP::PARAMref_sequence& GROUP::
+ PARAMref ()
+ {
+ return this->PARAMref_;
+ }
+
+ void GROUP::
+ PARAMref (const PARAMref_sequence& s)
+ {
+ this->PARAMref_ = s;
+ }
+
+ const GROUP::PARAM_sequence& GROUP::
+ PARAM () const
+ {
+ return this->PARAM_;
+ }
+
+ GROUP::PARAM_sequence& GROUP::
+ PARAM ()
+ {
+ return this->PARAM_;
+ }
+
+ void GROUP::
+ PARAM (const PARAM_sequence& s)
+ {
+ this->PARAM_ = s;
+ }
+
+ const GROUP::GROUP1_sequence& GROUP::
+ GROUP1 () const
+ {
+ return this->GROUP1_;
+ }
+
+ GROUP::GROUP1_sequence& GROUP::
+ GROUP1 ()
+ {
+ return this->GROUP1_;
+ }
+
+ void GROUP::
+ GROUP1 (const GROUP1_sequence& s)
+ {
+ this->GROUP1_ = s;
+ }
+
+ const GROUP::ID_optional& GROUP::
+ ID () const
+ {
+ return this->ID_;
+ }
+
+ GROUP::ID_optional& GROUP::
+ ID ()
+ {
+ return this->ID_;
+ }
+
+ void GROUP::
+ ID (const ID_type& x)
+ {
+ this->ID_.set (x);
+ }
+
+ void GROUP::
+ ID (const ID_optional& x)
+ {
+ this->ID_ = x;
+ }
+
+ void GROUP::
+ ID (::std::auto_ptr< ID_type > x)
+ {
+ this->ID_.set (x);
+ }
+
+ const GROUP::name_optional& GROUP::
+ name () const
+ {
+ return this->name_;
+ }
+
+ GROUP::name_optional& GROUP::
+ name ()
+ {
+ return this->name_;
+ }
+
+ void GROUP::
+ name (const name_type& x)
+ {
+ this->name_.set (x);
+ }
+
+ void GROUP::
+ name (const name_optional& x)
+ {
+ this->name_ = x;
+ }
+
+ void GROUP::
+ name (::std::auto_ptr< name_type > x)
+ {
+ this->name_.set (x);
+ }
+
+ const GROUP::ref_optional& GROUP::
+ ref () const
+ {
+ return this->ref_;
+ }
+
+ GROUP::ref_optional& GROUP::
+ ref ()
+ {
+ return this->ref_;
+ }
+
+ void GROUP::
+ ref (const ref_type& x)
+ {
+ this->ref_.set (x);
+ }
+
+ void GROUP::
+ ref (const ref_optional& x)
+ {
+ this->ref_ = x;
+ }
+
+ void GROUP::
+ ref (::std::auto_ptr< ref_type > x)
+ {
+ this->ref_.set (x);
+ }
+
+ const GROUP::ucd_optional& GROUP::
+ ucd () const
+ {
+ return this->ucd_;
+ }
+
+ GROUP::ucd_optional& GROUP::
+ ucd ()
+ {
+ return this->ucd_;
+ }
+
+ void GROUP::
+ ucd (const ucd_type& x)
+ {
+ this->ucd_.set (x);
+ }
+
+ void GROUP::
+ ucd (const ucd_optional& x)
+ {
+ this->ucd_ = x;
+ }
+
+ void GROUP::
+ ucd (::std::auto_ptr< ucd_type > x)
+ {
+ this->ucd_.set (x);
+ }
+
+ const GROUP::utype_optional& GROUP::
+ utype () const
+ {
+ return this->utype_;
+ }
+
+ GROUP::utype_optional& GROUP::
+ utype ()
+ {
+ return this->utype_;
+ }
+
+ void GROUP::
+ utype (const utype_type& x)
+ {
+ this->utype_.set (x);
+ }
+
+ void GROUP::
+ utype (const utype_optional& x)
+ {
+ this->utype_ = x;
+ }
+
+ void GROUP::
+ utype (::std::auto_ptr< utype_type > x)
+ {
+ this->utype_.set (x);
+ }
+
+
+ // FIELDref
+ //
+
+ const FIELDref::ref_type& FIELDref::
+ ref () const
+ {
+ return this->ref_.get ();
+ }
+
+ FIELDref::ref_type& FIELDref::
+ ref ()
+ {
+ return this->ref_.get ();
+ }
+
+ void FIELDref::
+ ref (const ref_type& x)
+ {
+ this->ref_.set (x);
+ }
+
+ void FIELDref::
+ ref (::std::auto_ptr< ref_type > x)
+ {
+ this->ref_.set (x);
+ }
+
+ const FIELDref::ucd_optional& FIELDref::
+ ucd () const
+ {
+ return this->ucd_;
+ }
+
+ FIELDref::ucd_optional& FIELDref::
+ ucd ()
+ {
+ return this->ucd_;
+ }
+
+ void FIELDref::
+ ucd (const ucd_type& x)
+ {
+ this->ucd_.set (x);
+ }
+
+ void FIELDref::
+ ucd (const ucd_optional& x)
+ {
+ this->ucd_ = x;
+ }
+
+ void FIELDref::
+ ucd (::std::auto_ptr< ucd_type > x)
+ {
+ this->ucd_.set (x);
+ }
+
+ const FIELDref::utype_optional& FIELDref::
+ utype () const
+ {
+ return this->utype_;
+ }
+
+ FIELDref::utype_optional& FIELDref::
+ utype ()
+ {
+ return this->utype_;
+ }
+
+ void FIELDref::
+ utype (const utype_type& x)
+ {
+ this->utype_.set (x);
+ }
+
+ void FIELDref::
+ utype (const utype_optional& x)
+ {
+ this->utype_ = x;
+ }
+
+ void FIELDref::
+ utype (::std::auto_ptr< utype_type > x)
+ {
+ this->utype_.set (x);
+ }
+
+
+ // PARAMref
+ //
+
+ const PARAMref::ref_type& PARAMref::
+ ref () const
+ {
+ return this->ref_.get ();
+ }
+
+ PARAMref::ref_type& PARAMref::
+ ref ()
+ {
+ return this->ref_.get ();
+ }
+
+ void PARAMref::
+ ref (const ref_type& x)
+ {
+ this->ref_.set (x);
+ }
+
+ void PARAMref::
+ ref (::std::auto_ptr< ref_type > x)
+ {
+ this->ref_.set (x);
+ }
+
+ const PARAMref::ucd_optional& PARAMref::
+ ucd () const
+ {
+ return this->ucd_;
+ }
+
+ PARAMref::ucd_optional& PARAMref::
+ ucd ()
+ {
+ return this->ucd_;
+ }
+
+ void PARAMref::
+ ucd (const ucd_type& x)
+ {
+ this->ucd_.set (x);
+ }
+
+ void PARAMref::
+ ucd (const ucd_optional& x)
+ {
+ this->ucd_ = x;
+ }
+
+ void PARAMref::
+ ucd (::std::auto_ptr< ucd_type > x)
+ {
+ this->ucd_.set (x);
+ }
+
+ const PARAMref::utype_optional& PARAMref::
+ utype () const
+ {
+ return this->utype_;
+ }
+
+ PARAMref::utype_optional& PARAMref::
+ utype ()
+ {
+ return this->utype_;
+ }
+
+ void PARAMref::
+ utype (const utype_type& x)
+ {
+ this->utype_.set (x);
+ }
+
+ void PARAMref::
+ utype (const utype_optional& x)
+ {
+ this->utype_ = x;
+ }
+
+ void PARAMref::
+ utype (::std::auto_ptr< utype_type > x)
+ {
+ this->utype_.set (x);
+ }
+
+
+ // DATA
+ //
+
+ const DATA::TABLEDATA_optional& DATA::
+ TABLEDATA () const
+ {
+ return this->TABLEDATA_;
+ }
+
+ DATA::TABLEDATA_optional& DATA::
+ TABLEDATA ()
+ {
+ return this->TABLEDATA_;
+ }
+
+ void DATA::
+ TABLEDATA (const TABLEDATA_type& x)
+ {
+ this->TABLEDATA_.set (x);
+ }
+
+ void DATA::
+ TABLEDATA (const TABLEDATA_optional& x)
+ {
+ this->TABLEDATA_ = x;
+ }
+
+ void DATA::
+ TABLEDATA (::std::auto_ptr< TABLEDATA_type > x)
+ {
+ this->TABLEDATA_.set (x);
+ }
+
+ const DATA::BINARY_optional& DATA::
+ BINARY () const
+ {
+ return this->BINARY_;
+ }
+
+ DATA::BINARY_optional& DATA::
+ BINARY ()
+ {
+ return this->BINARY_;
+ }
+
+ void DATA::
+ BINARY (const BINARY_type& x)
+ {
+ this->BINARY_.set (x);
+ }
+
+ void DATA::
+ BINARY (const BINARY_optional& x)
+ {
+ this->BINARY_ = x;
+ }
+
+ void DATA::
+ BINARY (::std::auto_ptr< BINARY_type > x)
+ {
+ this->BINARY_.set (x);
+ }
+
+ const DATA::FITS_optional& DATA::
+ FITS () const
+ {
+ return this->FITS_;
+ }
+
+ DATA::FITS_optional& DATA::
+ FITS ()
+ {
+ return this->FITS_;
+ }
+
+ void DATA::
+ FITS (const FITS_type& x)
+ {
+ this->FITS_.set (x);
+ }
+
+ void DATA::
+ FITS (const FITS_optional& x)
+ {
+ this->FITS_ = x;
+ }
+
+ void DATA::
+ FITS (::std::auto_ptr< FITS_type > x)
+ {
+ this->FITS_.set (x);
+ }
+
+ const DATA::INFO_sequence& DATA::
+ INFO () const
+ {
+ return this->INFO_;
+ }
+
+ DATA::INFO_sequence& DATA::
+ INFO ()
+ {
+ return this->INFO_;
+ }
+
+ void DATA::
+ INFO (const INFO_sequence& s)
+ {
+ this->INFO_ = s;
+ }
+
+
+ // TABLEDATA
+ //
+
+ const TABLEDATA::TR_sequence& TABLEDATA::
+ TR () const
+ {
+ return this->TR_;
+ }
+
+ TABLEDATA::TR_sequence& TABLEDATA::
+ TR ()
+ {
+ return this->TR_;
+ }
+
+ void TABLEDATA::
+ TR (const TR_sequence& s)
+ {
+ this->TR_ = s;
+ }
+
+
+ // TD
+ //
+
+ const TD::encoding_optional& TD::
+ encoding () const
+ {
+ return this->encoding_;
+ }
+
+ TD::encoding_optional& TD::
+ encoding ()
+ {
+ return this->encoding_;
+ }
+
+ void TD::
+ encoding (const encoding_type& x)
+ {
+ this->encoding_.set (x);
+ }
+
+ void TD::
+ encoding (const encoding_optional& x)
+ {
+ this->encoding_ = x;
+ }
+
+ void TD::
+ encoding (::std::auto_ptr< encoding_type > x)
+ {
+ this->encoding_.set (x);
+ }
+
+
+ // TR
+ //
+
+ const TR::TD_sequence& TR::
+ TD () const
+ {
+ return this->TD_;
+ }
+
+ TR::TD_sequence& TR::
+ TD ()
+ {
+ return this->TD_;
+ }
+
+ void TR::
+ TD (const TD_sequence& s)
+ {
+ this->TD_ = s;
+ }
+
+ const TR::ID_optional& TR::
+ ID () const
+ {
+ return this->ID_;
+ }
+
+ TR::ID_optional& TR::
+ ID ()
+ {
+ return this->ID_;
+ }
+
+ void TR::
+ ID (const ID_type& x)
+ {
+ this->ID_.set (x);
+ }
+
+ void TR::
+ ID (const ID_optional& x)
+ {
+ this->ID_ = x;
+ }
+
+ void TR::
+ ID (::std::auto_ptr< ID_type > x)
+ {
+ this->ID_.set (x);
+ }
+
+
+ // FITS
+ //
+
+ const FITS::STREAM_type& FITS::
+ STREAM () const
+ {
+ return this->STREAM_.get ();
+ }
+
+ FITS::STREAM_type& FITS::
+ STREAM ()
+ {
+ return this->STREAM_.get ();
+ }
+
+ void FITS::
+ STREAM (const STREAM_type& x)
+ {
+ this->STREAM_.set (x);
+ }
+
+ void FITS::
+ STREAM (::std::auto_ptr< STREAM_type > x)
+ {
+ this->STREAM_.set (x);
+ }
+
+ const FITS::extnum_optional& FITS::
+ extnum () const
+ {
+ return this->extnum_;
+ }
+
+ FITS::extnum_optional& FITS::
+ extnum ()
+ {
+ return this->extnum_;
+ }
+
+ void FITS::
+ extnum (const extnum_type& x)
+ {
+ this->extnum_.set (x);
+ }
+
+ void FITS::
+ extnum (const extnum_optional& x)
+ {
+ this->extnum_ = x;
+ }
+
+
+ // BINARY
+ //
+
+ const BINARY::STREAM_type& BINARY::
+ STREAM () const
+ {
+ return this->STREAM_.get ();
+ }
+
+ BINARY::STREAM_type& BINARY::
+ STREAM ()
+ {
+ return this->STREAM_.get ();
+ }
+
+ void BINARY::
+ STREAM (const STREAM_type& x)
+ {
+ this->STREAM_.set (x);
+ }
+
+ void BINARY::
+ STREAM (::std::auto_ptr< STREAM_type > x)
+ {
+ this->STREAM_.set (x);
+ }
+
+
+ // STREAM
+ //
+
+ const STREAM::type_type& STREAM::
+ type () const
+ {
+ return this->type_.get ();
+ }
+
+ STREAM::type_type& STREAM::
+ type ()
+ {
+ return this->type_.get ();
+ }
+
+ void STREAM::
+ type (const type_type& x)
+ {
+ this->type_.set (x);
+ }
+
+ void STREAM::
+ type (::std::auto_ptr< type_type > x)
+ {
+ this->type_.set (x);
+ }
+
+ const STREAM::type_type& STREAM::
+ type_default_value ()
+ {
+ return type_default_value_;
+ }
+
+ const STREAM::href_optional& STREAM::
+ href () const
+ {
+ return this->href_;
+ }
+
+ STREAM::href_optional& STREAM::
+ href ()
+ {
+ return this->href_;
+ }
+
+ void STREAM::
+ href (const href_type& x)
+ {
+ this->href_.set (x);
+ }
+
+ void STREAM::
+ href (const href_optional& x)
+ {
+ this->href_ = x;
+ }
+
+ void STREAM::
+ href (::std::auto_ptr< href_type > x)
+ {
+ this->href_.set (x);
+ }
+
+ const STREAM::actuate_type& STREAM::
+ actuate () const
+ {
+ return this->actuate_.get ();
+ }
+
+ STREAM::actuate_type& STREAM::
+ actuate ()
+ {
+ return this->actuate_.get ();
+ }
+
+ void STREAM::
+ actuate (const actuate_type& x)
+ {
+ this->actuate_.set (x);
+ }
+
+ void STREAM::
+ actuate (::std::auto_ptr< actuate_type > x)
+ {
+ this->actuate_.set (x);
+ }
+
+ const STREAM::actuate_type& STREAM::
+ actuate_default_value ()
+ {
+ return actuate_default_value_;
+ }
+
+ const STREAM::encoding_type& STREAM::
+ encoding () const
+ {
+ return this->encoding_.get ();
+ }
+
+ STREAM::encoding_type& STREAM::
+ encoding ()
+ {
+ return this->encoding_.get ();
+ }
+
+ void STREAM::
+ encoding (const encoding_type& x)
+ {
+ this->encoding_.set (x);
+ }
+
+ void STREAM::
+ encoding (::std::auto_ptr< encoding_type > x)
+ {
+ this->encoding_.set (x);
+ }
+
+ const STREAM::encoding_type& STREAM::
+ encoding_default_value ()
+ {
+ return encoding_default_value_;
+ }
+
+ const STREAM::expires_optional& STREAM::
+ expires () const
+ {
+ return this->expires_;
+ }
+
+ STREAM::expires_optional& STREAM::
+ expires ()
+ {
+ return this->expires_;
+ }
+
+ void STREAM::
+ expires (const expires_type& x)
+ {
+ this->expires_.set (x);
+ }
+
+ void STREAM::
+ expires (const expires_optional& x)
+ {
+ this->expires_ = x;
+ }
+
+ void STREAM::
+ expires (::std::auto_ptr< expires_type > x)
+ {
+ this->expires_.set (x);
+ }
+
+ const STREAM::rights_optional& STREAM::
+ rights () const
+ {
+ return this->rights_;
+ }
+
+ STREAM::rights_optional& STREAM::
+ rights ()
+ {
+ return this->rights_;
+ }
+
+ void STREAM::
+ rights (const rights_type& x)
+ {
+ this->rights_.set (x);
+ }
+
+ void STREAM::
+ rights (const rights_optional& x)
+ {
+ this->rights_ = x;
+ }
+
+ void STREAM::
+ rights (::std::auto_ptr< rights_type > x)
+ {
+ this->rights_.set (x);
+ }
+
+
+ // TABLE
+ //
+
+ const TABLE::DESCRIPTION_optional& TABLE::
+ DESCRIPTION () const
+ {
+ return this->DESCRIPTION_;
+ }
+
+ TABLE::DESCRIPTION_optional& TABLE::
+ DESCRIPTION ()
+ {
+ return this->DESCRIPTION_;
+ }
+
+ void TABLE::
+ DESCRIPTION (const DESCRIPTION_type& x)
+ {
+ this->DESCRIPTION_.set (x);
+ }
+
+ void TABLE::
+ DESCRIPTION (const DESCRIPTION_optional& x)
+ {
+ this->DESCRIPTION_ = x;
+ }
+
+ void TABLE::
+ DESCRIPTION (::std::auto_ptr< DESCRIPTION_type > x)
+ {
+ this->DESCRIPTION_.set (x);
+ }
+
+ const TABLE::INFO_sequence& TABLE::
+ INFO () const
+ {
+ return this->INFO_;
+ }
+
+ TABLE::INFO_sequence& TABLE::
+ INFO ()
+ {
+ return this->INFO_;
+ }
+
+ void TABLE::
+ INFO (const INFO_sequence& s)
+ {
+ this->INFO_ = s;
+ }
+
+ const TABLE::FIELD_sequence& TABLE::
+ FIELD () const
+ {
+ return this->FIELD_;
+ }
+
+ TABLE::FIELD_sequence& TABLE::
+ FIELD ()
+ {
+ return this->FIELD_;
+ }
+
+ void TABLE::
+ FIELD (const FIELD_sequence& s)
+ {
+ this->FIELD_ = s;
+ }
+
+ const TABLE::PARAM_sequence& TABLE::
+ PARAM () const
+ {
+ return this->PARAM_;
+ }
+
+ TABLE::PARAM_sequence& TABLE::
+ PARAM ()
+ {
+ return this->PARAM_;
+ }
+
+ void TABLE::
+ PARAM (const PARAM_sequence& s)
+ {
+ this->PARAM_ = s;
+ }
+
+ const TABLE::GROUP_sequence& TABLE::
+ GROUP () const
+ {
+ return this->GROUP_;
+ }
+
+ TABLE::GROUP_sequence& TABLE::
+ GROUP ()
+ {
+ return this->GROUP_;
+ }
+
+ void TABLE::
+ GROUP (const GROUP_sequence& s)
+ {
+ this->GROUP_ = s;
+ }
+
+ const TABLE::LINK_sequence& TABLE::
+ LINK () const
+ {
+ return this->LINK_;
+ }
+
+ TABLE::LINK_sequence& TABLE::
+ LINK ()
+ {
+ return this->LINK_;
+ }
+
+ void TABLE::
+ LINK (const LINK_sequence& s)
+ {
+ this->LINK_ = s;
+ }
+
+ const TABLE::DATA_optional& TABLE::
+ DATA () const
+ {
+ return this->DATA_;
+ }
+
+ TABLE::DATA_optional& TABLE::
+ DATA ()
+ {
+ return this->DATA_;
+ }
+
+ void TABLE::
+ DATA (const DATA_type& x)
+ {
+ this->DATA_.set (x);
+ }
+
+ void TABLE::
+ DATA (const DATA_optional& x)
+ {
+ this->DATA_ = x;
+ }
+
+ void TABLE::
+ DATA (::std::auto_ptr< DATA_type > x)
+ {
+ this->DATA_.set (x);
+ }
+
+ const TABLE::ID_optional& TABLE::
+ ID () const
+ {
+ return this->ID_;
+ }
+
+ TABLE::ID_optional& TABLE::
+ ID ()
+ {
+ return this->ID_;
+ }
+
+ void TABLE::
+ ID (const ID_type& x)
+ {
+ this->ID_.set (x);
+ }
+
+ void TABLE::
+ ID (const ID_optional& x)
+ {
+ this->ID_ = x;
+ }
+
+ void TABLE::
+ ID (::std::auto_ptr< ID_type > x)
+ {
+ this->ID_.set (x);
+ }
+
+ const TABLE::name_optional& TABLE::
+ name () const
+ {
+ return this->name_;
+ }
+
+ TABLE::name_optional& TABLE::
+ name ()
+ {
+ return this->name_;
+ }
+
+ void TABLE::
+ name (const name_type& x)
+ {
+ this->name_.set (x);
+ }
+
+ void TABLE::
+ name (const name_optional& x)
+ {
+ this->name_ = x;
+ }
+
+ void TABLE::
+ name (::std::auto_ptr< name_type > x)
+ {
+ this->name_.set (x);
+ }
+
+ const TABLE::ref_optional& TABLE::
+ ref () const
+ {
+ return this->ref_;
+ }
+
+ TABLE::ref_optional& TABLE::
+ ref ()
+ {
+ return this->ref_;
+ }
+
+ void TABLE::
+ ref (const ref_type& x)
+ {
+ this->ref_.set (x);
+ }
+
+ void TABLE::
+ ref (const ref_optional& x)
+ {
+ this->ref_ = x;
+ }
+
+ void TABLE::
+ ref (::std::auto_ptr< ref_type > x)
+ {
+ this->ref_.set (x);
+ }
+
+ const TABLE::ucd_optional& TABLE::
+ ucd () const
+ {
+ return this->ucd_;
+ }
+
+ TABLE::ucd_optional& TABLE::
+ ucd ()
+ {
+ return this->ucd_;
+ }
+
+ void TABLE::
+ ucd (const ucd_type& x)
+ {
+ this->ucd_.set (x);
+ }
+
+ void TABLE::
+ ucd (const ucd_optional& x)
+ {
+ this->ucd_ = x;
+ }
+
+ void TABLE::
+ ucd (::std::auto_ptr< ucd_type > x)
+ {
+ this->ucd_.set (x);
+ }
+
+ const TABLE::utype_optional& TABLE::
+ utype () const
+ {
+ return this->utype_;
+ }
+
+ TABLE::utype_optional& TABLE::
+ utype ()
+ {
+ return this->utype_;
+ }
+
+ void TABLE::
+ utype (const utype_type& x)
+ {
+ this->utype_.set (x);
+ }
+
+ void TABLE::
+ utype (const utype_optional& x)
+ {
+ this->utype_ = x;
+ }
+
+ void TABLE::
+ utype (::std::auto_ptr< utype_type > x)
+ {
+ this->utype_.set (x);
+ }
+
+ const TABLE::nrows_optional& TABLE::
+ nrows () const
+ {
+ return this->nrows_;
+ }
+
+ TABLE::nrows_optional& TABLE::
+ nrows ()
+ {
+ return this->nrows_;
+ }
+
+ void TABLE::
+ nrows (const nrows_type& x)
+ {
+ this->nrows_.set (x);
+ }
+
+ void TABLE::
+ nrows (const nrows_optional& x)
+ {
+ this->nrows_ = x;
+ }
+
+
+ // RESOURCE
+ //
+
+ const RESOURCE::DESCRIPTION_optional& RESOURCE::
+ DESCRIPTION () const
+ {
+ return this->DESCRIPTION_;
+ }
+
+ RESOURCE::DESCRIPTION_optional& RESOURCE::
+ DESCRIPTION ()
+ {
+ return this->DESCRIPTION_;
+ }
+
+ void RESOURCE::
+ DESCRIPTION (const DESCRIPTION_type& x)
+ {
+ this->DESCRIPTION_.set (x);
+ }
+
+ void RESOURCE::
+ DESCRIPTION (const DESCRIPTION_optional& x)
+ {
+ this->DESCRIPTION_ = x;
+ }
+
+ void RESOURCE::
+ DESCRIPTION (::std::auto_ptr< DESCRIPTION_type > x)
+ {
+ this->DESCRIPTION_.set (x);
+ }
+
+ const RESOURCE::INFO_sequence& RESOURCE::
+ INFO () const
+ {
+ return this->INFO_;
+ }
+
+ RESOURCE::INFO_sequence& RESOURCE::
+ INFO ()
+ {
+ return this->INFO_;
+ }
+
+ void RESOURCE::
+ INFO (const INFO_sequence& s)
+ {
+ this->INFO_ = s;
+ }
+
+ const RESOURCE::COOSYS_sequence& RESOURCE::
+ COOSYS () const
+ {
+ return this->COOSYS_;
+ }
+
+ RESOURCE::COOSYS_sequence& RESOURCE::
+ COOSYS ()
+ {
+ return this->COOSYS_;
+ }
+
+ void RESOURCE::
+ COOSYS (const COOSYS_sequence& s)
+ {
+ this->COOSYS_ = s;
+ }
+
+ const RESOURCE::GROUP_sequence& RESOURCE::
+ GROUP () const
+ {
+ return this->GROUP_;
+ }
+
+ RESOURCE::GROUP_sequence& RESOURCE::
+ GROUP ()
+ {
+ return this->GROUP_;
+ }
+
+ void RESOURCE::
+ GROUP (const GROUP_sequence& s)
+ {
+ this->GROUP_ = s;
+ }
+
+ const RESOURCE::PARAM_sequence& RESOURCE::
+ PARAM () const
+ {
+ return this->PARAM_;
+ }
+
+ RESOURCE::PARAM_sequence& RESOURCE::
+ PARAM ()
+ {
+ return this->PARAM_;
+ }
+
+ void RESOURCE::
+ PARAM (const PARAM_sequence& s)
+ {
+ this->PARAM_ = s;
+ }
+
+ const RESOURCE::LINK_sequence& RESOURCE::
+ LINK () const
+ {
+ return this->LINK_;
+ }
+
+ RESOURCE::LINK_sequence& RESOURCE::
+ LINK ()
+ {
+ return this->LINK_;
+ }
+
+ void RESOURCE::
+ LINK (const LINK_sequence& s)
+ {
+ this->LINK_ = s;
+ }
+
+ const RESOURCE::TABLE_sequence& RESOURCE::
+ TABLE () const
+ {
+ return this->TABLE_;
+ }
+
+ RESOURCE::TABLE_sequence& RESOURCE::
+ TABLE ()
+ {
+ return this->TABLE_;
+ }
+
+ void RESOURCE::
+ TABLE (const TABLE_sequence& s)
+ {
+ this->TABLE_ = s;
+ }
+
+ const RESOURCE::RESOURCE1_sequence& RESOURCE::
+ RESOURCE1 () const
+ {
+ return this->RESOURCE1_;
+ }
+
+ RESOURCE::RESOURCE1_sequence& RESOURCE::
+ RESOURCE1 ()
+ {
+ return this->RESOURCE1_;
+ }
+
+ void RESOURCE::
+ RESOURCE1 (const RESOURCE1_sequence& s)
+ {
+ this->RESOURCE1_ = s;
+ }
+
+ const RESOURCE::any_sequence& RESOURCE::
+ any () const
+ {
+ return this->any_;
+ }
+
+ RESOURCE::any_sequence& RESOURCE::
+ any ()
+ {
+ return this->any_;
+ }
+
+ void RESOURCE::
+ any (const any_sequence& s)
+ {
+ this->any_ = s;
+ }
+
+ const RESOURCE::name_optional& RESOURCE::
+ name () const
+ {
+ return this->name_;
+ }
+
+ RESOURCE::name_optional& RESOURCE::
+ name ()
+ {
+ return this->name_;
+ }
+
+ void RESOURCE::
+ name (const name_type& x)
+ {
+ this->name_.set (x);
+ }
+
+ void RESOURCE::
+ name (const name_optional& x)
+ {
+ this->name_ = x;
+ }
+
+ void RESOURCE::
+ name (::std::auto_ptr< name_type > x)
+ {
+ this->name_.set (x);
+ }
+
+ const RESOURCE::ID_optional& RESOURCE::
+ ID () const
+ {
+ return this->ID_;
+ }
+
+ RESOURCE::ID_optional& RESOURCE::
+ ID ()
+ {
+ return this->ID_;
+ }
+
+ void RESOURCE::
+ ID (const ID_type& x)
+ {
+ this->ID_.set (x);
+ }
+
+ void RESOURCE::
+ ID (const ID_optional& x)
+ {
+ this->ID_ = x;
+ }
+
+ void RESOURCE::
+ ID (::std::auto_ptr< ID_type > x)
+ {
+ this->ID_.set (x);
+ }
+
+ const RESOURCE::utype_optional& RESOURCE::
+ utype () const
+ {
+ return this->utype_;
+ }
+
+ RESOURCE::utype_optional& RESOURCE::
+ utype ()
+ {
+ return this->utype_;
+ }
+
+ void RESOURCE::
+ utype (const utype_type& x)
+ {
+ this->utype_.set (x);
+ }
+
+ void RESOURCE::
+ utype (const utype_optional& x)
+ {
+ this->utype_ = x;
+ }
+
+ void RESOURCE::
+ utype (::std::auto_ptr< utype_type > x)
+ {
+ this->utype_.set (x);
+ }
+
+ const RESOURCE::type_type& RESOURCE::
+ type () const
+ {
+ return this->type_.get ();
+ }
+
+ RESOURCE::type_type& RESOURCE::
+ type ()
+ {
+ return this->type_.get ();
+ }
+
+ void RESOURCE::
+ type (const type_type& x)
+ {
+ this->type_.set (x);
+ }
+
+ void RESOURCE::
+ type (::std::auto_ptr< type_type > x)
+ {
+ this->type_.set (x);
+ }
+
+ const RESOURCE::type_type& RESOURCE::
+ type_default_value ()
+ {
+ return type_default_value_;
+ }
+
+ const RESOURCE::any_attribute_set& RESOURCE::
+ any_attribute () const
+ {
+ return this->any_attribute_;
+ }
+
+ RESOURCE::any_attribute_set& RESOURCE::
+ any_attribute ()
+ {
+ return this->any_attribute_;
+ }
+
+ void RESOURCE::
+ any_attribute (const any_attribute_set& s)
+ {
+ this->any_attribute_ = s;
+ }
+
+ const ::xercesc::DOMDocument& RESOURCE::
+ dom_document () const
+ {
+ return *dom_document_;
+ }
+
+ ::xercesc::DOMDocument& RESOURCE::
+ dom_document ()
+ {
+ return *dom_document_;
+ }
+
+
+ // type
+ //
+
+ type::
+ type (value v)
+ : ::xml_schema::nmtoken (_xsd_type_literals_[v])
+ {
+ }
+
+ type::
+ type (const char* v)
+ : ::xml_schema::nmtoken (v)
+ {
+ }
+
+ type::
+ type (const ::std::string& v)
+ : ::xml_schema::nmtoken (v)
+ {
+ }
+
+ type::
+ type (const ::xml_schema::nmtoken& v)
+ : ::xml_schema::nmtoken (v)
+ {
+ }
+
+ type::
+ type (const type& v,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (v, f, c)
+ {
+ }
+
+ type& type::
+ operator= (value v)
+ {
+ static_cast< ::xml_schema::nmtoken& > (*this) =
+ ::xml_schema::nmtoken (_xsd_type_literals_[v]);
+
+ return *this;
+ }
+
+
+ // system
+ //
+
+ system::
+ system (value v)
+ : ::xml_schema::nmtoken (_xsd_system_literals_[v])
+ {
+ }
+
+ system::
+ system (const char* v)
+ : ::xml_schema::nmtoken (v)
+ {
+ }
+
+ system::
+ system (const ::std::string& v)
+ : ::xml_schema::nmtoken (v)
+ {
+ }
+
+ system::
+ system (const ::xml_schema::nmtoken& v)
+ : ::xml_schema::nmtoken (v)
+ {
+ }
+
+ system::
+ system (const system& v,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (v, f, c)
+ {
+ }
+
+ system& system::
+ operator= (value v)
+ {
+ static_cast< ::xml_schema::nmtoken& > (*this) =
+ ::xml_schema::nmtoken (_xsd_system_literals_[v]);
+
+ return *this;
+ }
+
+
+ // type1
+ //
+
+ type1::
+ type1 (value v)
+ : ::xml_schema::nmtoken (_xsd_type1_literals_[v])
+ {
+ }
+
+ type1::
+ type1 (const char* v)
+ : ::xml_schema::nmtoken (v)
+ {
+ }
+
+ type1::
+ type1 (const ::std::string& v)
+ : ::xml_schema::nmtoken (v)
+ {
+ }
+
+ type1::
+ type1 (const ::xml_schema::nmtoken& v)
+ : ::xml_schema::nmtoken (v)
+ {
+ }
+
+ type1::
+ type1 (const type1& v,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (v, f, c)
+ {
+ }
+
+ type1& type1::
+ operator= (value v)
+ {
+ static_cast< ::xml_schema::nmtoken& > (*this) =
+ ::xml_schema::nmtoken (_xsd_type1_literals_[v]);
+
+ return *this;
+ }
+
+
+ // type2
+ //
+
+ type2::
+ type2 (value v)
+ : ::xml_schema::nmtoken (_xsd_type2_literals_[v])
+ {
+ }
+
+ type2::
+ type2 (const char* v)
+ : ::xml_schema::nmtoken (v)
+ {
+ }
+
+ type2::
+ type2 (const ::std::string& v)
+ : ::xml_schema::nmtoken (v)
+ {
+ }
+
+ type2::
+ type2 (const ::xml_schema::nmtoken& v)
+ : ::xml_schema::nmtoken (v)
+ {
+ }
+
+ type2::
+ type2 (const type2& v,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (v, f, c)
+ {
+ }
+
+ type2& type2::
+ operator= (value v)
+ {
+ static_cast< ::xml_schema::nmtoken& > (*this) =
+ ::xml_schema::nmtoken (_xsd_type2_literals_[v]);
+
+ return *this;
+ }
+
+
+ // actuate
+ //
+
+ actuate::
+ actuate (value v)
+ : ::xml_schema::nmtoken (_xsd_actuate_literals_[v])
+ {
+ }
+
+ actuate::
+ actuate (const char* v)
+ : ::xml_schema::nmtoken (v)
+ {
+ }
+
+ actuate::
+ actuate (const ::std::string& v)
+ : ::xml_schema::nmtoken (v)
+ {
+ }
+
+ actuate::
+ actuate (const ::xml_schema::nmtoken& v)
+ : ::xml_schema::nmtoken (v)
+ {
+ }
+
+ actuate::
+ actuate (const actuate& v,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (v, f, c)
+ {
+ }
+
+ actuate& actuate::
+ operator= (value v)
+ {
+ static_cast< ::xml_schema::nmtoken& > (*this) =
+ ::xml_schema::nmtoken (_xsd_actuate_literals_[v]);
+
+ return *this;
+ }
+
+
+ // type3
+ //
+
+ type3::
+ type3 (value v)
+ : ::xml_schema::nmtoken (_xsd_type3_literals_[v])
+ {
+ }
+
+ type3::
+ type3 (const char* v)
+ : ::xml_schema::nmtoken (v)
+ {
+ }
+
+ type3::
+ type3 (const ::std::string& v)
+ : ::xml_schema::nmtoken (v)
+ {
+ }
+
+ type3::
+ type3 (const ::xml_schema::nmtoken& v)
+ : ::xml_schema::nmtoken (v)
+ {
+ }
+
+ type3::
+ type3 (const type3& v,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (v, f, c)
+ {
+ }
+
+ type3& type3::
+ operator= (value v)
+ {
+ static_cast< ::xml_schema::nmtoken& > (*this) =
+ ::xml_schema::nmtoken (_xsd_type3_literals_[v]);
+
+ return *this;
+ }
+
+
+ // VOTABLE
+ //
+
+ const VOTABLE::DESCRIPTION_optional& VOTABLE::
+ DESCRIPTION () const
+ {
+ return this->DESCRIPTION_;
+ }
+
+ VOTABLE::DESCRIPTION_optional& VOTABLE::
+ DESCRIPTION ()
+ {
+ return this->DESCRIPTION_;
+ }
+
+ void VOTABLE::
+ DESCRIPTION (const DESCRIPTION_type& x)
+ {
+ this->DESCRIPTION_.set (x);
+ }
+
+ void VOTABLE::
+ DESCRIPTION (const DESCRIPTION_optional& x)
+ {
+ this->DESCRIPTION_ = x;
+ }
+
+ void VOTABLE::
+ DESCRIPTION (::std::auto_ptr< DESCRIPTION_type > x)
+ {
+ this->DESCRIPTION_.set (x);
+ }
+
+ const VOTABLE::DEFINITIONS_optional& VOTABLE::
+ DEFINITIONS () const
+ {
+ return this->DEFINITIONS_;
+ }
+
+ VOTABLE::DEFINITIONS_optional& VOTABLE::
+ DEFINITIONS ()
+ {
+ return this->DEFINITIONS_;
+ }
+
+ void VOTABLE::
+ DEFINITIONS (const DEFINITIONS_type& x)
+ {
+ this->DEFINITIONS_.set (x);
+ }
+
+ void VOTABLE::
+ DEFINITIONS (const DEFINITIONS_optional& x)
+ {
+ this->DEFINITIONS_ = x;
+ }
+
+ void VOTABLE::
+ DEFINITIONS (::std::auto_ptr< DEFINITIONS_type > x)
+ {
+ this->DEFINITIONS_.set (x);
+ }
+
+ const VOTABLE::COOSYS_sequence& VOTABLE::
+ COOSYS () const
+ {
+ return this->COOSYS_;
+ }
+
+ VOTABLE::COOSYS_sequence& VOTABLE::
+ COOSYS ()
+ {
+ return this->COOSYS_;
+ }
+
+ void VOTABLE::
+ COOSYS (const COOSYS_sequence& s)
+ {
+ this->COOSYS_ = s;
+ }
+
+ const VOTABLE::GROUP_sequence& VOTABLE::
+ GROUP () const
+ {
+ return this->GROUP_;
+ }
+
+ VOTABLE::GROUP_sequence& VOTABLE::
+ GROUP ()
+ {
+ return this->GROUP_;
+ }
+
+ void VOTABLE::
+ GROUP (const GROUP_sequence& s)
+ {
+ this->GROUP_ = s;
+ }
+
+ const VOTABLE::PARAM_sequence& VOTABLE::
+ PARAM () const
+ {
+ return this->PARAM_;
+ }
+
+ VOTABLE::PARAM_sequence& VOTABLE::
+ PARAM ()
+ {
+ return this->PARAM_;
+ }
+
+ void VOTABLE::
+ PARAM (const PARAM_sequence& s)
+ {
+ this->PARAM_ = s;
+ }
+
+ const VOTABLE::INFO_sequence& VOTABLE::
+ INFO () const
+ {
+ return this->INFO_;
+ }
+
+ VOTABLE::INFO_sequence& VOTABLE::
+ INFO ()
+ {
+ return this->INFO_;
+ }
+
+ void VOTABLE::
+ INFO (const INFO_sequence& s)
+ {
+ this->INFO_ = s;
+ }
+
+ const VOTABLE::RESOURCE_sequence& VOTABLE::
+ RESOURCE () const
+ {
+ return this->RESOURCE_;
+ }
+
+ VOTABLE::RESOURCE_sequence& VOTABLE::
+ RESOURCE ()
+ {
+ return this->RESOURCE_;
+ }
+
+ void VOTABLE::
+ RESOURCE (const RESOURCE_sequence& s)
+ {
+ this->RESOURCE_ = s;
+ }
+
+ const VOTABLE::ID_optional& VOTABLE::
+ ID () const
+ {
+ return this->ID_;
+ }
+
+ VOTABLE::ID_optional& VOTABLE::
+ ID ()
+ {
+ return this->ID_;
+ }
+
+ void VOTABLE::
+ ID (const ID_type& x)
+ {
+ this->ID_.set (x);
+ }
+
+ void VOTABLE::
+ ID (const ID_optional& x)
+ {
+ this->ID_ = x;
+ }
+
+ void VOTABLE::
+ ID (::std::auto_ptr< ID_type > x)
+ {
+ this->ID_.set (x);
+ }
+
+ const VOTABLE::version_optional& VOTABLE::
+ version () const
+ {
+ return this->version_;
+ }
+
+ VOTABLE::version_optional& VOTABLE::
+ version ()
+ {
+ return this->version_;
+ }
+
+ void VOTABLE::
+ version (const version_type& x)
+ {
+ this->version_.set (x);
+ }
+
+ void VOTABLE::
+ version (const version_optional& x)
+ {
+ this->version_ = x;
+ }
+
+ void VOTABLE::
+ version (::std::auto_ptr< version_type > x)
+ {
+ this->version_.set (x);
+ }
+
+
+ // version
+ //
+
+ version::
+ version (value v)
+ : ::xml_schema::nmtoken (_xsd_version_literals_[v])
+ {
+ }
+
+ version::
+ version (const char* v)
+ : ::xml_schema::nmtoken (v)
+ {
+ }
+
+ version::
+ version (const ::std::string& v)
+ : ::xml_schema::nmtoken (v)
+ {
+ }
+
+ version::
+ version (const ::xml_schema::nmtoken& v)
+ : ::xml_schema::nmtoken (v)
+ {
+ }
+
+ version::
+ version (const version& v,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (v, f, c)
+ {
+ }
+
+ version& version::
+ operator= (value v)
+ {
+ static_cast< ::xml_schema::nmtoken& > (*this) =
+ ::xml_schema::nmtoken (_xsd_version_literals_[v]);
+
+ return *this;
+ }
+}
+
+#include
+
+#include
+
+namespace votable_13
+{
+ // anyTEXT
+ //
+
+ anyTEXT::
+ anyTEXT ()
+ : ::xml_schema::type (),
+ dom_document_ (::xsd::cxx::xml::dom::create_document< char > ()),
+ any_ (this->dom_document ())
+ {
+ }
+
+ anyTEXT::
+ anyTEXT (const anyTEXT& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (x, f, c),
+ dom_document_ (::xsd::cxx::xml::dom::create_document< char > ()),
+ any_ (x.any_, this->dom_document ())
+ {
+ }
+
+ anyTEXT::
+ anyTEXT (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
+ dom_document_ (::xsd::cxx::xml::dom::create_document< char > ()),
+ any_ (this->dom_document ())
+ {
+ if ((f & ::xml_schema::flags::base) == 0)
+ {
+ ::xsd::cxx::xml::dom::parser< char > p (e, true, false);
+ this->parse (p, f);
+ }
+ }
+
+ void anyTEXT::
+ parse (::xsd::cxx::xml::dom::parser< char >& p,
+ ::xml_schema::flags)
+ {
+ for (; p.more_elements (); p.next_element ())
+ {
+ const ::xercesc::DOMElement& i (p.cur_element ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ // any
+ //
+ if (true)
+ {
+ ::xercesc::DOMElement* r (
+ static_cast< ::xercesc::DOMElement* > (
+ this->dom_document ().importNode (
+ const_cast< ::xercesc::DOMElement* > (&i), true)));
+ this->any_ .push_back (r);
+ continue;
+ }
+
+ break;
+ }
+ }
+
+ anyTEXT* anyTEXT::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class anyTEXT (*this, f, c);
+ }
+
+ anyTEXT::
+ ~anyTEXT ()
+ {
+ }
+
+ // astroYear
+ //
+
+ astroYear::
+ astroYear ()
+ : ::xml_schema::token ()
+ {
+ }
+
+ astroYear::
+ astroYear (const char* _xsd_token_base)
+ : ::xml_schema::token (_xsd_token_base)
+ {
+ }
+
+ astroYear::
+ astroYear (const ::std::string& _xsd_token_base)
+ : ::xml_schema::token (_xsd_token_base)
+ {
+ }
+
+ astroYear::
+ astroYear (const ::xml_schema::token& _xsd_token_base)
+ : ::xml_schema::token (_xsd_token_base)
+ {
+ }
+
+ astroYear::
+ astroYear (const astroYear& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::token (x, f, c)
+ {
+ }
+
+ astroYear::
+ astroYear (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::token (e, f, c)
+ {
+ }
+
+ astroYear::
+ astroYear (const ::xercesc::DOMAttr& a,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::token (a, f, c)
+ {
+ }
+
+ astroYear::
+ astroYear (const ::std::string& s,
+ const ::xercesc::DOMElement* e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::token (s, e, f, c)
+ {
+ }
+
+ astroYear* astroYear::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class astroYear (*this, f, c);
+ }
+
+ astroYear::
+ ~astroYear ()
+ {
+ }
+
+ // ucdType
+ //
+
+ ucdType::
+ ucdType ()
+ : ::xml_schema::token ()
+ {
+ }
+
+ ucdType::
+ ucdType (const char* _xsd_token_base)
+ : ::xml_schema::token (_xsd_token_base)
+ {
+ }
+
+ ucdType::
+ ucdType (const ::std::string& _xsd_token_base)
+ : ::xml_schema::token (_xsd_token_base)
+ {
+ }
+
+ ucdType::
+ ucdType (const ::xml_schema::token& _xsd_token_base)
+ : ::xml_schema::token (_xsd_token_base)
+ {
+ }
+
+ ucdType::
+ ucdType (const ucdType& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::token (x, f, c)
+ {
+ }
+
+ ucdType::
+ ucdType (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::token (e, f, c)
+ {
+ }
+
+ ucdType::
+ ucdType (const ::xercesc::DOMAttr& a,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::token (a, f, c)
+ {
+ }
+
+ ucdType::
+ ucdType (const ::std::string& s,
+ const ::xercesc::DOMElement* e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::token (s, e, f, c)
+ {
+ }
+
+ ucdType* ucdType::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class ucdType (*this, f, c);
+ }
+
+ ucdType::
+ ~ucdType ()
+ {
+ }
+
+ // arrayDEF
+ //
+
+ arrayDEF::
+ arrayDEF ()
+ : ::xml_schema::token ()
+ {
+ }
+
+ arrayDEF::
+ arrayDEF (const char* _xsd_token_base)
+ : ::xml_schema::token (_xsd_token_base)
+ {
+ }
+
+ arrayDEF::
+ arrayDEF (const ::std::string& _xsd_token_base)
+ : ::xml_schema::token (_xsd_token_base)
+ {
+ }
+
+ arrayDEF::
+ arrayDEF (const ::xml_schema::token& _xsd_token_base)
+ : ::xml_schema::token (_xsd_token_base)
+ {
+ }
+
+ arrayDEF::
+ arrayDEF (const arrayDEF& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::token (x, f, c)
+ {
+ }
+
+ arrayDEF::
+ arrayDEF (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::token (e, f, c)
+ {
+ }
+
+ arrayDEF::
+ arrayDEF (const ::xercesc::DOMAttr& a,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::token (a, f, c)
+ {
+ }
+
+ arrayDEF::
+ arrayDEF (const ::std::string& s,
+ const ::xercesc::DOMElement* e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::token (s, e, f, c)
+ {
+ }
+
+ arrayDEF* arrayDEF::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class arrayDEF (*this, f, c);
+ }
+
+ arrayDEF::
+ ~arrayDEF ()
+ {
+ }
+
+ // encodingType
+ //
+
+ encodingType::
+ encodingType (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (e, f, c)
+ {
+ _xsd_encodingType_convert ();
+ }
+
+ encodingType::
+ encodingType (const ::xercesc::DOMAttr& a,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (a, f, c)
+ {
+ _xsd_encodingType_convert ();
+ }
+
+ encodingType::
+ encodingType (const ::std::string& s,
+ const ::xercesc::DOMElement* e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (s, e, f, c)
+ {
+ _xsd_encodingType_convert ();
+ }
+
+ encodingType* encodingType::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class encodingType (*this, f, c);
+ }
+
+ encodingType::value encodingType::
+ _xsd_encodingType_convert () const
+ {
+ ::xsd::cxx::tree::enum_comparator< char > c (_xsd_encodingType_literals_);
+ const value* i (::std::lower_bound (
+ _xsd_encodingType_indexes_,
+ _xsd_encodingType_indexes_ + 4,
+ *this,
+ c));
+
+ if (i == _xsd_encodingType_indexes_ + 4 || _xsd_encodingType_literals_[*i] != *this)
+ {
+ throw ::xsd::cxx::tree::unexpected_enumerator < char > (*this);
+ }
+
+ return *i;
+ }
+
+ const char* const encodingType::
+ _xsd_encodingType_literals_[4] =
+ {
+ "gzip",
+ "base64",
+ "dynamic",
+ "none"
+ };
+
+ const encodingType::value encodingType::
+ _xsd_encodingType_indexes_[4] =
+ {
+ ::votable_13::encodingType::base64,
+ ::votable_13::encodingType::dynamic,
+ ::votable_13::encodingType::gzip,
+ ::votable_13::encodingType::none
+ };
+
+ // dataType
+ //
+
+ dataType::
+ dataType (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (e, f, c)
+ {
+ _xsd_dataType_convert ();
+ }
+
+ dataType::
+ dataType (const ::xercesc::DOMAttr& a,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (a, f, c)
+ {
+ _xsd_dataType_convert ();
+ }
+
+ dataType::
+ dataType (const ::std::string& s,
+ const ::xercesc::DOMElement* e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (s, e, f, c)
+ {
+ _xsd_dataType_convert ();
+ }
+
+ dataType* dataType::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class dataType (*this, f, c);
+ }
+
+ dataType::value dataType::
+ _xsd_dataType_convert () const
+ {
+ ::xsd::cxx::tree::enum_comparator< char > c (_xsd_dataType_literals_);
+ const value* i (::std::lower_bound (
+ _xsd_dataType_indexes_,
+ _xsd_dataType_indexes_ + 12,
+ *this,
+ c));
+
+ if (i == _xsd_dataType_indexes_ + 12 || _xsd_dataType_literals_[*i] != *this)
+ {
+ throw ::xsd::cxx::tree::unexpected_enumerator < char > (*this);
+ }
+
+ return *i;
+ }
+
+ const char* const dataType::
+ _xsd_dataType_literals_[12] =
+ {
+ "boolean",
+ "bit",
+ "unsignedByte",
+ "short",
+ "int",
+ "long",
+ "char",
+ "unicodeChar",
+ "float",
+ "double",
+ "floatComplex",
+ "doubleComplex"
+ };
+
+ const dataType::value dataType::
+ _xsd_dataType_indexes_[12] =
+ {
+ ::votable_13::dataType::bit,
+ ::votable_13::dataType::boolean,
+ ::votable_13::dataType::char_,
+ ::votable_13::dataType::double_,
+ ::votable_13::dataType::doubleComplex,
+ ::votable_13::dataType::float_,
+ ::votable_13::dataType::floatComplex,
+ ::votable_13::dataType::int_,
+ ::votable_13::dataType::long_,
+ ::votable_13::dataType::short_,
+ ::votable_13::dataType::unicodeChar,
+ ::votable_13::dataType::unsignedByte
+ };
+
+ // precType
+ //
+
+ precType::
+ precType ()
+ : ::xml_schema::token ()
+ {
+ }
+
+ precType::
+ precType (const char* _xsd_token_base)
+ : ::xml_schema::token (_xsd_token_base)
+ {
+ }
+
+ precType::
+ precType (const ::std::string& _xsd_token_base)
+ : ::xml_schema::token (_xsd_token_base)
+ {
+ }
+
+ precType::
+ precType (const ::xml_schema::token& _xsd_token_base)
+ : ::xml_schema::token (_xsd_token_base)
+ {
+ }
+
+ precType::
+ precType (const precType& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::token (x, f, c)
+ {
+ }
+
+ precType::
+ precType (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::token (e, f, c)
+ {
+ }
+
+ precType::
+ precType (const ::xercesc::DOMAttr& a,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::token (a, f, c)
+ {
+ }
+
+ precType::
+ precType (const ::std::string& s,
+ const ::xercesc::DOMElement* e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::token (s, e, f, c)
+ {
+ }
+
+ precType* precType::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class precType (*this, f, c);
+ }
+
+ precType::
+ ~precType ()
+ {
+ }
+
+ // yesno
+ //
+
+ yesno::
+ yesno (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (e, f, c)
+ {
+ _xsd_yesno_convert ();
+ }
+
+ yesno::
+ yesno (const ::xercesc::DOMAttr& a,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (a, f, c)
+ {
+ _xsd_yesno_convert ();
+ }
+
+ yesno::
+ yesno (const ::std::string& s,
+ const ::xercesc::DOMElement* e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (s, e, f, c)
+ {
+ _xsd_yesno_convert ();
+ }
+
+ yesno* yesno::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class yesno (*this, f, c);
+ }
+
+ yesno::value yesno::
+ _xsd_yesno_convert () const
+ {
+ ::xsd::cxx::tree::enum_comparator< char > c (_xsd_yesno_literals_);
+ const value* i (::std::lower_bound (
+ _xsd_yesno_indexes_,
+ _xsd_yesno_indexes_ + 2,
+ *this,
+ c));
+
+ if (i == _xsd_yesno_indexes_ + 2 || _xsd_yesno_literals_[*i] != *this)
+ {
+ throw ::xsd::cxx::tree::unexpected_enumerator < char > (*this);
+ }
+
+ return *i;
+ }
+
+ const char* const yesno::
+ _xsd_yesno_literals_[2] =
+ {
+ "yes",
+ "no"
+ };
+
+ const yesno::value yesno::
+ _xsd_yesno_indexes_[2] =
+ {
+ ::votable_13::yesno::no,
+ ::votable_13::yesno::yes
+ };
+
+ // MIN
+ //
+
+ const MIN::inclusive_type MIN::inclusive_default_value_ (
+ "yes");
+
+ MIN::
+ MIN (const value_type& value)
+ : ::xml_schema::type (),
+ value_ (value, ::xml_schema::flags (), this),
+ inclusive_ (inclusive_default_value (), ::xml_schema::flags (), this)
+ {
+ }
+
+ MIN::
+ MIN (const MIN& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (x, f, c),
+ value_ (x.value_, f, this),
+ inclusive_ (x.inclusive_, f, this)
+ {
+ }
+
+ MIN::
+ MIN (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
+ value_ (f, this),
+ inclusive_ (f, this)
+ {
+ if ((f & ::xml_schema::flags::base) == 0)
+ {
+ ::xsd::cxx::xml::dom::parser< char > p (e, false, true);
+ this->parse (p, f);
+ }
+ }
+
+ void MIN::
+ parse (::xsd::cxx::xml::dom::parser< char >& p,
+ ::xml_schema::flags f)
+ {
+ while (p.more_attributes ())
+ {
+ const ::xercesc::DOMAttr& i (p.next_attribute ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ if (n.name () == "value" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< value_type > r (
+ value_traits::create (i, f, this));
+
+ this->value_.set (r);
+ continue;
+ }
+
+ if (n.name () == "inclusive" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< inclusive_type > r (
+ inclusive_traits::create (i, f, this));
+
+ this->inclusive_.set (r);
+ continue;
+ }
+ }
+
+ if (!value_.present ())
+ {
+ throw ::xsd::cxx::tree::expected_attribute< char > (
+ "value",
+ "");
+ }
+
+ if (!inclusive_.present ())
+ {
+ this->inclusive_.set (inclusive_default_value ());
+ }
+ }
+
+ MIN* MIN::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class MIN (*this, f, c);
+ }
+
+ MIN::
+ ~MIN ()
+ {
+ }
+
+ // MAX
+ //
+
+ const MAX::inclusive_type MAX::inclusive_default_value_ (
+ "yes");
+
+ MAX::
+ MAX (const value_type& value)
+ : ::xml_schema::type (),
+ value_ (value, ::xml_schema::flags (), this),
+ inclusive_ (inclusive_default_value (), ::xml_schema::flags (), this)
+ {
+ }
+
+ MAX::
+ MAX (const MAX& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (x, f, c),
+ value_ (x.value_, f, this),
+ inclusive_ (x.inclusive_, f, this)
+ {
+ }
+
+ MAX::
+ MAX (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
+ value_ (f, this),
+ inclusive_ (f, this)
+ {
+ if ((f & ::xml_schema::flags::base) == 0)
+ {
+ ::xsd::cxx::xml::dom::parser< char > p (e, false, true);
+ this->parse (p, f);
+ }
+ }
+
+ void MAX::
+ parse (::xsd::cxx::xml::dom::parser< char >& p,
+ ::xml_schema::flags f)
+ {
+ while (p.more_attributes ())
+ {
+ const ::xercesc::DOMAttr& i (p.next_attribute ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ if (n.name () == "value" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< value_type > r (
+ value_traits::create (i, f, this));
+
+ this->value_.set (r);
+ continue;
+ }
+
+ if (n.name () == "inclusive" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< inclusive_type > r (
+ inclusive_traits::create (i, f, this));
+
+ this->inclusive_.set (r);
+ continue;
+ }
+ }
+
+ if (!value_.present ())
+ {
+ throw ::xsd::cxx::tree::expected_attribute< char > (
+ "value",
+ "");
+ }
+
+ if (!inclusive_.present ())
+ {
+ this->inclusive_.set (inclusive_default_value ());
+ }
+ }
+
+ MAX* MAX::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class MAX (*this, f, c);
+ }
+
+ MAX::
+ ~MAX ()
+ {
+ }
+
+ // OPTION
+ //
+
+ OPTION::
+ OPTION (const value_type& value)
+ : ::xml_schema::type (),
+ OPTION1_ (::xml_schema::flags (), this),
+ name_ (::xml_schema::flags (), this),
+ value_ (value, ::xml_schema::flags (), this)
+ {
+ }
+
+ OPTION::
+ OPTION (const OPTION& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (x, f, c),
+ OPTION1_ (x.OPTION1_, f, this),
+ name_ (x.name_, f, this),
+ value_ (x.value_, f, this)
+ {
+ }
+
+ OPTION::
+ OPTION (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
+ OPTION1_ (f, this),
+ name_ (f, this),
+ value_ (f, this)
+ {
+ if ((f & ::xml_schema::flags::base) == 0)
+ {
+ ::xsd::cxx::xml::dom::parser< char > p (e, true, true);
+ this->parse (p, f);
+ }
+ }
+
+ void OPTION::
+ parse (::xsd::cxx::xml::dom::parser< char >& p,
+ ::xml_schema::flags f)
+ {
+ for (; p.more_elements (); p.next_element ())
+ {
+ const ::xercesc::DOMElement& i (p.cur_element ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ // OPTION
+ //
+ if (n.name () == "OPTION" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< OPTION1_type > r (
+ OPTION1_traits::create (i, f, this));
+
+ this->OPTION1_.push_back (r);
+ continue;
+ }
+
+ break;
+ }
+
+ while (p.more_attributes ())
+ {
+ const ::xercesc::DOMAttr& i (p.next_attribute ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ if (n.name () == "name" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< name_type > r (
+ name_traits::create (i, f, this));
+
+ this->name_.set (r);
+ continue;
+ }
+
+ if (n.name () == "value" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< value_type > r (
+ value_traits::create (i, f, this));
+
+ this->value_.set (r);
+ continue;
+ }
+ }
+
+ if (!value_.present ())
+ {
+ throw ::xsd::cxx::tree::expected_attribute< char > (
+ "value",
+ "");
+ }
+ }
+
+ OPTION* OPTION::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class OPTION (*this, f, c);
+ }
+
+ OPTION::
+ ~OPTION ()
+ {
+ }
+
+ // VALUES
+ //
+
+ const VALUES::type_type VALUES::type_default_value_ (
+ "legal");
+
+ VALUES::
+ VALUES ()
+ : ::xml_schema::type (),
+ MIN_ (::xml_schema::flags (), this),
+ MAX_ (::xml_schema::flags (), this),
+ OPTION_ (::xml_schema::flags (), this),
+ ID_ (::xml_schema::flags (), this),
+ type_ (type_default_value (), ::xml_schema::flags (), this),
+ null_ (::xml_schema::flags (), this),
+ ref_ (::xml_schema::flags (), this)
+ {
+ }
+
+ VALUES::
+ VALUES (const VALUES& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (x, f, c),
+ MIN_ (x.MIN_, f, this),
+ MAX_ (x.MAX_, f, this),
+ OPTION_ (x.OPTION_, f, this),
+ ID_ (x.ID_, f, this),
+ type_ (x.type_, f, this),
+ null_ (x.null_, f, this),
+ ref_ (x.ref_, f, this)
+ {
+ }
+
+ VALUES::
+ VALUES (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
+ MIN_ (f, this),
+ MAX_ (f, this),
+ OPTION_ (f, this),
+ ID_ (f, this),
+ type_ (f, this),
+ null_ (f, this),
+ ref_ (f, this)
+ {
+ if ((f & ::xml_schema::flags::base) == 0)
+ {
+ ::xsd::cxx::xml::dom::parser< char > p (e, true, true);
+ this->parse (p, f);
+ }
+ }
+
+ void VALUES::
+ parse (::xsd::cxx::xml::dom::parser< char >& p,
+ ::xml_schema::flags f)
+ {
+ for (; p.more_elements (); p.next_element ())
+ {
+ const ::xercesc::DOMElement& i (p.cur_element ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ // MIN
+ //
+ if (n.name () == "MIN" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< MIN_type > r (
+ MIN_traits::create (i, f, this));
+
+ if (!this->MIN_)
+ {
+ this->MIN_.set (r);
+ continue;
+ }
+ }
+
+ // MAX
+ //
+ if (n.name () == "MAX" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< MAX_type > r (
+ MAX_traits::create (i, f, this));
+
+ if (!this->MAX_)
+ {
+ this->MAX_.set (r);
+ continue;
+ }
+ }
+
+ // OPTION
+ //
+ if (n.name () == "OPTION" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< OPTION_type > r (
+ OPTION_traits::create (i, f, this));
+
+ this->OPTION_.push_back (r);
+ continue;
+ }
+
+ break;
+ }
+
+ while (p.more_attributes ())
+ {
+ const ::xercesc::DOMAttr& i (p.next_attribute ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ if (n.name () == "ID" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< ID_type > r (
+ ID_traits::create (i, f, this));
+
+ this->ID_.set (r);
+ continue;
+ }
+
+ if (n.name () == "type" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< type_type > r (
+ type_traits::create (i, f, this));
+
+ this->type_.set (r);
+ continue;
+ }
+
+ if (n.name () == "null" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< null_type > r (
+ null_traits::create (i, f, this));
+
+ this->null_.set (r);
+ continue;
+ }
+
+ if (n.name () == "ref" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< ref_type > r (
+ ref_traits::create (i, f, this));
+
+ this->ref_.set (r);
+ continue;
+ }
+ }
+
+ if (!type_.present ())
+ {
+ this->type_.set (type_default_value ());
+ }
+ }
+
+ VALUES* VALUES::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class VALUES (*this, f, c);
+ }
+
+ VALUES::
+ ~VALUES ()
+ {
+ }
+
+ // LINK
+ //
+
+ LINK::
+ LINK ()
+ : ::xml_schema::type (),
+ ID_ (::xml_schema::flags (), this),
+ content_role_ (::xml_schema::flags (), this),
+ content_type_ (::xml_schema::flags (), this),
+ title_ (::xml_schema::flags (), this),
+ value_ (::xml_schema::flags (), this),
+ href_ (::xml_schema::flags (), this),
+ gref_ (::xml_schema::flags (), this),
+ action_ (::xml_schema::flags (), this)
+ {
+ }
+
+ LINK::
+ LINK (const LINK& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (x, f, c),
+ ID_ (x.ID_, f, this),
+ content_role_ (x.content_role_, f, this),
+ content_type_ (x.content_type_, f, this),
+ title_ (x.title_, f, this),
+ value_ (x.value_, f, this),
+ href_ (x.href_, f, this),
+ gref_ (x.gref_, f, this),
+ action_ (x.action_, f, this)
+ {
+ }
+
+ LINK::
+ LINK (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
+ ID_ (f, this),
+ content_role_ (f, this),
+ content_type_ (f, this),
+ title_ (f, this),
+ value_ (f, this),
+ href_ (f, this),
+ gref_ (f, this),
+ action_ (f, this)
+ {
+ if ((f & ::xml_schema::flags::base) == 0)
+ {
+ ::xsd::cxx::xml::dom::parser< char > p (e, false, true);
+ this->parse (p, f);
+ }
+ }
+
+ void LINK::
+ parse (::xsd::cxx::xml::dom::parser< char >& p,
+ ::xml_schema::flags f)
+ {
+ while (p.more_attributes ())
+ {
+ const ::xercesc::DOMAttr& i (p.next_attribute ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ if (n.name () == "ID" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< ID_type > r (
+ ID_traits::create (i, f, this));
+
+ this->ID_.set (r);
+ continue;
+ }
+
+ if (n.name () == "content-role" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< content_role_type > r (
+ content_role_traits::create (i, f, this));
+
+ this->content_role_.set (r);
+ continue;
+ }
+
+ if (n.name () == "content-type" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< content_type_type > r (
+ content_type_traits::create (i, f, this));
+
+ this->content_type_.set (r);
+ continue;
+ }
+
+ if (n.name () == "title" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< title_type > r (
+ title_traits::create (i, f, this));
+
+ this->title_.set (r);
+ continue;
+ }
+
+ if (n.name () == "value" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< value_type > r (
+ value_traits::create (i, f, this));
+
+ this->value_.set (r);
+ continue;
+ }
+
+ if (n.name () == "href" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< href_type > r (
+ href_traits::create (i, f, this));
+
+ this->href_.set (r);
+ continue;
+ }
+
+ if (n.name () == "gref" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< gref_type > r (
+ gref_traits::create (i, f, this));
+
+ this->gref_.set (r);
+ continue;
+ }
+
+ if (n.name () == "action" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< action_type > r (
+ action_traits::create (i, f, this));
+
+ this->action_.set (r);
+ continue;
+ }
+ }
+ }
+
+ LINK* LINK::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class LINK (*this, f, c);
+ }
+
+ LINK::
+ ~LINK ()
+ {
+ }
+
+ // INFO
+ //
+
+ INFO::
+ INFO (const name_type& name,
+ const value_type& value)
+ : ::xml_schema::string (),
+ ID_ (::xml_schema::flags (), this),
+ name_ (name, ::xml_schema::flags (), this),
+ value_ (value, ::xml_schema::flags (), this),
+ unit_ (::xml_schema::flags (), this),
+ xtype_ (::xml_schema::flags (), this),
+ ref_ (::xml_schema::flags (), this),
+ ucd_ (::xml_schema::flags (), this),
+ utype_ (::xml_schema::flags (), this)
+ {
+ }
+
+ INFO::
+ INFO (const char* _xsd_string_base,
+ const name_type& name,
+ const value_type& value)
+ : ::xml_schema::string (_xsd_string_base),
+ ID_ (::xml_schema::flags (), this),
+ name_ (name, ::xml_schema::flags (), this),
+ value_ (value, ::xml_schema::flags (), this),
+ unit_ (::xml_schema::flags (), this),
+ xtype_ (::xml_schema::flags (), this),
+ ref_ (::xml_schema::flags (), this),
+ ucd_ (::xml_schema::flags (), this),
+ utype_ (::xml_schema::flags (), this)
+ {
+ }
+
+ INFO::
+ INFO (const ::std::string& _xsd_string_base,
+ const name_type& name,
+ const value_type& value)
+ : ::xml_schema::string (_xsd_string_base),
+ ID_ (::xml_schema::flags (), this),
+ name_ (name, ::xml_schema::flags (), this),
+ value_ (value, ::xml_schema::flags (), this),
+ unit_ (::xml_schema::flags (), this),
+ xtype_ (::xml_schema::flags (), this),
+ ref_ (::xml_schema::flags (), this),
+ ucd_ (::xml_schema::flags (), this),
+ utype_ (::xml_schema::flags (), this)
+ {
+ }
+
+ INFO::
+ INFO (const ::xml_schema::string& _xsd_string_base,
+ const name_type& name,
+ const value_type& value)
+ : ::xml_schema::string (_xsd_string_base),
+ ID_ (::xml_schema::flags (), this),
+ name_ (name, ::xml_schema::flags (), this),
+ value_ (value, ::xml_schema::flags (), this),
+ unit_ (::xml_schema::flags (), this),
+ xtype_ (::xml_schema::flags (), this),
+ ref_ (::xml_schema::flags (), this),
+ ucd_ (::xml_schema::flags (), this),
+ utype_ (::xml_schema::flags (), this)
+ {
+ }
+
+ INFO::
+ INFO (const INFO& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::string (x, f, c),
+ ID_ (x.ID_, f, this),
+ name_ (x.name_, f, this),
+ value_ (x.value_, f, this),
+ unit_ (x.unit_, f, this),
+ xtype_ (x.xtype_, f, this),
+ ref_ (x.ref_, f, this),
+ ucd_ (x.ucd_, f, this),
+ utype_ (x.utype_, f, this)
+ {
+ }
+
+ INFO::
+ INFO (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::string (e, f | ::xml_schema::flags::base, c),
+ ID_ (f, this),
+ name_ (f, this),
+ value_ (f, this),
+ unit_ (f, this),
+ xtype_ (f, this),
+ ref_ (f, this),
+ ucd_ (f, this),
+ utype_ (f, this)
+ {
+ if ((f & ::xml_schema::flags::base) == 0)
+ {
+ ::xsd::cxx::xml::dom::parser< char > p (e, false, true);
+ this->parse (p, f);
+ }
+ }
+
+ void INFO::
+ parse (::xsd::cxx::xml::dom::parser< char >& p,
+ ::xml_schema::flags f)
+ {
+ while (p.more_attributes ())
+ {
+ const ::xercesc::DOMAttr& i (p.next_attribute ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ if (n.name () == "ID" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< ID_type > r (
+ ID_traits::create (i, f, this));
+
+ this->ID_.set (r);
+ continue;
+ }
+
+ if (n.name () == "name" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< name_type > r (
+ name_traits::create (i, f, this));
+
+ this->name_.set (r);
+ continue;
+ }
+
+ if (n.name () == "value" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< value_type > r (
+ value_traits::create (i, f, this));
+
+ this->value_.set (r);
+ continue;
+ }
+
+ if (n.name () == "unit" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< unit_type > r (
+ unit_traits::create (i, f, this));
+
+ this->unit_.set (r);
+ continue;
+ }
+
+ if (n.name () == "xtype" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< xtype_type > r (
+ xtype_traits::create (i, f, this));
+
+ this->xtype_.set (r);
+ continue;
+ }
+
+ if (n.name () == "ref" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< ref_type > r (
+ ref_traits::create (i, f, this));
+
+ this->ref_.set (r);
+ continue;
+ }
+
+ if (n.name () == "ucd" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< ucd_type > r (
+ ucd_traits::create (i, f, this));
+
+ this->ucd_.set (r);
+ continue;
+ }
+
+ if (n.name () == "utype" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< utype_type > r (
+ utype_traits::create (i, f, this));
+
+ this->utype_.set (r);
+ continue;
+ }
+ }
+
+ if (!name_.present ())
+ {
+ throw ::xsd::cxx::tree::expected_attribute< char > (
+ "name",
+ "");
+ }
+
+ if (!value_.present ())
+ {
+ throw ::xsd::cxx::tree::expected_attribute< char > (
+ "value",
+ "");
+ }
+ }
+
+ INFO* INFO::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class INFO (*this, f, c);
+ }
+
+ INFO::
+ ~INFO ()
+ {
+ }
+
+ // COOSYS
+ //
+
+ const COOSYS::system_type COOSYS::system_default_value_ (
+ "eq_FK5");
+
+ COOSYS::
+ COOSYS (const ID_type& ID)
+ : ::xml_schema::string (),
+ ID_ (ID, ::xml_schema::flags (), this),
+ equinox_ (::xml_schema::flags (), this),
+ epoch_ (::xml_schema::flags (), this),
+ system_ (system_default_value (), ::xml_schema::flags (), this)
+ {
+ }
+
+ COOSYS::
+ COOSYS (const char* _xsd_string_base,
+ const ID_type& ID)
+ : ::xml_schema::string (_xsd_string_base),
+ ID_ (ID, ::xml_schema::flags (), this),
+ equinox_ (::xml_schema::flags (), this),
+ epoch_ (::xml_schema::flags (), this),
+ system_ (system_default_value (), ::xml_schema::flags (), this)
+ {
+ }
+
+ COOSYS::
+ COOSYS (const ::std::string& _xsd_string_base,
+ const ID_type& ID)
+ : ::xml_schema::string (_xsd_string_base),
+ ID_ (ID, ::xml_schema::flags (), this),
+ equinox_ (::xml_schema::flags (), this),
+ epoch_ (::xml_schema::flags (), this),
+ system_ (system_default_value (), ::xml_schema::flags (), this)
+ {
+ }
+
+ COOSYS::
+ COOSYS (const ::xml_schema::string& _xsd_string_base,
+ const ID_type& ID)
+ : ::xml_schema::string (_xsd_string_base),
+ ID_ (ID, ::xml_schema::flags (), this),
+ equinox_ (::xml_schema::flags (), this),
+ epoch_ (::xml_schema::flags (), this),
+ system_ (system_default_value (), ::xml_schema::flags (), this)
+ {
+ }
+
+ COOSYS::
+ COOSYS (const COOSYS& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::string (x, f, c),
+ ID_ (x.ID_, f, this),
+ equinox_ (x.equinox_, f, this),
+ epoch_ (x.epoch_, f, this),
+ system_ (x.system_, f, this)
+ {
+ }
+
+ COOSYS::
+ COOSYS (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::string (e, f | ::xml_schema::flags::base, c),
+ ID_ (f, this),
+ equinox_ (f, this),
+ epoch_ (f, this),
+ system_ (f, this)
+ {
+ if ((f & ::xml_schema::flags::base) == 0)
+ {
+ ::xsd::cxx::xml::dom::parser< char > p (e, false, true);
+ this->parse (p, f);
+ }
+ }
+
+ void COOSYS::
+ parse (::xsd::cxx::xml::dom::parser< char >& p,
+ ::xml_schema::flags f)
+ {
+ while (p.more_attributes ())
+ {
+ const ::xercesc::DOMAttr& i (p.next_attribute ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ if (n.name () == "ID" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< ID_type > r (
+ ID_traits::create (i, f, this));
+
+ this->ID_.set (r);
+ continue;
+ }
+
+ if (n.name () == "equinox" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< equinox_type > r (
+ equinox_traits::create (i, f, this));
+
+ this->equinox_.set (r);
+ continue;
+ }
+
+ if (n.name () == "epoch" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< epoch_type > r (
+ epoch_traits::create (i, f, this));
+
+ this->epoch_.set (r);
+ continue;
+ }
+
+ if (n.name () == "system" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< system_type > r (
+ system_traits::create (i, f, this));
+
+ this->system_.set (r);
+ continue;
+ }
+ }
+
+ if (!ID_.present ())
+ {
+ throw ::xsd::cxx::tree::expected_attribute< char > (
+ "ID",
+ "");
+ }
+
+ if (!system_.present ())
+ {
+ this->system_.set (system_default_value ());
+ }
+ }
+
+ COOSYS* COOSYS::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class COOSYS (*this, f, c);
+ }
+
+ COOSYS::
+ ~COOSYS ()
+ {
+ }
+
+ // DEFINITIONS
+ //
+
+ DEFINITIONS::
+ DEFINITIONS ()
+ : ::xml_schema::type (),
+ COOSYS_ (::xml_schema::flags (), this),
+ PARAM_ (::xml_schema::flags (), this)
+ {
+ }
+
+ DEFINITIONS::
+ DEFINITIONS (const DEFINITIONS& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (x, f, c),
+ COOSYS_ (x.COOSYS_, f, this),
+ PARAM_ (x.PARAM_, f, this)
+ {
+ }
+
+ DEFINITIONS::
+ DEFINITIONS (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
+ COOSYS_ (f, this),
+ PARAM_ (f, this)
+ {
+ if ((f & ::xml_schema::flags::base) == 0)
+ {
+ ::xsd::cxx::xml::dom::parser< char > p (e, true, false);
+ this->parse (p, f);
+ }
+ }
+
+ void DEFINITIONS::
+ parse (::xsd::cxx::xml::dom::parser< char >& p,
+ ::xml_schema::flags f)
+ {
+ for (; p.more_elements (); p.next_element ())
+ {
+ const ::xercesc::DOMElement& i (p.cur_element ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ // COOSYS
+ //
+ if (n.name () == "COOSYS" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< COOSYS_type > r (
+ COOSYS_traits::create (i, f, this));
+
+ this->COOSYS_.push_back (r);
+ continue;
+ }
+
+ // PARAM
+ //
+ if (n.name () == "PARAM" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< PARAM_type > r (
+ PARAM_traits::create (i, f, this));
+
+ this->PARAM_.push_back (r);
+ continue;
+ }
+
+ break;
+ }
+ }
+
+ DEFINITIONS* DEFINITIONS::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class DEFINITIONS (*this, f, c);
+ }
+
+ DEFINITIONS::
+ ~DEFINITIONS ()
+ {
+ }
+
+ // FIELD
+ //
+
+ FIELD::
+ FIELD ()
+ : ::xml_schema::type (),
+ DESCRIPTION_ (::xml_schema::flags (), this),
+ VALUES_ (::xml_schema::flags (), this),
+ LINK_ (::xml_schema::flags (), this),
+ ID_ (::xml_schema::flags (), this),
+ unit_ (::xml_schema::flags (), this),
+ datatype_ (::xml_schema::flags (), this),
+ precision_ (::xml_schema::flags (), this),
+ width_ (::xml_schema::flags (), this),
+ xtype_ (::xml_schema::flags (), this),
+ ref_ (::xml_schema::flags (), this),
+ name_ (::xml_schema::flags (), this),
+ ucd_ (::xml_schema::flags (), this),
+ utype_ (::xml_schema::flags (), this),
+ arraysize_ (::xml_schema::flags (), this),
+ type_ (::xml_schema::flags (), this)
+ {
+ }
+
+ FIELD::
+ FIELD (const FIELD& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (x, f, c),
+ DESCRIPTION_ (x.DESCRIPTION_, f, this),
+ VALUES_ (x.VALUES_, f, this),
+ LINK_ (x.LINK_, f, this),
+ ID_ (x.ID_, f, this),
+ unit_ (x.unit_, f, this),
+ datatype_ (x.datatype_, f, this),
+ precision_ (x.precision_, f, this),
+ width_ (x.width_, f, this),
+ xtype_ (x.xtype_, f, this),
+ ref_ (x.ref_, f, this),
+ name_ (x.name_, f, this),
+ ucd_ (x.ucd_, f, this),
+ utype_ (x.utype_, f, this),
+ arraysize_ (x.arraysize_, f, this),
+ type_ (x.type_, f, this)
+ {
+ }
+
+ FIELD::
+ FIELD (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
+ DESCRIPTION_ (f, this),
+ VALUES_ (f, this),
+ LINK_ (f, this),
+ ID_ (f, this),
+ unit_ (f, this),
+ datatype_ (f, this),
+ precision_ (f, this),
+ width_ (f, this),
+ xtype_ (f, this),
+ ref_ (f, this),
+ name_ (f, this),
+ ucd_ (f, this),
+ utype_ (f, this),
+ arraysize_ (f, this),
+ type_ (f, this)
+ {
+ if ((f & ::xml_schema::flags::base) == 0)
+ {
+ ::xsd::cxx::xml::dom::parser< char > p (e, true, true);
+ this->parse (p, f);
+ }
+ }
+
+ void FIELD::
+ parse (::xsd::cxx::xml::dom::parser< char >& p,
+ ::xml_schema::flags f)
+ {
+ for (; p.more_elements (); p.next_element ())
+ {
+ const ::xercesc::DOMElement& i (p.cur_element ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ // DESCRIPTION
+ //
+ if (n.name () == "DESCRIPTION" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< DESCRIPTION_type > r (
+ DESCRIPTION_traits::create (i, f, this));
+
+ if (!this->DESCRIPTION_)
+ {
+ this->DESCRIPTION_.set (r);
+ continue;
+ }
+ }
+
+ // VALUES
+ //
+ if (n.name () == "VALUES" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< VALUES_type > r (
+ VALUES_traits::create (i, f, this));
+
+ if (!this->VALUES_)
+ {
+ this->VALUES_.set (r);
+ continue;
+ }
+ }
+
+ // LINK
+ //
+ if (n.name () == "LINK" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< LINK_type > r (
+ LINK_traits::create (i, f, this));
+
+ this->LINK_.push_back (r);
+ continue;
+ }
+
+ break;
+ }
+
+ while (p.more_attributes ())
+ {
+ const ::xercesc::DOMAttr& i (p.next_attribute ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ if (n.name () == "ID" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< ID_type > r (
+ ID_traits::create (i, f, this));
+
+ this->ID_.set (r);
+ continue;
+ }
+
+ if (n.name () == "unit" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< unit_type > r (
+ unit_traits::create (i, f, this));
+
+ this->unit_.set (r);
+ continue;
+ }
+
+ if (n.name () == "datatype" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< datatype_type > r (
+ datatype_traits::create (i, f, this));
+
+ this->datatype_.set (r);
+ continue;
+ }
+
+ if (n.name () == "precision" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< precision_type > r (
+ precision_traits::create (i, f, this));
+
+ this->precision_.set (r);
+ continue;
+ }
+
+ if (n.name () == "width" && n.namespace_ ().empty ())
+ {
+ this->width_.set (width_traits::create (i, f, this));
+ continue;
+ }
+
+ if (n.name () == "xtype" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< xtype_type > r (
+ xtype_traits::create (i, f, this));
+
+ this->xtype_.set (r);
+ continue;
+ }
+
+ if (n.name () == "ref" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< ref_type > r (
+ ref_traits::create (i, f, this));
+
+ this->ref_.set (r);
+ continue;
+ }
+
+ if (n.name () == "name" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< name_type > r (
+ name_traits::create (i, f, this));
+
+ this->name_.set (r);
+ continue;
+ }
+
+ if (n.name () == "ucd" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< ucd_type > r (
+ ucd_traits::create (i, f, this));
+
+ this->ucd_.set (r);
+ continue;
+ }
+
+ if (n.name () == "utype" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< utype_type > r (
+ utype_traits::create (i, f, this));
+
+ this->utype_.set (r);
+ continue;
+ }
+
+ if (n.name () == "arraysize" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< arraysize_type > r (
+ arraysize_traits::create (i, f, this));
+
+ this->arraysize_.set (r);
+ continue;
+ }
+
+ if (n.name () == "type" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< type_type > r (
+ type_traits::create (i, f, this));
+
+ this->type_.set (r);
+ continue;
+ }
+ }
+ }
+
+ FIELD* FIELD::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class FIELD (*this, f, c);
+ }
+
+ FIELD::
+ ~FIELD ()
+ {
+ }
+
+ // PARAM
+ //
+
+ PARAM::
+ PARAM ()
+ : ::votable_13::FIELD (),
+ value_ (::xml_schema::flags (), this)
+ {
+ }
+
+ PARAM::
+ PARAM (const PARAM& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::votable_13::FIELD (x, f, c),
+ value_ (x.value_, f, this)
+ {
+ }
+
+ PARAM::
+ PARAM (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::votable_13::FIELD (e, f | ::xml_schema::flags::base, c),
+ value_ (f, this)
+ {
+ if ((f & ::xml_schema::flags::base) == 0)
+ {
+ ::xsd::cxx::xml::dom::parser< char > p (e, true, true);
+ this->parse (p, f);
+ }
+ }
+
+ void PARAM::
+ parse (::xsd::cxx::xml::dom::parser< char >& p,
+ ::xml_schema::flags f)
+ {
+ this->::votable_13::FIELD::parse (p, f);
+
+ p.reset_attributes ();
+
+ while (p.more_attributes ())
+ {
+ const ::xercesc::DOMAttr& i (p.next_attribute ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ if (n.name () == "value" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< value_type > r (
+ value_traits::create (i, f, this));
+
+ this->value_.set (r);
+ continue;
+ }
+ }
+ }
+
+ PARAM* PARAM::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class PARAM (*this, f, c);
+ }
+
+ PARAM::
+ ~PARAM ()
+ {
+ }
+
+ // GROUP
+ //
+
+ GROUP::
+ GROUP ()
+ : ::xml_schema::type (),
+ DESCRIPTION_ (::xml_schema::flags (), this),
+ FIELDref_ (::xml_schema::flags (), this),
+ PARAMref_ (::xml_schema::flags (), this),
+ PARAM_ (::xml_schema::flags (), this),
+ GROUP1_ (::xml_schema::flags (), this),
+ ID_ (::xml_schema::flags (), this),
+ name_ (::xml_schema::flags (), this),
+ ref_ (::xml_schema::flags (), this),
+ ucd_ (::xml_schema::flags (), this),
+ utype_ (::xml_schema::flags (), this)
+ {
+ }
+
+ GROUP::
+ GROUP (const GROUP& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (x, f, c),
+ DESCRIPTION_ (x.DESCRIPTION_, f, this),
+ FIELDref_ (x.FIELDref_, f, this),
+ PARAMref_ (x.PARAMref_, f, this),
+ PARAM_ (x.PARAM_, f, this),
+ GROUP1_ (x.GROUP1_, f, this),
+ ID_ (x.ID_, f, this),
+ name_ (x.name_, f, this),
+ ref_ (x.ref_, f, this),
+ ucd_ (x.ucd_, f, this),
+ utype_ (x.utype_, f, this)
+ {
+ }
+
+ GROUP::
+ GROUP (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
+ DESCRIPTION_ (f, this),
+ FIELDref_ (f, this),
+ PARAMref_ (f, this),
+ PARAM_ (f, this),
+ GROUP1_ (f, this),
+ ID_ (f, this),
+ name_ (f, this),
+ ref_ (f, this),
+ ucd_ (f, this),
+ utype_ (f, this)
+ {
+ if ((f & ::xml_schema::flags::base) == 0)
+ {
+ ::xsd::cxx::xml::dom::parser< char > p (e, true, true);
+ this->parse (p, f);
+ }
+ }
+
+ void GROUP::
+ parse (::xsd::cxx::xml::dom::parser< char >& p,
+ ::xml_schema::flags f)
+ {
+ for (; p.more_elements (); p.next_element ())
+ {
+ const ::xercesc::DOMElement& i (p.cur_element ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ // DESCRIPTION
+ //
+ if (n.name () == "DESCRIPTION" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< DESCRIPTION_type > r (
+ DESCRIPTION_traits::create (i, f, this));
+
+ if (!this->DESCRIPTION_)
+ {
+ this->DESCRIPTION_.set (r);
+ continue;
+ }
+ }
+
+ // FIELDref
+ //
+ if (n.name () == "FIELDref" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< FIELDref_type > r (
+ FIELDref_traits::create (i, f, this));
+
+ this->FIELDref_.push_back (r);
+ continue;
+ }
+
+ // PARAMref
+ //
+ if (n.name () == "PARAMref" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< PARAMref_type > r (
+ PARAMref_traits::create (i, f, this));
+
+ this->PARAMref_.push_back (r);
+ continue;
+ }
+
+ // PARAM
+ //
+ if (n.name () == "PARAM" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< PARAM_type > r (
+ PARAM_traits::create (i, f, this));
+
+ this->PARAM_.push_back (r);
+ continue;
+ }
+
+ // GROUP
+ //
+ if (n.name () == "GROUP" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< GROUP1_type > r (
+ GROUP1_traits::create (i, f, this));
+
+ this->GROUP1_.push_back (r);
+ continue;
+ }
+
+ break;
+ }
+
+ while (p.more_attributes ())
+ {
+ const ::xercesc::DOMAttr& i (p.next_attribute ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ if (n.name () == "ID" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< ID_type > r (
+ ID_traits::create (i, f, this));
+
+ this->ID_.set (r);
+ continue;
+ }
+
+ if (n.name () == "name" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< name_type > r (
+ name_traits::create (i, f, this));
+
+ this->name_.set (r);
+ continue;
+ }
+
+ if (n.name () == "ref" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< ref_type > r (
+ ref_traits::create (i, f, this));
+
+ this->ref_.set (r);
+ continue;
+ }
+
+ if (n.name () == "ucd" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< ucd_type > r (
+ ucd_traits::create (i, f, this));
+
+ this->ucd_.set (r);
+ continue;
+ }
+
+ if (n.name () == "utype" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< utype_type > r (
+ utype_traits::create (i, f, this));
+
+ this->utype_.set (r);
+ continue;
+ }
+ }
+ }
+
+ GROUP* GROUP::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class GROUP (*this, f, c);
+ }
+
+ GROUP::
+ ~GROUP ()
+ {
+ }
+
+ // FIELDref
+ //
+
+ FIELDref::
+ FIELDref (const ref_type& ref)
+ : ::xml_schema::type (),
+ ref_ (ref, ::xml_schema::flags (), this),
+ ucd_ (::xml_schema::flags (), this),
+ utype_ (::xml_schema::flags (), this)
+ {
+ }
+
+ FIELDref::
+ FIELDref (const FIELDref& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (x, f, c),
+ ref_ (x.ref_, f, this),
+ ucd_ (x.ucd_, f, this),
+ utype_ (x.utype_, f, this)
+ {
+ }
+
+ FIELDref::
+ FIELDref (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
+ ref_ (f, this),
+ ucd_ (f, this),
+ utype_ (f, this)
+ {
+ if ((f & ::xml_schema::flags::base) == 0)
+ {
+ ::xsd::cxx::xml::dom::parser< char > p (e, false, true);
+ this->parse (p, f);
+ }
+ }
+
+ void FIELDref::
+ parse (::xsd::cxx::xml::dom::parser< char >& p,
+ ::xml_schema::flags f)
+ {
+ while (p.more_attributes ())
+ {
+ const ::xercesc::DOMAttr& i (p.next_attribute ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ if (n.name () == "ref" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< ref_type > r (
+ ref_traits::create (i, f, this));
+
+ this->ref_.set (r);
+ continue;
+ }
+
+ if (n.name () == "ucd" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< ucd_type > r (
+ ucd_traits::create (i, f, this));
+
+ this->ucd_.set (r);
+ continue;
+ }
+
+ if (n.name () == "utype" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< utype_type > r (
+ utype_traits::create (i, f, this));
+
+ this->utype_.set (r);
+ continue;
+ }
+ }
+
+ if (!ref_.present ())
+ {
+ throw ::xsd::cxx::tree::expected_attribute< char > (
+ "ref",
+ "");
+ }
+ }
+
+ FIELDref* FIELDref::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class FIELDref (*this, f, c);
+ }
+
+ FIELDref::
+ ~FIELDref ()
+ {
+ }
+
+ // PARAMref
+ //
+
+ PARAMref::
+ PARAMref (const ref_type& ref)
+ : ::xml_schema::type (),
+ ref_ (ref, ::xml_schema::flags (), this),
+ ucd_ (::xml_schema::flags (), this),
+ utype_ (::xml_schema::flags (), this)
+ {
+ }
+
+ PARAMref::
+ PARAMref (const PARAMref& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (x, f, c),
+ ref_ (x.ref_, f, this),
+ ucd_ (x.ucd_, f, this),
+ utype_ (x.utype_, f, this)
+ {
+ }
+
+ PARAMref::
+ PARAMref (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
+ ref_ (f, this),
+ ucd_ (f, this),
+ utype_ (f, this)
+ {
+ if ((f & ::xml_schema::flags::base) == 0)
+ {
+ ::xsd::cxx::xml::dom::parser< char > p (e, false, true);
+ this->parse (p, f);
+ }
+ }
+
+ void PARAMref::
+ parse (::xsd::cxx::xml::dom::parser< char >& p,
+ ::xml_schema::flags f)
+ {
+ while (p.more_attributes ())
+ {
+ const ::xercesc::DOMAttr& i (p.next_attribute ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ if (n.name () == "ref" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< ref_type > r (
+ ref_traits::create (i, f, this));
+
+ this->ref_.set (r);
+ continue;
+ }
+
+ if (n.name () == "ucd" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< ucd_type > r (
+ ucd_traits::create (i, f, this));
+
+ this->ucd_.set (r);
+ continue;
+ }
+
+ if (n.name () == "utype" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< utype_type > r (
+ utype_traits::create (i, f, this));
+
+ this->utype_.set (r);
+ continue;
+ }
+ }
+
+ if (!ref_.present ())
+ {
+ throw ::xsd::cxx::tree::expected_attribute< char > (
+ "ref",
+ "");
+ }
+ }
+
+ PARAMref* PARAMref::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class PARAMref (*this, f, c);
+ }
+
+ PARAMref::
+ ~PARAMref ()
+ {
+ }
+
+ // DATA
+ //
+
+ DATA::
+ DATA ()
+ : ::xml_schema::type (),
+ TABLEDATA_ (::xml_schema::flags (), this),
+ BINARY_ (::xml_schema::flags (), this),
+ FITS_ (::xml_schema::flags (), this),
+ INFO_ (::xml_schema::flags (), this)
+ {
+ }
+
+ DATA::
+ DATA (const DATA& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (x, f, c),
+ TABLEDATA_ (x.TABLEDATA_, f, this),
+ BINARY_ (x.BINARY_, f, this),
+ FITS_ (x.FITS_, f, this),
+ INFO_ (x.INFO_, f, this)
+ {
+ }
+
+ DATA::
+ DATA (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
+ TABLEDATA_ (f, this),
+ BINARY_ (f, this),
+ FITS_ (f, this),
+ INFO_ (f, this)
+ {
+ if ((f & ::xml_schema::flags::base) == 0)
+ {
+ ::xsd::cxx::xml::dom::parser< char > p (e, true, false);
+ this->parse (p, f);
+ }
+ }
+
+ void DATA::
+ parse (::xsd::cxx::xml::dom::parser< char >& p,
+ ::xml_schema::flags f)
+ {
+ for (; p.more_elements (); p.next_element ())
+ {
+ const ::xercesc::DOMElement& i (p.cur_element ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ // TABLEDATA
+ //
+ if (n.name () == "TABLEDATA" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< TABLEDATA_type > r (
+ TABLEDATA_traits::create (i, f, this));
+
+ if (!this->TABLEDATA_)
+ {
+ this->TABLEDATA_.set (r);
+ continue;
+ }
+ }
+
+ // BINARY
+ //
+ if (n.name () == "BINARY" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< BINARY_type > r (
+ BINARY_traits::create (i, f, this));
+
+ if (!this->BINARY_)
+ {
+ this->BINARY_.set (r);
+ continue;
+ }
+ }
+
+ // FITS
+ //
+ if (n.name () == "FITS" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< FITS_type > r (
+ FITS_traits::create (i, f, this));
+
+ if (!this->FITS_)
+ {
+ this->FITS_.set (r);
+ continue;
+ }
+ }
+
+ // INFO
+ //
+ if (n.name () == "INFO" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< INFO_type > r (
+ INFO_traits::create (i, f, this));
+
+ this->INFO_.push_back (r);
+ continue;
+ }
+
+ break;
+ }
+ }
+
+ DATA* DATA::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class DATA (*this, f, c);
+ }
+
+ DATA::
+ ~DATA ()
+ {
+ }
+
+ // TABLEDATA
+ //
+
+ TABLEDATA::
+ TABLEDATA ()
+ : ::xml_schema::type (),
+ TR_ (::xml_schema::flags (), this)
+ {
+ }
+
+ TABLEDATA::
+ TABLEDATA (const TABLEDATA& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (x, f, c),
+ TR_ (x.TR_, f, this)
+ {
+ }
+
+ TABLEDATA::
+ TABLEDATA (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
+ TR_ (f, this)
+ {
+ if ((f & ::xml_schema::flags::base) == 0)
+ {
+ ::xsd::cxx::xml::dom::parser< char > p (e, true, false);
+ this->parse (p, f);
+ }
+ }
+
+ void TABLEDATA::
+ parse (::xsd::cxx::xml::dom::parser< char >& p,
+ ::xml_schema::flags f)
+ {
+ for (; p.more_elements (); p.next_element ())
+ {
+ const ::xercesc::DOMElement& i (p.cur_element ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ // TR
+ //
+ if (n.name () == "TR" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< TR_type > r (
+ TR_traits::create (i, f, this));
+
+ this->TR_.push_back (r);
+ continue;
+ }
+
+ break;
+ }
+ }
+
+ TABLEDATA* TABLEDATA::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class TABLEDATA (*this, f, c);
+ }
+
+ TABLEDATA::
+ ~TABLEDATA ()
+ {
+ }
+
+ // TD
+ //
+
+ TD::
+ TD ()
+ : ::xml_schema::string (),
+ encoding_ (::xml_schema::flags (), this)
+ {
+ }
+
+ TD::
+ TD (const char* _xsd_string_base)
+ : ::xml_schema::string (_xsd_string_base),
+ encoding_ (::xml_schema::flags (), this)
+ {
+ }
+
+ TD::
+ TD (const ::std::string& _xsd_string_base)
+ : ::xml_schema::string (_xsd_string_base),
+ encoding_ (::xml_schema::flags (), this)
+ {
+ }
+
+ TD::
+ TD (const ::xml_schema::string& _xsd_string_base)
+ : ::xml_schema::string (_xsd_string_base),
+ encoding_ (::xml_schema::flags (), this)
+ {
+ }
+
+ TD::
+ TD (const TD& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::string (x, f, c),
+ encoding_ (x.encoding_, f, this)
+ {
+ }
+
+ TD::
+ TD (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::string (e, f | ::xml_schema::flags::base, c),
+ encoding_ (f, this)
+ {
+ if ((f & ::xml_schema::flags::base) == 0)
+ {
+ ::xsd::cxx::xml::dom::parser< char > p (e, false, true);
+ this->parse (p, f);
+ }
+ }
+
+ void TD::
+ parse (::xsd::cxx::xml::dom::parser< char >& p,
+ ::xml_schema::flags f)
+ {
+ while (p.more_attributes ())
+ {
+ const ::xercesc::DOMAttr& i (p.next_attribute ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ if (n.name () == "encoding" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< encoding_type > r (
+ encoding_traits::create (i, f, this));
+
+ this->encoding_.set (r);
+ continue;
+ }
+ }
+ }
+
+ TD* TD::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class TD (*this, f, c);
+ }
+
+ TD::
+ ~TD ()
+ {
+ }
+
+ // TR
+ //
+
+ TR::
+ TR ()
+ : ::xml_schema::type (),
+ TD_ (::xml_schema::flags (), this),
+ ID_ (::xml_schema::flags (), this)
+ {
+ }
+
+ TR::
+ TR (const TR& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (x, f, c),
+ TD_ (x.TD_, f, this),
+ ID_ (x.ID_, f, this)
+ {
+ }
+
+ TR::
+ TR (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
+ TD_ (f, this),
+ ID_ (f, this)
+ {
+ if ((f & ::xml_schema::flags::base) == 0)
+ {
+ ::xsd::cxx::xml::dom::parser< char > p (e, true, true);
+ this->parse (p, f);
+ }
+ }
+
+ void TR::
+ parse (::xsd::cxx::xml::dom::parser< char >& p,
+ ::xml_schema::flags f)
+ {
+ for (; p.more_elements (); p.next_element ())
+ {
+ const ::xercesc::DOMElement& i (p.cur_element ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ // TD
+ //
+ if (n.name () == "TD" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< TD_type > r (
+ TD_traits::create (i, f, this));
+
+ this->TD_.push_back (r);
+ continue;
+ }
+
+ break;
+ }
+
+ while (p.more_attributes ())
+ {
+ const ::xercesc::DOMAttr& i (p.next_attribute ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ if (n.name () == "ID" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< ID_type > r (
+ ID_traits::create (i, f, this));
+
+ this->ID_.set (r);
+ continue;
+ }
+ }
+ }
+
+ TR* TR::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class TR (*this, f, c);
+ }
+
+ TR::
+ ~TR ()
+ {
+ }
+
+ // FITS
+ //
+
+ FITS::
+ FITS (const STREAM_type& STREAM)
+ : ::xml_schema::type (),
+ STREAM_ (STREAM, ::xml_schema::flags (), this),
+ extnum_ (::xml_schema::flags (), this)
+ {
+ }
+
+ FITS::
+ FITS (::std::auto_ptr< STREAM_type >& STREAM)
+ : ::xml_schema::type (),
+ STREAM_ (STREAM, ::xml_schema::flags (), this),
+ extnum_ (::xml_schema::flags (), this)
+ {
+ }
+
+ FITS::
+ FITS (const FITS& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (x, f, c),
+ STREAM_ (x.STREAM_, f, this),
+ extnum_ (x.extnum_, f, this)
+ {
+ }
+
+ FITS::
+ FITS (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
+ STREAM_ (f, this),
+ extnum_ (f, this)
+ {
+ if ((f & ::xml_schema::flags::base) == 0)
+ {
+ ::xsd::cxx::xml::dom::parser< char > p (e, true, true);
+ this->parse (p, f);
+ }
+ }
+
+ void FITS::
+ parse (::xsd::cxx::xml::dom::parser< char >& p,
+ ::xml_schema::flags f)
+ {
+ for (; p.more_elements (); p.next_element ())
+ {
+ const ::xercesc::DOMElement& i (p.cur_element ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ // STREAM
+ //
+ if (n.name () == "STREAM" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< STREAM_type > r (
+ STREAM_traits::create (i, f, this));
+
+ if (!STREAM_.present ())
+ {
+ this->STREAM_.set (r);
+ continue;
+ }
+ }
+
+ break;
+ }
+
+ if (!STREAM_.present ())
+ {
+ throw ::xsd::cxx::tree::expected_element< char > (
+ "STREAM",
+ "http://www.ivoa.net/xml/VOTable/v1.3");
+ }
+
+ while (p.more_attributes ())
+ {
+ const ::xercesc::DOMAttr& i (p.next_attribute ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ if (n.name () == "extnum" && n.namespace_ ().empty ())
+ {
+ this->extnum_.set (extnum_traits::create (i, f, this));
+ continue;
+ }
+ }
+ }
+
+ FITS* FITS::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class FITS (*this, f, c);
+ }
+
+ FITS::
+ ~FITS ()
+ {
+ }
+
+ // BINARY
+ //
+
+ BINARY::
+ BINARY (const STREAM_type& STREAM)
+ : ::xml_schema::type (),
+ STREAM_ (STREAM, ::xml_schema::flags (), this)
+ {
+ }
+
+ BINARY::
+ BINARY (::std::auto_ptr< STREAM_type >& STREAM)
+ : ::xml_schema::type (),
+ STREAM_ (STREAM, ::xml_schema::flags (), this)
+ {
+ }
+
+ BINARY::
+ BINARY (const BINARY& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (x, f, c),
+ STREAM_ (x.STREAM_, f, this)
+ {
+ }
+
+ BINARY::
+ BINARY (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
+ STREAM_ (f, this)
+ {
+ if ((f & ::xml_schema::flags::base) == 0)
+ {
+ ::xsd::cxx::xml::dom::parser< char > p (e, true, false);
+ this->parse (p, f);
+ }
+ }
+
+ void BINARY::
+ parse (::xsd::cxx::xml::dom::parser< char >& p,
+ ::xml_schema::flags f)
+ {
+ for (; p.more_elements (); p.next_element ())
+ {
+ const ::xercesc::DOMElement& i (p.cur_element ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ // STREAM
+ //
+ if (n.name () == "STREAM" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< STREAM_type > r (
+ STREAM_traits::create (i, f, this));
+
+ if (!STREAM_.present ())
+ {
+ this->STREAM_.set (r);
+ continue;
+ }
+ }
+
+ break;
+ }
+
+ if (!STREAM_.present ())
+ {
+ throw ::xsd::cxx::tree::expected_element< char > (
+ "STREAM",
+ "http://www.ivoa.net/xml/VOTable/v1.3");
+ }
+ }
+
+ BINARY* BINARY::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class BINARY (*this, f, c);
+ }
+
+ BINARY::
+ ~BINARY ()
+ {
+ }
+
+ // STREAM
+ //
+
+ const STREAM::type_type STREAM::type_default_value_ (
+ "locator");
+
+ const STREAM::actuate_type STREAM::actuate_default_value_ (
+ "onRequest");
+
+ const STREAM::encoding_type STREAM::encoding_default_value_ (
+ "none");
+
+ STREAM::
+ STREAM ()
+ : ::xml_schema::string (),
+ type_ (type_default_value (), ::xml_schema::flags (), this),
+ href_ (::xml_schema::flags (), this),
+ actuate_ (actuate_default_value (), ::xml_schema::flags (), this),
+ encoding_ (encoding_default_value (), ::xml_schema::flags (), this),
+ expires_ (::xml_schema::flags (), this),
+ rights_ (::xml_schema::flags (), this)
+ {
+ }
+
+ STREAM::
+ STREAM (const char* _xsd_string_base)
+ : ::xml_schema::string (_xsd_string_base),
+ type_ (type_default_value (), ::xml_schema::flags (), this),
+ href_ (::xml_schema::flags (), this),
+ actuate_ (actuate_default_value (), ::xml_schema::flags (), this),
+ encoding_ (encoding_default_value (), ::xml_schema::flags (), this),
+ expires_ (::xml_schema::flags (), this),
+ rights_ (::xml_schema::flags (), this)
+ {
+ }
+
+ STREAM::
+ STREAM (const ::std::string& _xsd_string_base)
+ : ::xml_schema::string (_xsd_string_base),
+ type_ (type_default_value (), ::xml_schema::flags (), this),
+ href_ (::xml_schema::flags (), this),
+ actuate_ (actuate_default_value (), ::xml_schema::flags (), this),
+ encoding_ (encoding_default_value (), ::xml_schema::flags (), this),
+ expires_ (::xml_schema::flags (), this),
+ rights_ (::xml_schema::flags (), this)
+ {
+ }
+
+ STREAM::
+ STREAM (const ::xml_schema::string& _xsd_string_base)
+ : ::xml_schema::string (_xsd_string_base),
+ type_ (type_default_value (), ::xml_schema::flags (), this),
+ href_ (::xml_schema::flags (), this),
+ actuate_ (actuate_default_value (), ::xml_schema::flags (), this),
+ encoding_ (encoding_default_value (), ::xml_schema::flags (), this),
+ expires_ (::xml_schema::flags (), this),
+ rights_ (::xml_schema::flags (), this)
+ {
+ }
+
+ STREAM::
+ STREAM (const STREAM& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::string (x, f, c),
+ type_ (x.type_, f, this),
+ href_ (x.href_, f, this),
+ actuate_ (x.actuate_, f, this),
+ encoding_ (x.encoding_, f, this),
+ expires_ (x.expires_, f, this),
+ rights_ (x.rights_, f, this)
+ {
+ }
+
+ STREAM::
+ STREAM (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::string (e, f | ::xml_schema::flags::base, c),
+ type_ (f, this),
+ href_ (f, this),
+ actuate_ (f, this),
+ encoding_ (f, this),
+ expires_ (f, this),
+ rights_ (f, this)
+ {
+ if ((f & ::xml_schema::flags::base) == 0)
+ {
+ ::xsd::cxx::xml::dom::parser< char > p (e, false, true);
+ this->parse (p, f);
+ }
+ }
+
+ void STREAM::
+ parse (::xsd::cxx::xml::dom::parser< char >& p,
+ ::xml_schema::flags f)
+ {
+ while (p.more_attributes ())
+ {
+ const ::xercesc::DOMAttr& i (p.next_attribute ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ if (n.name () == "type" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< type_type > r (
+ type_traits::create (i, f, this));
+
+ this->type_.set (r);
+ continue;
+ }
+
+ if (n.name () == "href" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< href_type > r (
+ href_traits::create (i, f, this));
+
+ this->href_.set (r);
+ continue;
+ }
+
+ if (n.name () == "actuate" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< actuate_type > r (
+ actuate_traits::create (i, f, this));
+
+ this->actuate_.set (r);
+ continue;
+ }
+
+ if (n.name () == "encoding" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< encoding_type > r (
+ encoding_traits::create (i, f, this));
+
+ this->encoding_.set (r);
+ continue;
+ }
+
+ if (n.name () == "expires" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< expires_type > r (
+ expires_traits::create (i, f, this));
+
+ this->expires_.set (r);
+ continue;
+ }
+
+ if (n.name () == "rights" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< rights_type > r (
+ rights_traits::create (i, f, this));
+
+ this->rights_.set (r);
+ continue;
+ }
+ }
+
+ if (!type_.present ())
+ {
+ this->type_.set (type_default_value ());
+ }
+
+ if (!actuate_.present ())
+ {
+ this->actuate_.set (actuate_default_value ());
+ }
+
+ if (!encoding_.present ())
+ {
+ this->encoding_.set (encoding_default_value ());
+ }
+ }
+
+ STREAM* STREAM::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class STREAM (*this, f, c);
+ }
+
+ STREAM::
+ ~STREAM ()
+ {
+ }
+
+ // TABLE
+ //
+
+ TABLE::
+ TABLE ()
+ : ::xml_schema::type (),
+ DESCRIPTION_ (::xml_schema::flags (), this),
+ INFO_ (::xml_schema::flags (), this),
+ FIELD_ (::xml_schema::flags (), this),
+ PARAM_ (::xml_schema::flags (), this),
+ GROUP_ (::xml_schema::flags (), this),
+ LINK_ (::xml_schema::flags (), this),
+ DATA_ (::xml_schema::flags (), this),
+ ID_ (::xml_schema::flags (), this),
+ name_ (::xml_schema::flags (), this),
+ ref_ (::xml_schema::flags (), this),
+ ucd_ (::xml_schema::flags (), this),
+ utype_ (::xml_schema::flags (), this),
+ nrows_ (::xml_schema::flags (), this)
+ {
+ }
+
+ TABLE::
+ TABLE (const TABLE& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (x, f, c),
+ DESCRIPTION_ (x.DESCRIPTION_, f, this),
+ INFO_ (x.INFO_, f, this),
+ FIELD_ (x.FIELD_, f, this),
+ PARAM_ (x.PARAM_, f, this),
+ GROUP_ (x.GROUP_, f, this),
+ LINK_ (x.LINK_, f, this),
+ DATA_ (x.DATA_, f, this),
+ ID_ (x.ID_, f, this),
+ name_ (x.name_, f, this),
+ ref_ (x.ref_, f, this),
+ ucd_ (x.ucd_, f, this),
+ utype_ (x.utype_, f, this),
+ nrows_ (x.nrows_, f, this)
+ {
+ }
+
+ TABLE::
+ TABLE (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
+ DESCRIPTION_ (f, this),
+ INFO_ (f, this),
+ FIELD_ (f, this),
+ PARAM_ (f, this),
+ GROUP_ (f, this),
+ LINK_ (f, this),
+ DATA_ (f, this),
+ ID_ (f, this),
+ name_ (f, this),
+ ref_ (f, this),
+ ucd_ (f, this),
+ utype_ (f, this),
+ nrows_ (f, this)
+ {
+ if ((f & ::xml_schema::flags::base) == 0)
+ {
+ ::xsd::cxx::xml::dom::parser< char > p (e, true, true);
+ this->parse (p, f);
+ }
+ }
+
+ void TABLE::
+ parse (::xsd::cxx::xml::dom::parser< char >& p,
+ ::xml_schema::flags f)
+ {
+ for (; p.more_elements (); p.next_element ())
+ {
+ const ::xercesc::DOMElement& i (p.cur_element ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ // DESCRIPTION
+ //
+ if (n.name () == "DESCRIPTION" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< DESCRIPTION_type > r (
+ DESCRIPTION_traits::create (i, f, this));
+
+ if (!this->DESCRIPTION_)
+ {
+ this->DESCRIPTION_.set (r);
+ continue;
+ }
+ }
+
+ // INFO
+ //
+ if (n.name () == "INFO" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< INFO_type > r (
+ INFO_traits::create (i, f, this));
+
+ this->INFO_.push_back (r);
+ continue;
+ }
+
+ // FIELD
+ //
+ if (n.name () == "FIELD" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< FIELD_type > r (
+ FIELD_traits::create (i, f, this));
+
+ this->FIELD_.push_back (r);
+ continue;
+ }
+
+ // PARAM
+ //
+ if (n.name () == "PARAM" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< PARAM_type > r (
+ PARAM_traits::create (i, f, this));
+
+ this->PARAM_.push_back (r);
+ continue;
+ }
+
+ // GROUP
+ //
+ if (n.name () == "GROUP" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< GROUP_type > r (
+ GROUP_traits::create (i, f, this));
+
+ this->GROUP_.push_back (r);
+ continue;
+ }
+
+ // LINK
+ //
+ if (n.name () == "LINK" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< LINK_type > r (
+ LINK_traits::create (i, f, this));
+
+ this->LINK_.push_back (r);
+ continue;
+ }
+
+ // DATA
+ //
+ if (n.name () == "DATA" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< DATA_type > r (
+ DATA_traits::create (i, f, this));
+
+ if (!this->DATA_)
+ {
+ this->DATA_.set (r);
+ continue;
+ }
+ }
+
+ break;
+ }
+
+ while (p.more_attributes ())
+ {
+ const ::xercesc::DOMAttr& i (p.next_attribute ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ if (n.name () == "ID" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< ID_type > r (
+ ID_traits::create (i, f, this));
+
+ this->ID_.set (r);
+ continue;
+ }
+
+ if (n.name () == "name" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< name_type > r (
+ name_traits::create (i, f, this));
+
+ this->name_.set (r);
+ continue;
+ }
+
+ if (n.name () == "ref" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< ref_type > r (
+ ref_traits::create (i, f, this));
+
+ this->ref_.set (r);
+ continue;
+ }
+
+ if (n.name () == "ucd" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< ucd_type > r (
+ ucd_traits::create (i, f, this));
+
+ this->ucd_.set (r);
+ continue;
+ }
+
+ if (n.name () == "utype" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< utype_type > r (
+ utype_traits::create (i, f, this));
+
+ this->utype_.set (r);
+ continue;
+ }
+
+ if (n.name () == "nrows" && n.namespace_ ().empty ())
+ {
+ this->nrows_.set (nrows_traits::create (i, f, this));
+ continue;
+ }
+ }
+ }
+
+ TABLE* TABLE::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class TABLE (*this, f, c);
+ }
+
+ TABLE::
+ ~TABLE ()
+ {
+ }
+
+ // RESOURCE
+ //
+
+ const RESOURCE::type_type RESOURCE::type_default_value_ (
+ "results");
+
+ RESOURCE::
+ RESOURCE ()
+ : ::xml_schema::type (),
+ dom_document_ (::xsd::cxx::xml::dom::create_document< char > ()),
+ DESCRIPTION_ (::xml_schema::flags (), this),
+ INFO_ (::xml_schema::flags (), this),
+ COOSYS_ (::xml_schema::flags (), this),
+ GROUP_ (::xml_schema::flags (), this),
+ PARAM_ (::xml_schema::flags (), this),
+ LINK_ (::xml_schema::flags (), this),
+ TABLE_ (::xml_schema::flags (), this),
+ RESOURCE1_ (::xml_schema::flags (), this),
+ any_ (this->dom_document ()),
+ name_ (::xml_schema::flags (), this),
+ ID_ (::xml_schema::flags (), this),
+ utype_ (::xml_schema::flags (), this),
+ type_ (type_default_value (), ::xml_schema::flags (), this),
+ any_attribute_ (this->dom_document ())
+ {
+ }
+
+ RESOURCE::
+ RESOURCE (const RESOURCE& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (x, f, c),
+ dom_document_ (::xsd::cxx::xml::dom::create_document< char > ()),
+ DESCRIPTION_ (x.DESCRIPTION_, f, this),
+ INFO_ (x.INFO_, f, this),
+ COOSYS_ (x.COOSYS_, f, this),
+ GROUP_ (x.GROUP_, f, this),
+ PARAM_ (x.PARAM_, f, this),
+ LINK_ (x.LINK_, f, this),
+ TABLE_ (x.TABLE_, f, this),
+ RESOURCE1_ (x.RESOURCE1_, f, this),
+ any_ (x.any_, this->dom_document ()),
+ name_ (x.name_, f, this),
+ ID_ (x.ID_, f, this),
+ utype_ (x.utype_, f, this),
+ type_ (x.type_, f, this),
+ any_attribute_ (x.any_attribute_, this->dom_document ())
+ {
+ }
+
+ RESOURCE::
+ RESOURCE (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
+ dom_document_ (::xsd::cxx::xml::dom::create_document< char > ()),
+ DESCRIPTION_ (f, this),
+ INFO_ (f, this),
+ COOSYS_ (f, this),
+ GROUP_ (f, this),
+ PARAM_ (f, this),
+ LINK_ (f, this),
+ TABLE_ (f, this),
+ RESOURCE1_ (f, this),
+ any_ (this->dom_document ()),
+ name_ (f, this),
+ ID_ (f, this),
+ utype_ (f, this),
+ type_ (f, this),
+ any_attribute_ (this->dom_document ())
+ {
+ if ((f & ::xml_schema::flags::base) == 0)
+ {
+ ::xsd::cxx::xml::dom::parser< char > p (e, true, true);
+ this->parse (p, f);
+ }
+ }
+
+ void RESOURCE::
+ parse (::xsd::cxx::xml::dom::parser< char >& p,
+ ::xml_schema::flags f)
+ {
+ for (; p.more_elements (); p.next_element ())
+ {
+ const ::xercesc::DOMElement& i (p.cur_element ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ // DESCRIPTION
+ //
+ if (n.name () == "DESCRIPTION" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< DESCRIPTION_type > r (
+ DESCRIPTION_traits::create (i, f, this));
+
+ if (!this->DESCRIPTION_)
+ {
+ this->DESCRIPTION_.set (r);
+ continue;
+ }
+ }
+
+ // INFO
+ //
+ if (n.name () == "INFO" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< INFO_type > r (
+ INFO_traits::create (i, f, this));
+
+ this->INFO_.push_back (r);
+ continue;
+ }
+
+ // COOSYS
+ //
+ if (n.name () == "COOSYS" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< COOSYS_type > r (
+ COOSYS_traits::create (i, f, this));
+
+ this->COOSYS_.push_back (r);
+ continue;
+ }
+
+ // GROUP
+ //
+ if (n.name () == "GROUP" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< GROUP_type > r (
+ GROUP_traits::create (i, f, this));
+
+ this->GROUP_.push_back (r);
+ continue;
+ }
+
+ // PARAM
+ //
+ if (n.name () == "PARAM" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< PARAM_type > r (
+ PARAM_traits::create (i, f, this));
+
+ this->PARAM_.push_back (r);
+ continue;
+ }
+
+ // LINK
+ //
+ if (n.name () == "LINK" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< LINK_type > r (
+ LINK_traits::create (i, f, this));
+
+ this->LINK_.push_back (r);
+ continue;
+ }
+
+ // TABLE
+ //
+ if (n.name () == "TABLE" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< TABLE_type > r (
+ TABLE_traits::create (i, f, this));
+
+ this->TABLE_.push_back (r);
+ continue;
+ }
+
+ // RESOURCE
+ //
+ if (n.name () == "RESOURCE" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< RESOURCE1_type > r (
+ RESOURCE1_traits::create (i, f, this));
+
+ this->RESOURCE1_.push_back (r);
+ continue;
+ }
+
+ // any
+ //
+ if ((!n.namespace_ ().empty () && n.namespace_ () != "http://www.ivoa.net/xml/VOTable/v1.3"))
+ {
+ ::xercesc::DOMElement* r (
+ static_cast< ::xercesc::DOMElement* > (
+ this->dom_document ().importNode (
+ const_cast< ::xercesc::DOMElement* > (&i), true)));
+ this->any_ .push_back (r);
+ continue;
+ }
+
+ break;
+ }
+
+ while (p.more_attributes ())
+ {
+ const ::xercesc::DOMAttr& i (p.next_attribute ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ if (n.name () == "name" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< name_type > r (
+ name_traits::create (i, f, this));
+
+ this->name_.set (r);
+ continue;
+ }
+
+ if (n.name () == "ID" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< ID_type > r (
+ ID_traits::create (i, f, this));
+
+ this->ID_.set (r);
+ continue;
+ }
+
+ if (n.name () == "utype" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< utype_type > r (
+ utype_traits::create (i, f, this));
+
+ this->utype_.set (r);
+ continue;
+ }
+
+ if (n.name () == "type" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< type_type > r (
+ type_traits::create (i, f, this));
+
+ this->type_.set (r);
+ continue;
+ }
+
+ // any_attribute
+ //
+ if ((!n.namespace_ ().empty () &&
+ n.namespace_ () != "http://www.ivoa.net/xml/VOTable/v1.3" &&
+ n.namespace_ () != ::xsd::cxx::xml::bits::xmlns_namespace< char > () &&
+ n.namespace_ () != ::xsd::cxx::xml::bits::xsi_namespace< char > ()))
+ {
+ ::xercesc::DOMAttr* r (
+ static_cast< ::xercesc::DOMAttr* > (
+ this->dom_document ().importNode (
+ const_cast< ::xercesc::DOMAttr* > (&i), true)));
+ this->any_attribute_ .insert (r);
+ continue;
+ }
+ }
+
+ if (!type_.present ())
+ {
+ this->type_.set (type_default_value ());
+ }
+ }
+
+ RESOURCE* RESOURCE::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class RESOURCE (*this, f, c);
+ }
+
+ RESOURCE::
+ ~RESOURCE ()
+ {
+ }
+
+ // type
+ //
+
+ type::
+ type (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (e, f, c)
+ {
+ _xsd_type_convert ();
+ }
+
+ type::
+ type (const ::xercesc::DOMAttr& a,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (a, f, c)
+ {
+ _xsd_type_convert ();
+ }
+
+ type::
+ type (const ::std::string& s,
+ const ::xercesc::DOMElement* e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (s, e, f, c)
+ {
+ _xsd_type_convert ();
+ }
+
+ type* type::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class type (*this, f, c);
+ }
+
+ type::value type::
+ _xsd_type_convert () const
+ {
+ ::xsd::cxx::tree::enum_comparator< char > c (_xsd_type_literals_);
+ const value* i (::std::lower_bound (
+ _xsd_type_indexes_,
+ _xsd_type_indexes_ + 2,
+ *this,
+ c));
+
+ if (i == _xsd_type_indexes_ + 2 || _xsd_type_literals_[*i] != *this)
+ {
+ throw ::xsd::cxx::tree::unexpected_enumerator < char > (*this);
+ }
+
+ return *i;
+ }
+
+ const char* const type::
+ _xsd_type_literals_[2] =
+ {
+ "legal",
+ "actual"
+ };
+
+ const type::value type::
+ _xsd_type_indexes_[2] =
+ {
+ ::votable_13::type::actual,
+ ::votable_13::type::legal
+ };
+
+ // system
+ //
+
+ system::
+ system (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (e, f, c)
+ {
+ _xsd_system_convert ();
+ }
+
+ system::
+ system (const ::xercesc::DOMAttr& a,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (a, f, c)
+ {
+ _xsd_system_convert ();
+ }
+
+ system::
+ system (const ::std::string& s,
+ const ::xercesc::DOMElement* e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (s, e, f, c)
+ {
+ _xsd_system_convert ();
+ }
+
+ system* system::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class system (*this, f, c);
+ }
+
+ system::value system::
+ _xsd_system_convert () const
+ {
+ ::xsd::cxx::tree::enum_comparator< char > c (_xsd_system_literals_);
+ const value* i (::std::lower_bound (
+ _xsd_system_indexes_,
+ _xsd_system_indexes_ + 10,
+ *this,
+ c));
+
+ if (i == _xsd_system_indexes_ + 10 || _xsd_system_literals_[*i] != *this)
+ {
+ throw ::xsd::cxx::tree::unexpected_enumerator < char > (*this);
+ }
+
+ return *i;
+ }
+
+ const char* const system::
+ _xsd_system_literals_[10] =
+ {
+ "eq_FK4",
+ "eq_FK5",
+ "ICRS",
+ "ecl_FK4",
+ "ecl_FK5",
+ "galactic",
+ "supergalactic",
+ "xy",
+ "barycentric",
+ "geo_app"
+ };
+
+ const system::value system::
+ _xsd_system_indexes_[10] =
+ {
+ ::votable_13::system::ICRS,
+ ::votable_13::system::barycentric,
+ ::votable_13::system::ecl_FK4,
+ ::votable_13::system::ecl_FK5,
+ ::votable_13::system::eq_FK4,
+ ::votable_13::system::eq_FK5,
+ ::votable_13::system::galactic,
+ ::votable_13::system::geo_app,
+ ::votable_13::system::supergalactic,
+ ::votable_13::system::xy
+ };
+
+ // type1
+ //
+
+ type1::
+ type1 (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (e, f, c)
+ {
+ _xsd_type1_convert ();
+ }
+
+ type1::
+ type1 (const ::xercesc::DOMAttr& a,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (a, f, c)
+ {
+ _xsd_type1_convert ();
+ }
+
+ type1::
+ type1 (const ::std::string& s,
+ const ::xercesc::DOMElement* e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (s, e, f, c)
+ {
+ _xsd_type1_convert ();
+ }
+
+ type1* type1::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class type1 (*this, f, c);
+ }
+
+ type1::value type1::
+ _xsd_type1_convert () const
+ {
+ ::xsd::cxx::tree::enum_comparator< char > c (_xsd_type1_literals_);
+ const value* i (::std::lower_bound (
+ _xsd_type1_indexes_,
+ _xsd_type1_indexes_ + 4,
+ *this,
+ c));
+
+ if (i == _xsd_type1_indexes_ + 4 || _xsd_type1_literals_[*i] != *this)
+ {
+ throw ::xsd::cxx::tree::unexpected_enumerator < char > (*this);
+ }
+
+ return *i;
+ }
+
+ const char* const type1::
+ _xsd_type1_literals_[4] =
+ {
+ "hidden",
+ "no_query",
+ "trigger",
+ "location"
+ };
+
+ const type1::value type1::
+ _xsd_type1_indexes_[4] =
+ {
+ ::votable_13::type1::hidden,
+ ::votable_13::type1::location,
+ ::votable_13::type1::no_query,
+ ::votable_13::type1::trigger
+ };
+
+ // type2
+ //
+
+ type2::
+ type2 (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (e, f, c)
+ {
+ _xsd_type2_convert ();
+ }
+
+ type2::
+ type2 (const ::xercesc::DOMAttr& a,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (a, f, c)
+ {
+ _xsd_type2_convert ();
+ }
+
+ type2::
+ type2 (const ::std::string& s,
+ const ::xercesc::DOMElement* e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (s, e, f, c)
+ {
+ _xsd_type2_convert ();
+ }
+
+ type2* type2::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class type2 (*this, f, c);
+ }
+
+ type2::value type2::
+ _xsd_type2_convert () const
+ {
+ ::xsd::cxx::tree::enum_comparator< char > c (_xsd_type2_literals_);
+ const value* i (::std::lower_bound (
+ _xsd_type2_indexes_,
+ _xsd_type2_indexes_ + 2,
+ *this,
+ c));
+
+ if (i == _xsd_type2_indexes_ + 2 || _xsd_type2_literals_[*i] != *this)
+ {
+ throw ::xsd::cxx::tree::unexpected_enumerator < char > (*this);
+ }
+
+ return *i;
+ }
+
+ const char* const type2::
+ _xsd_type2_literals_[2] =
+ {
+ "locator",
+ "other"
+ };
+
+ const type2::value type2::
+ _xsd_type2_indexes_[2] =
+ {
+ ::votable_13::type2::locator,
+ ::votable_13::type2::other
+ };
+
+ // actuate
+ //
+
+ actuate::
+ actuate (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (e, f, c)
+ {
+ _xsd_actuate_convert ();
+ }
+
+ actuate::
+ actuate (const ::xercesc::DOMAttr& a,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (a, f, c)
+ {
+ _xsd_actuate_convert ();
+ }
+
+ actuate::
+ actuate (const ::std::string& s,
+ const ::xercesc::DOMElement* e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (s, e, f, c)
+ {
+ _xsd_actuate_convert ();
+ }
+
+ actuate* actuate::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class actuate (*this, f, c);
+ }
+
+ actuate::value actuate::
+ _xsd_actuate_convert () const
+ {
+ ::xsd::cxx::tree::enum_comparator< char > c (_xsd_actuate_literals_);
+ const value* i (::std::lower_bound (
+ _xsd_actuate_indexes_,
+ _xsd_actuate_indexes_ + 4,
+ *this,
+ c));
+
+ if (i == _xsd_actuate_indexes_ + 4 || _xsd_actuate_literals_[*i] != *this)
+ {
+ throw ::xsd::cxx::tree::unexpected_enumerator < char > (*this);
+ }
+
+ return *i;
+ }
+
+ const char* const actuate::
+ _xsd_actuate_literals_[4] =
+ {
+ "onLoad",
+ "onRequest",
+ "other",
+ "none"
+ };
+
+ const actuate::value actuate::
+ _xsd_actuate_indexes_[4] =
+ {
+ ::votable_13::actuate::none,
+ ::votable_13::actuate::onLoad,
+ ::votable_13::actuate::onRequest,
+ ::votable_13::actuate::other
+ };
+
+ // type3
+ //
+
+ type3::
+ type3 (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (e, f, c)
+ {
+ _xsd_type3_convert ();
+ }
+
+ type3::
+ type3 (const ::xercesc::DOMAttr& a,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (a, f, c)
+ {
+ _xsd_type3_convert ();
+ }
+
+ type3::
+ type3 (const ::std::string& s,
+ const ::xercesc::DOMElement* e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (s, e, f, c)
+ {
+ _xsd_type3_convert ();
+ }
+
+ type3* type3::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class type3 (*this, f, c);
+ }
+
+ type3::value type3::
+ _xsd_type3_convert () const
+ {
+ ::xsd::cxx::tree::enum_comparator< char > c (_xsd_type3_literals_);
+ const value* i (::std::lower_bound (
+ _xsd_type3_indexes_,
+ _xsd_type3_indexes_ + 2,
+ *this,
+ c));
+
+ if (i == _xsd_type3_indexes_ + 2 || _xsd_type3_literals_[*i] != *this)
+ {
+ throw ::xsd::cxx::tree::unexpected_enumerator < char > (*this);
+ }
+
+ return *i;
+ }
+
+ const char* const type3::
+ _xsd_type3_literals_[2] =
+ {
+ "results",
+ "meta"
+ };
+
+ const type3::value type3::
+ _xsd_type3_indexes_[2] =
+ {
+ ::votable_13::type3::meta,
+ ::votable_13::type3::results
+ };
+
+ // VOTABLE
+ //
+
+ VOTABLE::
+ VOTABLE ()
+ : ::xml_schema::type (),
+ DESCRIPTION_ (::xml_schema::flags (), this),
+ DEFINITIONS_ (::xml_schema::flags (), this),
+ COOSYS_ (::xml_schema::flags (), this),
+ GROUP_ (::xml_schema::flags (), this),
+ PARAM_ (::xml_schema::flags (), this),
+ INFO_ (::xml_schema::flags (), this),
+ RESOURCE_ (::xml_schema::flags (), this),
+ ID_ (::xml_schema::flags (), this),
+ version_ (::xml_schema::flags (), this)
+ {
+ }
+
+ VOTABLE::
+ VOTABLE (const VOTABLE& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (x, f, c),
+ DESCRIPTION_ (x.DESCRIPTION_, f, this),
+ DEFINITIONS_ (x.DEFINITIONS_, f, this),
+ COOSYS_ (x.COOSYS_, f, this),
+ GROUP_ (x.GROUP_, f, this),
+ PARAM_ (x.PARAM_, f, this),
+ INFO_ (x.INFO_, f, this),
+ RESOURCE_ (x.RESOURCE_, f, this),
+ ID_ (x.ID_, f, this),
+ version_ (x.version_, f, this)
+ {
+ }
+
+ VOTABLE::
+ VOTABLE (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
+ DESCRIPTION_ (f, this),
+ DEFINITIONS_ (f, this),
+ COOSYS_ (f, this),
+ GROUP_ (f, this),
+ PARAM_ (f, this),
+ INFO_ (f, this),
+ RESOURCE_ (f, this),
+ ID_ (f, this),
+ version_ (f, this)
+ {
+ if ((f & ::xml_schema::flags::base) == 0)
+ {
+ ::xsd::cxx::xml::dom::parser< char > p (e, true, true);
+ this->parse (p, f);
+ }
+ }
+
+ void VOTABLE::
+ parse (::xsd::cxx::xml::dom::parser< char >& p,
+ ::xml_schema::flags f)
+ {
+ for (; p.more_elements (); p.next_element ())
+ {
+ const ::xercesc::DOMElement& i (p.cur_element ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ // DESCRIPTION
+ //
+ if (n.name () == "DESCRIPTION" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< DESCRIPTION_type > r (
+ DESCRIPTION_traits::create (i, f, this));
+
+ if (!this->DESCRIPTION_)
+ {
+ this->DESCRIPTION_.set (r);
+ continue;
+ }
+ }
+
+ // DEFINITIONS
+ //
+ if (n.name () == "DEFINITIONS" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< DEFINITIONS_type > r (
+ DEFINITIONS_traits::create (i, f, this));
+
+ if (!this->DEFINITIONS_)
+ {
+ this->DEFINITIONS_.set (r);
+ continue;
+ }
+ }
+
+ // COOSYS
+ //
+ if (n.name () == "COOSYS" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< COOSYS_type > r (
+ COOSYS_traits::create (i, f, this));
+
+ this->COOSYS_.push_back (r);
+ continue;
+ }
+
+ // GROUP
+ //
+ if (n.name () == "GROUP" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< GROUP_type > r (
+ GROUP_traits::create (i, f, this));
+
+ this->GROUP_.push_back (r);
+ continue;
+ }
+
+ // PARAM
+ //
+ if (n.name () == "PARAM" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< PARAM_type > r (
+ PARAM_traits::create (i, f, this));
+
+ this->PARAM_.push_back (r);
+ continue;
+ }
+
+ // INFO
+ //
+ if (n.name () == "INFO" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< INFO_type > r (
+ INFO_traits::create (i, f, this));
+
+ this->INFO_.push_back (r);
+ continue;
+ }
+
+ // RESOURCE
+ //
+ if (n.name () == "RESOURCE" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< RESOURCE_type > r (
+ RESOURCE_traits::create (i, f, this));
+
+ this->RESOURCE_.push_back (r);
+ continue;
+ }
+
+ break;
+ }
+
+ while (p.more_attributes ())
+ {
+ const ::xercesc::DOMAttr& i (p.next_attribute ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ if (n.name () == "ID" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< ID_type > r (
+ ID_traits::create (i, f, this));
+
+ this->ID_.set (r);
+ continue;
+ }
+
+ if (n.name () == "version" && n.namespace_ ().empty ())
+ {
+ ::std::auto_ptr< version_type > r (
+ version_traits::create (i, f, this));
+
+ this->version_.set (r);
+ continue;
+ }
+ }
+ }
+
+ VOTABLE* VOTABLE::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class VOTABLE (*this, f, c);
+ }
+
+ VOTABLE::
+ ~VOTABLE ()
+ {
+ }
+
+ // version
+ //
+
+ version::
+ version (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (e, f, c)
+ {
+ _xsd_version_convert ();
+ }
+
+ version::
+ version (const ::xercesc::DOMAttr& a,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (a, f, c)
+ {
+ _xsd_version_convert ();
+ }
+
+ version::
+ version (const ::std::string& s,
+ const ::xercesc::DOMElement* e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::nmtoken (s, e, f, c)
+ {
+ _xsd_version_convert ();
+ }
+
+ version* version::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class version (*this, f, c);
+ }
+
+ version::value version::
+ _xsd_version_convert () const
+ {
+ ::xsd::cxx::tree::enum_comparator< char > c (_xsd_version_literals_);
+ const value* i (::std::lower_bound (
+ _xsd_version_indexes_,
+ _xsd_version_indexes_ + 1,
+ *this,
+ c));
+
+ if (i == _xsd_version_indexes_ + 1 || _xsd_version_literals_[*i] != *this)
+ {
+ throw ::xsd::cxx::tree::unexpected_enumerator < char > (*this);
+ }
+
+ return *i;
+ }
+
+ const char* const version::
+ _xsd_version_literals_[1] =
+ {
+ "1.3"
+ };
+
+ const version::value version::
+ _xsd_version_indexes_[1] =
+ {
+ ::votable_13::version::cxx_1_3
+ };
+}
+
+#include
+#include
+#include
+
+namespace votable_13
+{
+ ::std::auto_ptr< ::votable_13::VOTABLE >
+ VOTABLE_read (const ::std::string& u,
+ ::xml_schema::flags f,
+ const ::xml_schema::properties& p)
+ {
+ ::xsd::cxx::xml::auto_initializer i (
+ (f & ::xml_schema::flags::dont_initialize) == 0,
+ (f & ::xml_schema::flags::keep_dom) == 0);
+
+ ::xsd::cxx::tree::error_handler< char > h;
+
+ ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d (
+ ::xsd::cxx::xml::dom::parse< char > (
+ u, h, p, f));
+
+ h.throw_if_failed< ::xsd::cxx::tree::parsing< char > > ();
+
+ ::std::auto_ptr< ::votable_13::VOTABLE > r (
+ ::votable_13::VOTABLE_read (
+ d, f | ::xml_schema::flags::own_dom, p));
+
+ return r;
+ }
+
+ ::std::auto_ptr< ::votable_13::VOTABLE >
+ VOTABLE_read (const ::std::string& u,
+ ::xml_schema::error_handler& h,
+ ::xml_schema::flags f,
+ const ::xml_schema::properties& p)
+ {
+ ::xsd::cxx::xml::auto_initializer i (
+ (f & ::xml_schema::flags::dont_initialize) == 0,
+ (f & ::xml_schema::flags::keep_dom) == 0);
+
+ ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d (
+ ::xsd::cxx::xml::dom::parse< char > (
+ u, h, p, f));
+
+ if (!d.get ())
+ throw ::xsd::cxx::tree::parsing< char > ();
+
+ ::std::auto_ptr< ::votable_13::VOTABLE > r (
+ ::votable_13::VOTABLE_read (
+ d, f | ::xml_schema::flags::own_dom, p));
+
+ return r;
+ }
+
+ ::std::auto_ptr< ::votable_13::VOTABLE >
+ VOTABLE_read (const ::std::string& u,
+ ::xercesc::DOMErrorHandler& h,
+ ::xml_schema::flags f,
+ const ::xml_schema::properties& p)
+ {
+ ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d (
+ ::xsd::cxx::xml::dom::parse< char > (
+ u, h, p, f));
+
+ if (!d.get ())
+ throw ::xsd::cxx::tree::parsing< char > ();
+
+ ::std::auto_ptr< ::votable_13::VOTABLE > r (
+ ::votable_13::VOTABLE_read (
+ d, f | ::xml_schema::flags::own_dom, p));
+
+ return r;
+ }
+
+ ::std::auto_ptr< ::votable_13::VOTABLE >
+ VOTABLE_read (::std::istream& is,
+ ::xml_schema::flags f,
+ const ::xml_schema::properties& p)
+ {
+ ::xsd::cxx::xml::auto_initializer i (
+ (f & ::xml_schema::flags::dont_initialize) == 0,
+ (f & ::xml_schema::flags::keep_dom) == 0);
+
+ ::xsd::cxx::xml::sax::std_input_source isrc (is);
+ return ::votable_13::VOTABLE_read (isrc, f, p);
+ }
+
+ ::std::auto_ptr< ::votable_13::VOTABLE >
+ VOTABLE_read (::std::istream& is,
+ ::xml_schema::error_handler& h,
+ ::xml_schema::flags f,
+ const ::xml_schema::properties& p)
+ {
+ ::xsd::cxx::xml::auto_initializer i (
+ (f & ::xml_schema::flags::dont_initialize) == 0,
+ (f & ::xml_schema::flags::keep_dom) == 0);
+
+ ::xsd::cxx::xml::sax::std_input_source isrc (is);
+ return ::votable_13::VOTABLE_read (isrc, h, f, p);
+ }
+
+ ::std::auto_ptr< ::votable_13::VOTABLE >
+ VOTABLE_read (::std::istream& is,
+ ::xercesc::DOMErrorHandler& h,
+ ::xml_schema::flags f,
+ const ::xml_schema::properties& p)
+ {
+ ::xsd::cxx::xml::sax::std_input_source isrc (is);
+ return ::votable_13::VOTABLE_read (isrc, h, f, p);
+ }
+
+ ::std::auto_ptr< ::votable_13::VOTABLE >
+ VOTABLE_read (::std::istream& is,
+ const ::std::string& sid,
+ ::xml_schema::flags f,
+ const ::xml_schema::properties& p)
+ {
+ ::xsd::cxx::xml::auto_initializer i (
+ (f & ::xml_schema::flags::dont_initialize) == 0,
+ (f & ::xml_schema::flags::keep_dom) == 0);
+
+ ::xsd::cxx::xml::sax::std_input_source isrc (is, sid);
+ return ::votable_13::VOTABLE_read (isrc, f, p);
+ }
+
+ ::std::auto_ptr< ::votable_13::VOTABLE >
+ VOTABLE_read (::std::istream& is,
+ const ::std::string& sid,
+ ::xml_schema::error_handler& h,
+ ::xml_schema::flags f,
+ const ::xml_schema::properties& p)
+ {
+ ::xsd::cxx::xml::auto_initializer i (
+ (f & ::xml_schema::flags::dont_initialize) == 0,
+ (f & ::xml_schema::flags::keep_dom) == 0);
+
+ ::xsd::cxx::xml::sax::std_input_source isrc (is, sid);
+ return ::votable_13::VOTABLE_read (isrc, h, f, p);
+ }
+
+ ::std::auto_ptr< ::votable_13::VOTABLE >
+ VOTABLE_read (::std::istream& is,
+ const ::std::string& sid,
+ ::xercesc::DOMErrorHandler& h,
+ ::xml_schema::flags f,
+ const ::xml_schema::properties& p)
+ {
+ ::xsd::cxx::xml::sax::std_input_source isrc (is, sid);
+ return ::votable_13::VOTABLE_read (isrc, h, f, p);
+ }
+
+ ::std::auto_ptr< ::votable_13::VOTABLE >
+ VOTABLE_read (::xercesc::InputSource& i,
+ ::xml_schema::flags f,
+ const ::xml_schema::properties& p)
+ {
+ ::xsd::cxx::tree::error_handler< char > h;
+
+ ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d (
+ ::xsd::cxx::xml::dom::parse< char > (
+ i, h, p, f));
+
+ h.throw_if_failed< ::xsd::cxx::tree::parsing< char > > ();
+
+ ::std::auto_ptr< ::votable_13::VOTABLE > r (
+ ::votable_13::VOTABLE_read (
+ d, f | ::xml_schema::flags::own_dom, p));
+
+ return r;
+ }
+
+ ::std::auto_ptr< ::votable_13::VOTABLE >
+ VOTABLE_read (::xercesc::InputSource& i,
+ ::xml_schema::error_handler& h,
+ ::xml_schema::flags f,
+ const ::xml_schema::properties& p)
+ {
+ ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d (
+ ::xsd::cxx::xml::dom::parse< char > (
+ i, h, p, f));
+
+ if (!d.get ())
+ throw ::xsd::cxx::tree::parsing< char > ();
+
+ ::std::auto_ptr< ::votable_13::VOTABLE > r (
+ ::votable_13::VOTABLE_read (
+ d, f | ::xml_schema::flags::own_dom, p));
+
+ return r;
+ }
+
+ ::std::auto_ptr< ::votable_13::VOTABLE >
+ VOTABLE_read (::xercesc::InputSource& i,
+ ::xercesc::DOMErrorHandler& h,
+ ::xml_schema::flags f,
+ const ::xml_schema::properties& p)
+ {
+ ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d (
+ ::xsd::cxx::xml::dom::parse< char > (
+ i, h, p, f));
+
+ if (!d.get ())
+ throw ::xsd::cxx::tree::parsing< char > ();
+
+ ::std::auto_ptr< ::votable_13::VOTABLE > r (
+ ::votable_13::VOTABLE_read (
+ d, f | ::xml_schema::flags::own_dom, p));
+
+ return r;
+ }
+
+ ::std::auto_ptr< ::votable_13::VOTABLE >
+ VOTABLE_read (const ::xercesc::DOMDocument& d,
+ ::xml_schema::flags f,
+ const ::xml_schema::properties& p)
+ {
+ if (f & ::xml_schema::flags::keep_dom)
+ {
+ ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > c (
+ static_cast< ::xercesc::DOMDocument* > (d.cloneNode (true)));
+
+ ::std::auto_ptr< ::votable_13::VOTABLE > r (
+ ::votable_13::VOTABLE_read (
+ c, f | ::xml_schema::flags::own_dom, p));
+
+ return r;
+ }
+
+ const ::xercesc::DOMElement& e (*d.getDocumentElement ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (e));
+
+ if (n.name () == "VOTABLE" &&
+ n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< ::votable_13::VOTABLE > r (
+ ::xsd::cxx::tree::traits< ::votable_13::VOTABLE, char >::create (
+ e, f, 0));
+ return r;
+ }
+
+ throw ::xsd::cxx::tree::unexpected_element < char > (
+ n.name (),
+ n.namespace_ (),
+ "VOTABLE",
+ "http://www.ivoa.net/xml/VOTable/v1.3");
+ }
+
+ ::std::auto_ptr< ::votable_13::VOTABLE >
+ VOTABLE_read (::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument >& d,
+ ::xml_schema::flags f,
+ const ::xml_schema::properties&)
+ {
+ ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > c (
+ ((f & ::xml_schema::flags::keep_dom) &&
+ !(f & ::xml_schema::flags::own_dom))
+ ? static_cast< ::xercesc::DOMDocument* > (d->cloneNode (true))
+ : 0);
+
+ ::xercesc::DOMDocument& doc (c.get () ? *c : *d);
+ const ::xercesc::DOMElement& e (*doc.getDocumentElement ());
+
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (e));
+
+ if (f & ::xml_schema::flags::keep_dom)
+ doc.setUserData (::xml_schema::dom::tree_node_key,
+ (c.get () ? &c : &d),
+ 0);
+
+ if (n.name () == "VOTABLE" &&
+ n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< ::votable_13::VOTABLE > r (
+ ::xsd::cxx::tree::traits< ::votable_13::VOTABLE, char >::create (
+ e, f, 0));
+ return r;
+ }
+
+ throw ::xsd::cxx::tree::unexpected_element < char > (
+ n.name (),
+ n.namespace_ (),
+ "VOTABLE",
+ "http://www.ivoa.net/xml/VOTable/v1.3");
+ }
+}
+
+#include
+#include
+#include
+
+namespace votable_13
+{
+ void
+ operator<< (::xercesc::DOMElement& e, const anyTEXT& i)
+ {
+ e << static_cast< const ::xml_schema::type& > (i);
+
+ // any
+ //
+ for (anyTEXT::any_const_iterator
+ b (i.any ().begin ()), n (i.any ().end ());
+ b != n; ++b)
+ {
+ e.appendChild (
+ e.getOwnerDocument ()->importNode (
+ const_cast< ::xercesc::DOMElement* > (&(*b)), true));
+ }
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const astroYear& i)
+ {
+ e << static_cast< const ::xml_schema::token& > (i);
+ }
+
+ void
+ operator<< (::xercesc::DOMAttr& a, const astroYear& i)
+ {
+ a << static_cast< const ::xml_schema::token& > (i);
+ }
+
+ void
+ operator<< (::xml_schema::list_stream& l,
+ const astroYear& i)
+ {
+ l << static_cast< const ::xml_schema::token& > (i);
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const ucdType& i)
+ {
+ e << static_cast< const ::xml_schema::token& > (i);
+ }
+
+ void
+ operator<< (::xercesc::DOMAttr& a, const ucdType& i)
+ {
+ a << static_cast< const ::xml_schema::token& > (i);
+ }
+
+ void
+ operator<< (::xml_schema::list_stream& l,
+ const ucdType& i)
+ {
+ l << static_cast< const ::xml_schema::token& > (i);
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const arrayDEF& i)
+ {
+ e << static_cast< const ::xml_schema::token& > (i);
+ }
+
+ void
+ operator<< (::xercesc::DOMAttr& a, const arrayDEF& i)
+ {
+ a << static_cast< const ::xml_schema::token& > (i);
+ }
+
+ void
+ operator<< (::xml_schema::list_stream& l,
+ const arrayDEF& i)
+ {
+ l << static_cast< const ::xml_schema::token& > (i);
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const encodingType& i)
+ {
+ e << static_cast< const ::xml_schema::nmtoken& > (i);
+ }
+
+ void
+ operator<< (::xercesc::DOMAttr& a, const encodingType& i)
+ {
+ a << static_cast< const ::xml_schema::nmtoken& > (i);
+ }
+
+ void
+ operator<< (::xml_schema::list_stream& l,
+ const encodingType& i)
+ {
+ l << static_cast< const ::xml_schema::nmtoken& > (i);
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const dataType& i)
+ {
+ e << static_cast< const ::xml_schema::nmtoken& > (i);
+ }
+
+ void
+ operator<< (::xercesc::DOMAttr& a, const dataType& i)
+ {
+ a << static_cast< const ::xml_schema::nmtoken& > (i);
+ }
+
+ void
+ operator<< (::xml_schema::list_stream& l,
+ const dataType& i)
+ {
+ l << static_cast< const ::xml_schema::nmtoken& > (i);
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const precType& i)
+ {
+ e << static_cast< const ::xml_schema::token& > (i);
+ }
+
+ void
+ operator<< (::xercesc::DOMAttr& a, const precType& i)
+ {
+ a << static_cast< const ::xml_schema::token& > (i);
+ }
+
+ void
+ operator<< (::xml_schema::list_stream& l,
+ const precType& i)
+ {
+ l << static_cast< const ::xml_schema::token& > (i);
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const yesno& i)
+ {
+ e << static_cast< const ::xml_schema::nmtoken& > (i);
+ }
+
+ void
+ operator<< (::xercesc::DOMAttr& a, const yesno& i)
+ {
+ a << static_cast< const ::xml_schema::nmtoken& > (i);
+ }
+
+ void
+ operator<< (::xml_schema::list_stream& l,
+ const yesno& i)
+ {
+ l << static_cast< const ::xml_schema::nmtoken& > (i);
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const MIN& i)
+ {
+ e << static_cast< const ::xml_schema::type& > (i);
+
+ // value
+ //
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "value",
+ e));
+
+ a << i.value ();
+ }
+
+ // inclusive
+ //
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "inclusive",
+ e));
+
+ a << i.inclusive ();
+ }
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const MAX& i)
+ {
+ e << static_cast< const ::xml_schema::type& > (i);
+
+ // value
+ //
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "value",
+ e));
+
+ a << i.value ();
+ }
+
+ // inclusive
+ //
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "inclusive",
+ e));
+
+ a << i.inclusive ();
+ }
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const OPTION& i)
+ {
+ e << static_cast< const ::xml_schema::type& > (i);
+
+ // OPTION
+ //
+ for (OPTION::OPTION1_const_iterator
+ b (i.OPTION1 ().begin ()), n (i.OPTION1 ().end ());
+ b != n; ++b)
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "OPTION",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *b;
+ }
+
+ // name
+ //
+ if (i.name ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "name",
+ e));
+
+ a << *i.name ();
+ }
+
+ // value
+ //
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "value",
+ e));
+
+ a << i.value ();
+ }
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const VALUES& i)
+ {
+ e << static_cast< const ::xml_schema::type& > (i);
+
+ // MIN
+ //
+ if (i.MIN ())
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "MIN",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *i.MIN ();
+ }
+
+ // MAX
+ //
+ if (i.MAX ())
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "MAX",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *i.MAX ();
+ }
+
+ // OPTION
+ //
+ for (VALUES::OPTION_const_iterator
+ b (i.OPTION ().begin ()), n (i.OPTION ().end ());
+ b != n; ++b)
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "OPTION",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *b;
+ }
+
+ // ID
+ //
+ if (i.ID ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "ID",
+ e));
+
+ a << *i.ID ();
+ }
+
+ // type
+ //
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "type",
+ e));
+
+ a << i.type ();
+ }
+
+ // null
+ //
+ if (i.null ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "null",
+ e));
+
+ a << *i.null ();
+ }
+
+ // ref
+ //
+ if (i.ref ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "ref",
+ e));
+
+ a << *i.ref ();
+ }
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const LINK& i)
+ {
+ e << static_cast< const ::xml_schema::type& > (i);
+
+ // ID
+ //
+ if (i.ID ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "ID",
+ e));
+
+ a << *i.ID ();
+ }
+
+ // content-role
+ //
+ if (i.content_role ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "content-role",
+ e));
+
+ a << *i.content_role ();
+ }
+
+ // content-type
+ //
+ if (i.content_type ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "content-type",
+ e));
+
+ a << *i.content_type ();
+ }
+
+ // title
+ //
+ if (i.title ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "title",
+ e));
+
+ a << *i.title ();
+ }
+
+ // value
+ //
+ if (i.value ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "value",
+ e));
+
+ a << *i.value ();
+ }
+
+ // href
+ //
+ if (i.href ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "href",
+ e));
+
+ a << *i.href ();
+ }
+
+ // gref
+ //
+ if (i.gref ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "gref",
+ e));
+
+ a << *i.gref ();
+ }
+
+ // action
+ //
+ if (i.action ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "action",
+ e));
+
+ a << *i.action ();
+ }
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const INFO& i)
+ {
+ e << static_cast< const ::xml_schema::string& > (i);
+
+ // ID
+ //
+ if (i.ID ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "ID",
+ e));
+
+ a << *i.ID ();
+ }
+
+ // name
+ //
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "name",
+ e));
+
+ a << i.name ();
+ }
+
+ // value
+ //
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "value",
+ e));
+
+ a << i.value ();
+ }
+
+ // unit
+ //
+ if (i.unit ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "unit",
+ e));
+
+ a << *i.unit ();
+ }
+
+ // xtype
+ //
+ if (i.xtype ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "xtype",
+ e));
+
+ a << *i.xtype ();
+ }
+
+ // ref
+ //
+ if (i.ref ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "ref",
+ e));
+
+ a << *i.ref ();
+ }
+
+ // ucd
+ //
+ if (i.ucd ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "ucd",
+ e));
+
+ a << *i.ucd ();
+ }
+
+ // utype
+ //
+ if (i.utype ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "utype",
+ e));
+
+ a << *i.utype ();
+ }
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const COOSYS& i)
+ {
+ e << static_cast< const ::xml_schema::string& > (i);
+
+ // ID
+ //
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "ID",
+ e));
+
+ a << i.ID ();
+ }
+
+ // equinox
+ //
+ if (i.equinox ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "equinox",
+ e));
+
+ a << *i.equinox ();
+ }
+
+ // epoch
+ //
+ if (i.epoch ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "epoch",
+ e));
+
+ a << *i.epoch ();
+ }
+
+ // system
+ //
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "system",
+ e));
+
+ a << i.system ();
+ }
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const DEFINITIONS& i)
+ {
+ e << static_cast< const ::xml_schema::type& > (i);
+
+ // COOSYS
+ //
+ for (DEFINITIONS::COOSYS_const_iterator
+ b (i.COOSYS ().begin ()), n (i.COOSYS ().end ());
+ b != n; ++b)
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "COOSYS",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *b;
+ }
+
+ // PARAM
+ //
+ for (DEFINITIONS::PARAM_const_iterator
+ b (i.PARAM ().begin ()), n (i.PARAM ().end ());
+ b != n; ++b)
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "PARAM",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *b;
+ }
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const FIELD& i)
+ {
+ e << static_cast< const ::xml_schema::type& > (i);
+
+ // DESCRIPTION
+ //
+ if (i.DESCRIPTION ())
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "DESCRIPTION",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *i.DESCRIPTION ();
+ }
+
+ // VALUES
+ //
+ if (i.VALUES ())
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "VALUES",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *i.VALUES ();
+ }
+
+ // LINK
+ //
+ for (FIELD::LINK_const_iterator
+ b (i.LINK ().begin ()), n (i.LINK ().end ());
+ b != n; ++b)
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "LINK",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *b;
+ }
+
+ // ID
+ //
+ if (i.ID ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "ID",
+ e));
+
+ a << *i.ID ();
+ }
+
+ // unit
+ //
+ if (i.unit ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "unit",
+ e));
+
+ a << *i.unit ();
+ }
+
+ // datatype
+ //
+ if (i.datatype ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "datatype",
+ e));
+
+ a << *i.datatype ();
+ }
+
+ // precision
+ //
+ if (i.precision ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "precision",
+ e));
+
+ a << *i.precision ();
+ }
+
+ // width
+ //
+ if (i.width ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "width",
+ e));
+
+ a << *i.width ();
+ }
+
+ // xtype
+ //
+ if (i.xtype ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "xtype",
+ e));
+
+ a << *i.xtype ();
+ }
+
+ // ref
+ //
+ if (i.ref ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "ref",
+ e));
+
+ a << *i.ref ();
+ }
+
+ // name
+ //
+ if (i.name ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "name",
+ e));
+
+ a << *i.name ();
+ }
+
+ // ucd
+ //
+ if (i.ucd ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "ucd",
+ e));
+
+ a << *i.ucd ();
+ }
+
+ // utype
+ //
+ if (i.utype ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "utype",
+ e));
+
+ a << *i.utype ();
+ }
+
+ // arraysize
+ //
+ if (i.arraysize ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "arraysize",
+ e));
+
+ a << *i.arraysize ();
+ }
+
+ // type
+ //
+ if (i.type ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "type",
+ e));
+
+ a << *i.type ();
+ }
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const PARAM& i)
+ {
+ e << static_cast< const ::votable_13::FIELD& > (i);
+
+ // value
+ //
+ if (i.value ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "value",
+ e));
+
+ a << *i.value ();
+ }
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const GROUP& i)
+ {
+ e << static_cast< const ::xml_schema::type& > (i);
+
+ // DESCRIPTION
+ //
+ if (i.DESCRIPTION ())
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "DESCRIPTION",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *i.DESCRIPTION ();
+ }
+
+ // FIELDref
+ //
+ for (GROUP::FIELDref_const_iterator
+ b (i.FIELDref ().begin ()), n (i.FIELDref ().end ());
+ b != n; ++b)
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "FIELDref",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *b;
+ }
+
+ // PARAMref
+ //
+ for (GROUP::PARAMref_const_iterator
+ b (i.PARAMref ().begin ()), n (i.PARAMref ().end ());
+ b != n; ++b)
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "PARAMref",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *b;
+ }
+
+ // PARAM
+ //
+ for (GROUP::PARAM_const_iterator
+ b (i.PARAM ().begin ()), n (i.PARAM ().end ());
+ b != n; ++b)
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "PARAM",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *b;
+ }
+
+ // GROUP
+ //
+ for (GROUP::GROUP1_const_iterator
+ b (i.GROUP1 ().begin ()), n (i.GROUP1 ().end ());
+ b != n; ++b)
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "GROUP",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *b;
+ }
+
+ // ID
+ //
+ if (i.ID ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "ID",
+ e));
+
+ a << *i.ID ();
+ }
+
+ // name
+ //
+ if (i.name ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "name",
+ e));
+
+ a << *i.name ();
+ }
+
+ // ref
+ //
+ if (i.ref ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "ref",
+ e));
+
+ a << *i.ref ();
+ }
+
+ // ucd
+ //
+ if (i.ucd ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "ucd",
+ e));
+
+ a << *i.ucd ();
+ }
+
+ // utype
+ //
+ if (i.utype ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "utype",
+ e));
+
+ a << *i.utype ();
+ }
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const FIELDref& i)
+ {
+ e << static_cast< const ::xml_schema::type& > (i);
+
+ // ref
+ //
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "ref",
+ e));
+
+ a << i.ref ();
+ }
+
+ // ucd
+ //
+ if (i.ucd ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "ucd",
+ e));
+
+ a << *i.ucd ();
+ }
+
+ // utype
+ //
+ if (i.utype ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "utype",
+ e));
+
+ a << *i.utype ();
+ }
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const PARAMref& i)
+ {
+ e << static_cast< const ::xml_schema::type& > (i);
+
+ // ref
+ //
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "ref",
+ e));
+
+ a << i.ref ();
+ }
+
+ // ucd
+ //
+ if (i.ucd ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "ucd",
+ e));
+
+ a << *i.ucd ();
+ }
+
+ // utype
+ //
+ if (i.utype ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "utype",
+ e));
+
+ a << *i.utype ();
+ }
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const DATA& i)
+ {
+ e << static_cast< const ::xml_schema::type& > (i);
+
+ // TABLEDATA
+ //
+ if (i.TABLEDATA ())
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "TABLEDATA",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *i.TABLEDATA ();
+ }
+
+ // BINARY
+ //
+ if (i.BINARY ())
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "BINARY",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *i.BINARY ();
+ }
+
+ // FITS
+ //
+ if (i.FITS ())
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "FITS",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *i.FITS ();
+ }
+
+ // INFO
+ //
+ for (DATA::INFO_const_iterator
+ b (i.INFO ().begin ()), n (i.INFO ().end ());
+ b != n; ++b)
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "INFO",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *b;
+ }
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const TABLEDATA& i)
+ {
+ e << static_cast< const ::xml_schema::type& > (i);
+
+ // TR
+ //
+ for (TABLEDATA::TR_const_iterator
+ b (i.TR ().begin ()), n (i.TR ().end ());
+ b != n; ++b)
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "TR",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *b;
+ }
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const TD& i)
+ {
+ e << static_cast< const ::xml_schema::string& > (i);
+
+ // encoding
+ //
+ if (i.encoding ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "encoding",
+ e));
+
+ a << *i.encoding ();
+ }
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const TR& i)
+ {
+ e << static_cast< const ::xml_schema::type& > (i);
+
+ // TD
+ //
+ for (TR::TD_const_iterator
+ b (i.TD ().begin ()), n (i.TD ().end ());
+ b != n; ++b)
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "TD",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *b;
+ }
+
+ // ID
+ //
+ if (i.ID ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "ID",
+ e));
+
+ a << *i.ID ();
+ }
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const FITS& i)
+ {
+ e << static_cast< const ::xml_schema::type& > (i);
+
+ // STREAM
+ //
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "STREAM",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << i.STREAM ();
+ }
+
+ // extnum
+ //
+ if (i.extnum ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "extnum",
+ e));
+
+ a << *i.extnum ();
+ }
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const BINARY& i)
+ {
+ e << static_cast< const ::xml_schema::type& > (i);
+
+ // STREAM
+ //
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "STREAM",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << i.STREAM ();
+ }
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const STREAM& i)
+ {
+ e << static_cast< const ::xml_schema::string& > (i);
+
+ // type
+ //
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "type",
+ e));
+
+ a << i.type ();
+ }
+
+ // href
+ //
+ if (i.href ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "href",
+ e));
+
+ a << *i.href ();
+ }
+
+ // actuate
+ //
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "actuate",
+ e));
+
+ a << i.actuate ();
+ }
+
+ // encoding
+ //
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "encoding",
+ e));
+
+ a << i.encoding ();
+ }
+
+ // expires
+ //
+ if (i.expires ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "expires",
+ e));
+
+ a << *i.expires ();
+ }
+
+ // rights
+ //
+ if (i.rights ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "rights",
+ e));
+
+ a << *i.rights ();
+ }
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const TABLE& i)
+ {
+ e << static_cast< const ::xml_schema::type& > (i);
+
+ // DESCRIPTION
+ //
+ if (i.DESCRIPTION ())
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "DESCRIPTION",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *i.DESCRIPTION ();
+ }
+
+ // INFO
+ //
+ for (TABLE::INFO_const_iterator
+ b (i.INFO ().begin ()), n (i.INFO ().end ());
+ b != n; ++b)
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "INFO",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *b;
+ }
+
+ // FIELD
+ //
+ for (TABLE::FIELD_const_iterator
+ b (i.FIELD ().begin ()), n (i.FIELD ().end ());
+ b != n; ++b)
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "FIELD",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *b;
+ }
+
+ // PARAM
+ //
+ for (TABLE::PARAM_const_iterator
+ b (i.PARAM ().begin ()), n (i.PARAM ().end ());
+ b != n; ++b)
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "PARAM",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *b;
+ }
+
+ // GROUP
+ //
+ for (TABLE::GROUP_const_iterator
+ b (i.GROUP ().begin ()), n (i.GROUP ().end ());
+ b != n; ++b)
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "GROUP",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *b;
+ }
+
+ // LINK
+ //
+ for (TABLE::LINK_const_iterator
+ b (i.LINK ().begin ()), n (i.LINK ().end ());
+ b != n; ++b)
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "LINK",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *b;
+ }
+
+ // DATA
+ //
+ if (i.DATA ())
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "DATA",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *i.DATA ();
+ }
+
+ // ID
+ //
+ if (i.ID ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "ID",
+ e));
+
+ a << *i.ID ();
+ }
+
+ // name
+ //
+ if (i.name ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "name",
+ e));
+
+ a << *i.name ();
+ }
+
+ // ref
+ //
+ if (i.ref ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "ref",
+ e));
+
+ a << *i.ref ();
+ }
+
+ // ucd
+ //
+ if (i.ucd ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "ucd",
+ e));
+
+ a << *i.ucd ();
+ }
+
+ // utype
+ //
+ if (i.utype ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "utype",
+ e));
+
+ a << *i.utype ();
+ }
+
+ // nrows
+ //
+ if (i.nrows ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "nrows",
+ e));
+
+ a << *i.nrows ();
+ }
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const RESOURCE& i)
+ {
+ e << static_cast< const ::xml_schema::type& > (i);
+
+ // any_attribute
+ //
+ for (RESOURCE::any_attribute_const_iterator
+ b (i.any_attribute ().begin ()), n (i.any_attribute ().end ());
+ b != n; ++b)
+ {
+ ::xercesc::DOMAttr* a (
+ static_cast< ::xercesc::DOMAttr* > (
+ e.getOwnerDocument ()->importNode (
+ const_cast< ::xercesc::DOMAttr* > (&(*b)), true)));
+
+ if (a->getLocalName () == 0)
+ e.setAttributeNode (a);
+ else
+ e.setAttributeNodeNS (a);
+ }
+
+ // DESCRIPTION
+ //
+ if (i.DESCRIPTION ())
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "DESCRIPTION",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *i.DESCRIPTION ();
+ }
+
+ // INFO
+ //
+ for (RESOURCE::INFO_const_iterator
+ b (i.INFO ().begin ()), n (i.INFO ().end ());
+ b != n; ++b)
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "INFO",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *b;
+ }
+
+ // COOSYS
+ //
+ for (RESOURCE::COOSYS_const_iterator
+ b (i.COOSYS ().begin ()), n (i.COOSYS ().end ());
+ b != n; ++b)
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "COOSYS",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *b;
+ }
+
+ // GROUP
+ //
+ for (RESOURCE::GROUP_const_iterator
+ b (i.GROUP ().begin ()), n (i.GROUP ().end ());
+ b != n; ++b)
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "GROUP",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *b;
+ }
+
+ // PARAM
+ //
+ for (RESOURCE::PARAM_const_iterator
+ b (i.PARAM ().begin ()), n (i.PARAM ().end ());
+ b != n; ++b)
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "PARAM",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *b;
+ }
+
+ // LINK
+ //
+ for (RESOURCE::LINK_const_iterator
+ b (i.LINK ().begin ()), n (i.LINK ().end ());
+ b != n; ++b)
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "LINK",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *b;
+ }
+
+ // TABLE
+ //
+ for (RESOURCE::TABLE_const_iterator
+ b (i.TABLE ().begin ()), n (i.TABLE ().end ());
+ b != n; ++b)
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "TABLE",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *b;
+ }
+
+ // RESOURCE
+ //
+ for (RESOURCE::RESOURCE1_const_iterator
+ b (i.RESOURCE1 ().begin ()), n (i.RESOURCE1 ().end ());
+ b != n; ++b)
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "RESOURCE",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *b;
+ }
+
+ // any
+ //
+ for (RESOURCE::any_const_iterator
+ b (i.any ().begin ()), n (i.any ().end ());
+ b != n; ++b)
+ {
+ e.appendChild (
+ e.getOwnerDocument ()->importNode (
+ const_cast< ::xercesc::DOMElement* > (&(*b)), true));
+ }
+
+ // name
+ //
+ if (i.name ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "name",
+ e));
+
+ a << *i.name ();
+ }
+
+ // ID
+ //
+ if (i.ID ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "ID",
+ e));
+
+ a << *i.ID ();
+ }
+
+ // utype
+ //
+ if (i.utype ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "utype",
+ e));
+
+ a << *i.utype ();
+ }
+
+ // type
+ //
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "type",
+ e));
+
+ a << i.type ();
+ }
+ }
+
+ void
+ VOTABLE_write (::std::ostream& o,
+ const ::votable_13::VOTABLE& s,
+ const ::xml_schema::namespace_infomap& m,
+ const ::std::string& e,
+ ::xml_schema::flags f)
+ {
+ ::xsd::cxx::xml::auto_initializer i (
+ (f & ::xml_schema::flags::dont_initialize) == 0);
+
+ ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d (
+ ::votable_13::VOTABLE_write (s, m, f));
+
+ ::xsd::cxx::tree::error_handler< char > h;
+
+ ::xsd::cxx::xml::dom::ostream_format_target t (o);
+ if (!::xsd::cxx::xml::dom::serialize (t, *d, e, h, f))
+ {
+ h.throw_if_failed< ::xsd::cxx::tree::serialization< char > > ();
+ }
+ }
+
+ void
+ VOTABLE_write (::std::ostream& o,
+ const ::votable_13::VOTABLE& s,
+ ::xml_schema::error_handler& h,
+ const ::xml_schema::namespace_infomap& m,
+ const ::std::string& e,
+ ::xml_schema::flags f)
+ {
+ ::xsd::cxx::xml::auto_initializer i (
+ (f & ::xml_schema::flags::dont_initialize) == 0);
+
+ ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d (
+ ::votable_13::VOTABLE_write (s, m, f));
+ ::xsd::cxx::xml::dom::ostream_format_target t (o);
+ if (!::xsd::cxx::xml::dom::serialize (t, *d, e, h, f))
+ {
+ throw ::xsd::cxx::tree::serialization< char > ();
+ }
+ }
+
+ void
+ VOTABLE_write (::std::ostream& o,
+ const ::votable_13::VOTABLE& s,
+ ::xercesc::DOMErrorHandler& h,
+ const ::xml_schema::namespace_infomap& m,
+ const ::std::string& e,
+ ::xml_schema::flags f)
+ {
+ ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d (
+ ::votable_13::VOTABLE_write (s, m, f));
+ ::xsd::cxx::xml::dom::ostream_format_target t (o);
+ if (!::xsd::cxx::xml::dom::serialize (t, *d, e, h, f))
+ {
+ throw ::xsd::cxx::tree::serialization< char > ();
+ }
+ }
+
+ void
+ VOTABLE_write (::xercesc::XMLFormatTarget& t,
+ const ::votable_13::VOTABLE& s,
+ const ::xml_schema::namespace_infomap& m,
+ const ::std::string& e,
+ ::xml_schema::flags f)
+ {
+ ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d (
+ ::votable_13::VOTABLE_write (s, m, f));
+
+ ::xsd::cxx::tree::error_handler< char > h;
+
+ if (!::xsd::cxx::xml::dom::serialize (t, *d, e, h, f))
+ {
+ h.throw_if_failed< ::xsd::cxx::tree::serialization< char > > ();
+ }
+ }
+
+ void
+ VOTABLE_write (::xercesc::XMLFormatTarget& t,
+ const ::votable_13::VOTABLE& s,
+ ::xml_schema::error_handler& h,
+ const ::xml_schema::namespace_infomap& m,
+ const ::std::string& e,
+ ::xml_schema::flags f)
+ {
+ ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d (
+ ::votable_13::VOTABLE_write (s, m, f));
+ if (!::xsd::cxx::xml::dom::serialize (t, *d, e, h, f))
+ {
+ throw ::xsd::cxx::tree::serialization< char > ();
+ }
+ }
+
+ void
+ VOTABLE_write (::xercesc::XMLFormatTarget& t,
+ const ::votable_13::VOTABLE& s,
+ ::xercesc::DOMErrorHandler& h,
+ const ::xml_schema::namespace_infomap& m,
+ const ::std::string& e,
+ ::xml_schema::flags f)
+ {
+ ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d (
+ ::votable_13::VOTABLE_write (s, m, f));
+ if (!::xsd::cxx::xml::dom::serialize (t, *d, e, h, f))
+ {
+ throw ::xsd::cxx::tree::serialization< char > ();
+ }
+ }
+
+ void
+ VOTABLE_write (::xercesc::DOMDocument& d,
+ const ::votable_13::VOTABLE& s,
+ ::xml_schema::flags)
+ {
+ ::xercesc::DOMElement& e (*d.getDocumentElement ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (e));
+
+ if (n.name () == "VOTABLE" &&
+ n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ e << s;
+ }
+ else
+ {
+ throw ::xsd::cxx::tree::unexpected_element < char > (
+ n.name (),
+ n.namespace_ (),
+ "VOTABLE",
+ "http://www.ivoa.net/xml/VOTable/v1.3");
+ }
+ }
+
+ ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument >
+ VOTABLE_write (const ::votable_13::VOTABLE& s,
+ const ::xml_schema::namespace_infomap& m,
+ ::xml_schema::flags f)
+ {
+ ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d (
+ ::xsd::cxx::xml::dom::serialize< char > (
+ "VOTABLE",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ m, f));
+
+ ::votable_13::VOTABLE_write (*d, s, f);
+ return d;
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const type& i)
+ {
+ e << static_cast< const ::xml_schema::nmtoken& > (i);
+ }
+
+ void
+ operator<< (::xercesc::DOMAttr& a, const type& i)
+ {
+ a << static_cast< const ::xml_schema::nmtoken& > (i);
+ }
+
+ void
+ operator<< (::xml_schema::list_stream& l,
+ const type& i)
+ {
+ l << static_cast< const ::xml_schema::nmtoken& > (i);
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const system& i)
+ {
+ e << static_cast< const ::xml_schema::nmtoken& > (i);
+ }
+
+ void
+ operator<< (::xercesc::DOMAttr& a, const system& i)
+ {
+ a << static_cast< const ::xml_schema::nmtoken& > (i);
+ }
+
+ void
+ operator<< (::xml_schema::list_stream& l,
+ const system& i)
+ {
+ l << static_cast< const ::xml_schema::nmtoken& > (i);
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const type1& i)
+ {
+ e << static_cast< const ::xml_schema::nmtoken& > (i);
+ }
+
+ void
+ operator<< (::xercesc::DOMAttr& a, const type1& i)
+ {
+ a << static_cast< const ::xml_schema::nmtoken& > (i);
+ }
+
+ void
+ operator<< (::xml_schema::list_stream& l,
+ const type1& i)
+ {
+ l << static_cast< const ::xml_schema::nmtoken& > (i);
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const type2& i)
+ {
+ e << static_cast< const ::xml_schema::nmtoken& > (i);
+ }
+
+ void
+ operator<< (::xercesc::DOMAttr& a, const type2& i)
+ {
+ a << static_cast< const ::xml_schema::nmtoken& > (i);
+ }
+
+ void
+ operator<< (::xml_schema::list_stream& l,
+ const type2& i)
+ {
+ l << static_cast< const ::xml_schema::nmtoken& > (i);
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const actuate& i)
+ {
+ e << static_cast< const ::xml_schema::nmtoken& > (i);
+ }
+
+ void
+ operator<< (::xercesc::DOMAttr& a, const actuate& i)
+ {
+ a << static_cast< const ::xml_schema::nmtoken& > (i);
+ }
+
+ void
+ operator<< (::xml_schema::list_stream& l,
+ const actuate& i)
+ {
+ l << static_cast< const ::xml_schema::nmtoken& > (i);
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const type3& i)
+ {
+ e << static_cast< const ::xml_schema::nmtoken& > (i);
+ }
+
+ void
+ operator<< (::xercesc::DOMAttr& a, const type3& i)
+ {
+ a << static_cast< const ::xml_schema::nmtoken& > (i);
+ }
+
+ void
+ operator<< (::xml_schema::list_stream& l,
+ const type3& i)
+ {
+ l << static_cast< const ::xml_schema::nmtoken& > (i);
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const VOTABLE& i)
+ {
+ e << static_cast< const ::xml_schema::type& > (i);
+
+ // DESCRIPTION
+ //
+ if (i.DESCRIPTION ())
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "DESCRIPTION",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *i.DESCRIPTION ();
+ }
+
+ // DEFINITIONS
+ //
+ if (i.DEFINITIONS ())
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "DEFINITIONS",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *i.DEFINITIONS ();
+ }
+
+ // COOSYS
+ //
+ for (VOTABLE::COOSYS_const_iterator
+ b (i.COOSYS ().begin ()), n (i.COOSYS ().end ());
+ b != n; ++b)
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "COOSYS",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *b;
+ }
+
+ // GROUP
+ //
+ for (VOTABLE::GROUP_const_iterator
+ b (i.GROUP ().begin ()), n (i.GROUP ().end ());
+ b != n; ++b)
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "GROUP",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *b;
+ }
+
+ // PARAM
+ //
+ for (VOTABLE::PARAM_const_iterator
+ b (i.PARAM ().begin ()), n (i.PARAM ().end ());
+ b != n; ++b)
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "PARAM",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *b;
+ }
+
+ // INFO
+ //
+ for (VOTABLE::INFO_const_iterator
+ b (i.INFO ().begin ()), n (i.INFO ().end ());
+ b != n; ++b)
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "INFO",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *b;
+ }
+
+ // RESOURCE
+ //
+ for (VOTABLE::RESOURCE_const_iterator
+ b (i.RESOURCE ().begin ()), n (i.RESOURCE ().end ());
+ b != n; ++b)
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "RESOURCE",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *b;
+ }
+
+ // ID
+ //
+ if (i.ID ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "ID",
+ e));
+
+ a << *i.ID ();
+ }
+
+ // version
+ //
+ if (i.version ())
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "version",
+ e));
+
+ a << *i.version ();
+ }
+ }
+
+ void
+ operator<< (::xercesc::DOMElement& e, const version& i)
+ {
+ e << static_cast< const ::xml_schema::nmtoken& > (i);
+ }
+
+ void
+ operator<< (::xercesc::DOMAttr& a, const version& i)
+ {
+ a << static_cast< const ::xml_schema::nmtoken& > (i);
+ }
+
+ void
+ operator<< (::xml_schema::list_stream& l,
+ const version& i)
+ {
+ l << static_cast< const ::xml_schema::nmtoken& > (i);
+ }
+}
+
+#include
+
+// Begin epilogue.
+//
+//
+// End epilogue.
+
diff --git a/applications/gaia/gaiavo/generic/VOTable1.3.hxx b/applications/gaia/gaiavo/generic/VOTable1.3.hxx
new file mode 100644
index 00000000000..267bbb3177c
--- /dev/null
+++ b/applications/gaia/gaiavo/generic/VOTable1.3.hxx
@@ -0,0 +1,4773 @@
+// Copyright (C) 2005-2010 Code Synthesis Tools CC
+//
+// This program was generated by CodeSynthesis XSD, an XML Schema to
+// C++ data binding compiler.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2 as
+// published by the Free Software Foundation.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+//
+// In addition, as a special exception, Code Synthesis Tools CC gives
+// permission to link this program with the Xerces-C++ library (or with
+// modified versions of Xerces-C++ that use the same license as Xerces-C++),
+// and distribute linked combinations including the two. You must obey
+// the GNU General Public License version 2 in all respects for all of
+// the code used other than Xerces-C++. If you modify this copy of the
+// program, you may extend this exception to your version of the program,
+// but you are not obligated to do so. If you do not wish to do so, delete
+// this exception statement from your version.
+//
+// Furthermore, Code Synthesis Tools CC makes a special exception for
+// the Free/Libre and Open Source Software (FLOSS) which is described
+// in the accompanying FLOSSE file.
+//
+
+#ifndef VOTABLE1_3_HXX
+#define VOTABLE1_3_HXX
+
+// Begin prologue.
+//
+//
+// End prologue.
+
+#include
+
+#if (XSD_INT_VERSION != 3030000L)
+#error XSD runtime version mismatch
+#endif
+
+#include
+
+#ifndef XSD_USE_CHAR
+#define XSD_USE_CHAR
+#endif
+
+#ifndef XSD_CXX_TREE_USE_CHAR
+#define XSD_CXX_TREE_USE_CHAR
+#endif
+
+#include
+
+#include
+#include
+#include
+
+#include
+
+#include
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+namespace xml_schema
+{
+ // anyType and anySimpleType.
+ //
+ typedef ::xsd::cxx::tree::type type;
+ typedef ::xsd::cxx::tree::simple_type< type > simple_type;
+ typedef ::xsd::cxx::tree::type container;
+
+ // 8-bit
+ //
+ typedef signed char byte;
+ typedef unsigned char unsigned_byte;
+
+ // 16-bit
+ //
+ typedef short short_;
+ typedef unsigned short unsigned_short;
+
+ // 32-bit
+ //
+ typedef int int_;
+ typedef unsigned int unsigned_int;
+
+ // 64-bit
+ //
+ typedef long long long_;
+ typedef unsigned long long unsigned_long;
+
+ // Supposed to be arbitrary-length integral types.
+ //
+ typedef long long integer;
+ typedef long long non_positive_integer;
+ typedef unsigned long long non_negative_integer;
+ typedef unsigned long long positive_integer;
+ typedef long long negative_integer;
+
+ // Boolean.
+ //
+ typedef bool boolean;
+
+ // Floating-point types.
+ //
+ typedef float float_;
+ typedef double double_;
+ typedef double decimal;
+
+ // String types.
+ //
+ typedef ::xsd::cxx::tree::string< char, simple_type > string;
+ typedef ::xsd::cxx::tree::normalized_string< char, string > normalized_string;
+ typedef ::xsd::cxx::tree::token< char, normalized_string > token;
+ typedef ::xsd::cxx::tree::name< char, token > name;
+ typedef ::xsd::cxx::tree::nmtoken< char, token > nmtoken;
+ typedef ::xsd::cxx::tree::nmtokens< char, simple_type, nmtoken > nmtokens;
+ typedef ::xsd::cxx::tree::ncname< char, name > ncname;
+ typedef ::xsd::cxx::tree::language< char, token > language;
+
+ // ID/IDREF.
+ //
+ typedef ::xsd::cxx::tree::id< char, ncname > id;
+ typedef ::xsd::cxx::tree::idref< char, ncname, type > idref;
+ typedef ::xsd::cxx::tree::idrefs< char, simple_type, idref > idrefs;
+
+ // URI.
+ //
+ typedef ::xsd::cxx::tree::uri< char, simple_type > uri;
+
+ // Qualified name.
+ //
+ typedef ::xsd::cxx::tree::qname< char, simple_type, uri, ncname > qname;
+
+ // Binary.
+ //
+ typedef ::xsd::cxx::tree::buffer< char > buffer;
+ typedef ::xsd::cxx::tree::base64_binary< char, simple_type > base64_binary;
+ typedef ::xsd::cxx::tree::hex_binary< char, simple_type > hex_binary;
+
+ // Date/time.
+ //
+ typedef ::xsd::cxx::tree::time_zone time_zone;
+ typedef ::xsd::cxx::tree::date< char, simple_type > date;
+ typedef ::xsd::cxx::tree::date_time< char, simple_type > date_time;
+ typedef ::xsd::cxx::tree::duration< char, simple_type > duration;
+ typedef ::xsd::cxx::tree::gday< char, simple_type > gday;
+ typedef ::xsd::cxx::tree::gmonth< char, simple_type > gmonth;
+ typedef ::xsd::cxx::tree::gmonth_day< char, simple_type > gmonth_day;
+ typedef ::xsd::cxx::tree::gyear< char, simple_type > gyear;
+ typedef ::xsd::cxx::tree::gyear_month< char, simple_type > gyear_month;
+ typedef ::xsd::cxx::tree::time< char, simple_type > time;
+
+ // Entity.
+ //
+ typedef ::xsd::cxx::tree::entity< char, ncname > entity;
+ typedef ::xsd::cxx::tree::entities< char, simple_type, entity > entities;
+
+ // Namespace information and list stream. Used in
+ // serialization functions.
+ //
+ typedef ::xsd::cxx::xml::dom::namespace_info< char > namespace_info;
+ typedef ::xsd::cxx::xml::dom::namespace_infomap< char > namespace_infomap;
+ typedef ::xsd::cxx::tree::list_stream< char > list_stream;
+ typedef ::xsd::cxx::tree::as_double< double_ > as_double;
+ typedef ::xsd::cxx::tree::as_decimal< decimal > as_decimal;
+ typedef ::xsd::cxx::tree::facet facet;
+
+ // Flags and properties.
+ //
+ typedef ::xsd::cxx::tree::flags flags;
+ typedef ::xsd::cxx::tree::properties< char > properties;
+
+ // Parsing/serialization diagnostics.
+ //
+ typedef ::xsd::cxx::tree::severity severity;
+ typedef ::xsd::cxx::tree::error< char > error;
+ typedef ::xsd::cxx::tree::diagnostics< char > diagnostics;
+
+ // Exceptions.
+ //
+ typedef ::xsd::cxx::tree::exception< char > exception;
+ typedef ::xsd::cxx::tree::bounds< char > bounds;
+ typedef ::xsd::cxx::tree::duplicate_id< char > duplicate_id;
+ typedef ::xsd::cxx::tree::parsing< char > parsing;
+ typedef ::xsd::cxx::tree::expected_element< char > expected_element;
+ typedef ::xsd::cxx::tree::unexpected_element< char > unexpected_element;
+ typedef ::xsd::cxx::tree::expected_attribute< char > expected_attribute;
+ typedef ::xsd::cxx::tree::unexpected_enumerator< char > unexpected_enumerator;
+ typedef ::xsd::cxx::tree::expected_text_content< char > expected_text_content;
+ typedef ::xsd::cxx::tree::no_prefix_mapping< char > no_prefix_mapping;
+ typedef ::xsd::cxx::tree::serialization< char > serialization;
+
+ // Error handler callback interface.
+ //
+ typedef ::xsd::cxx::xml::error_handler< char > error_handler;
+
+ // DOM interaction.
+ //
+ namespace dom
+ {
+ // Automatic pointer for DOMDocument.
+ //
+ using ::xsd::cxx::xml::dom::auto_ptr;
+
+#ifndef XSD_CXX_TREE_TREE_NODE_KEY__XML_SCHEMA
+#define XSD_CXX_TREE_TREE_NODE_KEY__XML_SCHEMA
+ // DOM user data key for back pointers to tree nodes.
+ //
+ const XMLCh* const tree_node_key = ::xsd::cxx::tree::user_data_keys::node;
+#endif
+ }
+}
+
+// Forward declarations.
+//
+namespace votable_13
+{
+ class anyTEXT;
+ class astroYear;
+ class ucdType;
+ class arrayDEF;
+ class encodingType;
+ class dataType;
+ class precType;
+ class yesno;
+ class MIN;
+ class MAX;
+ class OPTION;
+ class VALUES;
+ class LINK;
+ class INFO;
+ class COOSYS;
+ class DEFINITIONS;
+ class FIELD;
+ class PARAM;
+ class GROUP;
+ class FIELDref;
+ class PARAMref;
+ class DATA;
+ class TABLEDATA;
+ class TD;
+ class TR;
+ class FITS;
+ class BINARY;
+ class STREAM;
+ class TABLE;
+ class RESOURCE;
+ class type;
+ class system;
+ class type1;
+ class type2;
+ class actuate;
+ class type3;
+ class VOTABLE;
+ class version;
+}
+
+
+#include // std::auto_ptr
+#include // std::numeric_limits
+#include // std::binary_search
+
+#include
+
+#include
+#include
+#include
+#include
+
+#include
+
+#include
+
+namespace votable_13
+{
+ class anyTEXT: public ::xml_schema::type
+ {
+ public:
+ // any
+ //
+ typedef ::xsd::cxx::tree::element_sequence any_sequence;
+ typedef any_sequence::iterator any_iterator;
+ typedef any_sequence::const_iterator any_const_iterator;
+
+ const any_sequence&
+ any () const;
+
+ any_sequence&
+ any ();
+
+ void
+ any (const any_sequence& s);
+
+ // DOMDocument for wildcard content.
+ //
+ const ::xercesc::DOMDocument&
+ dom_document () const;
+
+ ::xercesc::DOMDocument&
+ dom_document ();
+
+ // Constructors.
+ //
+ anyTEXT ();
+
+ anyTEXT (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ anyTEXT (const anyTEXT& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual anyTEXT*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ virtual
+ ~anyTEXT ();
+
+ // Implementation.
+ //
+ protected:
+ void
+ parse (::xsd::cxx::xml::dom::parser< char >&,
+ ::xml_schema::flags);
+
+ protected:
+ ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > dom_document_;
+
+ any_sequence any_;
+ };
+
+ class astroYear: public ::xml_schema::token
+ {
+ public:
+ // Constructors.
+ //
+ astroYear ();
+
+ astroYear (const char*);
+
+ astroYear (const ::std::string&);
+
+ astroYear (const ::xml_schema::token&);
+
+ astroYear (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ astroYear (const ::xercesc::DOMAttr& a,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ astroYear (const ::std::string& s,
+ const ::xercesc::DOMElement* e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ astroYear (const astroYear& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual astroYear*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ virtual
+ ~astroYear ();
+ };
+
+ class ucdType: public ::xml_schema::token
+ {
+ public:
+ // Constructors.
+ //
+ ucdType ();
+
+ ucdType (const char*);
+
+ ucdType (const ::std::string&);
+
+ ucdType (const ::xml_schema::token&);
+
+ ucdType (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ ucdType (const ::xercesc::DOMAttr& a,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ ucdType (const ::std::string& s,
+ const ::xercesc::DOMElement* e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ ucdType (const ucdType& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual ucdType*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ virtual
+ ~ucdType ();
+ };
+
+ class arrayDEF: public ::xml_schema::token
+ {
+ public:
+ // Constructors.
+ //
+ arrayDEF ();
+
+ arrayDEF (const char*);
+
+ arrayDEF (const ::std::string&);
+
+ arrayDEF (const ::xml_schema::token&);
+
+ arrayDEF (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ arrayDEF (const ::xercesc::DOMAttr& a,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ arrayDEF (const ::std::string& s,
+ const ::xercesc::DOMElement* e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ arrayDEF (const arrayDEF& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual arrayDEF*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ virtual
+ ~arrayDEF ();
+ };
+
+ class encodingType: public ::xml_schema::nmtoken
+ {
+ public:
+ enum value
+ {
+ gzip,
+ base64,
+ dynamic,
+ none
+ };
+
+ encodingType (value v);
+
+ encodingType (const char* v);
+
+ encodingType (const ::std::string& v);
+
+ encodingType (const ::xml_schema::nmtoken& v);
+
+ encodingType (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ encodingType (const ::xercesc::DOMAttr& a,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ encodingType (const ::std::string& s,
+ const ::xercesc::DOMElement* e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ encodingType (const encodingType& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual encodingType*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ encodingType&
+ operator= (value v);
+
+ virtual
+ operator value () const
+ {
+ return _xsd_encodingType_convert ();
+ }
+
+ protected:
+ value
+ _xsd_encodingType_convert () const;
+
+ public:
+ static const char* const _xsd_encodingType_literals_[4];
+ static const value _xsd_encodingType_indexes_[4];
+ };
+
+ class dataType: public ::xml_schema::nmtoken
+ {
+ public:
+ enum value
+ {
+ boolean,
+ bit,
+ unsignedByte,
+ short_,
+ int_,
+ long_,
+ char_,
+ unicodeChar,
+ float_,
+ double_,
+ floatComplex,
+ doubleComplex
+ };
+
+ dataType (value v);
+
+ dataType (const char* v);
+
+ dataType (const ::std::string& v);
+
+ dataType (const ::xml_schema::nmtoken& v);
+
+ dataType (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ dataType (const ::xercesc::DOMAttr& a,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ dataType (const ::std::string& s,
+ const ::xercesc::DOMElement* e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ dataType (const dataType& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual dataType*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ dataType&
+ operator= (value v);
+
+ virtual
+ operator value () const
+ {
+ return _xsd_dataType_convert ();
+ }
+
+ protected:
+ value
+ _xsd_dataType_convert () const;
+
+ public:
+ static const char* const _xsd_dataType_literals_[12];
+ static const value _xsd_dataType_indexes_[12];
+ };
+
+ class precType: public ::xml_schema::token
+ {
+ public:
+ // Constructors.
+ //
+ precType ();
+
+ precType (const char*);
+
+ precType (const ::std::string&);
+
+ precType (const ::xml_schema::token&);
+
+ precType (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ precType (const ::xercesc::DOMAttr& a,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ precType (const ::std::string& s,
+ const ::xercesc::DOMElement* e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ precType (const precType& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual precType*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ virtual
+ ~precType ();
+ };
+
+ class yesno: public ::xml_schema::nmtoken
+ {
+ public:
+ enum value
+ {
+ yes,
+ no
+ };
+
+ yesno (value v);
+
+ yesno (const char* v);
+
+ yesno (const ::std::string& v);
+
+ yesno (const ::xml_schema::nmtoken& v);
+
+ yesno (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ yesno (const ::xercesc::DOMAttr& a,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ yesno (const ::std::string& s,
+ const ::xercesc::DOMElement* e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ yesno (const yesno& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual yesno*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ yesno&
+ operator= (value v);
+
+ virtual
+ operator value () const
+ {
+ return _xsd_yesno_convert ();
+ }
+
+ protected:
+ value
+ _xsd_yesno_convert () const;
+
+ public:
+ static const char* const _xsd_yesno_literals_[2];
+ static const value _xsd_yesno_indexes_[2];
+ };
+
+ class MIN: public ::xml_schema::type
+ {
+ public:
+ // value
+ //
+ typedef ::xml_schema::string value_type;
+ typedef ::xsd::cxx::tree::traits< value_type, char > value_traits;
+
+ const value_type&
+ value () const;
+
+ value_type&
+ value ();
+
+ void
+ value (const value_type& x);
+
+ void
+ value (::std::auto_ptr< value_type > p);
+
+ // inclusive
+ //
+ typedef ::votable_13::yesno inclusive_type;
+ typedef ::xsd::cxx::tree::traits< inclusive_type, char > inclusive_traits;
+
+ const inclusive_type&
+ inclusive () const;
+
+ inclusive_type&
+ inclusive ();
+
+ void
+ inclusive (const inclusive_type& x);
+
+ void
+ inclusive (::std::auto_ptr< inclusive_type > p);
+
+ static const inclusive_type&
+ inclusive_default_value ();
+
+ // Constructors.
+ //
+ MIN (const value_type&);
+
+ MIN (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ MIN (const MIN& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual MIN*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ virtual
+ ~MIN ();
+
+ // Implementation.
+ //
+ protected:
+ void
+ parse (::xsd::cxx::xml::dom::parser< char >&,
+ ::xml_schema::flags);
+
+ protected:
+ ::xsd::cxx::tree::one< value_type > value_;
+ ::xsd::cxx::tree::one< inclusive_type > inclusive_;
+ static const inclusive_type inclusive_default_value_;
+ };
+
+ class MAX: public ::xml_schema::type
+ {
+ public:
+ // value
+ //
+ typedef ::xml_schema::string value_type;
+ typedef ::xsd::cxx::tree::traits< value_type, char > value_traits;
+
+ const value_type&
+ value () const;
+
+ value_type&
+ value ();
+
+ void
+ value (const value_type& x);
+
+ void
+ value (::std::auto_ptr< value_type > p);
+
+ // inclusive
+ //
+ typedef ::votable_13::yesno inclusive_type;
+ typedef ::xsd::cxx::tree::traits< inclusive_type, char > inclusive_traits;
+
+ const inclusive_type&
+ inclusive () const;
+
+ inclusive_type&
+ inclusive ();
+
+ void
+ inclusive (const inclusive_type& x);
+
+ void
+ inclusive (::std::auto_ptr< inclusive_type > p);
+
+ static const inclusive_type&
+ inclusive_default_value ();
+
+ // Constructors.
+ //
+ MAX (const value_type&);
+
+ MAX (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ MAX (const MAX& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual MAX*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ virtual
+ ~MAX ();
+
+ // Implementation.
+ //
+ protected:
+ void
+ parse (::xsd::cxx::xml::dom::parser< char >&,
+ ::xml_schema::flags);
+
+ protected:
+ ::xsd::cxx::tree::one< value_type > value_;
+ ::xsd::cxx::tree::one< inclusive_type > inclusive_;
+ static const inclusive_type inclusive_default_value_;
+ };
+
+ class OPTION: public ::xml_schema::type
+ {
+ public:
+ // OPTION
+ //
+ typedef ::votable_13::OPTION OPTION1_type;
+ typedef ::xsd::cxx::tree::sequence< OPTION1_type > OPTION1_sequence;
+ typedef OPTION1_sequence::iterator OPTION1_iterator;
+ typedef OPTION1_sequence::const_iterator OPTION1_const_iterator;
+ typedef ::xsd::cxx::tree::traits< OPTION1_type, char > OPTION1_traits;
+
+ const OPTION1_sequence&
+ OPTION1 () const;
+
+ OPTION1_sequence&
+ OPTION1 ();
+
+ void
+ OPTION1 (const OPTION1_sequence& s);
+
+ // name
+ //
+ typedef ::xml_schema::token name_type;
+ typedef ::xsd::cxx::tree::optional< name_type > name_optional;
+ typedef ::xsd::cxx::tree::traits< name_type, char > name_traits;
+
+ const name_optional&
+ name () const;
+
+ name_optional&
+ name ();
+
+ void
+ name (const name_type& x);
+
+ void
+ name (const name_optional& x);
+
+ void
+ name (::std::auto_ptr< name_type > p);
+
+ // value
+ //
+ typedef ::xml_schema::string value_type;
+ typedef ::xsd::cxx::tree::traits< value_type, char > value_traits;
+
+ const value_type&
+ value () const;
+
+ value_type&
+ value ();
+
+ void
+ value (const value_type& x);
+
+ void
+ value (::std::auto_ptr< value_type > p);
+
+ // Constructors.
+ //
+ OPTION (const value_type&);
+
+ OPTION (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ OPTION (const OPTION& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual OPTION*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ virtual
+ ~OPTION ();
+
+ // Implementation.
+ //
+ protected:
+ void
+ parse (::xsd::cxx::xml::dom::parser< char >&,
+ ::xml_schema::flags);
+
+ protected:
+ OPTION1_sequence OPTION1_;
+ name_optional name_;
+ ::xsd::cxx::tree::one< value_type > value_;
+ };
+
+ class VALUES: public ::xml_schema::type
+ {
+ public:
+ // MIN
+ //
+ typedef ::votable_13::MIN MIN_type;
+ typedef ::xsd::cxx::tree::optional< MIN_type > MIN_optional;
+ typedef ::xsd::cxx::tree::traits< MIN_type, char > MIN_traits;
+
+ const MIN_optional&
+ MIN () const;
+
+ MIN_optional&
+ MIN ();
+
+ void
+ MIN (const MIN_type& x);
+
+ void
+ MIN (const MIN_optional& x);
+
+ void
+ MIN (::std::auto_ptr< MIN_type > p);
+
+ // MAX
+ //
+ typedef ::votable_13::MAX MAX_type;
+ typedef ::xsd::cxx::tree::optional< MAX_type > MAX_optional;
+ typedef ::xsd::cxx::tree::traits< MAX_type, char > MAX_traits;
+
+ const MAX_optional&
+ MAX () const;
+
+ MAX_optional&
+ MAX ();
+
+ void
+ MAX (const MAX_type& x);
+
+ void
+ MAX (const MAX_optional& x);
+
+ void
+ MAX (::std::auto_ptr< MAX_type > p);
+
+ // OPTION
+ //
+ typedef ::votable_13::OPTION OPTION_type;
+ typedef ::xsd::cxx::tree::sequence< OPTION_type > OPTION_sequence;
+ typedef OPTION_sequence::iterator OPTION_iterator;
+ typedef OPTION_sequence::const_iterator OPTION_const_iterator;
+ typedef ::xsd::cxx::tree::traits< OPTION_type, char > OPTION_traits;
+
+ const OPTION_sequence&
+ OPTION () const;
+
+ OPTION_sequence&
+ OPTION ();
+
+ void
+ OPTION (const OPTION_sequence& s);
+
+ // ID
+ //
+ typedef ::xml_schema::id ID_type;
+ typedef ::xsd::cxx::tree::optional< ID_type > ID_optional;
+ typedef ::xsd::cxx::tree::traits< ID_type, char > ID_traits;
+
+ const ID_optional&
+ ID () const;
+
+ ID_optional&
+ ID ();
+
+ void
+ ID (const ID_type& x);
+
+ void
+ ID (const ID_optional& x);
+
+ void
+ ID (::std::auto_ptr< ID_type > p);
+
+ // type
+ //
+ typedef ::votable_13::type type_type;
+ typedef ::xsd::cxx::tree::traits< type_type, char > type_traits;
+
+ const type_type&
+ type () const;
+
+ type_type&
+ type ();
+
+ void
+ type (const type_type& x);
+
+ void
+ type (::std::auto_ptr< type_type > p);
+
+ static const type_type&
+ type_default_value ();
+
+ // null
+ //
+ typedef ::xml_schema::token null_type;
+ typedef ::xsd::cxx::tree::optional< null_type > null_optional;
+ typedef ::xsd::cxx::tree::traits< null_type, char > null_traits;
+
+ const null_optional&
+ null () const;
+
+ null_optional&
+ null ();
+
+ void
+ null (const null_type& x);
+
+ void
+ null (const null_optional& x);
+
+ void
+ null (::std::auto_ptr< null_type > p);
+
+ // ref
+ //
+ typedef ::xml_schema::idref ref_type;
+ typedef ::xsd::cxx::tree::optional< ref_type > ref_optional;
+ typedef ::xsd::cxx::tree::traits< ref_type, char > ref_traits;
+
+ const ref_optional&
+ ref () const;
+
+ ref_optional&
+ ref ();
+
+ void
+ ref (const ref_type& x);
+
+ void
+ ref (const ref_optional& x);
+
+ void
+ ref (::std::auto_ptr< ref_type > p);
+
+ // Constructors.
+ //
+ VALUES ();
+
+ VALUES (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ VALUES (const VALUES& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual VALUES*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ virtual
+ ~VALUES ();
+
+ // Implementation.
+ //
+ protected:
+ void
+ parse (::xsd::cxx::xml::dom::parser< char >&,
+ ::xml_schema::flags);
+
+ protected:
+ MIN_optional MIN_;
+ MAX_optional MAX_;
+ OPTION_sequence OPTION_;
+ ID_optional ID_;
+ ::xsd::cxx::tree::one< type_type > type_;
+ static const type_type type_default_value_;
+ null_optional null_;
+ ref_optional ref_;
+ };
+
+ class LINK: public ::xml_schema::type
+ {
+ public:
+ // ID
+ //
+ typedef ::xml_schema::id ID_type;
+ typedef ::xsd::cxx::tree::optional< ID_type > ID_optional;
+ typedef ::xsd::cxx::tree::traits< ID_type, char > ID_traits;
+
+ const ID_optional&
+ ID () const;
+
+ ID_optional&
+ ID ();
+
+ void
+ ID (const ID_type& x);
+
+ void
+ ID (const ID_optional& x);
+
+ void
+ ID (::std::auto_ptr< ID_type > p);
+
+ // content-role
+ //
+ typedef ::xml_schema::token content_role_type;
+ typedef ::xsd::cxx::tree::optional< content_role_type > content_role_optional;
+ typedef ::xsd::cxx::tree::traits< content_role_type, char > content_role_traits;
+
+ const content_role_optional&
+ content_role () const;
+
+ content_role_optional&
+ content_role ();
+
+ void
+ content_role (const content_role_type& x);
+
+ void
+ content_role (const content_role_optional& x);
+
+ void
+ content_role (::std::auto_ptr< content_role_type > p);
+
+ // content-type
+ //
+ typedef ::xml_schema::token content_type_type;
+ typedef ::xsd::cxx::tree::optional< content_type_type > content_type_optional;
+ typedef ::xsd::cxx::tree::traits< content_type_type, char > content_type_traits;
+
+ const content_type_optional&
+ content_type () const;
+
+ content_type_optional&
+ content_type ();
+
+ void
+ content_type (const content_type_type& x);
+
+ void
+ content_type (const content_type_optional& x);
+
+ void
+ content_type (::std::auto_ptr< content_type_type > p);
+
+ // title
+ //
+ typedef ::xml_schema::string title_type;
+ typedef ::xsd::cxx::tree::optional< title_type > title_optional;
+ typedef ::xsd::cxx::tree::traits< title_type, char > title_traits;
+
+ const title_optional&
+ title () const;
+
+ title_optional&
+ title ();
+
+ void
+ title (const title_type& x);
+
+ void
+ title (const title_optional& x);
+
+ void
+ title (::std::auto_ptr< title_type > p);
+
+ // value
+ //
+ typedef ::xml_schema::string value_type;
+ typedef ::xsd::cxx::tree::optional< value_type > value_optional;
+ typedef ::xsd::cxx::tree::traits< value_type, char > value_traits;
+
+ const value_optional&
+ value () const;
+
+ value_optional&
+ value ();
+
+ void
+ value (const value_type& x);
+
+ void
+ value (const value_optional& x);
+
+ void
+ value (::std::auto_ptr< value_type > p);
+
+ // href
+ //
+ typedef ::xml_schema::uri href_type;
+ typedef ::xsd::cxx::tree::optional< href_type > href_optional;
+ typedef ::xsd::cxx::tree::traits< href_type, char > href_traits;
+
+ const href_optional&
+ href () const;
+
+ href_optional&
+ href ();
+
+ void
+ href (const href_type& x);
+
+ void
+ href (const href_optional& x);
+
+ void
+ href (::std::auto_ptr< href_type > p);
+
+ // gref
+ //
+ typedef ::xml_schema::token gref_type;
+ typedef ::xsd::cxx::tree::optional< gref_type > gref_optional;
+ typedef ::xsd::cxx::tree::traits< gref_type, char > gref_traits;
+
+ const gref_optional&
+ gref () const;
+
+ gref_optional&
+ gref ();
+
+ void
+ gref (const gref_type& x);
+
+ void
+ gref (const gref_optional& x);
+
+ void
+ gref (::std::auto_ptr< gref_type > p);
+
+ // action
+ //
+ typedef ::xml_schema::uri action_type;
+ typedef ::xsd::cxx::tree::optional< action_type > action_optional;
+ typedef ::xsd::cxx::tree::traits< action_type, char > action_traits;
+
+ const action_optional&
+ action () const;
+
+ action_optional&
+ action ();
+
+ void
+ action (const action_type& x);
+
+ void
+ action (const action_optional& x);
+
+ void
+ action (::std::auto_ptr< action_type > p);
+
+ // Constructors.
+ //
+ LINK ();
+
+ LINK (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ LINK (const LINK& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual LINK*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ virtual
+ ~LINK ();
+
+ // Implementation.
+ //
+ protected:
+ void
+ parse (::xsd::cxx::xml::dom::parser< char >&,
+ ::xml_schema::flags);
+
+ protected:
+ ID_optional ID_;
+ content_role_optional content_role_;
+ content_type_optional content_type_;
+ title_optional title_;
+ value_optional value_;
+ href_optional href_;
+ gref_optional gref_;
+ action_optional action_;
+ };
+
+ class INFO: public ::xml_schema::string
+ {
+ public:
+ // ID
+ //
+ typedef ::xml_schema::id ID_type;
+ typedef ::xsd::cxx::tree::optional< ID_type > ID_optional;
+ typedef ::xsd::cxx::tree::traits< ID_type, char > ID_traits;
+
+ const ID_optional&
+ ID () const;
+
+ ID_optional&
+ ID ();
+
+ void
+ ID (const ID_type& x);
+
+ void
+ ID (const ID_optional& x);
+
+ void
+ ID (::std::auto_ptr< ID_type > p);
+
+ // name
+ //
+ typedef ::xml_schema::token name_type;
+ typedef ::xsd::cxx::tree::traits< name_type, char > name_traits;
+
+ const name_type&
+ name () const;
+
+ name_type&
+ name ();
+
+ void
+ name (const name_type& x);
+
+ void
+ name (::std::auto_ptr< name_type > p);
+
+ // value
+ //
+ typedef ::xml_schema::string value_type;
+ typedef ::xsd::cxx::tree::traits< value_type, char > value_traits;
+
+ const value_type&
+ value () const;
+
+ value_type&
+ value ();
+
+ void
+ value (const value_type& x);
+
+ void
+ value (::std::auto_ptr< value_type > p);
+
+ // unit
+ //
+ typedef ::xml_schema::token unit_type;
+ typedef ::xsd::cxx::tree::optional< unit_type > unit_optional;
+ typedef ::xsd::cxx::tree::traits< unit_type, char > unit_traits;
+
+ const unit_optional&
+ unit () const;
+
+ unit_optional&
+ unit ();
+
+ void
+ unit (const unit_type& x);
+
+ void
+ unit (const unit_optional& x);
+
+ void
+ unit (::std::auto_ptr< unit_type > p);
+
+ // xtype
+ //
+ typedef ::xml_schema::token xtype_type;
+ typedef ::xsd::cxx::tree::optional< xtype_type > xtype_optional;
+ typedef ::xsd::cxx::tree::traits< xtype_type, char > xtype_traits;
+
+ const xtype_optional&
+ xtype () const;
+
+ xtype_optional&
+ xtype ();
+
+ void
+ xtype (const xtype_type& x);
+
+ void
+ xtype (const xtype_optional& x);
+
+ void
+ xtype (::std::auto_ptr< xtype_type > p);
+
+ // ref
+ //
+ typedef ::xml_schema::idref ref_type;
+ typedef ::xsd::cxx::tree::optional< ref_type > ref_optional;
+ typedef ::xsd::cxx::tree::traits< ref_type, char > ref_traits;
+
+ const ref_optional&
+ ref () const;
+
+ ref_optional&
+ ref ();
+
+ void
+ ref (const ref_type& x);
+
+ void
+ ref (const ref_optional& x);
+
+ void
+ ref (::std::auto_ptr< ref_type > p);
+
+ // ucd
+ //
+ typedef ::votable_13::ucdType ucd_type;
+ typedef ::xsd::cxx::tree::optional< ucd_type > ucd_optional;
+ typedef ::xsd::cxx::tree::traits< ucd_type, char > ucd_traits;
+
+ const ucd_optional&
+ ucd () const;
+
+ ucd_optional&
+ ucd ();
+
+ void
+ ucd (const ucd_type& x);
+
+ void
+ ucd (const ucd_optional& x);
+
+ void
+ ucd (::std::auto_ptr< ucd_type > p);
+
+ // utype
+ //
+ typedef ::xml_schema::string utype_type;
+ typedef ::xsd::cxx::tree::optional< utype_type > utype_optional;
+ typedef ::xsd::cxx::tree::traits< utype_type, char > utype_traits;
+
+ const utype_optional&
+ utype () const;
+
+ utype_optional&
+ utype ();
+
+ void
+ utype (const utype_type& x);
+
+ void
+ utype (const utype_optional& x);
+
+ void
+ utype (::std::auto_ptr< utype_type > p);
+
+ // Constructors.
+ //
+ INFO (const name_type&,
+ const value_type&);
+
+ INFO (const char*,
+ const name_type&,
+ const value_type&);
+
+ INFO (const ::std::string&,
+ const name_type&,
+ const value_type&);
+
+ INFO (const ::xml_schema::string&,
+ const name_type&,
+ const value_type&);
+
+ INFO (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ INFO (const INFO& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual INFO*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ virtual
+ ~INFO ();
+
+ // Implementation.
+ //
+ protected:
+ void
+ parse (::xsd::cxx::xml::dom::parser< char >&,
+ ::xml_schema::flags);
+
+ protected:
+ ID_optional ID_;
+ ::xsd::cxx::tree::one< name_type > name_;
+ ::xsd::cxx::tree::one< value_type > value_;
+ unit_optional unit_;
+ xtype_optional xtype_;
+ ref_optional ref_;
+ ucd_optional ucd_;
+ utype_optional utype_;
+ };
+
+ class COOSYS: public ::xml_schema::string
+ {
+ public:
+ // ID
+ //
+ typedef ::xml_schema::id ID_type;
+ typedef ::xsd::cxx::tree::traits< ID_type, char > ID_traits;
+
+ const ID_type&
+ ID () const;
+
+ ID_type&
+ ID ();
+
+ void
+ ID (const ID_type& x);
+
+ void
+ ID (::std::auto_ptr< ID_type > p);
+
+ // equinox
+ //
+ typedef ::votable_13::astroYear equinox_type;
+ typedef ::xsd::cxx::tree::optional< equinox_type > equinox_optional;
+ typedef ::xsd::cxx::tree::traits< equinox_type, char > equinox_traits;
+
+ const equinox_optional&
+ equinox () const;
+
+ equinox_optional&
+ equinox ();
+
+ void
+ equinox (const equinox_type& x);
+
+ void
+ equinox (const equinox_optional& x);
+
+ void
+ equinox (::std::auto_ptr< equinox_type > p);
+
+ // epoch
+ //
+ typedef ::votable_13::astroYear epoch_type;
+ typedef ::xsd::cxx::tree::optional< epoch_type > epoch_optional;
+ typedef ::xsd::cxx::tree::traits< epoch_type, char > epoch_traits;
+
+ const epoch_optional&
+ epoch () const;
+
+ epoch_optional&
+ epoch ();
+
+ void
+ epoch (const epoch_type& x);
+
+ void
+ epoch (const epoch_optional& x);
+
+ void
+ epoch (::std::auto_ptr< epoch_type > p);
+
+ // system
+ //
+ typedef ::votable_13::system system_type;
+ typedef ::xsd::cxx::tree::traits< system_type, char > system_traits;
+
+ const system_type&
+ system () const;
+
+ system_type&
+ system ();
+
+ void
+ system (const system_type& x);
+
+ void
+ system (::std::auto_ptr< system_type > p);
+
+ static const system_type&
+ system_default_value ();
+
+ // Constructors.
+ //
+ COOSYS (const ID_type&);
+
+ COOSYS (const char*,
+ const ID_type&);
+
+ COOSYS (const ::std::string&,
+ const ID_type&);
+
+ COOSYS (const ::xml_schema::string&,
+ const ID_type&);
+
+ COOSYS (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ COOSYS (const COOSYS& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual COOSYS*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ virtual
+ ~COOSYS ();
+
+ // Implementation.
+ //
+ protected:
+ void
+ parse (::xsd::cxx::xml::dom::parser< char >&,
+ ::xml_schema::flags);
+
+ protected:
+ ::xsd::cxx::tree::one< ID_type > ID_;
+ equinox_optional equinox_;
+ epoch_optional epoch_;
+ ::xsd::cxx::tree::one< system_type > system_;
+ static const system_type system_default_value_;
+ };
+
+ class DEFINITIONS: public ::xml_schema::type
+ {
+ public:
+ // COOSYS
+ //
+ typedef ::votable_13::COOSYS COOSYS_type;
+ typedef ::xsd::cxx::tree::sequence< COOSYS_type > COOSYS_sequence;
+ typedef COOSYS_sequence::iterator COOSYS_iterator;
+ typedef COOSYS_sequence::const_iterator COOSYS_const_iterator;
+ typedef ::xsd::cxx::tree::traits< COOSYS_type, char > COOSYS_traits;
+
+ const COOSYS_sequence&
+ COOSYS () const;
+
+ COOSYS_sequence&
+ COOSYS ();
+
+ void
+ COOSYS (const COOSYS_sequence& s);
+
+ // PARAM
+ //
+ typedef ::votable_13::PARAM PARAM_type;
+ typedef ::xsd::cxx::tree::sequence< PARAM_type > PARAM_sequence;
+ typedef PARAM_sequence::iterator PARAM_iterator;
+ typedef PARAM_sequence::const_iterator PARAM_const_iterator;
+ typedef ::xsd::cxx::tree::traits< PARAM_type, char > PARAM_traits;
+
+ const PARAM_sequence&
+ PARAM () const;
+
+ PARAM_sequence&
+ PARAM ();
+
+ void
+ PARAM (const PARAM_sequence& s);
+
+ // Constructors.
+ //
+ DEFINITIONS ();
+
+ DEFINITIONS (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ DEFINITIONS (const DEFINITIONS& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual DEFINITIONS*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ virtual
+ ~DEFINITIONS ();
+
+ // Implementation.
+ //
+ protected:
+ void
+ parse (::xsd::cxx::xml::dom::parser< char >&,
+ ::xml_schema::flags);
+
+ protected:
+ COOSYS_sequence COOSYS_;
+ PARAM_sequence PARAM_;
+ };
+
+ class FIELD: public ::xml_schema::type
+ {
+ public:
+ // DESCRIPTION
+ //
+ typedef ::votable_13::anyTEXT DESCRIPTION_type;
+ typedef ::xsd::cxx::tree::optional< DESCRIPTION_type > DESCRIPTION_optional;
+ typedef ::xsd::cxx::tree::traits< DESCRIPTION_type, char > DESCRIPTION_traits;
+
+ const DESCRIPTION_optional&
+ DESCRIPTION () const;
+
+ DESCRIPTION_optional&
+ DESCRIPTION ();
+
+ void
+ DESCRIPTION (const DESCRIPTION_type& x);
+
+ void
+ DESCRIPTION (const DESCRIPTION_optional& x);
+
+ void
+ DESCRIPTION (::std::auto_ptr< DESCRIPTION_type > p);
+
+ // VALUES
+ //
+ typedef ::votable_13::VALUES VALUES_type;
+ typedef ::xsd::cxx::tree::optional< VALUES_type > VALUES_optional;
+ typedef ::xsd::cxx::tree::traits< VALUES_type, char > VALUES_traits;
+
+ const VALUES_optional&
+ VALUES () const;
+
+ VALUES_optional&
+ VALUES ();
+
+ void
+ VALUES (const VALUES_type& x);
+
+ void
+ VALUES (const VALUES_optional& x);
+
+ void
+ VALUES (::std::auto_ptr< VALUES_type > p);
+
+ // LINK
+ //
+ typedef ::votable_13::LINK LINK_type;
+ typedef ::xsd::cxx::tree::sequence< LINK_type > LINK_sequence;
+ typedef LINK_sequence::iterator LINK_iterator;
+ typedef LINK_sequence::const_iterator LINK_const_iterator;
+ typedef ::xsd::cxx::tree::traits< LINK_type, char > LINK_traits;
+
+ const LINK_sequence&
+ LINK () const;
+
+ LINK_sequence&
+ LINK ();
+
+ void
+ LINK (const LINK_sequence& s);
+
+ // ID
+ //
+ typedef ::xml_schema::id ID_type;
+ typedef ::xsd::cxx::tree::optional< ID_type > ID_optional;
+ typedef ::xsd::cxx::tree::traits< ID_type, char > ID_traits;
+
+ const ID_optional&
+ ID () const;
+
+ ID_optional&
+ ID ();
+
+ void
+ ID (const ID_type& x);
+
+ void
+ ID (const ID_optional& x);
+
+ void
+ ID (::std::auto_ptr< ID_type > p);
+
+ // unit
+ //
+ typedef ::xml_schema::token unit_type;
+ typedef ::xsd::cxx::tree::optional< unit_type > unit_optional;
+ typedef ::xsd::cxx::tree::traits< unit_type, char > unit_traits;
+
+ const unit_optional&
+ unit () const;
+
+ unit_optional&
+ unit ();
+
+ void
+ unit (const unit_type& x);
+
+ void
+ unit (const unit_optional& x);
+
+ void
+ unit (::std::auto_ptr< unit_type > p);
+
+ // datatype
+ //
+ typedef ::votable_13::dataType datatype_type;
+ typedef ::xsd::cxx::tree::optional< datatype_type > datatype_optional;
+ typedef ::xsd::cxx::tree::traits< datatype_type, char > datatype_traits;
+
+ const datatype_optional&
+ datatype () const;
+
+ datatype_optional&
+ datatype ();
+
+ void
+ datatype (const datatype_type& x);
+
+ void
+ datatype (const datatype_optional& x);
+
+ void
+ datatype (::std::auto_ptr< datatype_type > p);
+
+ // precision
+ //
+ typedef ::votable_13::precType precision_type;
+ typedef ::xsd::cxx::tree::optional< precision_type > precision_optional;
+ typedef ::xsd::cxx::tree::traits< precision_type, char > precision_traits;
+
+ const precision_optional&
+ precision () const;
+
+ precision_optional&
+ precision ();
+
+ void
+ precision (const precision_type& x);
+
+ void
+ precision (const precision_optional& x);
+
+ void
+ precision (::std::auto_ptr< precision_type > p);
+
+ // width
+ //
+ typedef ::xml_schema::positive_integer width_type;
+ typedef ::xsd::cxx::tree::optional< width_type > width_optional;
+ typedef ::xsd::cxx::tree::traits< width_type, char > width_traits;
+
+ const width_optional&
+ width () const;
+
+ width_optional&
+ width ();
+
+ void
+ width (const width_type& x);
+
+ void
+ width (const width_optional& x);
+
+ // xtype
+ //
+ typedef ::xml_schema::token xtype_type;
+ typedef ::xsd::cxx::tree::optional< xtype_type > xtype_optional;
+ typedef ::xsd::cxx::tree::traits< xtype_type, char > xtype_traits;
+
+ const xtype_optional&
+ xtype () const;
+
+ xtype_optional&
+ xtype ();
+
+ void
+ xtype (const xtype_type& x);
+
+ void
+ xtype (const xtype_optional& x);
+
+ void
+ xtype (::std::auto_ptr< xtype_type > p);
+
+ // ref
+ //
+ typedef ::xml_schema::idref ref_type;
+ typedef ::xsd::cxx::tree::optional< ref_type > ref_optional;
+ typedef ::xsd::cxx::tree::traits< ref_type, char > ref_traits;
+
+ const ref_optional&
+ ref () const;
+
+ ref_optional&
+ ref ();
+
+ void
+ ref (const ref_type& x);
+
+ void
+ ref (const ref_optional& x);
+
+ void
+ ref (::std::auto_ptr< ref_type > p);
+
+ // name
+ //
+ typedef ::xml_schema::token name_type;
+ typedef ::xsd::cxx::tree::optional< name_type > name_optional;
+ typedef ::xsd::cxx::tree::traits< name_type, char > name_traits;
+
+ const name_optional&
+ name () const;
+
+ name_optional&
+ name ();
+
+ void
+ name (const name_type& x);
+
+ void
+ name (const name_optional& x);
+
+ void
+ name (::std::auto_ptr< name_type > p);
+
+ // ucd
+ //
+ typedef ::votable_13::ucdType ucd_type;
+ typedef ::xsd::cxx::tree::optional< ucd_type > ucd_optional;
+ typedef ::xsd::cxx::tree::traits< ucd_type, char > ucd_traits;
+
+ const ucd_optional&
+ ucd () const;
+
+ ucd_optional&
+ ucd ();
+
+ void
+ ucd (const ucd_type& x);
+
+ void
+ ucd (const ucd_optional& x);
+
+ void
+ ucd (::std::auto_ptr< ucd_type > p);
+
+ // utype
+ //
+ typedef ::xml_schema::string utype_type;
+ typedef ::xsd::cxx::tree::optional< utype_type > utype_optional;
+ typedef ::xsd::cxx::tree::traits< utype_type, char > utype_traits;
+
+ const utype_optional&
+ utype () const;
+
+ utype_optional&
+ utype ();
+
+ void
+ utype (const utype_type& x);
+
+ void
+ utype (const utype_optional& x);
+
+ void
+ utype (::std::auto_ptr< utype_type > p);
+
+ // arraysize
+ //
+ typedef ::xml_schema::string arraysize_type;
+ typedef ::xsd::cxx::tree::optional< arraysize_type > arraysize_optional;
+ typedef ::xsd::cxx::tree::traits< arraysize_type, char > arraysize_traits;
+
+ const arraysize_optional&
+ arraysize () const;
+
+ arraysize_optional&
+ arraysize ();
+
+ void
+ arraysize (const arraysize_type& x);
+
+ void
+ arraysize (const arraysize_optional& x);
+
+ void
+ arraysize (::std::auto_ptr< arraysize_type > p);
+
+ // type
+ //
+ typedef ::votable_13::type1 type_type;
+ typedef ::xsd::cxx::tree::optional< type_type > type_optional;
+ typedef ::xsd::cxx::tree::traits< type_type, char > type_traits;
+
+ const type_optional&
+ type () const;
+
+ type_optional&
+ type ();
+
+ void
+ type (const type_type& x);
+
+ void
+ type (const type_optional& x);
+
+ void
+ type (::std::auto_ptr< type_type > p);
+
+ // Constructors.
+ //
+ FIELD ();
+
+ FIELD (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ FIELD (const FIELD& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual FIELD*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ virtual
+ ~FIELD ();
+
+ // Implementation.
+ //
+ protected:
+ void
+ parse (::xsd::cxx::xml::dom::parser< char >&,
+ ::xml_schema::flags);
+
+ protected:
+ DESCRIPTION_optional DESCRIPTION_;
+ VALUES_optional VALUES_;
+ LINK_sequence LINK_;
+ ID_optional ID_;
+ unit_optional unit_;
+ datatype_optional datatype_;
+ precision_optional precision_;
+ width_optional width_;
+ xtype_optional xtype_;
+ ref_optional ref_;
+ name_optional name_;
+ ucd_optional ucd_;
+ utype_optional utype_;
+ arraysize_optional arraysize_;
+ type_optional type_;
+ };
+
+ class PARAM: public ::votable_13::FIELD
+ {
+ public:
+ // value
+ //
+ typedef ::xml_schema::string value_type;
+ typedef ::xsd::cxx::tree::optional< value_type > value_optional;
+ typedef ::xsd::cxx::tree::traits< value_type, char > value_traits;
+
+ const value_optional&
+ value () const;
+
+ value_optional&
+ value ();
+
+ void
+ value (const value_type& x);
+
+ void
+ value (const value_optional& x);
+
+ void
+ value (::std::auto_ptr< value_type > p);
+
+ // Constructors.
+ //
+ PARAM ();
+
+ PARAM (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ PARAM (const PARAM& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual PARAM*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ virtual
+ ~PARAM ();
+
+ // Implementation.
+ //
+ protected:
+ void
+ parse (::xsd::cxx::xml::dom::parser< char >&,
+ ::xml_schema::flags);
+
+ protected:
+ value_optional value_;
+ };
+
+ class GROUP: public ::xml_schema::type
+ {
+ public:
+ // DESCRIPTION
+ //
+ typedef ::votable_13::anyTEXT DESCRIPTION_type;
+ typedef ::xsd::cxx::tree::optional< DESCRIPTION_type > DESCRIPTION_optional;
+ typedef ::xsd::cxx::tree::traits< DESCRIPTION_type, char > DESCRIPTION_traits;
+
+ const DESCRIPTION_optional&
+ DESCRIPTION () const;
+
+ DESCRIPTION_optional&
+ DESCRIPTION ();
+
+ void
+ DESCRIPTION (const DESCRIPTION_type& x);
+
+ void
+ DESCRIPTION (const DESCRIPTION_optional& x);
+
+ void
+ DESCRIPTION (::std::auto_ptr< DESCRIPTION_type > p);
+
+ // FIELDref
+ //
+ typedef ::votable_13::FIELDref FIELDref_type;
+ typedef ::xsd::cxx::tree::sequence< FIELDref_type > FIELDref_sequence;
+ typedef FIELDref_sequence::iterator FIELDref_iterator;
+ typedef FIELDref_sequence::const_iterator FIELDref_const_iterator;
+ typedef ::xsd::cxx::tree::traits< FIELDref_type, char > FIELDref_traits;
+
+ const FIELDref_sequence&
+ FIELDref () const;
+
+ FIELDref_sequence&
+ FIELDref ();
+
+ void
+ FIELDref (const FIELDref_sequence& s);
+
+ // PARAMref
+ //
+ typedef ::votable_13::PARAMref PARAMref_type;
+ typedef ::xsd::cxx::tree::sequence< PARAMref_type > PARAMref_sequence;
+ typedef PARAMref_sequence::iterator PARAMref_iterator;
+ typedef PARAMref_sequence::const_iterator PARAMref_const_iterator;
+ typedef ::xsd::cxx::tree::traits< PARAMref_type, char > PARAMref_traits;
+
+ const PARAMref_sequence&
+ PARAMref () const;
+
+ PARAMref_sequence&
+ PARAMref ();
+
+ void
+ PARAMref (const PARAMref_sequence& s);
+
+ // PARAM
+ //
+ typedef ::votable_13::PARAM PARAM_type;
+ typedef ::xsd::cxx::tree::sequence< PARAM_type > PARAM_sequence;
+ typedef PARAM_sequence::iterator PARAM_iterator;
+ typedef PARAM_sequence::const_iterator PARAM_const_iterator;
+ typedef ::xsd::cxx::tree::traits< PARAM_type, char > PARAM_traits;
+
+ const PARAM_sequence&
+ PARAM () const;
+
+ PARAM_sequence&
+ PARAM ();
+
+ void
+ PARAM (const PARAM_sequence& s);
+
+ // GROUP
+ //
+ typedef ::votable_13::GROUP GROUP1_type;
+ typedef ::xsd::cxx::tree::sequence< GROUP1_type > GROUP1_sequence;
+ typedef GROUP1_sequence::iterator GROUP1_iterator;
+ typedef GROUP1_sequence::const_iterator GROUP1_const_iterator;
+ typedef ::xsd::cxx::tree::traits< GROUP1_type, char > GROUP1_traits;
+
+ const GROUP1_sequence&
+ GROUP1 () const;
+
+ GROUP1_sequence&
+ GROUP1 ();
+
+ void
+ GROUP1 (const GROUP1_sequence& s);
+
+ // ID
+ //
+ typedef ::xml_schema::id ID_type;
+ typedef ::xsd::cxx::tree::optional< ID_type > ID_optional;
+ typedef ::xsd::cxx::tree::traits< ID_type, char > ID_traits;
+
+ const ID_optional&
+ ID () const;
+
+ ID_optional&
+ ID ();
+
+ void
+ ID (const ID_type& x);
+
+ void
+ ID (const ID_optional& x);
+
+ void
+ ID (::std::auto_ptr< ID_type > p);
+
+ // name
+ //
+ typedef ::xml_schema::token name_type;
+ typedef ::xsd::cxx::tree::optional< name_type > name_optional;
+ typedef ::xsd::cxx::tree::traits< name_type, char > name_traits;
+
+ const name_optional&
+ name () const;
+
+ name_optional&
+ name ();
+
+ void
+ name (const name_type& x);
+
+ void
+ name (const name_optional& x);
+
+ void
+ name (::std::auto_ptr< name_type > p);
+
+ // ref
+ //
+ typedef ::xml_schema::idref ref_type;
+ typedef ::xsd::cxx::tree::optional< ref_type > ref_optional;
+ typedef ::xsd::cxx::tree::traits< ref_type, char > ref_traits;
+
+ const ref_optional&
+ ref () const;
+
+ ref_optional&
+ ref ();
+
+ void
+ ref (const ref_type& x);
+
+ void
+ ref (const ref_optional& x);
+
+ void
+ ref (::std::auto_ptr< ref_type > p);
+
+ // ucd
+ //
+ typedef ::votable_13::ucdType ucd_type;
+ typedef ::xsd::cxx::tree::optional< ucd_type > ucd_optional;
+ typedef ::xsd::cxx::tree::traits< ucd_type, char > ucd_traits;
+
+ const ucd_optional&
+ ucd () const;
+
+ ucd_optional&
+ ucd ();
+
+ void
+ ucd (const ucd_type& x);
+
+ void
+ ucd (const ucd_optional& x);
+
+ void
+ ucd (::std::auto_ptr< ucd_type > p);
+
+ // utype
+ //
+ typedef ::xml_schema::string utype_type;
+ typedef ::xsd::cxx::tree::optional< utype_type > utype_optional;
+ typedef ::xsd::cxx::tree::traits< utype_type, char > utype_traits;
+
+ const utype_optional&
+ utype () const;
+
+ utype_optional&
+ utype ();
+
+ void
+ utype (const utype_type& x);
+
+ void
+ utype (const utype_optional& x);
+
+ void
+ utype (::std::auto_ptr< utype_type > p);
+
+ // Constructors.
+ //
+ GROUP ();
+
+ GROUP (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ GROUP (const GROUP& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual GROUP*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ virtual
+ ~GROUP ();
+
+ // Implementation.
+ //
+ protected:
+ void
+ parse (::xsd::cxx::xml::dom::parser< char >&,
+ ::xml_schema::flags);
+
+ protected:
+ DESCRIPTION_optional DESCRIPTION_;
+ FIELDref_sequence FIELDref_;
+ PARAMref_sequence PARAMref_;
+ PARAM_sequence PARAM_;
+ GROUP1_sequence GROUP1_;
+ ID_optional ID_;
+ name_optional name_;
+ ref_optional ref_;
+ ucd_optional ucd_;
+ utype_optional utype_;
+ };
+
+ class FIELDref: public ::xml_schema::type
+ {
+ public:
+ // ref
+ //
+ typedef ::xml_schema::idref ref_type;
+ typedef ::xsd::cxx::tree::traits< ref_type, char > ref_traits;
+
+ const ref_type&
+ ref () const;
+
+ ref_type&
+ ref ();
+
+ void
+ ref (const ref_type& x);
+
+ void
+ ref (::std::auto_ptr< ref_type > p);
+
+ // ucd
+ //
+ typedef ::votable_13::ucdType ucd_type;
+ typedef ::xsd::cxx::tree::optional< ucd_type > ucd_optional;
+ typedef ::xsd::cxx::tree::traits< ucd_type, char > ucd_traits;
+
+ const ucd_optional&
+ ucd () const;
+
+ ucd_optional&
+ ucd ();
+
+ void
+ ucd (const ucd_type& x);
+
+ void
+ ucd (const ucd_optional& x);
+
+ void
+ ucd (::std::auto_ptr< ucd_type > p);
+
+ // utype
+ //
+ typedef ::xml_schema::string utype_type;
+ typedef ::xsd::cxx::tree::optional< utype_type > utype_optional;
+ typedef ::xsd::cxx::tree::traits< utype_type, char > utype_traits;
+
+ const utype_optional&
+ utype () const;
+
+ utype_optional&
+ utype ();
+
+ void
+ utype (const utype_type& x);
+
+ void
+ utype (const utype_optional& x);
+
+ void
+ utype (::std::auto_ptr< utype_type > p);
+
+ // Constructors.
+ //
+ FIELDref (const ref_type&);
+
+ FIELDref (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ FIELDref (const FIELDref& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual FIELDref*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ virtual
+ ~FIELDref ();
+
+ // Implementation.
+ //
+ protected:
+ void
+ parse (::xsd::cxx::xml::dom::parser< char >&,
+ ::xml_schema::flags);
+
+ protected:
+ ::xsd::cxx::tree::one< ref_type > ref_;
+ ucd_optional ucd_;
+ utype_optional utype_;
+ };
+
+ class PARAMref: public ::xml_schema::type
+ {
+ public:
+ // ref
+ //
+ typedef ::xml_schema::idref ref_type;
+ typedef ::xsd::cxx::tree::traits< ref_type, char > ref_traits;
+
+ const ref_type&
+ ref () const;
+
+ ref_type&
+ ref ();
+
+ void
+ ref (const ref_type& x);
+
+ void
+ ref (::std::auto_ptr< ref_type > p);
+
+ // ucd
+ //
+ typedef ::votable_13::ucdType ucd_type;
+ typedef ::xsd::cxx::tree::optional< ucd_type > ucd_optional;
+ typedef ::xsd::cxx::tree::traits< ucd_type, char > ucd_traits;
+
+ const ucd_optional&
+ ucd () const;
+
+ ucd_optional&
+ ucd ();
+
+ void
+ ucd (const ucd_type& x);
+
+ void
+ ucd (const ucd_optional& x);
+
+ void
+ ucd (::std::auto_ptr< ucd_type > p);
+
+ // utype
+ //
+ typedef ::xml_schema::string utype_type;
+ typedef ::xsd::cxx::tree::optional< utype_type > utype_optional;
+ typedef ::xsd::cxx::tree::traits< utype_type, char > utype_traits;
+
+ const utype_optional&
+ utype () const;
+
+ utype_optional&
+ utype ();
+
+ void
+ utype (const utype_type& x);
+
+ void
+ utype (const utype_optional& x);
+
+ void
+ utype (::std::auto_ptr< utype_type > p);
+
+ // Constructors.
+ //
+ PARAMref (const ref_type&);
+
+ PARAMref (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ PARAMref (const PARAMref& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual PARAMref*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ virtual
+ ~PARAMref ();
+
+ // Implementation.
+ //
+ protected:
+ void
+ parse (::xsd::cxx::xml::dom::parser< char >&,
+ ::xml_schema::flags);
+
+ protected:
+ ::xsd::cxx::tree::one< ref_type > ref_;
+ ucd_optional ucd_;
+ utype_optional utype_;
+ };
+
+ class DATA: public ::xml_schema::type
+ {
+ public:
+ // TABLEDATA
+ //
+ typedef ::votable_13::TABLEDATA TABLEDATA_type;
+ typedef ::xsd::cxx::tree::optional< TABLEDATA_type > TABLEDATA_optional;
+ typedef ::xsd::cxx::tree::traits< TABLEDATA_type, char > TABLEDATA_traits;
+
+ const TABLEDATA_optional&
+ TABLEDATA () const;
+
+ TABLEDATA_optional&
+ TABLEDATA ();
+
+ void
+ TABLEDATA (const TABLEDATA_type& x);
+
+ void
+ TABLEDATA (const TABLEDATA_optional& x);
+
+ void
+ TABLEDATA (::std::auto_ptr< TABLEDATA_type > p);
+
+ // BINARY
+ //
+ typedef ::votable_13::BINARY BINARY_type;
+ typedef ::xsd::cxx::tree::optional< BINARY_type > BINARY_optional;
+ typedef ::xsd::cxx::tree::traits< BINARY_type, char > BINARY_traits;
+
+ const BINARY_optional&
+ BINARY () const;
+
+ BINARY_optional&
+ BINARY ();
+
+ void
+ BINARY (const BINARY_type& x);
+
+ void
+ BINARY (const BINARY_optional& x);
+
+ void
+ BINARY (::std::auto_ptr< BINARY_type > p);
+
+ // FITS
+ //
+ typedef ::votable_13::FITS FITS_type;
+ typedef ::xsd::cxx::tree::optional< FITS_type > FITS_optional;
+ typedef ::xsd::cxx::tree::traits< FITS_type, char > FITS_traits;
+
+ const FITS_optional&
+ FITS () const;
+
+ FITS_optional&
+ FITS ();
+
+ void
+ FITS (const FITS_type& x);
+
+ void
+ FITS (const FITS_optional& x);
+
+ void
+ FITS (::std::auto_ptr< FITS_type > p);
+
+ // INFO
+ //
+ typedef ::votable_13::INFO INFO_type;
+ typedef ::xsd::cxx::tree::sequence< INFO_type > INFO_sequence;
+ typedef INFO_sequence::iterator INFO_iterator;
+ typedef INFO_sequence::const_iterator INFO_const_iterator;
+ typedef ::xsd::cxx::tree::traits< INFO_type, char > INFO_traits;
+
+ const INFO_sequence&
+ INFO () const;
+
+ INFO_sequence&
+ INFO ();
+
+ void
+ INFO (const INFO_sequence& s);
+
+ // Constructors.
+ //
+ DATA ();
+
+ DATA (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ DATA (const DATA& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual DATA*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ virtual
+ ~DATA ();
+
+ // Implementation.
+ //
+ protected:
+ void
+ parse (::xsd::cxx::xml::dom::parser< char >&,
+ ::xml_schema::flags);
+
+ protected:
+ TABLEDATA_optional TABLEDATA_;
+ BINARY_optional BINARY_;
+ FITS_optional FITS_;
+ INFO_sequence INFO_;
+ };
+
+ class TABLEDATA: public ::xml_schema::type
+ {
+ public:
+ // TR
+ //
+ typedef ::votable_13::TR TR_type;
+ typedef ::xsd::cxx::tree::sequence< TR_type > TR_sequence;
+ typedef TR_sequence::iterator TR_iterator;
+ typedef TR_sequence::const_iterator TR_const_iterator;
+ typedef ::xsd::cxx::tree::traits< TR_type, char > TR_traits;
+
+ const TR_sequence&
+ TR () const;
+
+ TR_sequence&
+ TR ();
+
+ void
+ TR (const TR_sequence& s);
+
+ // Constructors.
+ //
+ TABLEDATA ();
+
+ TABLEDATA (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ TABLEDATA (const TABLEDATA& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual TABLEDATA*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ virtual
+ ~TABLEDATA ();
+
+ // Implementation.
+ //
+ protected:
+ void
+ parse (::xsd::cxx::xml::dom::parser< char >&,
+ ::xml_schema::flags);
+
+ protected:
+ TR_sequence TR_;
+ };
+
+ class TD: public ::xml_schema::string
+ {
+ public:
+ // encoding
+ //
+ typedef ::votable_13::encodingType encoding_type;
+ typedef ::xsd::cxx::tree::optional< encoding_type > encoding_optional;
+ typedef ::xsd::cxx::tree::traits< encoding_type, char > encoding_traits;
+
+ const encoding_optional&
+ encoding () const;
+
+ encoding_optional&
+ encoding ();
+
+ void
+ encoding (const encoding_type& x);
+
+ void
+ encoding (const encoding_optional& x);
+
+ void
+ encoding (::std::auto_ptr< encoding_type > p);
+
+ // Constructors.
+ //
+ TD ();
+
+ TD (const char*);
+
+ TD (const ::std::string&);
+
+ TD (const ::xml_schema::string&);
+
+ TD (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ TD (const TD& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual TD*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ virtual
+ ~TD ();
+
+ // Implementation.
+ //
+ protected:
+ void
+ parse (::xsd::cxx::xml::dom::parser< char >&,
+ ::xml_schema::flags);
+
+ protected:
+ encoding_optional encoding_;
+ };
+
+ class TR: public ::xml_schema::type
+ {
+ public:
+ // TD
+ //
+ typedef ::votable_13::TD TD_type;
+ typedef ::xsd::cxx::tree::sequence< TD_type > TD_sequence;
+ typedef TD_sequence::iterator TD_iterator;
+ typedef TD_sequence::const_iterator TD_const_iterator;
+ typedef ::xsd::cxx::tree::traits< TD_type, char > TD_traits;
+
+ const TD_sequence&
+ TD () const;
+
+ TD_sequence&
+ TD ();
+
+ void
+ TD (const TD_sequence& s);
+
+ // ID
+ //
+ typedef ::xml_schema::id ID_type;
+ typedef ::xsd::cxx::tree::optional< ID_type > ID_optional;
+ typedef ::xsd::cxx::tree::traits< ID_type, char > ID_traits;
+
+ const ID_optional&
+ ID () const;
+
+ ID_optional&
+ ID ();
+
+ void
+ ID (const ID_type& x);
+
+ void
+ ID (const ID_optional& x);
+
+ void
+ ID (::std::auto_ptr< ID_type > p);
+
+ // Constructors.
+ //
+ TR ();
+
+ TR (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ TR (const TR& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual TR*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ virtual
+ ~TR ();
+
+ // Implementation.
+ //
+ protected:
+ void
+ parse (::xsd::cxx::xml::dom::parser< char >&,
+ ::xml_schema::flags);
+
+ protected:
+ TD_sequence TD_;
+ ID_optional ID_;
+ };
+
+ class FITS: public ::xml_schema::type
+ {
+ public:
+ // STREAM
+ //
+ typedef ::votable_13::STREAM STREAM_type;
+ typedef ::xsd::cxx::tree::traits< STREAM_type, char > STREAM_traits;
+
+ const STREAM_type&
+ STREAM () const;
+
+ STREAM_type&
+ STREAM ();
+
+ void
+ STREAM (const STREAM_type& x);
+
+ void
+ STREAM (::std::auto_ptr< STREAM_type > p);
+
+ // extnum
+ //
+ typedef ::xml_schema::positive_integer extnum_type;
+ typedef ::xsd::cxx::tree::optional< extnum_type > extnum_optional;
+ typedef ::xsd::cxx::tree::traits< extnum_type, char > extnum_traits;
+
+ const extnum_optional&
+ extnum () const;
+
+ extnum_optional&
+ extnum ();
+
+ void
+ extnum (const extnum_type& x);
+
+ void
+ extnum (const extnum_optional& x);
+
+ // Constructors.
+ //
+ FITS (const STREAM_type&);
+
+ FITS (::std::auto_ptr< STREAM_type >&);
+
+ FITS (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ FITS (const FITS& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual FITS*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ virtual
+ ~FITS ();
+
+ // Implementation.
+ //
+ protected:
+ void
+ parse (::xsd::cxx::xml::dom::parser< char >&,
+ ::xml_schema::flags);
+
+ protected:
+ ::xsd::cxx::tree::one< STREAM_type > STREAM_;
+ extnum_optional extnum_;
+ };
+
+ class BINARY: public ::xml_schema::type
+ {
+ public:
+ // STREAM
+ //
+ typedef ::votable_13::STREAM STREAM_type;
+ typedef ::xsd::cxx::tree::traits< STREAM_type, char > STREAM_traits;
+
+ const STREAM_type&
+ STREAM () const;
+
+ STREAM_type&
+ STREAM ();
+
+ void
+ STREAM (const STREAM_type& x);
+
+ void
+ STREAM (::std::auto_ptr< STREAM_type > p);
+
+ // Constructors.
+ //
+ BINARY (const STREAM_type&);
+
+ BINARY (::std::auto_ptr< STREAM_type >&);
+
+ BINARY (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ BINARY (const BINARY& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual BINARY*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ virtual
+ ~BINARY ();
+
+ // Implementation.
+ //
+ protected:
+ void
+ parse (::xsd::cxx::xml::dom::parser< char >&,
+ ::xml_schema::flags);
+
+ protected:
+ ::xsd::cxx::tree::one< STREAM_type > STREAM_;
+ };
+
+ class STREAM: public ::xml_schema::string
+ {
+ public:
+ // type
+ //
+ typedef ::votable_13::type2 type_type;
+ typedef ::xsd::cxx::tree::traits< type_type, char > type_traits;
+
+ const type_type&
+ type () const;
+
+ type_type&
+ type ();
+
+ void
+ type (const type_type& x);
+
+ void
+ type (::std::auto_ptr< type_type > p);
+
+ static const type_type&
+ type_default_value ();
+
+ // href
+ //
+ typedef ::xml_schema::uri href_type;
+ typedef ::xsd::cxx::tree::optional< href_type > href_optional;
+ typedef ::xsd::cxx::tree::traits< href_type, char > href_traits;
+
+ const href_optional&
+ href () const;
+
+ href_optional&
+ href ();
+
+ void
+ href (const href_type& x);
+
+ void
+ href (const href_optional& x);
+
+ void
+ href (::std::auto_ptr< href_type > p);
+
+ // actuate
+ //
+ typedef ::votable_13::actuate actuate_type;
+ typedef ::xsd::cxx::tree::traits< actuate_type, char > actuate_traits;
+
+ const actuate_type&
+ actuate () const;
+
+ actuate_type&
+ actuate ();
+
+ void
+ actuate (const actuate_type& x);
+
+ void
+ actuate (::std::auto_ptr< actuate_type > p);
+
+ static const actuate_type&
+ actuate_default_value ();
+
+ // encoding
+ //
+ typedef ::votable_13::encodingType encoding_type;
+ typedef ::xsd::cxx::tree::traits< encoding_type, char > encoding_traits;
+
+ const encoding_type&
+ encoding () const;
+
+ encoding_type&
+ encoding ();
+
+ void
+ encoding (const encoding_type& x);
+
+ void
+ encoding (::std::auto_ptr< encoding_type > p);
+
+ static const encoding_type&
+ encoding_default_value ();
+
+ // expires
+ //
+ typedef ::xml_schema::date_time expires_type;
+ typedef ::xsd::cxx::tree::optional< expires_type > expires_optional;
+ typedef ::xsd::cxx::tree::traits< expires_type, char > expires_traits;
+
+ const expires_optional&
+ expires () const;
+
+ expires_optional&
+ expires ();
+
+ void
+ expires (const expires_type& x);
+
+ void
+ expires (const expires_optional& x);
+
+ void
+ expires (::std::auto_ptr< expires_type > p);
+
+ // rights
+ //
+ typedef ::xml_schema::token rights_type;
+ typedef ::xsd::cxx::tree::optional< rights_type > rights_optional;
+ typedef ::xsd::cxx::tree::traits< rights_type, char > rights_traits;
+
+ const rights_optional&
+ rights () const;
+
+ rights_optional&
+ rights ();
+
+ void
+ rights (const rights_type& x);
+
+ void
+ rights (const rights_optional& x);
+
+ void
+ rights (::std::auto_ptr< rights_type > p);
+
+ // Constructors.
+ //
+ STREAM ();
+
+ STREAM (const char*);
+
+ STREAM (const ::std::string&);
+
+ STREAM (const ::xml_schema::string&);
+
+ STREAM (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ STREAM (const STREAM& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual STREAM*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ virtual
+ ~STREAM ();
+
+ // Implementation.
+ //
+ protected:
+ void
+ parse (::xsd::cxx::xml::dom::parser< char >&,
+ ::xml_schema::flags);
+
+ protected:
+ ::xsd::cxx::tree::one< type_type > type_;
+ static const type_type type_default_value_;
+ href_optional href_;
+ ::xsd::cxx::tree::one< actuate_type > actuate_;
+ static const actuate_type actuate_default_value_;
+ ::xsd::cxx::tree::one< encoding_type > encoding_;
+ static const encoding_type encoding_default_value_;
+ expires_optional expires_;
+ rights_optional rights_;
+ };
+
+ class TABLE: public ::xml_schema::type
+ {
+ public:
+ // DESCRIPTION
+ //
+ typedef ::votable_13::anyTEXT DESCRIPTION_type;
+ typedef ::xsd::cxx::tree::optional< DESCRIPTION_type > DESCRIPTION_optional;
+ typedef ::xsd::cxx::tree::traits< DESCRIPTION_type, char > DESCRIPTION_traits;
+
+ const DESCRIPTION_optional&
+ DESCRIPTION () const;
+
+ DESCRIPTION_optional&
+ DESCRIPTION ();
+
+ void
+ DESCRIPTION (const DESCRIPTION_type& x);
+
+ void
+ DESCRIPTION (const DESCRIPTION_optional& x);
+
+ void
+ DESCRIPTION (::std::auto_ptr< DESCRIPTION_type > p);
+
+ // INFO
+ //
+ typedef ::votable_13::INFO INFO_type;
+ typedef ::xsd::cxx::tree::sequence< INFO_type > INFO_sequence;
+ typedef INFO_sequence::iterator INFO_iterator;
+ typedef INFO_sequence::const_iterator INFO_const_iterator;
+ typedef ::xsd::cxx::tree::traits< INFO_type, char > INFO_traits;
+
+ const INFO_sequence&
+ INFO () const;
+
+ INFO_sequence&
+ INFO ();
+
+ void
+ INFO (const INFO_sequence& s);
+
+ // FIELD
+ //
+ typedef ::votable_13::FIELD FIELD_type;
+ typedef ::xsd::cxx::tree::sequence< FIELD_type > FIELD_sequence;
+ typedef FIELD_sequence::iterator FIELD_iterator;
+ typedef FIELD_sequence::const_iterator FIELD_const_iterator;
+ typedef ::xsd::cxx::tree::traits< FIELD_type, char > FIELD_traits;
+
+ const FIELD_sequence&
+ FIELD () const;
+
+ FIELD_sequence&
+ FIELD ();
+
+ void
+ FIELD (const FIELD_sequence& s);
+
+ // PARAM
+ //
+ typedef ::votable_13::PARAM PARAM_type;
+ typedef ::xsd::cxx::tree::sequence< PARAM_type > PARAM_sequence;
+ typedef PARAM_sequence::iterator PARAM_iterator;
+ typedef PARAM_sequence::const_iterator PARAM_const_iterator;
+ typedef ::xsd::cxx::tree::traits< PARAM_type, char > PARAM_traits;
+
+ const PARAM_sequence&
+ PARAM () const;
+
+ PARAM_sequence&
+ PARAM ();
+
+ void
+ PARAM (const PARAM_sequence& s);
+
+ // GROUP
+ //
+ typedef ::votable_13::GROUP GROUP_type;
+ typedef ::xsd::cxx::tree::sequence< GROUP_type > GROUP_sequence;
+ typedef GROUP_sequence::iterator GROUP_iterator;
+ typedef GROUP_sequence::const_iterator GROUP_const_iterator;
+ typedef ::xsd::cxx::tree::traits< GROUP_type, char > GROUP_traits;
+
+ const GROUP_sequence&
+ GROUP () const;
+
+ GROUP_sequence&
+ GROUP ();
+
+ void
+ GROUP (const GROUP_sequence& s);
+
+ // LINK
+ //
+ typedef ::votable_13::LINK LINK_type;
+ typedef ::xsd::cxx::tree::sequence< LINK_type > LINK_sequence;
+ typedef LINK_sequence::iterator LINK_iterator;
+ typedef LINK_sequence::const_iterator LINK_const_iterator;
+ typedef ::xsd::cxx::tree::traits< LINK_type, char > LINK_traits;
+
+ const LINK_sequence&
+ LINK () const;
+
+ LINK_sequence&
+ LINK ();
+
+ void
+ LINK (const LINK_sequence& s);
+
+ // DATA
+ //
+ typedef ::votable_13::DATA DATA_type;
+ typedef ::xsd::cxx::tree::optional< DATA_type > DATA_optional;
+ typedef ::xsd::cxx::tree::traits< DATA_type, char > DATA_traits;
+
+ const DATA_optional&
+ DATA () const;
+
+ DATA_optional&
+ DATA ();
+
+ void
+ DATA (const DATA_type& x);
+
+ void
+ DATA (const DATA_optional& x);
+
+ void
+ DATA (::std::auto_ptr< DATA_type > p);
+
+ // ID
+ //
+ typedef ::xml_schema::id ID_type;
+ typedef ::xsd::cxx::tree::optional< ID_type > ID_optional;
+ typedef ::xsd::cxx::tree::traits< ID_type, char > ID_traits;
+
+ const ID_optional&
+ ID () const;
+
+ ID_optional&
+ ID ();
+
+ void
+ ID (const ID_type& x);
+
+ void
+ ID (const ID_optional& x);
+
+ void
+ ID (::std::auto_ptr< ID_type > p);
+
+ // name
+ //
+ typedef ::xml_schema::token name_type;
+ typedef ::xsd::cxx::tree::optional< name_type > name_optional;
+ typedef ::xsd::cxx::tree::traits< name_type, char > name_traits;
+
+ const name_optional&
+ name () const;
+
+ name_optional&
+ name ();
+
+ void
+ name (const name_type& x);
+
+ void
+ name (const name_optional& x);
+
+ void
+ name (::std::auto_ptr< name_type > p);
+
+ // ref
+ //
+ typedef ::xml_schema::idref ref_type;
+ typedef ::xsd::cxx::tree::optional< ref_type > ref_optional;
+ typedef ::xsd::cxx::tree::traits< ref_type, char > ref_traits;
+
+ const ref_optional&
+ ref () const;
+
+ ref_optional&
+ ref ();
+
+ void
+ ref (const ref_type& x);
+
+ void
+ ref (const ref_optional& x);
+
+ void
+ ref (::std::auto_ptr< ref_type > p);
+
+ // ucd
+ //
+ typedef ::votable_13::ucdType ucd_type;
+ typedef ::xsd::cxx::tree::optional< ucd_type > ucd_optional;
+ typedef ::xsd::cxx::tree::traits< ucd_type, char > ucd_traits;
+
+ const ucd_optional&
+ ucd () const;
+
+ ucd_optional&
+ ucd ();
+
+ void
+ ucd (const ucd_type& x);
+
+ void
+ ucd (const ucd_optional& x);
+
+ void
+ ucd (::std::auto_ptr< ucd_type > p);
+
+ // utype
+ //
+ typedef ::xml_schema::string utype_type;
+ typedef ::xsd::cxx::tree::optional< utype_type > utype_optional;
+ typedef ::xsd::cxx::tree::traits< utype_type, char > utype_traits;
+
+ const utype_optional&
+ utype () const;
+
+ utype_optional&
+ utype ();
+
+ void
+ utype (const utype_type& x);
+
+ void
+ utype (const utype_optional& x);
+
+ void
+ utype (::std::auto_ptr< utype_type > p);
+
+ // nrows
+ //
+ typedef ::xml_schema::non_negative_integer nrows_type;
+ typedef ::xsd::cxx::tree::optional< nrows_type > nrows_optional;
+ typedef ::xsd::cxx::tree::traits< nrows_type, char > nrows_traits;
+
+ const nrows_optional&
+ nrows () const;
+
+ nrows_optional&
+ nrows ();
+
+ void
+ nrows (const nrows_type& x);
+
+ void
+ nrows (const nrows_optional& x);
+
+ // Constructors.
+ //
+ TABLE ();
+
+ TABLE (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ TABLE (const TABLE& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual TABLE*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ virtual
+ ~TABLE ();
+
+ // Implementation.
+ //
+ protected:
+ void
+ parse (::xsd::cxx::xml::dom::parser< char >&,
+ ::xml_schema::flags);
+
+ protected:
+ DESCRIPTION_optional DESCRIPTION_;
+ INFO_sequence INFO_;
+ FIELD_sequence FIELD_;
+ PARAM_sequence PARAM_;
+ GROUP_sequence GROUP_;
+ LINK_sequence LINK_;
+ DATA_optional DATA_;
+ ID_optional ID_;
+ name_optional name_;
+ ref_optional ref_;
+ ucd_optional ucd_;
+ utype_optional utype_;
+ nrows_optional nrows_;
+ };
+
+ class RESOURCE: public ::xml_schema::type
+ {
+ public:
+ // DESCRIPTION
+ //
+ typedef ::votable_13::anyTEXT DESCRIPTION_type;
+ typedef ::xsd::cxx::tree::optional< DESCRIPTION_type > DESCRIPTION_optional;
+ typedef ::xsd::cxx::tree::traits< DESCRIPTION_type, char > DESCRIPTION_traits;
+
+ const DESCRIPTION_optional&
+ DESCRIPTION () const;
+
+ DESCRIPTION_optional&
+ DESCRIPTION ();
+
+ void
+ DESCRIPTION (const DESCRIPTION_type& x);
+
+ void
+ DESCRIPTION (const DESCRIPTION_optional& x);
+
+ void
+ DESCRIPTION (::std::auto_ptr< DESCRIPTION_type > p);
+
+ // INFO
+ //
+ typedef ::votable_13::INFO INFO_type;
+ typedef ::xsd::cxx::tree::sequence< INFO_type > INFO_sequence;
+ typedef INFO_sequence::iterator INFO_iterator;
+ typedef INFO_sequence::const_iterator INFO_const_iterator;
+ typedef ::xsd::cxx::tree::traits< INFO_type, char > INFO_traits;
+
+ const INFO_sequence&
+ INFO () const;
+
+ INFO_sequence&
+ INFO ();
+
+ void
+ INFO (const INFO_sequence& s);
+
+ // COOSYS
+ //
+ typedef ::votable_13::COOSYS COOSYS_type;
+ typedef ::xsd::cxx::tree::sequence< COOSYS_type > COOSYS_sequence;
+ typedef COOSYS_sequence::iterator COOSYS_iterator;
+ typedef COOSYS_sequence::const_iterator COOSYS_const_iterator;
+ typedef ::xsd::cxx::tree::traits< COOSYS_type, char > COOSYS_traits;
+
+ const COOSYS_sequence&
+ COOSYS () const;
+
+ COOSYS_sequence&
+ COOSYS ();
+
+ void
+ COOSYS (const COOSYS_sequence& s);
+
+ // GROUP
+ //
+ typedef ::votable_13::GROUP GROUP_type;
+ typedef ::xsd::cxx::tree::sequence< GROUP_type > GROUP_sequence;
+ typedef GROUP_sequence::iterator GROUP_iterator;
+ typedef GROUP_sequence::const_iterator GROUP_const_iterator;
+ typedef ::xsd::cxx::tree::traits< GROUP_type, char > GROUP_traits;
+
+ const GROUP_sequence&
+ GROUP () const;
+
+ GROUP_sequence&
+ GROUP ();
+
+ void
+ GROUP (const GROUP_sequence& s);
+
+ // PARAM
+ //
+ typedef ::votable_13::PARAM PARAM_type;
+ typedef ::xsd::cxx::tree::sequence< PARAM_type > PARAM_sequence;
+ typedef PARAM_sequence::iterator PARAM_iterator;
+ typedef PARAM_sequence::const_iterator PARAM_const_iterator;
+ typedef ::xsd::cxx::tree::traits< PARAM_type, char > PARAM_traits;
+
+ const PARAM_sequence&
+ PARAM () const;
+
+ PARAM_sequence&
+ PARAM ();
+
+ void
+ PARAM (const PARAM_sequence& s);
+
+ // LINK
+ //
+ typedef ::votable_13::LINK LINK_type;
+ typedef ::xsd::cxx::tree::sequence< LINK_type > LINK_sequence;
+ typedef LINK_sequence::iterator LINK_iterator;
+ typedef LINK_sequence::const_iterator LINK_const_iterator;
+ typedef ::xsd::cxx::tree::traits< LINK_type, char > LINK_traits;
+
+ const LINK_sequence&
+ LINK () const;
+
+ LINK_sequence&
+ LINK ();
+
+ void
+ LINK (const LINK_sequence& s);
+
+ // TABLE
+ //
+ typedef ::votable_13::TABLE TABLE_type;
+ typedef ::xsd::cxx::tree::sequence< TABLE_type > TABLE_sequence;
+ typedef TABLE_sequence::iterator TABLE_iterator;
+ typedef TABLE_sequence::const_iterator TABLE_const_iterator;
+ typedef ::xsd::cxx::tree::traits< TABLE_type, char > TABLE_traits;
+
+ const TABLE_sequence&
+ TABLE () const;
+
+ TABLE_sequence&
+ TABLE ();
+
+ void
+ TABLE (const TABLE_sequence& s);
+
+ // RESOURCE
+ //
+ typedef ::votable_13::RESOURCE RESOURCE1_type;
+ typedef ::xsd::cxx::tree::sequence< RESOURCE1_type > RESOURCE1_sequence;
+ typedef RESOURCE1_sequence::iterator RESOURCE1_iterator;
+ typedef RESOURCE1_sequence::const_iterator RESOURCE1_const_iterator;
+ typedef ::xsd::cxx::tree::traits< RESOURCE1_type, char > RESOURCE1_traits;
+
+ const RESOURCE1_sequence&
+ RESOURCE1 () const;
+
+ RESOURCE1_sequence&
+ RESOURCE1 ();
+
+ void
+ RESOURCE1 (const RESOURCE1_sequence& s);
+
+ // any
+ //
+ typedef ::xsd::cxx::tree::element_sequence any_sequence;
+ typedef any_sequence::iterator any_iterator;
+ typedef any_sequence::const_iterator any_const_iterator;
+
+ const any_sequence&
+ any () const;
+
+ any_sequence&
+ any ();
+
+ void
+ any (const any_sequence& s);
+
+ // name
+ //
+ typedef ::xml_schema::token name_type;
+ typedef ::xsd::cxx::tree::optional< name_type > name_optional;
+ typedef ::xsd::cxx::tree::traits< name_type, char > name_traits;
+
+ const name_optional&
+ name () const;
+
+ name_optional&
+ name ();
+
+ void
+ name (const name_type& x);
+
+ void
+ name (const name_optional& x);
+
+ void
+ name (::std::auto_ptr< name_type > p);
+
+ // ID
+ //
+ typedef ::xml_schema::id ID_type;
+ typedef ::xsd::cxx::tree::optional< ID_type > ID_optional;
+ typedef ::xsd::cxx::tree::traits< ID_type, char > ID_traits;
+
+ const ID_optional&
+ ID () const;
+
+ ID_optional&
+ ID ();
+
+ void
+ ID (const ID_type& x);
+
+ void
+ ID (const ID_optional& x);
+
+ void
+ ID (::std::auto_ptr< ID_type > p);
+
+ // utype
+ //
+ typedef ::xml_schema::string utype_type;
+ typedef ::xsd::cxx::tree::optional< utype_type > utype_optional;
+ typedef ::xsd::cxx::tree::traits< utype_type, char > utype_traits;
+
+ const utype_optional&
+ utype () const;
+
+ utype_optional&
+ utype ();
+
+ void
+ utype (const utype_type& x);
+
+ void
+ utype (const utype_optional& x);
+
+ void
+ utype (::std::auto_ptr< utype_type > p);
+
+ // type
+ //
+ typedef ::votable_13::type3 type_type;
+ typedef ::xsd::cxx::tree::traits< type_type, char > type_traits;
+
+ const type_type&
+ type () const;
+
+ type_type&
+ type ();
+
+ void
+ type (const type_type& x);
+
+ void
+ type (::std::auto_ptr< type_type > p);
+
+ static const type_type&
+ type_default_value ();
+
+ // any_attribute
+ //
+ typedef ::xsd::cxx::tree::attribute_set< char > any_attribute_set;
+ typedef any_attribute_set::iterator any_attribute_iterator;
+ typedef any_attribute_set::const_iterator any_attribute_const_iterator;
+
+ const any_attribute_set&
+ any_attribute () const;
+
+ any_attribute_set&
+ any_attribute ();
+
+ void
+ any_attribute (const any_attribute_set& s);
+
+ // DOMDocument for wildcard content.
+ //
+ const ::xercesc::DOMDocument&
+ dom_document () const;
+
+ ::xercesc::DOMDocument&
+ dom_document ();
+
+ // Constructors.
+ //
+ RESOURCE ();
+
+ RESOURCE (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ RESOURCE (const RESOURCE& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual RESOURCE*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ virtual
+ ~RESOURCE ();
+
+ // Implementation.
+ //
+ protected:
+ void
+ parse (::xsd::cxx::xml::dom::parser< char >&,
+ ::xml_schema::flags);
+
+ protected:
+ ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > dom_document_;
+
+ DESCRIPTION_optional DESCRIPTION_;
+ INFO_sequence INFO_;
+ COOSYS_sequence COOSYS_;
+ GROUP_sequence GROUP_;
+ PARAM_sequence PARAM_;
+ LINK_sequence LINK_;
+ TABLE_sequence TABLE_;
+ RESOURCE1_sequence RESOURCE1_;
+ any_sequence any_;
+ name_optional name_;
+ ID_optional ID_;
+ utype_optional utype_;
+ ::xsd::cxx::tree::one< type_type > type_;
+ static const type_type type_default_value_;
+ any_attribute_set any_attribute_;
+ };
+
+ class type: public ::xml_schema::nmtoken
+ {
+ public:
+ enum value
+ {
+ legal,
+ actual
+ };
+
+ type (value v);
+
+ type (const char* v);
+
+ type (const ::std::string& v);
+
+ type (const ::xml_schema::nmtoken& v);
+
+ type (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ type (const ::xercesc::DOMAttr& a,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ type (const ::std::string& s,
+ const ::xercesc::DOMElement* e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ type (const type& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual type*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ type&
+ operator= (value v);
+
+ virtual
+ operator value () const
+ {
+ return _xsd_type_convert ();
+ }
+
+ protected:
+ value
+ _xsd_type_convert () const;
+
+ public:
+ static const char* const _xsd_type_literals_[2];
+ static const value _xsd_type_indexes_[2];
+ };
+
+ class system: public ::xml_schema::nmtoken
+ {
+ public:
+ enum value
+ {
+ eq_FK4,
+ eq_FK5,
+ ICRS,
+ ecl_FK4,
+ ecl_FK5,
+ galactic,
+ supergalactic,
+ xy,
+ barycentric,
+ geo_app
+ };
+
+ system (value v);
+
+ system (const char* v);
+
+ system (const ::std::string& v);
+
+ system (const ::xml_schema::nmtoken& v);
+
+ system (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ system (const ::xercesc::DOMAttr& a,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ system (const ::std::string& s,
+ const ::xercesc::DOMElement* e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ system (const system& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual system*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ system&
+ operator= (value v);
+
+ virtual
+ operator value () const
+ {
+ return _xsd_system_convert ();
+ }
+
+ protected:
+ value
+ _xsd_system_convert () const;
+
+ public:
+ static const char* const _xsd_system_literals_[10];
+ static const value _xsd_system_indexes_[10];
+ };
+
+ class type1: public ::xml_schema::nmtoken
+ {
+ public:
+ enum value
+ {
+ hidden,
+ no_query,
+ trigger,
+ location
+ };
+
+ type1 (value v);
+
+ type1 (const char* v);
+
+ type1 (const ::std::string& v);
+
+ type1 (const ::xml_schema::nmtoken& v);
+
+ type1 (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ type1 (const ::xercesc::DOMAttr& a,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ type1 (const ::std::string& s,
+ const ::xercesc::DOMElement* e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ type1 (const type1& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual type1*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ type1&
+ operator= (value v);
+
+ virtual
+ operator value () const
+ {
+ return _xsd_type1_convert ();
+ }
+
+ protected:
+ value
+ _xsd_type1_convert () const;
+
+ public:
+ static const char* const _xsd_type1_literals_[4];
+ static const value _xsd_type1_indexes_[4];
+ };
+
+ class type2: public ::xml_schema::nmtoken
+ {
+ public:
+ enum value
+ {
+ locator,
+ other
+ };
+
+ type2 (value v);
+
+ type2 (const char* v);
+
+ type2 (const ::std::string& v);
+
+ type2 (const ::xml_schema::nmtoken& v);
+
+ type2 (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ type2 (const ::xercesc::DOMAttr& a,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ type2 (const ::std::string& s,
+ const ::xercesc::DOMElement* e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ type2 (const type2& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual type2*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ type2&
+ operator= (value v);
+
+ virtual
+ operator value () const
+ {
+ return _xsd_type2_convert ();
+ }
+
+ protected:
+ value
+ _xsd_type2_convert () const;
+
+ public:
+ static const char* const _xsd_type2_literals_[2];
+ static const value _xsd_type2_indexes_[2];
+ };
+
+ class actuate: public ::xml_schema::nmtoken
+ {
+ public:
+ enum value
+ {
+ onLoad,
+ onRequest,
+ other,
+ none
+ };
+
+ actuate (value v);
+
+ actuate (const char* v);
+
+ actuate (const ::std::string& v);
+
+ actuate (const ::xml_schema::nmtoken& v);
+
+ actuate (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ actuate (const ::xercesc::DOMAttr& a,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ actuate (const ::std::string& s,
+ const ::xercesc::DOMElement* e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ actuate (const actuate& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual actuate*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ actuate&
+ operator= (value v);
+
+ virtual
+ operator value () const
+ {
+ return _xsd_actuate_convert ();
+ }
+
+ protected:
+ value
+ _xsd_actuate_convert () const;
+
+ public:
+ static const char* const _xsd_actuate_literals_[4];
+ static const value _xsd_actuate_indexes_[4];
+ };
+
+ class type3: public ::xml_schema::nmtoken
+ {
+ public:
+ enum value
+ {
+ results,
+ meta
+ };
+
+ type3 (value v);
+
+ type3 (const char* v);
+
+ type3 (const ::std::string& v);
+
+ type3 (const ::xml_schema::nmtoken& v);
+
+ type3 (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ type3 (const ::xercesc::DOMAttr& a,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ type3 (const ::std::string& s,
+ const ::xercesc::DOMElement* e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ type3 (const type3& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual type3*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ type3&
+ operator= (value v);
+
+ virtual
+ operator value () const
+ {
+ return _xsd_type3_convert ();
+ }
+
+ protected:
+ value
+ _xsd_type3_convert () const;
+
+ public:
+ static const char* const _xsd_type3_literals_[2];
+ static const value _xsd_type3_indexes_[2];
+ };
+
+ class VOTABLE: public ::xml_schema::type
+ {
+ public:
+ // DESCRIPTION
+ //
+ typedef ::votable_13::anyTEXT DESCRIPTION_type;
+ typedef ::xsd::cxx::tree::optional< DESCRIPTION_type > DESCRIPTION_optional;
+ typedef ::xsd::cxx::tree::traits< DESCRIPTION_type, char > DESCRIPTION_traits;
+
+ const DESCRIPTION_optional&
+ DESCRIPTION () const;
+
+ DESCRIPTION_optional&
+ DESCRIPTION ();
+
+ void
+ DESCRIPTION (const DESCRIPTION_type& x);
+
+ void
+ DESCRIPTION (const DESCRIPTION_optional& x);
+
+ void
+ DESCRIPTION (::std::auto_ptr< DESCRIPTION_type > p);
+
+ // DEFINITIONS
+ //
+ typedef ::votable_13::DEFINITIONS DEFINITIONS_type;
+ typedef ::xsd::cxx::tree::optional< DEFINITIONS_type > DEFINITIONS_optional;
+ typedef ::xsd::cxx::tree::traits< DEFINITIONS_type, char > DEFINITIONS_traits;
+
+ const DEFINITIONS_optional&
+ DEFINITIONS () const;
+
+ DEFINITIONS_optional&
+ DEFINITIONS ();
+
+ void
+ DEFINITIONS (const DEFINITIONS_type& x);
+
+ void
+ DEFINITIONS (const DEFINITIONS_optional& x);
+
+ void
+ DEFINITIONS (::std::auto_ptr< DEFINITIONS_type > p);
+
+ // COOSYS
+ //
+ typedef ::votable_13::COOSYS COOSYS_type;
+ typedef ::xsd::cxx::tree::sequence< COOSYS_type > COOSYS_sequence;
+ typedef COOSYS_sequence::iterator COOSYS_iterator;
+ typedef COOSYS_sequence::const_iterator COOSYS_const_iterator;
+ typedef ::xsd::cxx::tree::traits< COOSYS_type, char > COOSYS_traits;
+
+ const COOSYS_sequence&
+ COOSYS () const;
+
+ COOSYS_sequence&
+ COOSYS ();
+
+ void
+ COOSYS (const COOSYS_sequence& s);
+
+ // GROUP
+ //
+ typedef ::votable_13::GROUP GROUP_type;
+ typedef ::xsd::cxx::tree::sequence< GROUP_type > GROUP_sequence;
+ typedef GROUP_sequence::iterator GROUP_iterator;
+ typedef GROUP_sequence::const_iterator GROUP_const_iterator;
+ typedef ::xsd::cxx::tree::traits< GROUP_type, char > GROUP_traits;
+
+ const GROUP_sequence&
+ GROUP () const;
+
+ GROUP_sequence&
+ GROUP ();
+
+ void
+ GROUP (const GROUP_sequence& s);
+
+ // PARAM
+ //
+ typedef ::votable_13::PARAM PARAM_type;
+ typedef ::xsd::cxx::tree::sequence< PARAM_type > PARAM_sequence;
+ typedef PARAM_sequence::iterator PARAM_iterator;
+ typedef PARAM_sequence::const_iterator PARAM_const_iterator;
+ typedef ::xsd::cxx::tree::traits< PARAM_type, char > PARAM_traits;
+
+ const PARAM_sequence&
+ PARAM () const;
+
+ PARAM_sequence&
+ PARAM ();
+
+ void
+ PARAM (const PARAM_sequence& s);
+
+ // INFO
+ //
+ typedef ::votable_13::INFO INFO_type;
+ typedef ::xsd::cxx::tree::sequence< INFO_type > INFO_sequence;
+ typedef INFO_sequence::iterator INFO_iterator;
+ typedef INFO_sequence::const_iterator INFO_const_iterator;
+ typedef ::xsd::cxx::tree::traits< INFO_type, char > INFO_traits;
+
+ const INFO_sequence&
+ INFO () const;
+
+ INFO_sequence&
+ INFO ();
+
+ void
+ INFO (const INFO_sequence& s);
+
+ // RESOURCE
+ //
+ typedef ::votable_13::RESOURCE RESOURCE_type;
+ typedef ::xsd::cxx::tree::sequence< RESOURCE_type > RESOURCE_sequence;
+ typedef RESOURCE_sequence::iterator RESOURCE_iterator;
+ typedef RESOURCE_sequence::const_iterator RESOURCE_const_iterator;
+ typedef ::xsd::cxx::tree::traits< RESOURCE_type, char > RESOURCE_traits;
+
+ const RESOURCE_sequence&
+ RESOURCE () const;
+
+ RESOURCE_sequence&
+ RESOURCE ();
+
+ void
+ RESOURCE (const RESOURCE_sequence& s);
+
+ // ID
+ //
+ typedef ::xml_schema::id ID_type;
+ typedef ::xsd::cxx::tree::optional< ID_type > ID_optional;
+ typedef ::xsd::cxx::tree::traits< ID_type, char > ID_traits;
+
+ const ID_optional&
+ ID () const;
+
+ ID_optional&
+ ID ();
+
+ void
+ ID (const ID_type& x);
+
+ void
+ ID (const ID_optional& x);
+
+ void
+ ID (::std::auto_ptr< ID_type > p);
+
+ // version
+ //
+ typedef ::votable_13::version version_type;
+ typedef ::xsd::cxx::tree::optional< version_type > version_optional;
+ typedef ::xsd::cxx::tree::traits< version_type, char > version_traits;
+
+ const version_optional&
+ version () const;
+
+ version_optional&
+ version ();
+
+ void
+ version (const version_type& x);
+
+ void
+ version (const version_optional& x);
+
+ void
+ version (::std::auto_ptr< version_type > p);
+
+ // Constructors.
+ //
+ VOTABLE ();
+
+ VOTABLE (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ VOTABLE (const VOTABLE& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual VOTABLE*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ virtual
+ ~VOTABLE ();
+
+ // Implementation.
+ //
+ protected:
+ void
+ parse (::xsd::cxx::xml::dom::parser< char >&,
+ ::xml_schema::flags);
+
+ protected:
+ DESCRIPTION_optional DESCRIPTION_;
+ DEFINITIONS_optional DEFINITIONS_;
+ COOSYS_sequence COOSYS_;
+ GROUP_sequence GROUP_;
+ PARAM_sequence PARAM_;
+ INFO_sequence INFO_;
+ RESOURCE_sequence RESOURCE_;
+ ID_optional ID_;
+ version_optional version_;
+ };
+
+ class version: public ::xml_schema::nmtoken
+ {
+ public:
+ enum value
+ {
+ cxx_1_3
+ };
+
+ version (value v);
+
+ version (const char* v);
+
+ version (const ::std::string& v);
+
+ version (const ::xml_schema::nmtoken& v);
+
+ version (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ version (const ::xercesc::DOMAttr& a,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ version (const ::std::string& s,
+ const ::xercesc::DOMElement* e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ version (const version& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual version*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ version&
+ operator= (value v);
+
+ virtual
+ operator value () const
+ {
+ return _xsd_version_convert ();
+ }
+
+ protected:
+ value
+ _xsd_version_convert () const;
+
+ public:
+ static const char* const _xsd_version_literals_[1];
+ static const value _xsd_version_indexes_[1];
+ };
+}
+
+#include
+
+#include
+#include
+#include
+
+namespace votable_13
+{
+ // Parse a URI or a local file.
+ //
+
+ ::std::auto_ptr< ::votable_13::VOTABLE >
+ VOTABLE_read (const ::std::string& uri,
+ ::xml_schema::flags f = 0,
+ const ::xml_schema::properties& p = ::xml_schema::properties ());
+
+ ::std::auto_ptr< ::votable_13::VOTABLE >
+ VOTABLE_read (const ::std::string& uri,
+ ::xml_schema::error_handler& eh,
+ ::xml_schema::flags f = 0,
+ const ::xml_schema::properties& p = ::xml_schema::properties ());
+
+ ::std::auto_ptr< ::votable_13::VOTABLE >
+ VOTABLE_read (const ::std::string& uri,
+ ::xercesc::DOMErrorHandler& eh,
+ ::xml_schema::flags f = 0,
+ const ::xml_schema::properties& p = ::xml_schema::properties ());
+
+ // Parse std::istream.
+ //
+
+ ::std::auto_ptr< ::votable_13::VOTABLE >
+ VOTABLE_read (::std::istream& is,
+ ::xml_schema::flags f = 0,
+ const ::xml_schema::properties& p = ::xml_schema::properties ());
+
+ ::std::auto_ptr< ::votable_13::VOTABLE >
+ VOTABLE_read (::std::istream& is,
+ ::xml_schema::error_handler& eh,
+ ::xml_schema::flags f = 0,
+ const ::xml_schema::properties& p = ::xml_schema::properties ());
+
+ ::std::auto_ptr< ::votable_13::VOTABLE >
+ VOTABLE_read (::std::istream& is,
+ ::xercesc::DOMErrorHandler& eh,
+ ::xml_schema::flags f = 0,
+ const ::xml_schema::properties& p = ::xml_schema::properties ());
+
+ ::std::auto_ptr< ::votable_13::VOTABLE >
+ VOTABLE_read (::std::istream& is,
+ const ::std::string& id,
+ ::xml_schema::flags f = 0,
+ const ::xml_schema::properties& p = ::xml_schema::properties ());
+
+ ::std::auto_ptr< ::votable_13::VOTABLE >
+ VOTABLE_read (::std::istream& is,
+ const ::std::string& id,
+ ::xml_schema::error_handler& eh,
+ ::xml_schema::flags f = 0,
+ const ::xml_schema::properties& p = ::xml_schema::properties ());
+
+ ::std::auto_ptr< ::votable_13::VOTABLE >
+ VOTABLE_read (::std::istream& is,
+ const ::std::string& id,
+ ::xercesc::DOMErrorHandler& eh,
+ ::xml_schema::flags f = 0,
+ const ::xml_schema::properties& p = ::xml_schema::properties ());
+
+ // Parse xercesc::InputSource.
+ //
+
+ ::std::auto_ptr< ::votable_13::VOTABLE >
+ VOTABLE_read (::xercesc::InputSource& is,
+ ::xml_schema::flags f = 0,
+ const ::xml_schema::properties& p = ::xml_schema::properties ());
+
+ ::std::auto_ptr< ::votable_13::VOTABLE >
+ VOTABLE_read (::xercesc::InputSource& is,
+ ::xml_schema::error_handler& eh,
+ ::xml_schema::flags f = 0,
+ const ::xml_schema::properties& p = ::xml_schema::properties ());
+
+ ::std::auto_ptr< ::votable_13::VOTABLE >
+ VOTABLE_read (::xercesc::InputSource& is,
+ ::xercesc::DOMErrorHandler& eh,
+ ::xml_schema::flags f = 0,
+ const ::xml_schema::properties& p = ::xml_schema::properties ());
+
+ // Parse xercesc::DOMDocument.
+ //
+
+ ::std::auto_ptr< ::votable_13::VOTABLE >
+ VOTABLE_read (const ::xercesc::DOMDocument& d,
+ ::xml_schema::flags f = 0,
+ const ::xml_schema::properties& p = ::xml_schema::properties ());
+
+ ::std::auto_ptr< ::votable_13::VOTABLE >
+ VOTABLE_read (::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument >& d,
+ ::xml_schema::flags f = 0,
+ const ::xml_schema::properties& p = ::xml_schema::properties ());
+}
+
+#include
+
+#include
+#include
+#include
+
+#include
+
+namespace votable_13
+{
+ void
+ operator<< (::xercesc::DOMElement&, const anyTEXT&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const astroYear&);
+
+ void
+ operator<< (::xercesc::DOMAttr&, const astroYear&);
+
+ void
+ operator<< (::xml_schema::list_stream&,
+ const astroYear&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const ucdType&);
+
+ void
+ operator<< (::xercesc::DOMAttr&, const ucdType&);
+
+ void
+ operator<< (::xml_schema::list_stream&,
+ const ucdType&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const arrayDEF&);
+
+ void
+ operator<< (::xercesc::DOMAttr&, const arrayDEF&);
+
+ void
+ operator<< (::xml_schema::list_stream&,
+ const arrayDEF&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const encodingType&);
+
+ void
+ operator<< (::xercesc::DOMAttr&, const encodingType&);
+
+ void
+ operator<< (::xml_schema::list_stream&,
+ const encodingType&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const dataType&);
+
+ void
+ operator<< (::xercesc::DOMAttr&, const dataType&);
+
+ void
+ operator<< (::xml_schema::list_stream&,
+ const dataType&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const precType&);
+
+ void
+ operator<< (::xercesc::DOMAttr&, const precType&);
+
+ void
+ operator<< (::xml_schema::list_stream&,
+ const precType&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const yesno&);
+
+ void
+ operator<< (::xercesc::DOMAttr&, const yesno&);
+
+ void
+ operator<< (::xml_schema::list_stream&,
+ const yesno&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const MIN&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const MAX&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const OPTION&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const VALUES&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const LINK&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const INFO&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const COOSYS&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const DEFINITIONS&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const FIELD&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const PARAM&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const GROUP&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const FIELDref&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const PARAMref&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const DATA&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const TABLEDATA&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const TD&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const TR&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const FITS&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const BINARY&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const STREAM&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const TABLE&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const RESOURCE&);
+
+ // Serialize to std::ostream.
+ //
+
+ void
+ VOTABLE_write (::std::ostream& os,
+ const ::votable_13::VOTABLE& x,
+ const ::xml_schema::namespace_infomap& m = ::xml_schema::namespace_infomap (),
+ const ::std::string& e = "UTF-8",
+ ::xml_schema::flags f = 0);
+
+ void
+ VOTABLE_write (::std::ostream& os,
+ const ::votable_13::VOTABLE& x,
+ ::xml_schema::error_handler& eh,
+ const ::xml_schema::namespace_infomap& m = ::xml_schema::namespace_infomap (),
+ const ::std::string& e = "UTF-8",
+ ::xml_schema::flags f = 0);
+
+ void
+ VOTABLE_write (::std::ostream& os,
+ const ::votable_13::VOTABLE& x,
+ ::xercesc::DOMErrorHandler& eh,
+ const ::xml_schema::namespace_infomap& m = ::xml_schema::namespace_infomap (),
+ const ::std::string& e = "UTF-8",
+ ::xml_schema::flags f = 0);
+
+ // Serialize to xercesc::XMLFormatTarget.
+ //
+
+ void
+ VOTABLE_write (::xercesc::XMLFormatTarget& ft,
+ const ::votable_13::VOTABLE& x,
+ const ::xml_schema::namespace_infomap& m = ::xml_schema::namespace_infomap (),
+ const ::std::string& e = "UTF-8",
+ ::xml_schema::flags f = 0);
+
+ void
+ VOTABLE_write (::xercesc::XMLFormatTarget& ft,
+ const ::votable_13::VOTABLE& x,
+ ::xml_schema::error_handler& eh,
+ const ::xml_schema::namespace_infomap& m = ::xml_schema::namespace_infomap (),
+ const ::std::string& e = "UTF-8",
+ ::xml_schema::flags f = 0);
+
+ void
+ VOTABLE_write (::xercesc::XMLFormatTarget& ft,
+ const ::votable_13::VOTABLE& x,
+ ::xercesc::DOMErrorHandler& eh,
+ const ::xml_schema::namespace_infomap& m = ::xml_schema::namespace_infomap (),
+ const ::std::string& e = "UTF-8",
+ ::xml_schema::flags f = 0);
+
+ // Serialize to an existing xercesc::DOMDocument.
+ //
+
+ void
+ VOTABLE_write (::xercesc::DOMDocument& d,
+ const ::votable_13::VOTABLE& x,
+ ::xml_schema::flags f = 0);
+
+ // Serialize to a new xercesc::DOMDocument.
+ //
+
+ ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument >
+ VOTABLE_write (const ::votable_13::VOTABLE& x,
+ const ::xml_schema::namespace_infomap& m = ::xml_schema::namespace_infomap (),
+ ::xml_schema::flags f = 0);
+
+ void
+ operator<< (::xercesc::DOMElement&, const type&);
+
+ void
+ operator<< (::xercesc::DOMAttr&, const type&);
+
+ void
+ operator<< (::xml_schema::list_stream&,
+ const type&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const system&);
+
+ void
+ operator<< (::xercesc::DOMAttr&, const system&);
+
+ void
+ operator<< (::xml_schema::list_stream&,
+ const system&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const type1&);
+
+ void
+ operator<< (::xercesc::DOMAttr&, const type1&);
+
+ void
+ operator<< (::xml_schema::list_stream&,
+ const type1&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const type2&);
+
+ void
+ operator<< (::xercesc::DOMAttr&, const type2&);
+
+ void
+ operator<< (::xml_schema::list_stream&,
+ const type2&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const actuate&);
+
+ void
+ operator<< (::xercesc::DOMAttr&, const actuate&);
+
+ void
+ operator<< (::xml_schema::list_stream&,
+ const actuate&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const type3&);
+
+ void
+ operator<< (::xercesc::DOMAttr&, const type3&);
+
+ void
+ operator<< (::xml_schema::list_stream&,
+ const type3&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const VOTABLE&);
+
+ void
+ operator<< (::xercesc::DOMElement&, const version&);
+
+ void
+ operator<< (::xercesc::DOMAttr&, const version&);
+
+ void
+ operator<< (::xml_schema::list_stream&,
+ const version&);
+}
+
+#include
+
+// Begin epilogue.
+//
+//
+// End epilogue.
+
+#endif // VOTABLE1_3_HXX
From 75f20d9d51b8ac2a0cb12adf710505dc48c599b9 Mon Sep 17 00:00:00 2001
From: "Peter W. Draper"
Date: Fri, 1 Aug 2014 13:50:13 +0100
Subject: [PATCH 06/13] gaiavo: implement VOTable 1.3 support, including
BINARY2
---
applications/gaia/gaiavo/Makefile.in | 19 +-
applications/gaia/gaiavo/VOTable1.3.xsd | 8 +
applications/gaia/gaiavo/generic/VOTable.C | 78 ++++-
applications/gaia/gaiavo/generic/VOTable.h | 17 +
applications/gaia/gaiavo/generic/VOTable1.3.C | 193 ++++++++++++
.../gaia/gaiavo/generic/VOTable1.3.hxx | 78 +++++
.../gaia/gaiavo/generic/VOTableStream.C | 296 +++++++++++++++++-
.../gaia/gaiavo/generic/VOTableStream.h | 16 +
.../gaiavo/generic/VOTableWriteFunctions.C | 13 +
.../gaiavo/generic/VOTableWriteFunctions.h | 13 +-
.../gaiavo/generic/VOTableWriteFunctions.icc | 98 +++++-
11 files changed, 800 insertions(+), 29 deletions(-)
diff --git a/applications/gaia/gaiavo/Makefile.in b/applications/gaia/gaiavo/Makefile.in
index 725bea9a655..a788e62309e 100644
--- a/applications/gaia/gaiavo/Makefile.in
+++ b/applications/gaia/gaiavo/Makefile.in
@@ -490,7 +490,7 @@ distdir:
#============================================================================
VOTable1.1.C: VOTable1.1.xsd
- xsd cxx-tree --root-element VOTABLE \
+ xsdcxx cxx-tree --root-element VOTABLE \
--generate-serialization \
--namespace-map http://www.ivoa.net/xml/VOTable/v1.1=votable_11 \
--parser-regex '/VOTABLE/VOTABLE_read/' \
@@ -504,7 +504,7 @@ VOTable1.1.C: VOTable1.1.xsd
# Note no serialization support for this. Do not want to write these.
VOTable1.1_dns.C: VOTable1.1_dns.xsd
- xsd cxx-tree --root-element VOTABLE \
+ xsdcxx cxx-tree --root-element VOTABLE \
--namespace-map '=votable_11_dns' \
--parser-regex '/VOTABLE/VOTABLE_read/' \
--generate-wildcard \
@@ -515,7 +515,7 @@ VOTable1.1_dns.C: VOTable1.1_dns.xsd
mv VOTable1.1_dns.hxx generic/VOTable1.1_dns.hxx
VOTable1.2.C: VOTable1.2.xsd
- xsd cxx-tree --root-element VOTABLE \
+ xsdcxx cxx-tree --root-element VOTABLE \
--generate-serialization \
--namespace-map http://www.ivoa.net/xml/VOTable/v1.2=votable_12 \
--parser-regex '/VOTABLE/VOTABLE_read/' \
@@ -527,5 +527,18 @@ VOTable1.2.C: VOTable1.2.xsd
rm -f generic/VOTable1.2.hxx
mv VOTable1.2.hxx generic/VOTable1.2.hxx
+VOTable1.3.C: VOTable1.3.xsd
+ xsdcxx cxx-tree --root-element VOTABLE \
+ --generate-serialization \
+ --namespace-map http://www.ivoa.net/xml/VOTable/v1.3=votable_13 \
+ --parser-regex '/VOTABLE/VOTABLE_read/' \
+ --serializer-regex '/VOTABLE/VOTABLE_write/' \
+ --generate-wildcard \
+ VOTable1.3.xsd
+ rm -f generic/VOTable1.3.C
+ mv VOTable1.3.cxx generic/VOTable1.3.C
+ rm -f generic/VOTable1.3.hxx
+ mv VOTable1.3.hxx generic/VOTable1.3.hxx
+
# Local dependencies.
VOTableWriteFunctions.o: ./generic/VOTableWriteFunctions.icc
diff --git a/applications/gaia/gaiavo/VOTable1.3.xsd b/applications/gaia/gaiavo/VOTable1.3.xsd
index b509e5fd73f..c08d736576d 100644
--- a/applications/gaia/gaiavo/VOTable1.3.xsd
+++ b/applications/gaia/gaiavo/VOTable1.3.xsd
@@ -365,6 +365,7 @@
+
@@ -418,6 +419,13 @@
+
+
+
+
+
+
+
diff --git a/applications/gaia/gaiavo/generic/VOTable.C b/applications/gaia/gaiavo/generic/VOTable.C
index 356972e47d8..310066aea08 100644
--- a/applications/gaia/gaiavo/generic/VOTable.C
+++ b/applications/gaia/gaiavo/generic/VOTable.C
@@ -87,6 +87,7 @@ namespace gaia {
*/
const char *VOTABLE_NS11 ="http://www.ivoa.net/xml/VOTable/v1.1";
const char *VOTABLE_NS12 ="http://www.ivoa.net/xml/VOTable/v1.2";
+ const char *VOTABLE_NS13 ="http://www.ivoa.net/xml/VOTable/v1.3";
/** Static member initializations. */
bool VOTable::initialized = false;
@@ -99,7 +100,8 @@ namespace gaia {
VOTable::VOTable() :
votable1_(NULL),
votable2_(NULL),
- votable3_(NULL)
+ votable3_(NULL),
+ votable4_(NULL)
{
// Initialise Xerces runtime
if ( !VOTable::initialized ) {
@@ -179,6 +181,10 @@ namespace gaia {
delete votable3_;
votable3_ = NULL;
}
+ if ( votable4_ ) {
+ delete votable4_;
+ votable4_ = NULL;
+ }
// Open the VOTable using the correct parsing classes. Currently this
// just scans for the namespace qualifying string in the first 2048
@@ -191,7 +197,8 @@ namespace gaia {
// Now look for namespace signifier.
if ( strstr( line, VOTABLE_NS11 ) == NULL &&
- strstr( line, VOTABLE_NS12 ) == NULL ) {
+ strstr( line, VOTABLE_NS12 ) == NULL &&
+ strstr( line, VOTABLE_NS13 ) == NULL ) {
// No namespace.
votable1_ = openVOTable1( in );
@@ -199,15 +206,24 @@ namespace gaia {
else {
// Namespace.
if ( strstr( line, VOTABLE_NS11 ) == NULL ) {
- votable3_ = openVOTable3( in );
+ // Not 1.1
+ if ( strstr( line, VOTABLE_NS12 ) == NULL ) {
+ // 1.3
+ votable4_ = openVOTable4( in );
+ }
+ else {
+ // 1.2
+ votable3_ = openVOTable3( in );
+ }
}
else {
+ // 1.1
votable2_ = openVOTable2( in );
}
}
// If we have a table, that's OK.
- if ( votable1_ || votable2_ || votable3_ ) {
+ if ( votable1_ || votable2_ || votable3_ || votable4_ ) {
return 1;
}
return 0;
@@ -234,6 +250,10 @@ namespace gaia {
delete votable3_;
votable3_ = NULL;
}
+ if ( votable4_ ) {
+ delete votable4_;
+ votable4_ = NULL;
+ }
// Create new instance.
votable2_ = new VOTABLE();
@@ -263,6 +283,16 @@ namespace gaia {
votable3_->version( "1.2" );
VOTABLE_write( out, *votable3_, map );
}
+
+ using namespace votable_13;
+ if ( votable4_ != NULL ) {
+ ofstream out( file, ios::out );
+ xml_schema::namespace_infomap map;
+ map[""].name = "http://www.ivoa.net/xml/VOTable/v1.3";
+ map[""].schema = "VOTable1.3.xsd";
+ votable4_->version( "1.3" );
+ VOTABLE_write( out, *votable4_, map );
+ }
}
/**
@@ -279,6 +309,9 @@ namespace gaia {
if ( votable3_ ) {
delete votable3_;
}
+ if ( votable4_ ) {
+ delete votable4_;
+ }
}
/**
@@ -417,6 +450,31 @@ namespace gaia {
return NULL;
}
+ /**
+ * Read stream for a VOTable version 1.3 using fully qualified
+ * namespace.
+ */
+ votable_13::VOTABLE *VOTable::openVOTable4( istream *in )
+ {
+ using namespace votable_13;
+ try {
+ auto_ptr table =
+ VOTABLE_read( *in,
+ xml_schema::flags::dont_validate |
+ xml_schema::flags::dont_initialize |
+ xml_schema::flags::keep_dom );
+ return table.release();
+ }
+ catch ( const xml_schema::exception &e ) {
+ // Basic report to terminal.
+ cerr << "open_votable: ";
+ cerr << e << endl;
+ }
+
+ // Open failed.
+ return NULL;
+ }
+
/**
* Simple listing of VOTable contents.
*/
@@ -431,6 +489,9 @@ namespace gaia {
else if ( votable3_ ) {
votable_enum( *votable3_, str );
}
+ else if ( votable4_ ) {
+ votable_enum( *votable4_, str );
+ }
}
/**
@@ -447,6 +508,9 @@ namespace gaia {
else if ( votable3_ ) {
return votable_count( *votable3_ );
}
+ else if ( votable4_ ) {
+ return votable_count( *votable4_ );
+ }
return 0;
}
@@ -472,6 +536,9 @@ namespace gaia {
else if ( votable3_ ) {
result = votable_write( *votable3_, index, out );
}
+ else if ( votable4_ ) {
+ result = votable_write( *votable4_, index, out );
+ }
out.close();
return result;
@@ -507,6 +574,9 @@ namespace gaia {
else if ( votable3_ ) {
return votable_info_value( *votable3_, name, value, content );
}
+ else if ( votable4_ ) {
+ return votable_info_value( *votable4_, name, value, content );
+ }
return 0;
}
}
diff --git a/applications/gaia/gaiavo/generic/VOTable.h b/applications/gaia/gaiavo/generic/VOTable.h
index cbd13530110..341b40a6c59 100644
--- a/applications/gaia/gaiavo/generic/VOTable.h
+++ b/applications/gaia/gaiavo/generic/VOTable.h
@@ -51,6 +51,7 @@
#include "VOTable1.1.hxx"
#include "VOTable1.1_dns.hxx"
#include "VOTable1.2.hxx"
+#include "VOTable1.3.hxx"
using namespace std;
@@ -74,6 +75,10 @@ namespace gaia
votable_12::VOTABLE *votable3_;
votable_12::VOTABLE *openVOTable3( istream *in );
+ // Open a VOTable 1.3.
+ votable_13::VOTABLE *votable4_;
+ votable_13::VOTABLE *openVOTable4( istream *in );
+
// Note for above. VOTABLE classes are not derived, so cannot
// simply use an array.
@@ -124,16 +129,28 @@ namespace gaia
// default namespace). These read a VOTable and write a tab
// table. Defined in VOTableWriteFunctions.C.
#define NS ::votable_11_dns
+#define NSVERS 11
#include "VOTableWriteFunctions.h"
#undef NS
+#undef NSVERS
#define NS ::votable_11
+#define NSVERS 11
#include "VOTableWriteFunctions.h"
#undef NS
+#undef NSVERS
#define NS ::votable_12
+#define NSVERS 12
+#include "VOTableWriteFunctions.h"
+#undef NS
+#undef NSVERS
+
+#define NS ::votable_13
+#define NSVERS 13
#include "VOTableWriteFunctions.h"
#undef NS
+#undef NSVERS
// Similar functions for reading a tab table and writing a VOTable.
// Only support writing in the VOTable 1.1 namespace so no need for
diff --git a/applications/gaia/gaiavo/generic/VOTable1.3.C b/applications/gaia/gaiavo/generic/VOTable1.3.C
index 464dc8c4999..e36bedf0cb4 100644
--- a/applications/gaia/gaiavo/generic/VOTable1.3.C
+++ b/applications/gaia/gaiavo/generic/VOTable1.3.C
@@ -2220,6 +2220,36 @@ namespace votable_13
this->BINARY_.set (x);
}
+ const DATA::BINARY2_optional& DATA::
+ BINARY2 () const
+ {
+ return this->BINARY2_;
+ }
+
+ DATA::BINARY2_optional& DATA::
+ BINARY2 ()
+ {
+ return this->BINARY2_;
+ }
+
+ void DATA::
+ BINARY2 (const BINARY2_type& x)
+ {
+ this->BINARY2_.set (x);
+ }
+
+ void DATA::
+ BINARY2 (const BINARY2_optional& x)
+ {
+ this->BINARY2_ = x;
+ }
+
+ void DATA::
+ BINARY2 (::std::auto_ptr< BINARY2_type > x)
+ {
+ this->BINARY2_.set (x);
+ }
+
const DATA::FITS_optional& DATA::
FITS () const
{
@@ -2457,6 +2487,34 @@ namespace votable_13
}
+ // BINARY2
+ //
+
+ const BINARY2::STREAM_type& BINARY2::
+ STREAM () const
+ {
+ return this->STREAM_.get ();
+ }
+
+ BINARY2::STREAM_type& BINARY2::
+ STREAM ()
+ {
+ return this->STREAM_.get ();
+ }
+
+ void BINARY2::
+ STREAM (const STREAM_type& x)
+ {
+ this->STREAM_.set (x);
+ }
+
+ void BINARY2::
+ STREAM (::std::auto_ptr< STREAM_type > x)
+ {
+ this->STREAM_.set (x);
+ }
+
+
// STREAM
//
@@ -6206,6 +6264,7 @@ namespace votable_13
: ::xml_schema::type (),
TABLEDATA_ (::xml_schema::flags (), this),
BINARY_ (::xml_schema::flags (), this),
+ BINARY2_ (::xml_schema::flags (), this),
FITS_ (::xml_schema::flags (), this),
INFO_ (::xml_schema::flags (), this)
{
@@ -6218,6 +6277,7 @@ namespace votable_13
: ::xml_schema::type (x, f, c),
TABLEDATA_ (x.TABLEDATA_, f, this),
BINARY_ (x.BINARY_, f, this),
+ BINARY2_ (x.BINARY2_, f, this),
FITS_ (x.FITS_, f, this),
INFO_ (x.INFO_, f, this)
{
@@ -6230,6 +6290,7 @@ namespace votable_13
: ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
TABLEDATA_ (f, this),
BINARY_ (f, this),
+ BINARY2_ (f, this),
FITS_ (f, this),
INFO_ (f, this)
{
@@ -6278,6 +6339,20 @@ namespace votable_13
}
}
+ // BINARY2
+ //
+ if (n.name () == "BINARY2" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< BINARY2_type > r (
+ BINARY2_traits::create (i, f, this));
+
+ if (!this->BINARY2_)
+ {
+ this->BINARY2_.set (r);
+ continue;
+ }
+ }
+
// FITS
//
if (n.name () == "FITS" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
@@ -6756,6 +6831,93 @@ namespace votable_13
{
}
+ // BINARY2
+ //
+
+ BINARY2::
+ BINARY2 (const STREAM_type& STREAM)
+ : ::xml_schema::type (),
+ STREAM_ (STREAM, ::xml_schema::flags (), this)
+ {
+ }
+
+ BINARY2::
+ BINARY2 (::std::auto_ptr< STREAM_type >& STREAM)
+ : ::xml_schema::type (),
+ STREAM_ (STREAM, ::xml_schema::flags (), this)
+ {
+ }
+
+ BINARY2::
+ BINARY2 (const BINARY2& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (x, f, c),
+ STREAM_ (x.STREAM_, f, this)
+ {
+ }
+
+ BINARY2::
+ BINARY2 (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
+ STREAM_ (f, this)
+ {
+ if ((f & ::xml_schema::flags::base) == 0)
+ {
+ ::xsd::cxx::xml::dom::parser< char > p (e, true, false);
+ this->parse (p, f);
+ }
+ }
+
+ void BINARY2::
+ parse (::xsd::cxx::xml::dom::parser< char >& p,
+ ::xml_schema::flags f)
+ {
+ for (; p.more_elements (); p.next_element ())
+ {
+ const ::xercesc::DOMElement& i (p.cur_element ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ // STREAM
+ //
+ if (n.name () == "STREAM" && n.namespace_ () == "http://www.ivoa.net/xml/VOTable/v1.3")
+ {
+ ::std::auto_ptr< STREAM_type > r (
+ STREAM_traits::create (i, f, this));
+
+ if (!STREAM_.present ())
+ {
+ this->STREAM_.set (r);
+ continue;
+ }
+ }
+
+ break;
+ }
+
+ if (!STREAM_.present ())
+ {
+ throw ::xsd::cxx::tree::expected_element< char > (
+ "STREAM",
+ "http://www.ivoa.net/xml/VOTable/v1.3");
+ }
+ }
+
+ BINARY2* BINARY2::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class BINARY2 (*this, f, c);
+ }
+
+ BINARY2::
+ ~BINARY2 ()
+ {
+ }
+
// STREAM
//
@@ -9540,6 +9702,19 @@ namespace votable_13
s << *i.BINARY ();
}
+ // BINARY2
+ //
+ if (i.BINARY2 ())
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "BINARY2",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << *i.BINARY2 ();
+ }
+
// FITS
//
if (i.FITS ())
@@ -9689,6 +9864,24 @@ namespace votable_13
}
}
+ void
+ operator<< (::xercesc::DOMElement& e, const BINARY2& i)
+ {
+ e << static_cast< const ::xml_schema::type& > (i);
+
+ // STREAM
+ //
+ {
+ ::xercesc::DOMElement& s (
+ ::xsd::cxx::xml::dom::create_element (
+ "STREAM",
+ "http://www.ivoa.net/xml/VOTable/v1.3",
+ e));
+
+ s << i.STREAM ();
+ }
+ }
+
void
operator<< (::xercesc::DOMElement& e, const STREAM& i)
{
diff --git a/applications/gaia/gaiavo/generic/VOTable1.3.hxx b/applications/gaia/gaiavo/generic/VOTable1.3.hxx
index 267bbb3177c..ad6f47986f0 100644
--- a/applications/gaia/gaiavo/generic/VOTable1.3.hxx
+++ b/applications/gaia/gaiavo/generic/VOTable1.3.hxx
@@ -276,6 +276,7 @@ namespace votable_13
class TR;
class FITS;
class BINARY;
+ class BINARY2;
class STREAM;
class TABLE;
class RESOURCE;
@@ -2605,6 +2606,27 @@ namespace votable_13
void
BINARY (::std::auto_ptr< BINARY_type > p);
+ // BINARY2
+ //
+ typedef ::votable_13::BINARY2 BINARY2_type;
+ typedef ::xsd::cxx::tree::optional< BINARY2_type > BINARY2_optional;
+ typedef ::xsd::cxx::tree::traits< BINARY2_type, char > BINARY2_traits;
+
+ const BINARY2_optional&
+ BINARY2 () const;
+
+ BINARY2_optional&
+ BINARY2 ();
+
+ void
+ BINARY2 (const BINARY2_type& x);
+
+ void
+ BINARY2 (const BINARY2_optional& x);
+
+ void
+ BINARY2 (::std::auto_ptr< BINARY2_type > p);
+
// FITS
//
typedef ::votable_13::FITS FITS_type;
@@ -2672,6 +2694,7 @@ namespace votable_13
protected:
TABLEDATA_optional TABLEDATA_;
BINARY_optional BINARY_;
+ BINARY2_optional BINARY2_;
FITS_optional FITS_;
INFO_sequence INFO_;
};
@@ -2981,6 +3004,58 @@ namespace votable_13
::xsd::cxx::tree::one< STREAM_type > STREAM_;
};
+ class BINARY2: public ::xml_schema::type
+ {
+ public:
+ // STREAM
+ //
+ typedef ::votable_13::STREAM STREAM_type;
+ typedef ::xsd::cxx::tree::traits< STREAM_type, char > STREAM_traits;
+
+ const STREAM_type&
+ STREAM () const;
+
+ STREAM_type&
+ STREAM ();
+
+ void
+ STREAM (const STREAM_type& x);
+
+ void
+ STREAM (::std::auto_ptr< STREAM_type > p);
+
+ // Constructors.
+ //
+ BINARY2 (const STREAM_type&);
+
+ BINARY2 (::std::auto_ptr< STREAM_type >&);
+
+ BINARY2 (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ BINARY2 (const BINARY2& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ virtual BINARY2*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ virtual
+ ~BINARY2 ();
+
+ // Implementation.
+ //
+ protected:
+ void
+ parse (::xsd::cxx::xml::dom::parser< char >&,
+ ::xml_schema::flags);
+
+ protected:
+ ::xsd::cxx::tree::one< STREAM_type > STREAM_;
+ };
+
class STREAM: public ::xml_schema::string
{
public:
@@ -4612,6 +4687,9 @@ namespace votable_13
void
operator<< (::xercesc::DOMElement&, const BINARY&);
+ void
+ operator<< (::xercesc::DOMElement&, const BINARY2&);
+
void
operator<< (::xercesc::DOMElement&, const STREAM&);
diff --git a/applications/gaia/gaiavo/generic/VOTableStream.C b/applications/gaia/gaiavo/generic/VOTableStream.C
index d330088dfa3..e239d980152 100644
--- a/applications/gaia/gaiavo/generic/VOTableStream.C
+++ b/applications/gaia/gaiavo/generic/VOTableStream.C
@@ -3,13 +3,13 @@
* gaia::VOTableStream
* Purpose:
- * Class for handling a VOTable BINARY stream.
+ * Class for handling VOTable BINARY and BINARY2 streams.
* Language:
* C++
* Copyright:
- * Copyright (C) 2008 Science and Technology Facilities Council.
+ * Copyright (C) 2008-2014 Science and Technology Facilities Council.
* All Rights Reserved.
* Licence:
@@ -127,7 +127,8 @@ namespace gaia {
}
break;
case SHORT: {
- return readValues( quantity, havenull, nullstring, out );
+ return readValues( quantity, havenull, nullstring,
+ out );
}
break;
case INT: {
@@ -151,18 +152,18 @@ namespace gaia {
}
break;
case DOUBLE: {
- return readValues( quantity, havenull,
- nullstring, out );
+ return readFloatValues( quantity, havenull,
+ nullstring, out );
}
break;
case FLOATCOMPLEX: {
- return readValues( quantity * 2, havenull,
- nullstring, out );
+ return readFloatValues( quantity * 2, havenull,
+ nullstring, out );
}
break;
case DOUBLECOMPLEX: {
- return readValues( quantity * 2, havenull,
- nullstring, out );
+ return readFloatValues( quantity * 2, havenull,
+ nullstring, out );
}
break;
}
@@ -394,8 +395,9 @@ namespace gaia {
for ( int i = 0; i < quantity; i++ ) {
if ( readChar( value ) ) {
if ( value == '\0' ) {
- // End of string.
- break;
+ // End of string, so don't print more, but we
+ // need to read stream for required quantity.
+ continue;
}
else {
*out << value;
@@ -453,7 +455,9 @@ namespace gaia {
for ( int i = 0; i < quantity; i++ ) {
if ( readUniChar( value ) ) {
if ( value == '\0' ) {
- break;
+ // End of string, so don't print more, but we
+ // need to read stream for required quantity.
+ continue;
}
else {
// Avoid newlines, tabs etc. These will break the format.
@@ -658,4 +662,272 @@ namespace gaia {
}
return false;
}
+
+
+ // BINARY2 specific support.
+
+ /**
+ * Read n bytes from the stream and interpret as a BINARY2 null bit mask.
+ * Returning the 0/1 bit values as false/true in the bitmask array.
+ * The bitmask array should be of size n*8.
+ */
+ bool VOTableStream::readBitMask( int n, bool bitmask[] )
+ {
+ bool result = true;
+ char b;
+ int k = 0;
+
+ for ( int i = 0; i < n; i++ ) {
+ char b = in_->sbumpc();
+ if ( b != EOF ) {
+ bitset<8> bs( b );
+ for ( int j = 7; j >= 0; j-- ) {
+ bitmask[k] = bs.test( j );
+ k++;
+ }
+ }
+ else {
+ result = false;
+ break;
+ }
+ }
+
+ return result;
+ }
+
+ /**
+ * Read a supported vector of data objects from the input stream and
+ * discard their content. Returns false if the read fails. Use to skip
+ * over null elements in a BINARY2 stream.
+ */
+ bool VOTableStream::readSkip( datatype type, int quantity )
+ {
+ switch ( type ) {
+ case BOOLEAN: {
+ return skipBooleans( quantity );
+ }
+ break;
+ case BITARRAY: {
+ return skipBitArrays( quantity );
+ }
+ break;
+ case BYTE: {
+ return skipBytes( quantity );
+ }
+ break;
+ case CHAR: {
+ return skipChars( quantity );
+ }
+ break;
+ case UNICODE: {
+ return skipUniChars( quantity );
+ }
+ break;
+ case SHORT: {
+ return skipValues( quantity );
+ }
+ break;
+ case INT: {
+ return skipValues( quantity );
+ }
+ break;
+ case LONG: {
+ if ( uselonglong_ ) {
+ return skipValues( quantity );
+ }
+ else {
+ return skipValues( quantity );
+ }
+ }
+ break;
+ case FLOAT: {
+ return skipValues( quantity );
+ }
+ break;
+ case DOUBLE: {
+ return skipValues( quantity );
+ }
+ break;
+ case FLOATCOMPLEX: {
+ return skipValues( quantity * 2 );
+ }
+ break;
+ case DOUBLECOMPLEX: {
+ return skipValues( quantity * 2 );
+ }
+ break;
+ }
+
+ // Cannot happen (unless a datatype is missed).
+ return false;
+ }
+
+ /**
+ * Read a vector of VOTable booleans from the stream and discard
+ * them. Result is false if the read fails.
+ */
+ bool VOTableStream::skipBooleans( int quantity )
+ {
+ bool result = true;
+ bool value;
+ int status;
+
+ // If runlength encoded, first four bytes are the quantity.
+ if ( quantity == 0 ) {
+ if ( ! readValue( quantity ) ) {
+ /* End of stream. */
+ result = false;
+ quantity = 0;
+ }
+ }
+
+ for ( int i = 0; i < quantity; i++ ) {
+ if ( ! readBoolean( value ) ) {
+ result = false;
+ break;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Read a VOTable bit array vector from the stream and discard.
+ * The result is false if the read fails.
+ */
+ bool VOTableStream::skipBitArrays( int quantity )
+ {
+ bool result = true;
+ string value;
+
+ // If runlength encoded, first four bytes are the quantity.
+ if ( quantity == 0 ) {
+ if ( ! readValue( quantity ) ) {
+ /* End of stream. */
+ result = false;
+ quantity = 0;
+ }
+ }
+
+ for ( int i = 0; i < quantity; i++ ) {
+ if ( ! readBitArray( value ) ) {
+ result = false;
+ break;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Read a VOTable byte vector from the stream and discard.
+ * Returns false if the read fails.
+ */
+ bool VOTableStream::skipBytes( int quantity )
+ {
+ bool result = true;
+ unsigned char value;
+
+ // If runlength encoded, first four bytes are the quantity.
+ if ( quantity == 0 ) {
+ if ( ! readValue( quantity ) ) {
+ /* End of stream. */
+ result = false;
+ quantity = 0;
+ }
+ }
+
+ for ( int i = 0; i < quantity; i++ ) {
+ if ( ! readByte( value ) ) {
+ result = false;
+ break;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Read a VOTable string from the stream and discard.
+ */
+ bool VOTableStream::skipChars( int quantity )
+ {
+ bool result = true;
+ char value;
+
+ // If runlength encoded, first four bytes are the quantity.
+ if ( quantity == 0 ) {
+ if ( ! readValue( quantity ) ) {
+ /* End of stream. */
+ result = false;
+ quantity = 0;
+ }
+ }
+
+ for ( int i = 0; i < quantity; i++ ) {
+ if ( readChar( value ) ) {
+ if ( value == '\0' ) {
+ // End of string, so don't print more, but we
+ // need to read stream for required quantity.
+ continue;
+ }
+ }
+ else {
+ result = false;
+ break;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Read a VOTable unicode string from the stream and discard.
+ */
+ bool VOTableStream::skipUniChars( int quantity )
+ {
+ bool result = true;
+ char value;
+
+ // If runlength encoded, first four bytes are the quantity.
+ if ( quantity == 0 ) {
+ if ( ! readValue( quantity ) ) {
+ /* End of stream. */
+ result = false;
+ quantity = 0;
+ }
+ }
+
+ for ( int i = 0; i < quantity; i++ ) {
+ if ( ! readUniChar( value ) ) {
+ result = false;
+ break;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Read a vector of values from the input stream and discard.
+ * If the read fails then false is returned.
+ */
+ template
+ bool VOTableStream::skipValues( int quantity )
+ {
+ bool result = true;
+ T value;
+
+ // If runlength encoded, first four bytes are the quantity.
+ if ( quantity == 0 ) {
+ if ( ! readValue( quantity ) ) {
+ /* End of stream. */
+ result = false;
+ quantity = 0;
+ }
+ }
+
+ for ( int i = 0; i < quantity; i++ ) {
+ if ( ! readValue( value ) ) {
+ result = false;
+ break;
+ }
+ }
+ return result;
+ }
}
diff --git a/applications/gaia/gaiavo/generic/VOTableStream.h b/applications/gaia/gaiavo/generic/VOTableStream.h
index a2f8fcd7a16..0cb72daa1cd 100644
--- a/applications/gaia/gaiavo/generic/VOTableStream.h
+++ b/applications/gaia/gaiavo/generic/VOTableStream.h
@@ -70,6 +70,11 @@ namespace gaia {
bool readPrint( datatype type, int quantity, bool havenull,
string &nullstring, ostream *out );
+ /* Read vector of given types from the stream and discard.
+ * Need to do this when the values are known to be null as
+ * the BINARY2 bitmask is set. */
+ bool readSkip( datatype type, int quantity );
+
/* Native type access to the values in the stream. */
bool readBitArray( string &value );
int readBoolean( bool &value );
@@ -77,6 +82,9 @@ namespace gaia {
bool readChar( char &value );
bool readUniChar( char &value );
+ /* BINARY2 null support. */
+ bool readBitMask( int n, bool bitmask[] );
+
template bool readValue( T &value );
private:
@@ -101,5 +109,13 @@ namespace gaia {
string &nullvalue, ostream *out );
template bool readValues( int quantity, bool havenull,
string &nullvalue, ostream *out );
+
+ /* Discard values that are known to be null (BINARY2). */
+ bool skipBitArrays( int quantity );
+ bool skipBooleans( int quantity );
+ bool skipBytes( int quantity );
+ bool skipChars( int quantity );
+ bool skipUniChars( int quantity );
+ template bool skipValues( int quantity );
};
}
diff --git a/applications/gaia/gaiavo/generic/VOTableWriteFunctions.C b/applications/gaia/gaiavo/generic/VOTableWriteFunctions.C
index 9a4853c0cbb..0de29e19fce 100644
--- a/applications/gaia/gaiavo/generic/VOTableWriteFunctions.C
+++ b/applications/gaia/gaiavo/generic/VOTableWriteFunctions.C
@@ -87,6 +87,7 @@
#include "VOTable1.1_dns.hxx"
#include "VOTable1.1.hxx"
#include "VOTable1.2.hxx"
+#include "VOTable1.3.hxx"
#include "VOTable.h"
#include "VOTableStream.h"
#include "GaiaUtils.h"
@@ -102,15 +103,27 @@ namespace gaia {
// Actual members are defined elsewhere.
#define NS votable_11_dns
+#define NSVERS 11
#include "VOTableWriteFunctions.icc"
#undef NS
+#undef NSVERS
#define NS votable_11
+#define NSVERS 11
#include "VOTableWriteFunctions.icc"
#undef NS
+#undef NSVERS
#define NS votable_12
+#define NSVERS 12
#include "VOTableWriteFunctions.icc"
#undef NS
+#undef NSVERS
+
+#define NS votable_13
+#define NSVERS 13
+#include "VOTableWriteFunctions.icc"
+#undef NS
+#undef NSVERS
}
diff --git a/applications/gaia/gaiavo/generic/VOTableWriteFunctions.h b/applications/gaia/gaiavo/generic/VOTableWriteFunctions.h
index dab16e3e088..efb9df33437 100644
--- a/applications/gaia/gaiavo/generic/VOTableWriteFunctions.h
+++ b/applications/gaia/gaiavo/generic/VOTableWriteFunctions.h
@@ -73,10 +73,21 @@ int data_tabledata( const NS::TABLE& table, const NS::TABLEDATA& tdata,
int& ra_index, bool& ra_radians, string& ra_unit,
int& dec_index, bool& dec_radians, string& dec_unit );
-int data_binarydata( const NS::TABLE& table, const NS::BINARY& bdata,
+#if NSVERS == 13
+int data_binarydata2( bool binary2, const NS::TABLE& table, const NS::BINARY2& bdata,
+ ofstream& out, int& id_index, int& ra_index,
+ bool& ra_radians, int& dec_index, bool& dec_radians );
+#endif
+int data_binarydata( bool binary2, const NS::TABLE& table, const NS::BINARY& bdata,
ofstream& out, int& id_index, int& ra_index,
bool& ra_radians, int& dec_index, bool& dec_radians );
+int data_binarystream( bool binary2, const NS::TABLE& table,
+ const string& stream, const string& encoding,
+ NS::STREAM::href_optional& href,
+ ofstream& out, int& id_index, int& ra_index,
+ bool& ra_radians, int& dec_index, bool& dec_radians );
+
int data_fitsdata( const NS::FITS& fdata, ofstream& out, int& id_index,
int& ra_index, bool& ra_radians, int& dec_index,
bool& dec_radians );
diff --git a/applications/gaia/gaiavo/generic/VOTableWriteFunctions.icc b/applications/gaia/gaiavo/generic/VOTableWriteFunctions.icc
index df94f246bef..a27be3347c7 100644
--- a/applications/gaia/gaiavo/generic/VOTableWriteFunctions.icc
+++ b/applications/gaia/gaiavo/generic/VOTableWriteFunctions.icc
@@ -757,8 +757,9 @@ void VOTable::table_coosys( const NS::COOSYS& coosys, ofstream& out )
* are converted from radians to degrees if needed.
*/
int VOTable::table_columns( const NS::TABLE& table, ofstream& out,
- int& id_index, int& ra_index, bool& ra_radians, string& ra_unit,
- int& dec_index, bool& dec_radians, string& dec_unit )
+ int& id_index, int& ra_index, bool& ra_radians,
+ string& ra_unit, int& dec_index, bool& dec_radians,
+ string& dec_unit )
{
using namespace NS;
@@ -768,7 +769,7 @@ int VOTable::table_columns( const NS::TABLE& table, ofstream& out,
// Empty tables are OK.
if ( odata ) {
- // Three variants, TABLEDATA, BINARY and FITS.
+ // Four variants, TABLEDATA, BINARY, BINARY2 and FITS.
const DATA::TABLEDATA_optional tdata( odata.get().TABLEDATA() );
if ( tdata ) {
return data_tabledata( table, tdata.get(), out, id_index,
@@ -778,11 +779,22 @@ int VOTable::table_columns( const NS::TABLE& table, ofstream& out,
const DATA::BINARY_optional bdata( odata.get().BINARY() );
if ( bdata ) {
- return data_binarydata( table, bdata.get(), out, id_index,
+ return data_binarydata( false, table, bdata.get(), out, id_index,
ra_index, ra_radians, dec_index,
dec_radians );
}
+ /* Only in 1.3 and later */
+#if NSVERS == 13
+
+ const DATA::BINARY2_optional bdata2( odata.get().BINARY2() );
+ if ( bdata2 ) {
+ return data_binarydata2( true, table, bdata2.get(), out, id_index,
+ ra_index, ra_radians, dec_index,
+ dec_radians );
+ }
+#endif
+
const DATA::FITS_optional fdata( odata.get().FITS() );
if ( fdata ) {
return data_fitsdata( fdata.get(), out, id_index, ra_index,
@@ -910,10 +922,33 @@ int VOTable::data_tabledata( const NS::TABLE& table, const NS::TABLEDATA& tdata,
}
/**
- * Write a BINARY element of a table to Skycat format. RA and Dec columns
- * are converted from radians to degrees if needed.
+ * Write a BINARY2 element of a table to Skycat format. RA and Dec
+ * columns are converted from radians to degrees if needed.
+ */
+#if NSVERS == 13
+int VOTable::data_binarydata2( bool binary2, const NS::TABLE& table, const NS::BINARY2& bdata,
+ ofstream& out, int& id_index, int& ra_index,
+ bool& ra_radians, int& dec_index, bool& dec_radians )
+{
+ using namespace NS;
+
+ // See if we need to decode the data. Support base64 and gzip and
+ // native. See if this is needed by checking the encodingType.
+ BINARY2::STREAM_type stream( bdata.STREAM() );
+ string encoding( stream.encoding() );
+ STREAM::href_optional href( stream.href() );
+
+ return data_binarystream( binary2, table, stream, encoding, href,
+ out, id_index, ra_index,
+ ra_radians, dec_index, dec_radians );
+}
+#endif
+
+/**
+ * Write a BINARY element of a table to Skycat format. RA and Dec
+ * columns are converted from radians to degrees if needed.
*/
-int VOTable::data_binarydata( const NS::TABLE& table, const NS::BINARY& bdata,
+int VOTable::data_binarydata( bool binary2, const NS::TABLE& table, const NS::BINARY& bdata,
ofstream& out, int& id_index, int& ra_index,
bool& ra_radians, int& dec_index, bool& dec_radians )
{
@@ -925,6 +960,24 @@ int VOTable::data_binarydata( const NS::TABLE& table, const NS::BINARY& bdata,
string encoding( stream.encoding() );
STREAM::href_optional href( stream.href() );
+ return data_binarystream( binary2, table, stream, encoding, href,
+ out, id_index, ra_index,
+ ra_radians, dec_index, dec_radians );
+}
+
+/**
+ * Read a stringstream wrapping a BINARY or BINARY2 element of a table to
+ * Skycat format. RA and Dec columns are converted from radians to degrees if
+ * needed.
+ */
+int VOTable::data_binarystream( bool binary2, const NS::TABLE& table,
+ const string& stream, const string& encoding,
+ NS::STREAM::href_optional& href,
+ ofstream& out, int& id_index, int& ra_index,
+ bool& ra_radians, int& dec_index, bool& dec_radians )
+{
+ using namespace NS;
+
streambuf *inbuf;
stringstream *istr;
HTTP http; // Keep in scope for memory management.
@@ -1024,7 +1077,9 @@ int VOTable::data_binarydata( const NS::TABLE& table, const NS::BINARY& bdata,
arraysizes.push_back( field_arraysize( *fiter ) );
// Check for a null attribute in the optional VALUES element.
+ // Not used in BINARY2, null bits are encoded for each row.
FIELD::VALUES_optional values( fiter->VALUES() );
+
if ( values ) {
VALUES::null_optional nullv( values.get().null() );
if ( &nullv.get() != 0 ) {
@@ -1052,10 +1107,34 @@ int VOTable::data_binarydata( const NS::TABLE& table, const NS::BINARY& bdata,
VOTableStream os( inbuf );
bool ok = true;
int nrow = 1;
+
+ // Number of bytes used for nulls in BINARY2 format.
+ int b2bytes = (int) (field_types.size() + 7 ) / 8;
+ bool *b2mask = new bool[b2bytes * 8];
+
while ( ok ) {
+ if ( binary2 ) {
+ // First field is null bit array.
+ ok = os.readBitMask( b2bytes, b2mask );
+ if ( ! ok ) {
+ break;
+ }
+ }
for ( int i = 0; i < (int) field_types.size(); i++ ) {
- ok = os.readPrint( field_types[i], arraysizes[i], havenull[i],
- nullvalues[i], &out );
+ if ( binary2 ) {
+ if ( b2mask[i] ) {
+ ok = os.readSkip( field_types[i], arraysizes[i] );
+ out << " ";
+ }
+ else {
+ ok = os.readPrint( field_types[i], arraysizes[i],
+ havenull[i], nullvalues[i], &out );
+ }
+ }
+ else {
+ ok = os.readPrint( field_types[i], arraysizes[i], havenull[i],
+ nullvalues[i], &out );
+ }
if ( ok ) {
out << '\t';
}
@@ -1071,6 +1150,7 @@ int VOTable::data_binarydata( const NS::TABLE& table, const NS::BINARY& bdata,
}
delete istr;
+ delete[] b2mask;
return 1;
}
From f89832adb5ee2ee79cde223e9992e9f3e1c150e5 Mon Sep 17 00:00:00 2001
From: "Peter W. Draper"
Date: Mon, 4 Aug 2014 15:08:18 +0100
Subject: [PATCH 07/13] gaiavo: add generic RegTAP ADQL generator utility class
---
.../gaia/gaiavo/library/GaiaVORegTapQuery.tcl | 169 ++++++++++++++++++
1 file changed, 169 insertions(+)
create mode 100644 applications/gaia/gaiavo/library/GaiaVORegTapQuery.tcl
diff --git a/applications/gaia/gaiavo/library/GaiaVORegTapQuery.tcl b/applications/gaia/gaiavo/library/GaiaVORegTapQuery.tcl
new file mode 100644
index 00000000000..c6b991aa7e7
--- /dev/null
+++ b/applications/gaia/gaiavo/library/GaiaVORegTapQuery.tcl
@@ -0,0 +1,169 @@
+#+
+# Name:
+# GaiaVORegTapQuery
+
+# Type of Module:
+# [incr Tcl] class
+
+# Purpose:
+# Class of utility methods for making RegTAP queries.
+
+# Description:
+# Provides a number of methods that can be used to construct
+# AQDL queries for making RegTAP queries. The methods are meant
+# to cover the standard cases, i.e. TAP services, Registries,
+# SIA servers etc.
+
+# Invocations:
+#
+# GaiaVORegTapQuery object_name [configuration options]
+#
+# This creates an instance of a GaiaTAPQuery object. The return is
+# the name of the object.
+#
+# object_name configure -configuration_options value
+#
+# Applies any of the configuration options (after the instance has
+# been created).
+#
+# object_name method arguments
+#
+# Performs the given method on this object.
+
+# Copyright:
+# Copyright (C) 2014 Science and Technology Facilities Council
+# All Rights Reserved.
+
+# Licence:
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street,Fifth Floor, Boston, MA
+# 02110-1301, USA
+
+# Authors:
+# PWD: Peter Draper (JAC, Durham University)
+# {enter_new_authors_here}
+
+# History:
+# 04-AUG-2014 (PWD):
+# Original version. Based on RegTapRegistryQuery.java from STARJAVA and
+# the RegTAP example queries.
+# {enter_further_changes_here}
+
+#-
+
+#.
+
+itcl::class gaiavo::GaiaVORegTapQuery {
+
+ # Inheritances:
+ # -------------
+
+ # Nothing
+
+ # Constructor:
+ # ------------
+ constructor {args} {
+ # Nothing to do, just a holder for static methods.
+ }
+
+ # Destructor:
+ # -----------
+ destructor {
+ }
+
+ # Methods:
+ # --------
+
+ # Get ADQL for list of TAP servers.
+ public proc get_taps {{substring {}}} {
+ return [get_servers ivo://ivoa.net/std/tap $substring]
+ }
+
+ # Get ADQL for list of conesearch servers.
+ public proc get_taps {{substring {}}} {
+ return [get_servers ivo://ivoa.net/std/ConeSearch $substring]
+ }
+
+ # Get ADQL to get list of SIA servers, qualified by some optional string
+ # that should be in a descriptive content element.
+ public proc get_sias {{substring {}}} {
+ return [get_servers ivo://ivoa.net/std/sia $substring]
+ }
+
+ # Get ADQL to get list of registries.
+ public proc get_registries {} {
+ set query {}
+ append query "SELECT access_url "
+ append query "FROM rr.interface "
+ append query "NATURAL JOIN rr.capability "
+ append query "NATURAL JOIN rr.res_detail "
+ append query "WHERE standard_id='ivo://ivoa.net/std/tap' "
+ append query "AND intf_type='vs:paramhttp' "
+ append query "AND detail_xpath='/capability/dataModel/@ivo-id' "
+ append query "AND 1=ivo_nocasematch(detail_value, 'ivo://ivoa.net/std/regtap#1.0)'"
+ return $query
+ }
+
+
+ # Get ADQL to get list of servers with the given standard_id, qualified by
+ # some optional string that should be in a descriptive content element.
+ # XXX only apply subtring to some elements.
+ public proc get_servers {standard_id {substring {}}} {
+ set query {}
+ append query "SELECT ivoid, short_name, res_title, reference_url, base_role, role_name, "
+ append query "email, intf_index, access_url, standard_id, cap_type, cap_description, "
+ append query "std_version, res_subjects "
+ append query "FROM rr.resource AS res "
+ append query "NATURAL JOIN rr.interface "
+ append query "NATURAL JOIN rr.capability "
+ append query "NATURAL LEFT OUTER JOIN rr.res_role "
+ append query "NATURAL LEFT OUTER JOIN "
+ append query "(SELECT ivoid, ivo_string_agg(res_subject, ', ') AS res_subjects FROM rr.res_subject GROUP BY ivoid) AS sbj "
+ append query "WHERE "
+ append query "(base_role='contact' OR base_role='publisher' OR base_role IS NULL ) AND "
+ append query "standard_id='${standard_id}' AND "
+ append query "intf_type='vs:paramhttp'"
+ if { $substring != {} } {
+ append query " AND "
+ append query "(("
+ append query "1=ivo_nocasematch(short_name, '%${substring}%') OR "
+ append query "1=ivo_hasword(res_title, '${substring}') OR "
+ append query "1=ivo_hasword(res_subjects, '${substring}') OR "
+ append query "1=ivo_nocasematch(ivoid, '%${substring}%') OR "
+ append query "(base_role='publisher' AND 1=ivo_nocasematch(role_name,'%${substring}%')) OR "
+ append query "1=ivo_hasword(res_description, '${substring}') "
+ append query "))"
+ }
+ return $query
+ }
+
+ # Configuration options: (public variables)
+ # ----------------------
+
+
+ # Common variables: (shared by all instances)
+ # -----------------
+
+ # Known RegTAP servers. Needed to boot this process.
+ public common registries
+
+ # TAP endpoint for GAVO registry currently hosted at ARI Heidelberg
+ set registries(ARI) "http://dc.g-vo.org/tap"
+
+ # TAP endpoint for GAVO registry hosted at AIP.
+ set registries(AIP) "http://gavo.aip.de/tap"
+
+
+# End of class definition.
+}
From eb7bbc3102b6b57b7cbd0a3949171d0155724a52 Mon Sep 17 00:00:00 2001
From: "Peter W. Draper"
Date: Tue, 5 Aug 2014 16:20:08 +0100
Subject: [PATCH 08/13] gaia: extend astrocat open command to test if catalogue
is already open
---
.../gaia/gaia/generic/GaiaSkySearch.C | 14 +-
.../gaia/gaiavo/library/GaiaVORegV1.tcl | 115 ++++++++++++
.../gaia/gaiavo/library/GaiaVORegV1Query.tcl | 176 ++++++++++++++++++
3 files changed, 304 insertions(+), 1 deletion(-)
create mode 100644 applications/gaia/gaiavo/library/GaiaVORegV1.tcl
create mode 100644 applications/gaia/gaiavo/library/GaiaVORegV1Query.tcl
diff --git a/applications/gaia/gaia/generic/GaiaSkySearch.C b/applications/gaia/gaia/generic/GaiaSkySearch.C
index 442b907fb00..80ff449566b 100644
--- a/applications/gaia/gaia/generic/GaiaSkySearch.C
+++ b/applications/gaia/gaia/generic/GaiaSkySearch.C
@@ -119,7 +119,7 @@ public:
{"imgplot", &GaiaSkySearch::imgplotCmd, 1, 4},
{"info", &GaiaSkySearch::infoCmd, 1, 2},
{"namesvr", &GaiaSkySearch::namesvrCmd, 2, 2},
- {"open", &GaiaSkySearch::openCmd, 1, 2},
+ {"open", &GaiaSkySearch::openCmd, 0, 2},
{"origin", &GaiaSkySearch::originCmd, 0, 2},
{"save", &GaiaSkySearch::saveCmd, 1, 5},
{"setequinox", &GaiaSkySearch::setequinoxCmd, 1, 1}
@@ -225,6 +225,18 @@ GaiaSkySearch::~GaiaSkySearch()
*/
int GaiaSkySearch::openCmd(int argc, char* argv[])
{
+ // Return if a catalogue is open if no args are given.
+ if ( argc == 0 ) {
+ if ( cat_ ) {
+ set_result( "1" );
+ }
+ else {
+ set_result( "0" );
+ }
+ return TCL_OK;
+ }
+
+
if ( cat_ ) {
delete cat_;
cat_ = NULL;
diff --git a/applications/gaia/gaiavo/library/GaiaVORegV1.tcl b/applications/gaia/gaiavo/library/GaiaVORegV1.tcl
new file mode 100644
index 00000000000..178f7c2ac45
--- /dev/null
+++ b/applications/gaia/gaiavo/library/GaiaVORegV1.tcl
@@ -0,0 +1,115 @@
+#+
+# Name:
+# GaiaVORegV1
+
+# Type of Module:
+# [incr Tcl] class
+
+# Purpose:
+# Utilities methods for RI1.0.
+
+# Description:
+# Provides a number of methods that describe the registries
+# interface version 1.0.
+
+# Invocations:
+#
+# GaiaVORegV1 object_name [configuration options]
+#
+# This creates an instance of a GaiaTAPQuery object. The return is
+# the name of the object.
+#
+# object_name configure -configuration_options value
+#
+# Applies any of the configuration options (after the instance has
+# been created).
+#
+# object_name method arguments
+#
+# Performs the given method on this object.
+
+# Copyright:
+# Copyright (C) 2014 Science and Technology Facilities Council
+# All Rights Reserved.
+
+# Licence:
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street,Fifth Floor, Boston, MA
+# 02110-1301, USA
+
+# Authors:
+# PWD: Peter Draper (JAC, Durham University)
+# {enter_new_authors_here}
+
+# History:
+# 04-AUG-2014 (PWD):
+# Original version.
+# {enter_further_changes_here}
+
+#-
+
+#.
+
+itcl::class gaiavo::GaiaVORegV1 {
+
+ # Inheritances:
+ # -------------
+
+ # Nothing
+
+ # Constructor:
+ # ------------
+ constructor {args} {
+ # Nothing to do, just a holder for static methods.
+ }
+
+ # Destructor:
+ # -----------
+ destructor {
+ }
+
+ # Methods:
+ # --------
+
+ # Get the default registry endpoints. Returns a list of pairs of values,
+ # a symbolic name followed by the endpoint.
+ public proc get_registries {} {
+ return [::array get registries_]
+ }
+
+ # Add a new registry to the default list. Not peristent.
+ public proc add_registry {shortname url} {
+ set registries_($shortname) $url
+ }
+
+ # Get the "default" registry.
+ public proc default_registry {} {
+ return [list AstroGrid $registries_(AstroGrid)]
+ }
+
+ # Configuration options: (public variables)
+ # ----------------------
+
+
+ # Common variables: (shared by all instances)
+ # -----------------
+
+ # Known RegV1 servers. Needed to boot this process.
+ protected common registries_
+ set registries_(NVO) "http://nvo.stsci.edu/vor10/ristandardservice.asmx"
+ set registries_(AstroGrid) \
+ "http://registry.astrogrid.org/astrogrid-registry/services/RegistryQueryv1_0"
+
+# End of class definition.
+}
diff --git a/applications/gaia/gaiavo/library/GaiaVORegV1Query.tcl b/applications/gaia/gaiavo/library/GaiaVORegV1Query.tcl
new file mode 100644
index 00000000000..c62d20b30fe
--- /dev/null
+++ b/applications/gaia/gaiavo/library/GaiaVORegV1Query.tcl
@@ -0,0 +1,176 @@
+#+
+# Name:
+# GaiaVORegV1Query
+
+# Type of Module:
+# [incr Tcl] class
+
+# Purpose:
+# Class defining utilities methods for RI1.0.
+
+# Description:
+# Provides a number of methods that describe the registries
+# interface version 1.0.
+
+# Invocations:
+#
+# GaiaVORegV1Query object_name [configuration options]
+#
+# This creates an instance of a GaiaTAPQuery object. The return is
+# the name of the object.
+#
+# object_name configure -configuration_options value
+#
+# Applies any of the configuration options (after the instance has
+# been created).
+#
+# object_name method arguments
+#
+# Performs the given method on this object.
+
+# Copyright:
+# Copyright (C) 2014 Science and Technology Facilities Council
+# All Rights Reserved.
+
+# Licence:
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street,Fifth Floor, Boston, MA
+# 02110-1301, USA
+
+# Authors:
+# PWD: Peter Draper (JAC, Durham University)
+# {enter_new_authors_here}
+
+# History:
+# 04-AUG-2014 (PWD):
+# Original version.
+# {enter_further_changes_here}
+
+#-
+
+#.
+
+itcl::class gaiavo::GaiaVORegV1Query {
+
+ # Singleton entry point:
+ # ----------------------
+ proc instance {} {
+ if { $instance_ == {} } {
+ set instance_ [GaiaVORegV1Query ::\#auto]
+ }
+ return $instance_
+ }
+
+ # Inheritances:
+ # -------------
+
+ # Nothing
+
+ # Constructor:
+ # ------------
+ constructor {args} {
+ # Nothing to do, just a holder for static methods.
+ }
+
+ # Destructor:
+ # -----------
+ destructor {
+ }
+
+ # Methods:
+ # --------
+
+ # Return the service type.
+ public method get_type {} {
+ return "RegV1"
+ }
+
+ # Get the default registry endpoints. Returns a list of pairs of values,
+ # a symbolic name followed by the endpoint.
+ public method get_registries {} {
+ return [::array get registries_]
+ }
+
+ # Add a new registry to the default list. Not peristent.
+ public method add_registry {shortname url} {
+ set registries_($shortname) $url
+ }
+
+ # Get the "default" registry.
+ public method default_registry {} {
+ return [list AstroGrid $registries_(AstroGrid)]
+ }
+
+ # Get the standard id for a service type shortname.
+ public method get_standard_id {name} {
+ return $standardIDs_($name)
+ }
+
+ # Get the default columns to show.
+ public method default_columns {} {
+ return "$default_columns_"
+ }
+
+ # Extract the access url from a row of values. The headers are the
+ # names of the associated columns.
+ public method get_access_url {row headers} {
+ eval lassign "$row" $headers
+ if { [info exists accessURL] } {
+ return $accessURL
+ }
+ return {}
+ }
+
+ # Extract a name for a service from a row of values. The headers are the
+ # names of the associated columns.
+ public method get_name {row headers} {
+ eval lassign "$row" $headers
+ if { [info exists shortName] && $shortName != {} } {
+ return $shortName
+ }
+ if { [info exists title] } {
+ return $title
+ }
+ return {}
+ }
+
+ # Configuration options: (public variables)
+ # ----------------------
+
+
+ # Common variables: (shared by all instances)
+ # -----------------
+
+ # The instance of this class.
+ protected common instance_ {}
+
+ # Known RegV1 servers. Needed to boot this process.
+ protected common registries_
+ set registries_(NVO) "http://nvo.stsci.edu/vor10/ristandardservice.asmx"
+ set registries_(AstroGrid) \
+ "http://registry.astrogrid.org/astrogrid-registry/services/RegistryQueryv1_0"
+
+ # Mapping of short service names to their standard ids. Yes these differ
+ # in case from RegTAP.
+ protected common standardIDs_
+ set standardIDs_(SIAP) "ivo://ivoa.net/std/SIA"
+ set standardIDs_(SSAP) "ivo://ivoa.net/std/SSA"
+ set standardIDs_(CONE) "ivo://ivoa.net/std/ConeSearch"
+ set standardIDs_(TAP) "ivo://ivoa.net/std/TAP"
+
+ # Default columns to show in table views.
+ protected common default_columns_ "shortName title"
+
+# End of class definition.
+}
From ebc9141f1d7b6a91add6a97c3bfbd601b5e48ec7 Mon Sep 17 00:00:00 2001
From: "Peter W. Draper"
Date: Tue, 5 Aug 2014 16:22:22 +0100
Subject: [PATCH 09/13] gaiavo: add support for RegTAP queries
Lots of associated refactorings as knowledge of response contents are moved into specialised classes
---
applications/gaia/gaia/library/Gaia.tcl | 16 +-
.../gaia/gaiavo/library/GaiaVOCat.tcl | 74 ++++++++-
.../gaia/gaiavo/library/GaiaVOCatCone.tcl | 29 ----
.../gaia/gaiavo/library/GaiaVOCatRegistry.tcl | 3 +-
.../gaia/gaiavo/library/GaiaVOCatSIAP.tcl | 39 -----
.../gaia/gaiavo/library/GaiaVORegTapQuery.tcl | 111 +++++++++++--
.../gaia/gaiavo/library/GaiaVORegV1.tcl | 115 -------------
.../gaia/gaiavo/library/GaiaVORegV1Query.tcl | 14 +-
.../gaiavo/library/GaiaVORegistrySearch.tcl | 157 +++++++++++++-----
.../gaia/gaiavo/library/GaiaVOTAP.tcl | 33 +---
.../gaia/gaiavo/library/GaiaVOTAPQuery.tcl | 22 +--
11 files changed, 313 insertions(+), 300 deletions(-)
delete mode 100644 applications/gaia/gaiavo/library/GaiaVORegV1.tcl
diff --git a/applications/gaia/gaia/library/Gaia.tcl b/applications/gaia/gaia/library/Gaia.tcl
index 550e8155a68..bb1db0159d3 100644
--- a/applications/gaia/gaia/library/Gaia.tcl
+++ b/applications/gaia/gaia/library/Gaia.tcl
@@ -2167,7 +2167,6 @@ itcl::class gaia::Gaia {
file copy -force $config_file ${backupname}
}
file copy -force $gaia_library/skycat2.0.cfg $config_file
- puts "file copy -force $gaia_library/skycat2.0.cfg $config_file"
# Make a directory entry that accesses the old configs.
if { $backupname != "" } {
@@ -2599,10 +2598,10 @@ window gives you access to this."
# See if the given headers and row data specify a SIAP server.
# Need a accessURL field for that.
- set accessURL [gaiavo::GaiaVOCatSIAP::getAccessURL $headers $row]
+ set accessURL [gaiavo::GaiaVOCat::getAccessURL $headers $row]
if { $accessURL != {} } {
- set name [gaiavo::GaiaVOCatSIAP::getName $headers $row]
- set id [gaiavo::GaiaVOCatSIAP::getIdentifier $headers $row]
+ set name [gaiavo::GaiaVOCat::getName $headers $row]
+ set id [gaiavo::GaiaVOCat::getIdentifier $headers $row]
gaiavo::GaiaVOCatSIAP $w_.siapquery\#auto \
-accessURL $accessURL \
-identifier $id \
@@ -2645,9 +2644,9 @@ window gives you access to this."
# See if the given headers and row data specify a Cone
# server. Need a accessURL field for that.
- set accessURL [gaiavo::GaiaVOCatCone::getAccessURL $headers $row]
+ set accessURL [gaiavo::GaiaVOCat::getAccessURL $headers $row]
if { $accessURL != {} } {
- set name [gaiavo::GaiaVOCatCone::getName $headers $row]
+ set name [gaiavo::GaiaVOCat::getName $headers $row]
gaiavo::GaiaVOCatCone $w_.conequery\#auto \
-accessURL $accessURL \
-shortname $name \
@@ -2671,7 +2670,6 @@ window gives you access to this."
-catalog $tap_file \
-service TAP \
-title "TAP server queries" \
- -show_cols {shortName title} \
-activate_cmd [code $this vo_query_tap_] \
-whole_operation 0 \
-help_file tap
@@ -2686,9 +2684,9 @@ window gives you access to this."
# See if the given headers and row data specify a TAP
# service. Need a URL resource for that.
- set accessURL [gaiavo::GaiaVOTAP::getAccessURL $headers $row]
+ set accessURL [gaiavo::GaiaVOCat::getAccessURL $headers $row]
if { $accessURL != {} } {
- set name [gaiavo::GaiaVOTAP::getName $headers $row]
+ set name [gaiavo::GaiaVOCat::getName $headers $row]
gaiavo::GaiaVOTAP $w_.tap\#auto \
-accessURL $accessURL \
-shortname $name \
diff --git a/applications/gaia/gaiavo/library/GaiaVOCat.tcl b/applications/gaia/gaiavo/library/GaiaVOCat.tcl
index f2e135fd605..8f6e3646c4c 100644
--- a/applications/gaia/gaiavo/library/GaiaVOCat.tcl
+++ b/applications/gaia/gaiavo/library/GaiaVOCat.tcl
@@ -310,14 +310,17 @@ itcl::class gaiavo::GaiaVOCat {
# Called when the user has selected columns to show.
public method set_show_cols {cols} {
- set show [$w_.cat showcols]
- if { "$show" == {} } {
- set show [$itk_component(results) get_headings]
- }
- if { "$show" != "$cols" } {
- $w_.cat showcols $cols
- cat::CatalogInfo::save {} $w_ 0
+ if { [$w_.cat open] } {
+ set show [$w_.cat showcols]
+ if { "$show" == {} } {
+ set show [$itk_component(results) get_headings]
+ }
+ if { "$show" != "$cols" } {
+ $w_.cat showcols $cols
+ cat::CatalogInfo::save {} $w_ 0
+ }
}
+ configure -show_cols $cols
}
# Clear the table listing.
@@ -523,6 +526,52 @@ itcl::class gaiavo::GaiaVOCat {
add_help_button vo "About VO services..." {Help on VO in GAIA}
}
+ # Extract an access URL from the given row, given the names of the values
+ # in headers. Tricky as we have two possible names access_url and
+ # accessURL from the two registry types.
+ public proc getAccessURL {headers row} {
+
+ # Nasty external knowledge required as to what kind of registry the row
+ # came from, so try all known handlers.
+ foreach handler $reghandlers_ {
+ set accessurl [$handler get_access_url $headers $row]
+ if { $accessurl != {} } {
+ return $accessurl
+ }
+ }
+ return {}
+ }
+
+ # Extract a name for TAP service from a list of headers and the associated
+ # data row.
+ public proc getName {headers row} {
+
+ # Nasty external knowledge required as to what kind of registry the row
+ # came from, so try all known handlers.
+ foreach handler $reghandlers_ {
+ set name [$handler get_name $headers $row]
+ if { $name != {} } {
+ return $name
+ }
+ }
+ return {}
+ }
+
+ # Extract the IVOA identifier for the service from a list of headers
+ # and the associated data row.
+ public proc getIdentifier {headers row} {
+
+ # Nasty external knowledge required as to what kind of registry the row
+ # came from, so try all known handlers.
+ foreach handler $reghandlers_ {
+ set id [$handler get_identifier $headers $row]
+ if { $id != {} } {
+ return $id
+ }
+ }
+ return {}
+ }
+
# Check for a file ~/.skycat/proxies, once each session, and use it to
# initialize environment variables for a proxy server.
public proc check_proxies {} {
@@ -561,6 +610,12 @@ itcl::class gaiavo::GaiaVOCat {
itk_option define -help_file help_file Help_File {}
itk_option define -help_label help_label Help_Label "On Window..."
+ # The shortname of the service.
+ itk_option define -shortname shortname ShortName {}
+
+ # The URL for the service.
+ itk_option define -accessURL accessURL AccessURL {}
+
# Protected variables: (available to instance)
# --------------------
@@ -584,4 +639,9 @@ itcl::class gaiavo::GaiaVOCat {
# Flag: set to 1 after we checked for a proxy server.
protected common checked_proxies_ 0
+
+ # Handlers for different registry types.
+ protected common regtap_ [::gaiavo::GaiaVORegTapQuery::instance]
+ protected common regv1_ [::gaiavo::GaiaVORegV1Query::instance]
+ protected common reghandlers_ "$regtap_ $regv1_"
}
diff --git a/applications/gaia/gaiavo/library/GaiaVOCatCone.tcl b/applications/gaia/gaiavo/library/GaiaVOCatCone.tcl
index e7ed49e1678..e597a12c45a 100644
--- a/applications/gaia/gaiavo/library/GaiaVOCatCone.tcl
+++ b/applications/gaia/gaiavo/library/GaiaVOCatCone.tcl
@@ -201,29 +201,6 @@ itcl::class gaiavo::GaiaVOCatCone {
# Do nothing.
}
- # Extract the accessURL for the Cone Search service from a list of headers
- # and the associated data row.
- public proc getAccessURL {headers row} {
- eval lassign "$row" $headers
- if { [info exists accessURL] } {
- return $accessURL
- }
- return {}
- }
-
- # Extract a name for Cone Search service from a list of headers
- # and the associated data row.
- public proc getName {headers row} {
- eval lassign "$row" $headers
- if { [info exists shortName] && $shortName != {} } {
- return $shortName
- }
- if { [info exists title] } {
- return $title
- }
- return {}
- }
-
# Plot the RA and Dec positions on the image using the defined symbols.
public method plot {} {
@@ -438,12 +415,6 @@ itcl::class gaiavo::GaiaVOCatCone {
# Configuration options: (public variables)
# ----------------------
- # The shortname of the service.
- itk_option define -shortname shortname ShortName {}
-
- # The accessURL for the Cone Search server.
- itk_option define -accessURL accessURL AccessURL {}
-
# Instance of GAIA to display the catalogue.
itk_option define -gaia gaia Gaia {} {
set rtdctrl_ [$itk_option(-gaia) get_image]
diff --git a/applications/gaia/gaiavo/library/GaiaVOCatRegistry.tcl b/applications/gaia/gaiavo/library/GaiaVOCatRegistry.tcl
index dde357576d5..b2837cc9b79 100644
--- a/applications/gaia/gaiavo/library/GaiaVOCatRegistry.tcl
+++ b/applications/gaia/gaiavo/library/GaiaVOCatRegistry.tcl
@@ -170,6 +170,7 @@ itcl::class gaiavo::GaiaVOCatRegistry {
-feedbackcommand [code $this set_feedback] \
-command [code $this query_done] \
-query_cmd [code $this query] \
+ -show_cols_cmd [code $this set_show_cols] \
-service $itk_option(-service)
}
pack $itk_component(registry) -side top -fill x
@@ -231,7 +232,7 @@ itcl::class gaiavo::GaiaVOCatRegistry {
# The type of operation, whole or row.
itk_option define -whole_operation whole_operation Whole_Operation 1
- # The type of services to query for - SSAP, SIAP, ConeSearch.
+ # The type of services to query for - SSAP, SIAP, ConeSearch, TAP.
itk_option define -service service Service SIAP
# GaiaVOBlacklist instance that manages the blacklist for the services.
diff --git a/applications/gaia/gaiavo/library/GaiaVOCatSIAP.tcl b/applications/gaia/gaiavo/library/GaiaVOCatSIAP.tcl
index 71ba7491626..2c16d9df509 100644
--- a/applications/gaia/gaiavo/library/GaiaVOCatSIAP.tcl
+++ b/applications/gaia/gaiavo/library/GaiaVOCatSIAP.tcl
@@ -239,48 +239,9 @@ itcl::class gaiavo::GaiaVOCatSIAP {
}
}
- # Extract the accessURL for the SIAP service from a list of headers
- # and the associated data row.
- public proc getAccessURL {headers row} {
- eval lassign "$row" $headers
- if { [info exists accessURL] } {
- return $accessURL
- }
- return {}
- }
-
- # Extract the IVOA identifier for the SIAP service from a list of headers
- # and the associated data row.
- public proc getIdentifier {headers row} {
- eval lassign "$row" $headers
- if { [info exists identifier] } {
- return $identifier
- }
- return {}
- }
-
- # Extract a name for SIAP service from a list of headers
- # and the associated data row.
- public proc getName {headers row} {
- eval lassign "$row" $headers
- if { [info exists shortName] && $shortName != {} } {
- return $shortName
- }
- if { [info exists title] } {
- return $title
- }
- return {}
- }
-
# Configuration options: (public variables)
# ----------------------
- # The shortname of the service.
- itk_option define -shortname shortname ShortName {}
-
- # The accessURL for the SIAP server.
- itk_option define -accessURL accessURL AccessURL {}
-
# The identifier for the SIAP server.
itk_option define -identifier identifier Identifier {}
diff --git a/applications/gaia/gaiavo/library/GaiaVORegTapQuery.tcl b/applications/gaia/gaiavo/library/GaiaVORegTapQuery.tcl
index c6b991aa7e7..1bb1d3d667a 100644
--- a/applications/gaia/gaiavo/library/GaiaVORegTapQuery.tcl
+++ b/applications/gaia/gaiavo/library/GaiaVORegTapQuery.tcl
@@ -66,6 +66,15 @@
itcl::class gaiavo::GaiaVORegTapQuery {
+ # Singleton entry point:
+ # ----------------------
+ proc instance {} {
+ if { $instance_ == {} } {
+ set instance_ [GaiaVORegTapQuery ::\#auto]
+ }
+ return $instance_
+ }
+
# Inheritances:
# -------------
@@ -85,24 +94,29 @@ itcl::class gaiavo::GaiaVORegTapQuery {
# Methods:
# --------
+ # Return the service type.
+ public method get_type {} {
+ return "RegTAP"
+ }
+
# Get ADQL for list of TAP servers.
- public proc get_taps {{substring {}}} {
+ public method get_taps_query {{substring {}}} {
return [get_servers ivo://ivoa.net/std/tap $substring]
}
# Get ADQL for list of conesearch servers.
- public proc get_taps {{substring {}}} {
+ public method get_cones_query {{substring {}}} {
return [get_servers ivo://ivoa.net/std/ConeSearch $substring]
}
# Get ADQL to get list of SIA servers, qualified by some optional string
# that should be in a descriptive content element.
- public proc get_sias {{substring {}}} {
+ public method get_sias_query {{substring {}}} {
return [get_servers ivo://ivoa.net/std/sia $substring]
}
# Get ADQL to get list of registries.
- public proc get_registries {} {
+ public method get_registries_query {} {
set query {}
append query "SELECT access_url "
append query "FROM rr.interface "
@@ -119,7 +133,7 @@ itcl::class gaiavo::GaiaVORegTapQuery {
# Get ADQL to get list of servers with the given standard_id, qualified by
# some optional string that should be in a descriptive content element.
# XXX only apply subtring to some elements.
- public proc get_servers {standard_id {substring {}}} {
+ public method get_servers_query {standard_id {substring {}}} {
set query {}
append query "SELECT ivoid, short_name, res_title, reference_url, base_role, role_name, "
append query "email, intf_index, access_url, standard_id, cap_type, cap_description, "
@@ -148,22 +162,99 @@ itcl::class gaiavo::GaiaVORegTapQuery {
return $query
}
+ # Get the default registry endpoints. Returns a list of pairs of values,
+ # a symbolic name followed by the endpoint.
+ public method get_registries {} {
+ return [::array get registries_]
+ }
+
+ # Add a new registry to the default list. Not peristent.
+ public method add_registry {shortname url} {
+ set registries_($shortname) $url
+ }
+
+ # Get the "default" registry.
+ public method default_registry {} {
+ return [list GAVO_AIP $registries_(GAVO_AIP)]
+ }
+
+ # Get the standard id for a service type shortname.
+ public method get_standard_id {name} {
+ return $standardIDs_($name)
+ }
+
+ # Get the default columns to show.
+ public method default_columns {} {
+ return "$default_columns_"
+ }
+
+ # Extract the access url from a row of values. The headers are the
+ # names of the associated columns.
+ public method get_access_url {headers row} {
+ eval lassign "$row" $headers
+ if { [info exists access_url] } {
+ return $access_url
+ }
+ return {}
+ }
+
+ # Extract a name for a service from a row of values. The headers are the
+ # names of the associated columns.
+ public method get_name {headers row} {
+ eval lassign "$row" $headers
+ if { [info exists short_name] && $short_name != {} } {
+ return $short_name
+ }
+ if { [info exists res_title] } {
+ return $res_title
+ }
+ return {}
+ }
+
+ # Extract the IVOA identifier for the service from a list of headers
+ # and the associated data row.
+ public method get_identifier {headers row} {
+ eval lassign "$row" $headers
+ if { [info exists ivoid] } {
+ return $ivoid
+ }
+ return {}
+ }
+
# Configuration options: (public variables)
# ----------------------
-
# Common variables: (shared by all instances)
# -----------------
+ # The instance of this class.
+ protected common instance_ {}
+
# Known RegTAP servers. Needed to boot this process.
- public common registries
+ protected common registries_
+
+ # TAP endpoint for GAVO registry hosted at AIP.
+ set registries_(GAVO_AIP) "http://gavo.aip.de/__system__/tap/run/tap"
# TAP endpoint for GAVO registry currently hosted at ARI Heidelberg
- set registries(ARI) "http://dc.g-vo.org/tap"
+ set registries_(GAVO_ARI) "http://dc.zah.uni-heidelberg.de/__system__/tap/run/tap"
- # TAP endpoint for GAVO registry hosted at AIP.
- set registries(AIP) "http://gavo.aip.de/tap"
+ # Mapping of short service names to their standard ids. Yes these differ
+ # in case from RI1.0...
+ protected common standardIDs_
+ set standardIDs_(SIAP) "ivo://ivoa.net/std/sia"
+ set standardIDs_(SSAP) "ivo://ivoa.net/std/ssa"
+ set standardIDs_(CONE) "ivo://ivoa.net/std/conesearch"
+ set standardIDs_(TAP) "ivo://ivoa.net/std/tap"
+
+ # Default columns to show in table views.
+ protected common default_columns_ "short_name res_title"
+ # Useful columns.
+ protected common columns_ \
+ "ivoid short_name res_title reference_url base_role role_name email \
+ intf_index access_url standard_id cap_type cap_description std_version \
+ res_subjects"
# End of class definition.
}
diff --git a/applications/gaia/gaiavo/library/GaiaVORegV1.tcl b/applications/gaia/gaiavo/library/GaiaVORegV1.tcl
deleted file mode 100644
index 178f7c2ac45..00000000000
--- a/applications/gaia/gaiavo/library/GaiaVORegV1.tcl
+++ /dev/null
@@ -1,115 +0,0 @@
-#+
-# Name:
-# GaiaVORegV1
-
-# Type of Module:
-# [incr Tcl] class
-
-# Purpose:
-# Utilities methods for RI1.0.
-
-# Description:
-# Provides a number of methods that describe the registries
-# interface version 1.0.
-
-# Invocations:
-#
-# GaiaVORegV1 object_name [configuration options]
-#
-# This creates an instance of a GaiaTAPQuery object. The return is
-# the name of the object.
-#
-# object_name configure -configuration_options value
-#
-# Applies any of the configuration options (after the instance has
-# been created).
-#
-# object_name method arguments
-#
-# Performs the given method on this object.
-
-# Copyright:
-# Copyright (C) 2014 Science and Technology Facilities Council
-# All Rights Reserved.
-
-# Licence:
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be
-# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
-# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street,Fifth Floor, Boston, MA
-# 02110-1301, USA
-
-# Authors:
-# PWD: Peter Draper (JAC, Durham University)
-# {enter_new_authors_here}
-
-# History:
-# 04-AUG-2014 (PWD):
-# Original version.
-# {enter_further_changes_here}
-
-#-
-
-#.
-
-itcl::class gaiavo::GaiaVORegV1 {
-
- # Inheritances:
- # -------------
-
- # Nothing
-
- # Constructor:
- # ------------
- constructor {args} {
- # Nothing to do, just a holder for static methods.
- }
-
- # Destructor:
- # -----------
- destructor {
- }
-
- # Methods:
- # --------
-
- # Get the default registry endpoints. Returns a list of pairs of values,
- # a symbolic name followed by the endpoint.
- public proc get_registries {} {
- return [::array get registries_]
- }
-
- # Add a new registry to the default list. Not peristent.
- public proc add_registry {shortname url} {
- set registries_($shortname) $url
- }
-
- # Get the "default" registry.
- public proc default_registry {} {
- return [list AstroGrid $registries_(AstroGrid)]
- }
-
- # Configuration options: (public variables)
- # ----------------------
-
-
- # Common variables: (shared by all instances)
- # -----------------
-
- # Known RegV1 servers. Needed to boot this process.
- protected common registries_
- set registries_(NVO) "http://nvo.stsci.edu/vor10/ristandardservice.asmx"
- set registries_(AstroGrid) \
- "http://registry.astrogrid.org/astrogrid-registry/services/RegistryQueryv1_0"
-
-# End of class definition.
-}
diff --git a/applications/gaia/gaiavo/library/GaiaVORegV1Query.tcl b/applications/gaia/gaiavo/library/GaiaVORegV1Query.tcl
index c62d20b30fe..68afb03e642 100644
--- a/applications/gaia/gaiavo/library/GaiaVORegV1Query.tcl
+++ b/applications/gaia/gaiavo/library/GaiaVORegV1Query.tcl
@@ -124,7 +124,7 @@ itcl::class gaiavo::GaiaVORegV1Query {
# Extract the access url from a row of values. The headers are the
# names of the associated columns.
- public method get_access_url {row headers} {
+ public method get_access_url {headers row} {
eval lassign "$row" $headers
if { [info exists accessURL] } {
return $accessURL
@@ -134,7 +134,7 @@ itcl::class gaiavo::GaiaVORegV1Query {
# Extract a name for a service from a row of values. The headers are the
# names of the associated columns.
- public method get_name {row headers} {
+ public method get_name {headers row} {
eval lassign "$row" $headers
if { [info exists shortName] && $shortName != {} } {
return $shortName
@@ -145,6 +145,16 @@ itcl::class gaiavo::GaiaVORegV1Query {
return {}
}
+ # Extract the IVOA identifier for the service from a list of headers
+ # and the associated data row.
+ public method get_identifier {headers row} {
+ eval lassign "$row" $headers
+ if { [info exists identifier] } {
+ return $identifier
+ }
+ return {}
+ }
+
# Configuration options: (public variables)
# ----------------------
diff --git a/applications/gaia/gaiavo/library/GaiaVORegistrySearch.tcl b/applications/gaia/gaiavo/library/GaiaVORegistrySearch.tcl
index f9af4038f9f..d66475994c1 100644
--- a/applications/gaia/gaiavo/library/GaiaVORegistrySearch.tcl
+++ b/applications/gaia/gaiavo/library/GaiaVORegistrySearch.tcl
@@ -9,13 +9,19 @@
# Class for querying a VO registry.
# Description:
-# This class defines the access methods for querying the NVO
-# registry and astrogrid registries.
+# This class defines the access methods for querying VO registries.
#
-# The basic query to a service type (like sia:SimpleImageAccess) can be
-# refined by adding a ADQL where clause that looks for a specified
+# There are two types of registry, the old V1.0 type, that use a SOAP
+# query interface and the newer RegTAP, that use TAP (ADQL) queries.
+# RegTAP is expected to supercede V1.0.
+#
+# The basic query to a 1.0 service type (like sia:SimpleImageAccess) can
+# be refined by adding a ADQL where clause that looks for a specified
# substring in one of the known columns (these must match the meta-data
# definitions for a VOResource).
+#
+# In TAP there is a similar mechanism, that gives greater freedom to
+# control the query. That isn't necessarily exposed (yet).
# Invocations:
#
@@ -85,25 +91,39 @@ itcl::class gaiavo::GaiaVORegistrySearch {
set tempcats_ [gaia::GaiaTempName \#auto -prefix GaiaTempReg \
-exists 0 -type ".TAB"]
- # Display the registry. Offer two symbolic types. NVO and AstroGrid.
+ # User selects the registry type and registry.
+ itk_component add regframe {
+ ::frame $w_.regframe
+ }
set lwidth 10
set vwidth 50
itk_component add registry {
- LabelMenu $w_.registry \
+ LabelMenu $itk_component(regframe).registry \
-text "Registry:" \
-labelwidth $lwidth \
-valuewidth $vwidth
}
- pack $itk_component(registry) -side top -fill x -ipadx 1m -ipady 1m
- add_short_help $itk_component(registry) {VO Registry}
+ pack $itk_component(registry) -side left -fill x -ipadx 1m -ipady 1m
+ add_short_help $itk_component(registry) {VO registry}
- foreach {name value} [array get registries_] {
- $itk_component(registry) add \
- -command [code $this set_registry_ $name] \
- -label $name \
- -value $name
+ itk_component add regtype {
+ LabelMenu $itk_component(regframe).regtype \
+ -labelwidth 0 \
+ -valuewidth 6
}
- $itk_component(registry) configure -value $itk_option(-registry)
+ pack $itk_component(regtype) -side left -fill x -ipadx 1m -ipady 1m
+ add_short_help $itk_component(regtype) {VO registry type}
+
+ pack $itk_component(regframe) -side top -fill x -ipadx 1m -ipady 1m
+
+ foreach type "RI1.0 RegTAP" {
+ $itk_component(regtype) add \
+ -command [code $this set_registry_type_ $type] \
+ -label $type \
+ -value $type
+ }
+ $itk_component(regtype) configure -value "RegTAP"
+ set_registry_type_ "RegTAP"
# Display the type of service. This is fixed.
itk_component add service {
@@ -169,22 +189,37 @@ itcl::class gaiavo::GaiaVORegistrySearch {
eval $itk_option(-feedbackcommand) on
}
- # Establish object to run the query scripts.
- if { $querytask_ == {} } {
- set querytask_ [gaia::GaiaForeignExec \#auto \
+ # Establish objects to run the query scripts.
+ if { $queryregtask_ == {} } {
+ set queryregtask_ [gaia::GaiaForeignExec \#auto \
-application $::gaia_dir/queryreg \
-notify [code $this query_done_]]
}
+ if { $querytaptask_ == {} } {
+ set querytaptask_ [gaia::GaiaForeignExec \#auto \
+ -application $::gaia_dir/querytap \
+ -notify [code $this query_done_]]
+ }
set votable_ [$tempcats_ get_typed_name ".vot"]
set interrupted_ 0
if { $itk_option(-column) != {} && $itk_option(-substring) != {} } {
- $querytask_ runwith [get_registry_] [get_service_] \
- "$itk_option(-column)" "$itk_option(-substring)" "$votable_"
+ if { $itk_option(-registry_type) == "RI1.0" } {
+ $queryregtask_ runwith [get_registry_] [get_service_] \
+ "$itk_option(-column)" "$itk_option(-substring)" "$votable_"
+ } else {
+ set query [$regtap_ get_servers_query [get_service_] "$itk_option(-substring)"]
+ $querytaptask_ runwith [get_registry_] "$query" "$votable_"
+ }
+
} else {
- $querytask_ runwith [get_registry_] [get_service_] \
- "" "" "$votable_"
+ if { $itk_option(-registry_type) == "RI1.0" } {
+ $queryregtask_ runwith [get_registry_] [get_service_] "" "" "$votable_"
+ } else {
+ set query [$regtap_ get_servers_query [get_service_] {}]
+ $querytaptask_ runwith [get_registry_] "$query" "$votable_"
+ }
}
}
@@ -224,13 +259,13 @@ itcl::class gaiavo::GaiaVORegistrySearch {
}
# Set the registry.
- protected method set_registry_ {registry} {
- configure -registry $registry
+ protected method set_registry_ {name url} {
+ configure -registry [list $name $url]
}
# Get the registry endpoint.
protected method get_registry_ {} {
- return $registries_($itk_option(-registry))
+ return [lindex $itk_option(-registry) 1]
}
# Set the service.
@@ -240,7 +275,7 @@ itcl::class gaiavo::GaiaVORegistrySearch {
# Translate a service type to its full description or standard ID.
protected method get_service_ {} {
- return $standardIDs_($itk_option(-service))
+ return [$reghandler_ get_standard_id $itk_option(-service)]
}
# Save the result of a query to an external VOTable.
@@ -304,11 +339,48 @@ itcl::class gaiavo::GaiaVORegistrySearch {
}
}
+ # Change the registry type.
+ protected method set_registry_type_ {type} {
+
+ # If changed we want to change the columns.
+ set change_cols 0
+ if { $type != $itk_option(-registry_type) } {
+ set change_cols 1
+ }
+ configure -registry_type $type
+
+ # Set the handler.
+ if { $type == "RI1.0" } {
+ set reghandler_ $regv1_
+ } else {
+ set reghandler_ $regtap_
+ }
+
+ # Clear any existing registries.
+ $itk_component(registry) clear
+
+ foreach {name value} [$reghandler_ get_registries] {
+ $itk_component(registry) add \
+ -command [code $this set_registry_ $name $value] \
+ -label $name \
+ -value $value
+ }
+ $itk_component(registry) configure \
+ -value [lindex [$reghandler_ default_registry] 1]
+ eval set_registry_ [$reghandler_ default_registry]
+
+ # Change default columns.
+ if { $itk_option(-show_cols_cmd) != {} } {
+ eval $itk_option(-show_cols_cmd) {[$reghandler_ default_columns]}
+ }
+ }
+
# Configuration options: (public variables)
# ----------------------
-
- # The type of VO registry to query, NVO or AstroGrid.
- itk_option define -registry registry Registry "NVO"
+
+ # Current registry and type.
+ itk_option define -registry registry Registry {}
+ itk_option define -registry_type registry_type Registry_Type {}
# The type of query, SIAP, SSAP, CONE or TAP.
itk_option define -service service Service "SIAP"
@@ -324,6 +396,10 @@ itcl::class gaiavo::GaiaVORegistrySearch {
# the substring entry.
itk_option define -query_cmd query_cmd Query_Cmd {}
+ # Command to execute when the default columns to show in the results
+ # should change. This is necessary when switching between the two types.
+ itk_option define -show_cols_cmd show_cols_cmd Show_Cols_Cmd {}
+
# Name of a column to qualify query.
itk_option define -column column Column {title}
@@ -340,20 +416,18 @@ itcl::class gaiavo::GaiaVORegistrySearch {
protected variable votable_ {}
# Task controlling queries.
- protected variable querytask_ {}
+ protected variable queryregtask_ {}
+ protected variable querytaptask_ {}
# Set true when a query is being interrupted.
protected variable interrupted_ 0
+ # Current handler for different registry types.
+ protected variable reghandler_ [::gaiavo::GaiaVORegTapQuery::instance]
+
# Common variables: (shared by all instances)
# -----------------
- # The known registries.
- protected common registries_
- set registries_(NVO) "http://nvo.stsci.edu/vor10/ristandardservice.asmx"
- set registries_(AstroGrid) \
- "http://registry.astrogrid.org/astrogrid-registry/services/RegistryQueryv1_0"
-
# Mapping for short to full names of services.
protected common services_
set services_(SIAP) "SimpleImageAccess"
@@ -361,16 +435,9 @@ itcl::class gaiavo::GaiaVORegistrySearch {
set services_(CONE) "ConeSearch"
set services_(TAP) "TableAccess"
- # Mapping of short service names to their standard ids.
- protected common standardIDs_
- set standardIDs_(SIAP) "ivo://ivoa.net/std/SIA"
- set standardIDs_(SSAP) "ivo://ivoa.net/std/SSA"
- set standardIDs_(CONE) "ivo://ivoa.net/std/ConeSearch"
- set standardIDs_(TAP) "ivo://ivoa.net/std/TAP"
-
- # Possible columns for adding a predicate.
- protected common columns_ "title shortName"
-
+ # Handlers for different registry types.
+ protected common regtap_ [::gaiavo::GaiaVORegTapQuery::instance]
+ protected common regv1_ [::gaiavo::GaiaVORegV1Query::instance]
# End of class definition.
}
diff --git a/applications/gaia/gaiavo/library/GaiaVOTAP.tcl b/applications/gaia/gaiavo/library/GaiaVOTAP.tcl
index 9281b53e16b..019811a2191 100644
--- a/applications/gaia/gaiavo/library/GaiaVOTAP.tcl
+++ b/applications/gaia/gaiavo/library/GaiaVOTAP.tcl
@@ -145,7 +145,7 @@ itcl::class gaiavo::GaiaVOTAP {
-command [code $this query_done] \
-gaiactrl [$itk_option(-gaia) get_image]
}
- pack $itk_component(tap) -side top -fill x
+ pack $itk_component(tap) -side top -fill x -expand 1
add_short_help $itk_component(tap) \
{Controls for querying the TAP service}
@@ -164,31 +164,6 @@ itcl::class gaiavo::GaiaVOTAP {
# Do nothing.
}
- # Extract the accessURL for the TAP service from a list of headers and the
- # associated data row.
- public proc getAccessURL {headers row} {
- puts "headers = $headers"
- puts "$row"
- eval lassign "$row" $headers
- if { [info exists accessURL] } {
- return $accessURL
- }
- return {}
- }
-
- # Extract a name for TAP service from a list of headers and the associated
- # data row.
- public proc getName {headers row} {
- eval lassign "$row" $headers
- if { [info exists shortName] && $shortName != {} } {
- return $shortName
- }
- if { [info exists title] } {
- return $title
- }
- return {}
- }
-
# Plot the RA and Dec positions on the image using the defined symbols.
public method plot {} {
@@ -403,12 +378,6 @@ itcl::class gaiavo::GaiaVOTAP {
# Configuration options: (public variables)
# ----------------------
- # The shortname of the service.
- itk_option define -shortname shortname ShortName {}
-
- # The URL for the TAP service.
- itk_option define -accessURL accessURL AccessURL {}
-
# Instance of GAIA to display the catalogue.
itk_option define -gaia gaia Gaia {} {
set rtdctrl_ [$itk_option(-gaia) get_image]
diff --git a/applications/gaia/gaiavo/library/GaiaVOTAPQuery.tcl b/applications/gaia/gaiavo/library/GaiaVOTAPQuery.tcl
index cd07fbf85ec..9b4f5fb906b 100644
--- a/applications/gaia/gaiavo/library/GaiaVOTAPQuery.tcl
+++ b/applications/gaia/gaiavo/library/GaiaVOTAPQuery.tcl
@@ -99,17 +99,17 @@ itcl::class gaiavo::GaiaVOTAPQuery {
pack $itk_component(service) -side top -fill x -ipadx 1m -ipady 1m
add_short_help $itk_component(service) "The TAP service"
- # Get the ADQL text.
- itk_component add adql {
- LabelEntry $w_.adql \
- -text "Query:" \
- -labelwidth $lwidth \
- -valuewidth $vwidth \
- -command [code $this adql_query_]
+ # Get the ADQL query.
+ itk_component add adqlframe {
+ iwidgets::scrolledtext $w_.adql \
+ -labeltext "ADQL Query" \
+ -wrap none \
+ -vscrollmode static \
+ -hscrollmode dynamic
}
- pack $itk_component(adql) -side top -fill x -ipadx 1m -ipady 1m
- add_short_help $itk_component(adql) \
- {ADQL query, press to activate}
+
+ pack $itk_component(adqlframe) -side top -fill x -ipadx 1m -ipady 1m
+ add_short_help $itk_component(adqlframe) {ADQL query, press Query button to activate}
}
# Destructor:
@@ -142,7 +142,7 @@ itcl::class gaiavo::GaiaVOTAPQuery {
}
set votable_ [$tempcats_ get_typed_name ".vot"]
set interrupted_ 0
- set query [$itk_component(adql) get]
+ set query [$itk_component(adqlframe) get 1.0 end]
$querytask_ runwith $itk_option(-accessURL) $query $votable_
}
From 6efb543c34ffd742b53e9698fe7294de2fadbd31 Mon Sep 17 00:00:00 2001
From: "Peter W. Draper"
Date: Wed, 6 Aug 2014 12:49:24 +0100
Subject: [PATCH 10/13] gaiavo: don't test URLs for RFC 3986 compliance
as a consumer it's better to work with what's given
---
applications/gaia/scripts/querycone | 2 +-
applications/gaia/scripts/querynedcone | 2 +-
applications/gaia/scripts/querynedobject | 2 +-
applications/gaia/scripts/querysiap | 2 +-
applications/gaia/scripts/querytap | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/applications/gaia/scripts/querycone b/applications/gaia/scripts/querycone
index d435024b5e6..58868d1de03 100755
--- a/applications/gaia/scripts/querycone
+++ b/applications/gaia/scripts/querycone
@@ -91,7 +91,7 @@ proc get {query outfile} {
set fid [::open $outfile w]
# Download the response.
- if { [catch {set response [::http::geturl $query] } msg] } {
+ if { [catch {set response [::http::geturl $query -strict 0] } msg] } {
# Failed, so delete file and exit with an error.
catch {
diff --git a/applications/gaia/scripts/querynedcone b/applications/gaia/scripts/querynedcone
index 9c74f418673..957f1b589fa 100755
--- a/applications/gaia/scripts/querynedcone
+++ b/applications/gaia/scripts/querynedcone
@@ -80,7 +80,7 @@ if { [info exists ::env(http_proxy)] } {
proc get {query} {
# Download the response.
- if { [catch {set response [::http::geturl $query] } msg] } {
+ if { [catch {set response [::http::geturl $query -strict 0] } msg] } {
# Failed.
puts stderr "$msg"
diff --git a/applications/gaia/scripts/querynedobject b/applications/gaia/scripts/querynedobject
index 55e4c1b2d87..a5aea9cd010 100755
--- a/applications/gaia/scripts/querynedobject
+++ b/applications/gaia/scripts/querynedobject
@@ -78,7 +78,7 @@ if { [info exists ::env(http_proxy)] } {
proc get {query} {
# Download the response.
- if { [catch {set response [::http::geturl $query] } msg] } {
+ if { [catch {set response [::http::geturl $query -strict 0] } msg] } {
# Failed.
puts stderr "$msg"
diff --git a/applications/gaia/scripts/querysiap b/applications/gaia/scripts/querysiap
index 63395776f39..f95e7ad0788 100755
--- a/applications/gaia/scripts/querysiap
+++ b/applications/gaia/scripts/querysiap
@@ -89,7 +89,7 @@ proc get {query outfile} {
set fid [::open $outfile w]
# Download the response.
- if { [catch {set response [::http::geturl $query] } msg] } {
+ if { [catch {set response [::http::geturl $query -strict 0] } msg] } {
# Failed, so delete file and exit with an error.
catch {
diff --git a/applications/gaia/scripts/querytap b/applications/gaia/scripts/querytap
index 2b77b24d943..91d0e2b826b 100755
--- a/applications/gaia/scripts/querytap
+++ b/applications/gaia/scripts/querytap
@@ -83,7 +83,7 @@ proc get {endpoint query outfile} {
set fid [::open $outfile w]
# Download the response.
- if { [catch {set response [::http::geturl $endpoint -query $query] } msg] } {
+ if { [catch {set response [::http::geturl $endpoint -query $query -strict 0] } msg] } {
# Failed, so delete file and exit with an error.
catch {
From c54eafa30e574a95f5b4416cc048a19d37c97861 Mon Sep 17 00:00:00 2001
From: "Peter W. Draper"
Date: Thu, 7 Aug 2014 18:14:56 +0100
Subject: [PATCH 11/13] gaiavo: fixes to the various older services to work
with new registry type
---
applications/gaia/gaia/library/Gaia.tcl | 2 +-
.../gaia/gaiavo/library/GaiaVOCatRegistry.tcl | 17 +++++-
.../gaia/gaiavo/library/GaiaVOCats.tcl | 18 ++++---
.../gaia/gaiavo/library/GaiaVOCatsSIAP.tcl | 11 +++-
.../gaia/gaiavo/library/GaiaVORegTapQuery.tcl | 18 +++----
.../gaia/gaiavo/library/GaiaVORegV1Query.tcl | 6 +--
.../gaiavo/library/GaiaVORegistrySearch.tcl | 18 +++++++
.../gaia/gaiavo/library/GaiaVOSIAPSearchs.tcl | 52 ++++++++++++++++---
8 files changed, 111 insertions(+), 31 deletions(-)
diff --git a/applications/gaia/gaia/library/Gaia.tcl b/applications/gaia/gaia/library/Gaia.tcl
index bb1db0159d3..449c9e4a75e 100644
--- a/applications/gaia/gaia/library/Gaia.tcl
+++ b/applications/gaia/gaia/library/Gaia.tcl
@@ -27,7 +27,7 @@
# Copyright:
# Copyright (C) 1998-2001 Central Laboratory of the Research Councils
# Copyright (C) 2006-2007 Particle Physics & Astronomy Research Council.
-# Copyright (C) 2007-2009 Science and Technology Facilities Council.
+# Copyright (C) 2007-2014 Science and Technology Facilities Council.
# All Rights Reserved.
# Licence:
diff --git a/applications/gaia/gaiavo/library/GaiaVOCatRegistry.tcl b/applications/gaia/gaiavo/library/GaiaVOCatRegistry.tcl
index b2837cc9b79..16485355e01 100644
--- a/applications/gaia/gaiavo/library/GaiaVOCatRegistry.tcl
+++ b/applications/gaia/gaiavo/library/GaiaVOCatRegistry.tcl
@@ -191,7 +191,8 @@ itcl::class gaiavo::GaiaVOCatRegistry {
} else {
# Need headers and selected row.
set headings [$itk_component(results) get_headings]
- eval $itk_option(-activate_cmd) "\$headings" "\$args"
+ puts "$itk_option(-activate_cmd) \$headings \$args"
+ eval $itk_option(-activate_cmd) \$headings "$args"
}
}
}
@@ -208,7 +209,7 @@ itcl::class gaiavo::GaiaVOCatRegistry {
set headings [$w_.cat headings]
set result {}
foreach row [$w_.cat content] {
- eval lassign \$row $headings
+ set identifier [$query_component_ get_identifier "$headings" "$row"]
if { ! [$itk_option(-blacklist) blacklisted $identifier] } {
lappend result $row
}
@@ -218,6 +219,18 @@ itcl::class gaiavo::GaiaVOCatRegistry {
$itk_component(results) config -info $info_
}
+ # Provide access to query_component_ specialisations for different
+ # registry types.
+ public method get_identifier {headings row} {
+ return [$query_component_ get_identifier "$headings" "$row"]
+ }
+ public method get_access_url {headings row} {
+ return [$query_component_ get_access_url "$headings" "$row"]
+ }
+ public method get_name {headings row} {
+ return [$query_component_ get_name "$headings" "$row"]
+ }
+
# Add more help if this is just a simple registry query.
protected method add_help_menu_ {} {
if { $itk_option(-help_file) == {} } {
diff --git a/applications/gaia/gaiavo/library/GaiaVOCats.tcl b/applications/gaia/gaiavo/library/GaiaVOCats.tcl
index 250b557d1ac..12c6ee029b8 100644
--- a/applications/gaia/gaiavo/library/GaiaVOCats.tcl
+++ b/applications/gaia/gaiavo/library/GaiaVOCats.tcl
@@ -31,7 +31,7 @@
# Performs the given method on this object.
# Copyright:
-# Copyright (C) 2008-2009 Science and Technology Facilities Council
+# Copyright (C) 2008-2014 Science and Technology Facilities Council
# All Rights Reserved.
# Licence:
@@ -384,12 +384,16 @@ itcl::class gaiavo::GaiaVOCats {
# removal).
protected method remove_current_ {text} {
after 0 [list $itk_component(progressbar) config -text $text]
- $itk_component(notebook) delete $current_
- $itk_component(bookmenu) delete $current_
- $itk_component(bookmenu) update_menubutton
- incr current_ -1
- incr npages_ -1
- incr ncolumn_ -1
+
+ # Seems to fail with some visibility timer, so handle that ungracefully.
+ catch {
+ $itk_component(notebook) delete $current_
+ $itk_component(bookmenu) delete $current_
+ $itk_component(bookmenu) update_menubutton
+ incr current_ -1
+ incr npages_ -1
+ incr ncolumn_ -1
+ }
}
# Start the queries.
diff --git a/applications/gaia/gaiavo/library/GaiaVOCatsSIAP.tcl b/applications/gaia/gaiavo/library/GaiaVOCatsSIAP.tcl
index 01deac8a710..f10aadd4153 100644
--- a/applications/gaia/gaiavo/library/GaiaVOCatsSIAP.tcl
+++ b/applications/gaia/gaiavo/library/GaiaVOCatsSIAP.tcl
@@ -242,6 +242,10 @@ itcl::class gaiavo::GaiaVOCatsSIAP {
# Use specialised warning dialog that offers to blacklist the current
# server.
protected method warning_dialog_ {message} {
+
+ # Truncate message, these can be very long.
+ set message [string range $message 0 200]
+
set choice [choice_dialog "$message" "OK Blacklist" "OK" $w_]
if { $choice != "OK" } {
$itk_option(-blacklist) blacklist $ids_($current_)
@@ -251,6 +255,9 @@ itcl::class gaiavo::GaiaVOCatsSIAP {
# Use specialised error dialog that offers to blacklist the current
# server.
protected method error_dialog_ {message} {
+ # Truncate message, these can be very long.
+ set message [string range $message 0 200]
+
set choice [choice_dialog "$message" "OK Blacklist" "OK" $w_]
if { $choice != "OK" } {
$itk_option(-blacklist) blacklist $ids_($current_)
@@ -264,7 +271,9 @@ itcl::class gaiavo::GaiaVOCatsSIAP {
set headings [$w_.cat headings]
set result {}
foreach row [$w_.cat content] {
- eval lassign \$row $headings
+ set identifier [$query_component_ get_identifier "$headings" "$row"]
+ set accessURL [$query_component_ get_access_url "$headings" "$row"]
+ set title [$query_component_ get_name "$headings" "$row"]
if { ! [$itk_option(-blacklist) blacklisted $identifier] && $accessURL != {} } {
lappend result $accessURL $title $identifier
}
diff --git a/applications/gaia/gaiavo/library/GaiaVORegTapQuery.tcl b/applications/gaia/gaiavo/library/GaiaVORegTapQuery.tcl
index 1bb1d3d667a..ba4a4325ef3 100644
--- a/applications/gaia/gaiavo/library/GaiaVORegTapQuery.tcl
+++ b/applications/gaia/gaiavo/library/GaiaVORegTapQuery.tcl
@@ -135,17 +135,15 @@ itcl::class gaiavo::GaiaVORegTapQuery {
# XXX only apply subtring to some elements.
public method get_servers_query {standard_id {substring {}}} {
set query {}
- append query "SELECT ivoid, short_name, res_title, reference_url, base_role, role_name, "
- append query "email, intf_index, access_url, standard_id, cap_type, cap_description, "
+ append query "SELECT ivoid, short_name, res_title, reference_url, "
+ append query "intf_index, access_url, standard_id, cap_type, cap_description, "
append query "std_version, res_subjects "
append query "FROM rr.resource AS res "
append query "NATURAL JOIN rr.interface "
append query "NATURAL JOIN rr.capability "
- append query "NATURAL LEFT OUTER JOIN rr.res_role "
append query "NATURAL LEFT OUTER JOIN "
append query "(SELECT ivoid, ivo_string_agg(res_subject, ', ') AS res_subjects FROM rr.res_subject GROUP BY ivoid) AS sbj "
append query "WHERE "
- append query "(base_role='contact' OR base_role='publisher' OR base_role IS NULL ) AND "
append query "standard_id='${standard_id}' AND "
append query "intf_type='vs:paramhttp'"
if { $substring != {} } {
@@ -155,7 +153,6 @@ itcl::class gaiavo::GaiaVORegTapQuery {
append query "1=ivo_hasword(res_title, '${substring}') OR "
append query "1=ivo_hasword(res_subjects, '${substring}') OR "
append query "1=ivo_nocasematch(ivoid, '%${substring}%') OR "
- append query "(base_role='publisher' AND 1=ivo_nocasematch(role_name,'%${substring}%')) OR "
append query "1=ivo_hasword(res_description, '${substring}') "
append query "))"
}
@@ -191,7 +188,7 @@ itcl::class gaiavo::GaiaVORegTapQuery {
# Extract the access url from a row of values. The headers are the
# names of the associated columns.
public method get_access_url {headers row} {
- eval lassign "$row" $headers
+ eval lassign \$row $headers
if { [info exists access_url] } {
return $access_url
}
@@ -201,7 +198,7 @@ itcl::class gaiavo::GaiaVORegTapQuery {
# Extract a name for a service from a row of values. The headers are the
# names of the associated columns.
public method get_name {headers row} {
- eval lassign "$row" $headers
+ eval lassign \$row $headers
if { [info exists short_name] && $short_name != {} } {
return $short_name
}
@@ -214,7 +211,7 @@ itcl::class gaiavo::GaiaVORegTapQuery {
# Extract the IVOA identifier for the service from a list of headers
# and the associated data row.
public method get_identifier {headers row} {
- eval lassign "$row" $headers
+ eval lassign \$row $headers
if { [info exists ivoid] } {
return $ivoid
}
@@ -252,9 +249,8 @@ itcl::class gaiavo::GaiaVORegTapQuery {
# Useful columns.
protected common columns_ \
- "ivoid short_name res_title reference_url base_role role_name email \
- intf_index access_url standard_id cap_type cap_description std_version \
- res_subjects"
+ "ivoid short_name res_title reference_url intf_index access_url standard_id \
+cap_type cap_description std_version res_subjects"
# End of class definition.
}
diff --git a/applications/gaia/gaiavo/library/GaiaVORegV1Query.tcl b/applications/gaia/gaiavo/library/GaiaVORegV1Query.tcl
index 68afb03e642..e6769b4f2f7 100644
--- a/applications/gaia/gaiavo/library/GaiaVORegV1Query.tcl
+++ b/applications/gaia/gaiavo/library/GaiaVORegV1Query.tcl
@@ -125,7 +125,7 @@ itcl::class gaiavo::GaiaVORegV1Query {
# Extract the access url from a row of values. The headers are the
# names of the associated columns.
public method get_access_url {headers row} {
- eval lassign "$row" $headers
+ eval lassign \$row $headers
if { [info exists accessURL] } {
return $accessURL
}
@@ -135,7 +135,7 @@ itcl::class gaiavo::GaiaVORegV1Query {
# Extract a name for a service from a row of values. The headers are the
# names of the associated columns.
public method get_name {headers row} {
- eval lassign "$row" $headers
+ eval lassign \$row $headers
if { [info exists shortName] && $shortName != {} } {
return $shortName
}
@@ -148,7 +148,7 @@ itcl::class gaiavo::GaiaVORegV1Query {
# Extract the IVOA identifier for the service from a list of headers
# and the associated data row.
public method get_identifier {headers row} {
- eval lassign "$row" $headers
+ eval lassign \$row $headers
if { [info exists identifier] } {
return $identifier
}
diff --git a/applications/gaia/gaiavo/library/GaiaVORegistrySearch.tcl b/applications/gaia/gaiavo/library/GaiaVORegistrySearch.tcl
index d66475994c1..d688de5e17c 100644
--- a/applications/gaia/gaiavo/library/GaiaVORegistrySearch.tcl
+++ b/applications/gaia/gaiavo/library/GaiaVORegistrySearch.tcl
@@ -375,6 +375,24 @@ itcl::class gaiavo::GaiaVORegistrySearch {
}
}
+ # Get the identifier from a catalogue row with the associated headings.
+ # Uses the current registry type to locate the column name.
+ public method get_identifier {headings row} {
+ return [$reghandler_ get_identifier "$headings" "$row"]
+ }
+
+ # Get the access URL from a catalogue row with the associated headings.
+ # Uses the current registry type to locate the column name.
+ public method get_access_url {headings row} {
+ return [$reghandler_ get_access_url "$headings" "$row"]
+ }
+
+ # Get the name/title from a catalogue row with the associated headings.
+ # Uses the current registry type to locate the column name.
+ public method get_name {headings row} {
+ return [$reghandler_ get_name "$headings" "$row"]
+ }
+
# Configuration options: (public variables)
# ----------------------
diff --git a/applications/gaia/gaiavo/library/GaiaVOSIAPSearchs.tcl b/applications/gaia/gaiavo/library/GaiaVOSIAPSearchs.tcl
index 7d30c24fdc6..fa707fc7c1f 100644
--- a/applications/gaia/gaiavo/library/GaiaVOSIAPSearchs.tcl
+++ b/applications/gaia/gaiavo/library/GaiaVOSIAPSearchs.tcl
@@ -426,15 +426,39 @@ itcl::class gaiavo::GaiaVOSIAPSearchs {
return [list $ra $dec $radius]
}
+ # Realise the registry dialog, we need this for service functions as well
+ # as when we want to change the list of SIAP servers, so use local method
+ # rather than utils. XXX clearly this should all be refactored so thst
+ # registry is a model and we just have various views.
+ protected method create_registry_ { withdraw } {
+ if { [winfo exists $w_.voregistry] } {
+ $w_.voregistry config \
+ -catalog [$itk_option(-astrocat) longname] \
+ -service SIAP \
+ -activate_cmd [code $this changed_registry_] \
+ -blacklist $itk_option(-blacklist)
+ } else {
+ GaiaVOCatRegistry $w_.voregistry \
+ -catalog [$itk_option(-astrocat) longname] \
+ -service SIAP \
+ -activate_cmd [code $this changed_registry_] \
+ -blacklist $itk_option(-blacklist)
+ # Wait for realisation to complete...
+ tkwait visibility $w_.voregistry
+ }
+
+ if { ! $withdraw } {
+ utilRaiseWindow $w_.voregistry
+ } else {
+ wm withdraw $w_.voregistry
+ }
+ }
+
+
# Activate the registry dialog.
protected method registry_query_ {} {
blt::busy hold [winfo toplevel $w_]
- utilReUseWidget GaiaVOCatRegistry $w_.voregistry \
- -catalog [$itk_option(-astrocat) longname] \
- -service SIAP \
- -show_cols {shortName title} \
- -activate_cmd [code $this changed_registry_] \
- -blacklist $itk_option(-blacklist)
+ create_registry_ 0
}
# Registry has been changed and maybe accepted.
@@ -443,6 +467,22 @@ itcl::class gaiavo::GaiaVOSIAPSearchs {
$itk_option(-astrocat) open [$w_.voregistry cget -catalog]
}
+ # Provide access to GaiaVOCatRegistry specialisations for different
+ # registry types.
+ public method get_identifier {headings row} {
+ create_registry_ 1
+ return [$w_.voregistry get_identifier "$headings" "$row"]
+ }
+ public method get_access_url {headings row} {
+ create_registry_ 1
+ return [$w_.voregistry get_access_url "$headings" "$row"]
+ }
+ public method get_name {headings row} {
+ create_registry_ 1
+ return [$w_.voregistry get_name "$headings" "$row"]
+ }
+
+
# Configuration options: (public variables)
# ----------------------
From a4b3988df7079e832d29c441a4daf2be43a70068 Mon Sep 17 00:00:00 2001
From: "Peter W. Draper"
Date: Fri, 8 Aug 2014 18:35:24 +0100
Subject: [PATCH 12/13] gaia: add script to query TAP service about useful
things
---
.../gaia/gaiavo/library/GaiaVOTableSet.tcl | 398 ++++++++++++++++++
applications/gaia/scripts/Makefile.am | 2 +-
applications/gaia/scripts/querytapthings | 137 ++++++
3 files changed, 536 insertions(+), 1 deletion(-)
create mode 100755 applications/gaia/gaiavo/library/GaiaVOTableSet.tcl
create mode 100755 applications/gaia/scripts/querytapthings
diff --git a/applications/gaia/gaiavo/library/GaiaVOTableSet.tcl b/applications/gaia/gaiavo/library/GaiaVOTableSet.tcl
new file mode 100755
index 00000000000..813dc4d5cfb
--- /dev/null
+++ b/applications/gaia/gaiavo/library/GaiaVOTableSet.tcl
@@ -0,0 +1,398 @@
+#+
+# Name:
+# GaiaVOTableSet
+
+# Type of Module:
+# [incr Tk] class
+
+# Purpose:
+# Viewer for VODataService XML documents.
+
+# Description:
+# Displays a VODataService XML document as a series of tables
+# found within a element. These are associated with
+# various schema, but we just offer all 's that are found.
+# Tables have the interesting properties of name, plus
+# units and ucd, utypes etc.
+
+# Invocations:
+#
+# GaiaVOTableSet object_name [configuration options]
+#
+# This creates an instance of a GaiaVOTableSet object. The return is
+# the name of the object.
+#
+# object_name configure -configuration_options value
+#
+# Applies any of the configuration options (after the instance has
+# been created).
+#
+# object_name method arguments
+#
+# Performs the given method on this object.
+
+# Configuration options:
+# See itk_option define statements.
+
+# Methods:
+# See method definitions below.
+
+# Inheritance:
+# TopLevelWidget
+
+# Copyright:
+# Copyright (C) 2014 Science and Technology Research Council.
+# All Rights Reserved.
+
+# Licence:
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street,Fifth Floor, Boston, MA
+# 02110-1301, USA
+
+# Authors:
+# PWD: Peter Draper (STARLINK - Durham University)
+# {enter_new_authors_here}
+
+# History:
+# 07-AUG-2014 (PWD):
+# Original version.
+# {enter_further_changes_here}
+
+#-
+
+#.
+
+itk::usual GaiaVOTableSet {}
+
+itcl::class gaiavo::GaiaVOTableSet {
+
+ # Inheritances:
+ # -------------
+ inherit util::TopLevelWidget
+
+ # Constructor:
+ # ------------
+ constructor {args} {
+
+ # Evaluate any options.
+ eval itk_initialize $args
+
+ # Add a short help window.
+ make_short_help
+
+ # Add menubar.
+ add_menubar
+
+ # File menu.
+ set m [add_menubutton File]
+
+ add_menuitem $m command "Close" \
+ {Close this window} \
+ -command [code $this close]
+
+ }
+
+ # Destructor:
+ # -----------
+ destructor {
+
+ }
+
+ # Methods:
+ # --------
+
+ # Complete interface construction.
+ public method init {} {
+
+ # Help menu.
+ add_help_menu_
+
+ # Add the table for displaying all the tables.
+ itk_component add tables {
+ TableList $w_.tables \
+ -title "Tables" \
+ -hscroll 1 \
+ -selectmode $selectmode_ \
+ -exportselection $exportselection_ \
+ -headings {name description} \
+ -height 5
+ }
+ add_short_help $itk_component(tables) {Tables available}
+
+ # Add the table for displaying the current table.
+ itk_component add table {
+ TableList $w_.table \
+ -title "Current table" \
+ -hscroll 1 \
+ -selectmode $selectmode_ \
+ -exportselection $exportselection_ \
+ -headings {column description datatype} \
+ -height 15
+ }
+ add_short_help $itk_component(table) \
+ {Columns and descriptions in the current table}
+
+ # Add frames for holding table action buttons.
+ itk_component add actionbar {
+ frame $w_.actionbar
+ }
+
+ # Close window.
+ itk_component add close {
+ button $itk_component(actionbar).close \
+ -text "Close" \
+ -command [code $this close]
+ }
+ pack $itk_component(close) -side left -expand 1 -pady 2m
+ add_short_help $itk_component(close) {Close window}
+
+ # Set table binding edit the entries.
+ bind $itk_component(tables).listbox <1> [code $this view_selected_]
+
+ # Pack all widgets into place.
+ pack $itk_component(tables) -side top -fill both -expand 1
+ pack $itk_component(table) -side top -fill both -expand 1
+ pack $itk_component(actionbar) -side top -fill x -pady 3 -padx 3
+
+ }
+
+ # Add and populate the help menu. Has the VO overview by default
+ # plus an additional topic defined by help_file and help_label.
+ protected method add_help_menu_ {} {
+ if { $itk_option(-help_file) != {} && $itk_option(-help_label) != {} } {
+ add_help_button $itk_option(-help_file) $itk_option(-help_label) \
+ {Help on this window...}
+ }
+ add_help_button vo "About VO services..." {Help on VO in GAIA}
+ }
+
+ # Close this window.
+ public method close {} {
+ wm withdraw $w_
+ }
+
+ # Return number of rows.
+ public method total_rows {main} {
+ if { $main } {
+ return [$itk_component(tables) total_rows]
+ } else {
+ return [$itk_component(table) total_rows]
+ }
+ }
+
+ # Return contents of table.
+ public method get_contents {main} {
+ if { $main } {
+ return [$itk_component(tables) get_contents]
+ } else {
+ return [$itk_component(table) get_contents]
+ }
+ }
+
+ # Return selected contents of table. Only one row allowed.
+ public method get_selected {main} {
+ if { $main } {
+ return [lindex [$itk_component(tables) get_selected] 0]
+ } else {
+ return [lindex [$itk_component(table) get_selected] 0]
+ }
+ }
+
+ # Set the contents of the table.
+ public method set_contents { main rows } {
+ if { $main } {
+ $itk_component(tables) append_rows $rows
+ } else {
+ $itk_component(table) append_rows $rows
+ }
+ }
+
+ # Append a new row to the table. Call new_info when completed.
+ public method append_row {main row} {
+ if { $main } {
+ $itk_component(tables) append_row $row
+ } else {
+ $itk_component(table) append_row $row
+ }
+ }
+ public method new_info {main} {
+ if { $main } {
+ $itk_component(tables) new_info
+ } else {
+ $itk_component(table) new_info
+ }
+ }
+
+ # Select the row with the given id.
+ public method select_row {main id} {
+ if { $main } {
+ $itk_component(tables) search id $id
+ } else {
+ $itk_component(table) search id $id
+ }
+ }
+
+ # Clear the tables.
+ public method clear_table {main} {
+ if { $main } {
+ $itk_component(tables) clear
+ } else {
+ $itk_component(table) clear
+ }
+ }
+ public method clear_tables {} {
+ $itk_component(tables) clear
+ $itk_component(table) clear
+ }
+
+ # Write a copy of the table to an ordinary file.
+ public method write_to_file {} {
+ set w [FileSelect .\#auto -title "Write positions to file"]
+ if {[$w activate]} {
+ set filename [$w get]
+ if { [file exists $filename] } {
+ if { ! [ confirm_dialog \
+ "$filename exists - do you want to overwrite?"] } {
+ destroy $w
+ return
+ }
+ }
+ save_positions $filename
+ }
+ destroy $w
+ }
+
+ # Write table contents to a named file.
+ public method save_positions {filename} {
+ set fid [::open $filename w]
+ set nrows [$itk_component(table) total_rows]
+ set contents [$itk_component(table) get_contents]
+ for { set i 0 } { $i < $nrows } { incr i } {
+ puts $fid [lindex $contents $i]
+ }
+ ::close $fid
+ }
+
+ # XML handling.
+
+ # Parse the document after updating the XML.
+ public method update {} {
+ clear_tables
+ if { $itk_option(-xml) != {} } {
+ parse_doc_
+ }
+ }
+
+ # Parse the XML into lists of tables and the table's columns.
+ protected method parse_doc_ {} {
+ if { [ catch { set doc [dom parse $itk_option(-xml)] } msg ] } {
+ error_dialog $msg
+ return
+ }
+
+ # Now find all the s.
+ set root [$doc documentElement]
+ if { ! [string equal -nocase "tableset" [$root nodeName]] } {
+ error_dialog "root of document not a tableset: [$root nodeName]"
+ return
+ }
+ set tables [$root selectNodes "//table"]
+
+ # Gather names and descriptions.
+ set info {}
+ array unset tablelist_
+ foreach table $tables {
+ set nameNode [$table selectNode "name"]
+ if { $nameNode != {} } {
+ set name [$nameNode text]
+
+ # We require a name.
+ if { $name != {} } {
+ set descNode [$table selectNode "description"]
+ set desc "None provided"
+ if { $descNode != {} } {
+ set desc [$descNode text]
+ }
+ lappend info [list $name $desc]
+
+ # Keep indexed list of table nodes so we can pick out content as
+ # needed.
+ set tablelist_($name) $table
+ }
+ }
+ }
+
+ set_contents 1 $info
+ new_info 1
+ }
+
+ # View the properties of the selected table.
+ protected method view_selected_ {} {
+ set selected [get_selected 1]
+ set name [lindex $selected 0]
+ if { [info exists tablelist_($name)] } {
+ parse_table_ $name
+ }
+ }
+
+ # Extract and view the properties of the given table.
+ protected method parse_table_ {name} {
+ clear_table 0
+
+ set table $tablelist_($name)
+
+ # Get all the columns and create rows describing each.
+ set info {}
+ set columns [$table selectNode "column"]
+ foreach column $columns {
+ set nameNode [$column selectNode "name"]
+ set name [$nameNode text]
+
+ set descNode [$column selectNode "description"]
+ set desc [$descNode text]
+
+ set dataNode [$column selectNode "dataType"]
+ set datatype [$dataNode text]
+
+ lappend info [list $name $desc $datatype]
+ }
+ set_contents 0 $info
+ new_info 0
+ }
+
+ # Configuration options
+ # =====================
+
+ # The XML document. Use update if changed after creation.
+ itk_option define -xml xml Xml {}
+
+ # Define a help file and label for the Help menu.
+ itk_option define -help_file help_file Help_File {}
+ itk_option define -help_label help_label Help_Label "On Window..."
+
+ # Protected variables: (available to instance)
+ # --------------------
+
+ # Table elements of the XML document, indexed by the table name.
+ protected variable tablelist_
+
+ # Table configuration.
+ protected variable selectmode_ single
+ protected variable exportselection_ 0
+
+ # Common variables: (shared by all instances)
+ # -----------------
+
+# End of class definition.
+}
diff --git a/applications/gaia/scripts/Makefile.am b/applications/gaia/scripts/Makefile.am
index 5578534652d..a66ed63b227 100644
--- a/applications/gaia/scripts/Makefile.am
+++ b/applications/gaia/scripts/Makefile.am
@@ -7,7 +7,7 @@ SCRIPTS_GAIA = displaycat displaypolcat gaiacmap.sh gaiacut \
gaia_standalone.csh gaiawcs2tab pix2wcs \
tabbedgaia.sh wcs2pix zoomcutandflip connect_to_gaia.tcl \
querysiap ftpget querycone queryreg querynedobject \
- querynedcone querytap
+ querynedcone querytap querytapthings
## Edit the main startup scripts so that they set the LD_LIBRARY_PATH
## to include the installation libdir.
diff --git a/applications/gaia/scripts/querytapthings b/applications/gaia/scripts/querytapthings
new file mode 100755
index 00000000000..34c795e5af6
--- /dev/null
+++ b/applications/gaia/scripts/querytapthings
@@ -0,0 +1,137 @@
+#!/bin/sh
+# The next line is executed by /bin/sh, but not Tcl \
+exec $GAIA_DIR/gaiavo_tcl $0 ${1+"$@"}
+#+
+# Name:
+# querytapthings
+
+# Purpose:
+# Query a TAP service about some capability of the end point
+
+# Usage:
+# querytapthings endpoint thing [outfile]
+
+# Description:
+# Queries a TAP service using given thing as a qualifier for the
+# given endpoint. The result is usually some VOResource that
+# describes the thing, that a list of tables or capabilities.
+# If no output file is given the result is sent to standard output.
+
+# Authors:
+# Peter W. Draper (PWD):
+
+# Copyright:
+# Copyright (C) 2014 Science and Technology Facilties Council.
+# All Rights Reserved.
+
+# Licence:
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street,Fifth Floor, Boston, MA
+# 02110-1301, USA
+
+# History:
+# 07-AUG-2014 (PWD):
+# Original version.
+#-
+#.
+
+package require uri
+
+# Check the command-line arguments.
+set outfile {}
+if { $argc >= 2 } {
+ set endpoint [lindex $argv 0]
+ set thing [lindex $argv 1]
+ if { $argc == 3 } {
+ set outfile [lindex $argv 2]
+ }
+} else {
+ puts stderr {Usage: querytapthing endpoint thing [outfile]}
+ exit 1
+}
+
+# Open the output file, just a test.
+if { $outfile != {} } {
+ if { [catch "::open $outfile w" fid] } {
+ puts stderr "Failed to open output file: $outfile"
+ exit 1
+ }
+ ::close $fid
+}
+
+# Establish the standard proxy define using http_proxy.
+#cat::ProxyDialog::check_proxies $::env(HOME)/.skycat/proxies
+set proxy {}
+set port {}
+if { [info exists ::env(http_proxy)] } {
+ if { [scan $::env(http_proxy) {http://%[^:/]:%d} proxy port] != 2 } {
+ scan $::env(http_proxy) {http://%[^:/]} proxy
+ }
+}
+::http::config -proxyhost $proxy
+::http::config -proxyport $port
+
+# Proc to do the query. Needed as can be recursive if redirected.
+proc get {query outfile} {
+
+ # Open the result file, if given.
+ if { $outfile != {} } {
+ set fid [::open $outfile w]
+ } else {
+ set fid stdout
+ }
+
+ # Download the response.
+ if { [catch {set response [::http::geturl $query -strict 0] } msg] } {
+
+ # Failed, so delete file and exit with an error.
+ if { $outfile != {} } {
+ catch {
+ ::close $fid
+ ::file delete $outfile
+ }
+ }
+ puts stderr "$msg"
+ return 1
+ }
+
+ # Check for a moved response and handle the re-direct.
+ if { [::http::ncode $response] == 302 || [::http::ncode $response] == 303 } {
+ array set meta [eval set $response\(meta\)]
+ set location $meta(Location)
+ puts "Redirected to: $newquery"
+ if { $outfile != {} } {
+ catch {::close $fid}
+ }
+ get $location $query $outfile
+ return
+ }
+
+ # Get content and copy to the output stream.
+ puts $fid [::http::data $response]
+
+ if { $outfile != {} } {
+ catch {::close $fid}
+ }
+ return 0
+}
+
+# Construct URL suitable for a GET from the service.
+set url "${endpoint}/${thing}"
+
+# Do it.
+if { [get "${url}" $outfile] == 1 } {
+ exit 1
+}
+exit
From f2f103f1d2d15f62268acad67226f75115ddbdf9 Mon Sep 17 00:00:00 2001
From: "Peter W. Draper"
Date: Fri, 8 Aug 2014 18:36:25 +0100
Subject: [PATCH 13/13] gaiavo: add controls and visualisation of TAP tables
and related metadata
---
.../gaia/gaiavo/library/GaiaVOCatRegistry.tcl | 1 -
.../gaia/gaiavo/library/GaiaVOTAPQuery.tcl | 79 ++++++++++++++-
.../gaia/gaiavo/library/GaiaVOTableSet.tcl | 99 ++++++++++++-------
3 files changed, 135 insertions(+), 44 deletions(-)
diff --git a/applications/gaia/gaiavo/library/GaiaVOCatRegistry.tcl b/applications/gaia/gaiavo/library/GaiaVOCatRegistry.tcl
index 16485355e01..b84cb692d93 100644
--- a/applications/gaia/gaiavo/library/GaiaVOCatRegistry.tcl
+++ b/applications/gaia/gaiavo/library/GaiaVOCatRegistry.tcl
@@ -191,7 +191,6 @@ itcl::class gaiavo::GaiaVOCatRegistry {
} else {
# Need headers and selected row.
set headings [$itk_component(results) get_headings]
- puts "$itk_option(-activate_cmd) \$headings \$args"
eval $itk_option(-activate_cmd) \$headings "$args"
}
}
diff --git a/applications/gaia/gaiavo/library/GaiaVOTAPQuery.tcl b/applications/gaia/gaiavo/library/GaiaVOTAPQuery.tcl
index 9b4f5fb906b..359c0a0bd12 100644
--- a/applications/gaia/gaiavo/library/GaiaVOTAPQuery.tcl
+++ b/applications/gaia/gaiavo/library/GaiaVOTAPQuery.tcl
@@ -89,15 +89,42 @@ itcl::class gaiavo::GaiaVOTAPQuery {
} else {
set name $itk_option(-accessURL)
}
- itk_component add service {
- LabelValue $w_.service \
+
+ itk_component add actionframe {
+ frame $w_.actionframe
+ }
+ pack $itk_component(actionframe) -side top -fill x -ipadx 1m -ipady 1m
+
+ itk_component add servicename {
+ LabelValue $itk_component(actionframe).servicename \
-text "Service:" \
-labelwidth $lwidth \
-valuewidth $vwidth \
- -value $name
+ -value $itk_option(-shortname)
+ }
+ pack $itk_component(servicename) -side top -fill x -expand 1
+ add_short_help $itk_component(servicename) "The TAP service name"
+
+ itk_component add serviceurl {
+ LabelValue $itk_component(actionframe).serviceurl \
+ -text " " \
+ -labelwidth $lwidth \
+ -valuewidth $vwidth \
+ -value $itk_option(-accessURL)
+ }
+ pack $itk_component(serviceurl) -side top -fill x -expand 1
+ add_short_help $itk_component(serviceurl) "The TAP service endpoint"
+
+ # Additional query for discovering information about the tables
+ # on offer.
+ itk_component add queryservice {
+ button $itk_component(actionframe).queryservice \
+ -text "Tables..." \
+ -command [code $this query_tables_]
}
- pack $itk_component(service) -side top -fill x -ipadx 1m -ipady 1m
- add_short_help $itk_component(service) "The TAP service"
+ pack $itk_component(queryservice) -side right -fill none -expand 0 -ipadx 1m
+ add_short_help $itk_component(queryservice) \
+ {Query the service for information about the tables available}
# Get the ADQL query.
itk_component add adqlframe {
@@ -221,6 +248,42 @@ itcl::class gaiavo::GaiaVOTAPQuery {
}
}
+ # Query the TAP service about the tables that it provides and display some
+ # of the metadata. Only done once, as should be fixed for an accessURL.
+ protected method query_tables_ {} {
+ if { $tables_doc_ == {} } {
+ set query "$itk_option(-accessURL)/tables"
+ if { $querytaptask_ == {} } {
+ set querytaptask_ [gaia::GaiaForeignExec \#auto \
+ -application $::gaia_dir/querytapthings \
+ -preprocess [code $this query_tables_output_] \
+ -notify [code $this query_tables_done_]]
+ }
+
+ blt::busy hold $w_
+ set tables_doc_ {}
+ $querytaptask_ runwith $itk_option(-accessURL) "tables"
+ } else {
+ # Just make sure the results window can be viewed.
+ utilRaiseWindow $w_.tableset
+ }
+ }
+
+ # Handle output from query_tables task.
+ protected method query_tables_output_ {msg} {
+ append tables_doc_ $msg
+ }
+
+ # Query table completed, so pass on result to viewer.
+ protected method query_tables_done_ {} {
+ blt::busy release $w_
+ if { $tables_doc_ != {} } {
+ utilReUseWidget gaiavo::GaiaVOTableSet $w_.tableset -xml $tables_doc_
+ ::update idletasks
+ $w_.tableset update
+ }
+ }
+
# Configuration options: (public variables)
# ----------------------
@@ -259,6 +322,12 @@ itcl::class gaiavo::GaiaVOTAPQuery {
# Set true when a query is being interrupted.
protected variable interrupted_ 0
+ # Task to query the TAP service about it's tables.
+ protected variable querytaptask_ {}
+
+ # Output from querytaptask_, an XML document.
+ protected variable tables_doc_ {}
+
# Common variables: (shared by all instances)
# -----------------
diff --git a/applications/gaia/gaiavo/library/GaiaVOTableSet.tcl b/applications/gaia/gaiavo/library/GaiaVOTableSet.tcl
index 813dc4d5cfb..9467b8bcea8 100755
--- a/applications/gaia/gaiavo/library/GaiaVOTableSet.tcl
+++ b/applications/gaia/gaiavo/library/GaiaVOTableSet.tcl
@@ -126,10 +126,16 @@ itcl::class gaiavo::GaiaVOTableSet {
-selectmode $selectmode_ \
-exportselection $exportselection_ \
-headings {name description} \
- -height 5
+ -height 5 \
+ -width 80
}
add_short_help $itk_component(tables) {Tables available}
+ # Set table binding edit the entries.
+ bind $itk_component(tables).listbox <1> [code $this view_selected_]
+ bind $itk_component(tables).listbox <> \
+ [code $this view_selected_]
+
# Add the table for displaying the current table.
itk_component add table {
TableList $w_.table \
@@ -137,8 +143,9 @@ itcl::class gaiavo::GaiaVOTableSet {
-hscroll 1 \
-selectmode $selectmode_ \
-exportselection $exportselection_ \
- -headings {column description datatype} \
- -height 15
+ -headings {column description datatype units ucd utype} \
+ -height 15 \
+ -width 80
}
add_short_help $itk_component(table) \
{Columns and descriptions in the current table}
@@ -157,9 +164,6 @@ itcl::class gaiavo::GaiaVOTableSet {
pack $itk_component(close) -side left -expand 1 -pady 2m
add_short_help $itk_component(close) {Close window}
- # Set table binding edit the entries.
- bind $itk_component(tables).listbox <1> [code $this view_selected_]
-
# Pack all widgets into place.
pack $itk_component(tables) -side top -fill both -expand 1
pack $itk_component(table) -side top -fill both -expand 1
@@ -303,38 +307,39 @@ itcl::class gaiavo::GaiaVOTableSet {
# Now find all the s.
set root [$doc documentElement]
- if { ! [string equal -nocase "tableset" [$root nodeName]] } {
- error_dialog "root of document not a tableset: [$root nodeName]"
- return
- }
+
+ # Don't do this, some responses are not correct, but still usable.
+ #if { ! [string match -nocase "*tableset" [$root nodeName]] } {
+ # error_dialog "root of document not a tableset: [$root nodeName]"
+ # return
+ #}
set tables [$root selectNodes "//table"]
# Gather names and descriptions.
set info {}
array unset tablelist_
foreach table $tables {
- set nameNode [$table selectNode "name"]
- if { $nameNode != {} } {
- set name [$nameNode text]
-
- # We require a name.
- if { $name != {} } {
- set descNode [$table selectNode "description"]
- set desc "None provided"
- if { $descNode != {} } {
- set desc [$descNode text]
- }
- lappend info [list $name $desc]
-
- # Keep indexed list of table nodes so we can pick out content as
- # needed.
- set tablelist_($name) $table
- }
+ set name [get_node_text_ $table "name"]
+
+ # We require a name.
+ if { $name != {} } {
+ set desc [get_node_text_ $table "description"]
+ set desc [clean_ $desc]
+ lappend info [list $name $desc]
+
+ # Keep indexed list of table nodes so we can pick out content as
+ # needed.
+ set tablelist_($name) $table
}
}
set_contents 1 $info
new_info 1
+
+ # Select first row.
+ $itk_component(tables) select_row 1
+ ::update idletasks
+ view_selected_
}
# View the properties of the selected table.
@@ -356,21 +361,39 @@ itcl::class gaiavo::GaiaVOTableSet {
set info {}
set columns [$table selectNode "column"]
foreach column $columns {
- set nameNode [$column selectNode "name"]
- set name [$nameNode text]
-
- set descNode [$column selectNode "description"]
- set desc [$descNode text]
-
- set dataNode [$column selectNode "dataType"]
- set datatype [$dataNode text]
-
- lappend info [list $name $desc $datatype]
+ catch {
+ set name [get_node_text_ $column "name"]
+ set desc [get_node_text_ $column "description"]
+ set desc [clean_ $desc]
+ set datatype [get_node_text_ $column "dataType"]
+ set units [get_node_text_ $column "unit"]
+ set ucd [get_node_text_ $column "ucd"]
+ set utype [get_node_text_ $column "utype"]
+
+ lappend info [list $name $desc $datatype $units $ucd $utype]
+ }
}
set_contents 0 $info
new_info 0
}
+ # Get all text from a named child.
+ protected method get_node_text_ {parent name} {
+ set node [$parent selectNode $name]
+ if { $node != {} } {
+ return [$node text]
+ }
+ return {}
+ }
+
+
+ # Clean a string, removing funny characters and trimming.
+ protected method clean_ {str} {
+ regsub -all {[^\w\d\s\.]} $str {} str
+ return [string trim $str]
+ }
+
+
# Configuration options
# =====================
@@ -388,7 +411,7 @@ itcl::class gaiavo::GaiaVOTableSet {
protected variable tablelist_
# Table configuration.
- protected variable selectmode_ single
+ protected variable selectmode_ browse
protected variable exportselection_ 0
# Common variables: (shared by all instances)
|