39#include <libdap/InternalErr.h>
41#include "XDStructure.h"
42#include "XDSequence.h"
43#include "get_xml_data.h"
45using namespace xml_data;
49XDStructure::ptr_duplicate()
51 return new XDStructure(*
this);
54XDStructure::XDStructure(
const string &n) : Structure(n)
58XDStructure::XDStructure( Structure *bt )
59 : Structure( bt->name() ),
XDOutput( bt )
64 Vars_iter p = bt->var_begin();
65 while (p != bt->var_end()) {
66 BaseType *new_bt = basetype_to_xd(*p);
74 BaseType::set_send_p(bt->send_p());
77XDStructure::~XDStructure()
82XDStructure::start_xml_declaration(XMLWriter *writer,
const char *element)
84 XDOutput::start_xml_declaration(writer, element);
86 for (Vars_iter p = var_begin(); p != var_end(); ++p) {
88 dynamic_cast<XDOutput&
>(**p).start_xml_declaration(writer, element);
89 dynamic_cast<XDOutput&
>(**p).end_xml_declaration(writer);
95XDStructure::print_xml_data(XMLWriter *writer,
bool show_type)
101 XDOutput::start_xml_declaration(writer);
103 for (Vars_iter p = var_begin(); p != var_end(); ++p) {
104 if ((*p)->send_p()) {
105 dynamic_cast<XDOutput&
> (*(*p)).print_xml_data(writer, show_type);
111 end_xml_declaration(writer);
XDOutput(libdap::BaseType *bt)