1 #ifndef DD_XMLElement_H
2 #define DD_XMLElement_H
56 typedef std::map <std::string, std::vector<std::string> >
AttrAccumType;
84 const std::vector<std::string> &
names,
85 const std::vector<std::string> &
values,
97 void loadText(
const std::string& inText );
103 const std::string
getText(
size_t tindex = 0 )
const;
106 virtual bool gotText(
void )
const;
109 virtual void clear(
void );
117 const virtual DDName getDDName(
const std::string& defaultNS,
const std::string& attname = std::string(
"name" ),
size_t aIndex = 0 );
126 virtual const std::string &
get(
const std::string&
name,
size_t aIndex = 0 )
const;
132 virtual size_t size(
void )
const;
134 virtual std::vector<DDXMLAttribute>::const_iterator
begin(
void );
136 virtual std::vector<DDXMLAttribute>::const_iterator
end(
void );
139 void setParent(
const std::string& pename );
142 void setSelf(
const std::string& sename );
145 const std::string&
parent(
void )
const;
170 virtual void stream( std::ostream & os )
const;
173 std::vector<DDXMLAttribute>::const_iterator&
operator++(
int inc );
176 virtual bool isEmpty(
void )
const;
179 void throwError(
const std::string& keyMessage )
const;
183 static std::string
itostr(
int i );
190 void appendAttributes( std::vector<std::string> & tv,
const std::string& name );
196 std::vector<DDXMLAttribute>::const_iterator
myIter_;
virtual bool isEmpty(void) const
Have any elements of this type been encountered but not processed?
std::map< std::string, std::vector< std::string > > AttrAccumType
std::string parentElement_
std::vector< DDXMLAttribute >::const_iterator & operator++(int inc)
Allow the elements of this type to be iterated over using ++ operator.
DDLElementRegistry * myRegistry_
static const HistoName names[]
static std::string itostr(int i)
WARNING: abused by other classes in this system: yet another conversion from int to std::string...
void appendText(const std::string &inText)
append to the current (i.e. most recently added)
void setParent(const std::string &pename)
Set parent element name to central list of names.
virtual const DDXMLAttribute & getAttributeSet(size_t aIndex=0) const
Get a "row" of attributes, i.e. one attribute set.
void throwError(const std::string &keyMessage) const
format std::string for throw an error.
DDName is used to identify DDD entities uniquely.
virtual void processElement(const std::string &name, const std::string &nmspace, DDCompactView &cpv)
Processing the element.
const std::string & parent(void) const
access to parent element name
void appendAttributes(std::vector< std::string > &tv, const std::string &name)
behind the scenes appending to pAttributes...
type of data representation of DDCompactView
std::map< std::string, std::string > DDXMLAttribute
virtual void preProcessElement(const std::string &name, const std::string &nmspace, DDCompactView &cpv)
Called by loadAttributes AFTER attributes are loaded.
void loadText(const std::string &inText)
Used to load both text and XML comments into this object.
void setSelf(const std::string &sename)
Set self element name to central list of names.
virtual std::vector< DDXMLAttribute >::const_iterator end(void)
void loadAttributes(const std::string &elemName, const std::vector< std::string > &names, const std::vector< std::string > &values, const std::string &nmspace, DDCompactView &cpv)
Load the element attributes.
virtual size_t size(void) const
Number of elements accumulated.
std::vector< DDXMLAttribute >::const_iterator myIter_
std::vector< DDXMLAttribute > attributes_
friend std::ostream & operator<<(std::ostream &os, const DDXMLElement &element)
virtual bool gotText(void) const
gotText()? kind of like gotMilk? Yes = text has already been encountered.
virtual std::vector< std::string > getVectorAttribute(const std::string &name)
Returns a set of values as a std::vector of strings, given the attribute name.
AttrAccumType attributeAccumulator_
virtual ~DDXMLElement(void)
Destructor.
This is a base class for processing XML elements in the DDD.
virtual const std::string & getAttribute(const std::string &name) const
Access to attributes by name.
virtual std::vector< DDXMLAttribute >::const_iterator begin(void)
virtual void stream(std::ostream &os) const
Allow for the elements to have their own streaming method, but also provide a default.
The main class for processing parsed elements.
virtual void clear(void)
clear this element's contents.
DDXMLElement(DDLElementRegistry *myreg)
Constructor.
virtual const DDName getDDName(const std::string &defaultNS, const std::string &attname=std::string("name"), size_t aIndex=0)
const std::string getText(size_t tindex=0) const
retrieve the text blob.
std::vector< std::string > text_