26 #error C++ is required 
   29 #include <yateclass.h> 
  117     inline unsigned int row()
 const 
  139     bool parse(
const char* data);
 
  162     bool setError(Error error, 
XmlChild* child = 0);
 
  169     inline const char* 
getError(
const char* defVal = 
"Xml error")
 
  170         { 
return getError(m_error,defVal); }
 
  176         { 
return m_unparsed; }
 
  188     virtual void reset();
 
  202     static inline const char* 
getError(
int code, 
const char* defVal = 
"Xml error")
 
  203         { 
return lookup(code,s_errorString,defVal); }
 
  211         { 
return (c == 0x20) || (c == 0x09) || (c == 0x0d) || (c == 0x0a); }
 
  219     static bool checkFirstNameCharacter(
unsigned char ch);
 
  226     static bool checkDataChar(
unsigned char c);
 
  233     static bool checkNameCharacter(
unsigned char ch);
 
  240     static bool validTag(
const String& buf);
 
  271     bool parseInstruction();
 
  299     bool parseDeclaration();
 
  336     void unEscape(
String& text);
 
  349         { 
return c == 
'<' || c == 
'>'; }
 
  355         { m_error = NoError; }
 
  361         { m_parsed.clear(); m_parsed.clearParams(); }
 
  367     String* extractName(
bool& empty);
 
  454     bool processElement(
NamedList& list, 
bool empty);
 
  461     bool processText(
String& text);
 
  548     virtual XmlSaxParser::Error addChild(
XmlChild* child) = 0;
 
  557             XmlSaxParser::Error err = addChild(child);
 
  558             if (err != XmlSaxParser::NoError) {
 
  601         { 
return getChildren().skipNull() != 0; }
 
  617     XmlDomParser(
const char* name = 
"XmlDomParser", 
bool fragment = 
false);
 
  648     virtual void reset();
 
  656         { 
return el == m_current; }
 
  664     virtual void gotComment(
const String& text);
 
  670     virtual void gotProcessing(
const NamedString& instr);
 
  676     virtual void gotDeclaration(
const NamedList& decl);
 
  682     virtual void gotText(
const String& text);
 
  688     virtual void gotCdata(
const String& data);
 
  695     virtual void gotElement(
const NamedList& element, 
bool empty);
 
  701     virtual void endElement(
const String& name);
 
  707     virtual void gotDoctype(
const String& doc);
 
  714         { 
return m_current == 0; }
 
  807     XmlDeclaration(
const char* version = 
"1.0", 
const char* enc = 
"utf-8");
 
  831         { 
return m_declaration; }
 
  846     void toString(
String& dump, 
bool escape = 
true) 
const;
 
  895     virtual XmlSaxParser::Error addChild(
XmlChild* child);
 
  900     virtual void reset();
 
  907         { 
return static_cast<XmlChild*
>(m_list.remove(
false)); }
 
  956     void replaceParams(
const NamedList& params);
 
  969         bool noPrefix = 
true);
 
 1009     virtual XmlSaxParser::Error addChild(
XmlChild* child);
 
 1024         { 
return before ? m_beforeRoot : m_afterRoot; }
 
 1031     XmlElement* root(
bool completed = 
false) 
const;
 
 1049     virtual void reset();
 
 1058         { 
return m_beforeRoot.removeChild(child,delObj); }
 
 1066     virtual XmlSaxParser::Error read(
Stream& in, 
int* error = 0);
 
 1080     virtual int write(
Stream& out, 
bool escape = 
true,
 
 1082         bool completeOnly = 
true) 
const;
 
 1091     XmlSaxParser::Error loadFile(
const char* file, 
int* error = 0);
 
 1103     int saveFile(
const char* file = 0, 
bool escape = 
true,
 
 1105         const char* eoln = 
"\r\n") 
const;
 
 1121     void replaceParams(
const NamedList& params);
 
 1153     XmlElement(
const char* name, 
bool complete = 
true);
 
 1161     XmlElement(
const char* name, 
const char* value, 
bool complete = 
true);
 
 1178     inline const char* 
tag()
 const 
 1179         { 
return m_element; }
 
 1186         { 
return m_prefixed == 0; }
 
 1193         { 
return m_prefixed ? m_prefixed->name() : 
static_cast<const String&
>(m_element); }
 
 1199     void setUnprefixedTag(
const String& s);
 
 1206         { 
return m_prefixed ? m_prefixed->name() : 
static_cast<const String&
>(m_element); }
 
 1214     bool getTag(
const String*& tag, 
const String*& ns) 
const;
 
 1234     virtual XmlSaxParser::Error addChild(
XmlChild* child);
 
 1248         { m_complete = 
true; }
 
 1254         { 
return m_complete; }
 
 1267         { 
return m_parent ? m_parent->
element() : 0; }
 
 1273         { 
return m_parent; }
 
 1279     virtual void setParent(
XmlParent* parent);
 
 1285         { 
return m_element; }
 
 1291         { 
return m_element; }
 
 1298         { 
return m_children.getChildren(); }
 
 1304         { 
return m_children.clearChildren(); }
 
 1311         { 
return m_inheritedNs; }
 
 1318     void setInheritedNs(
const XmlElement* xml = 0, 
bool inherit = 
true);
 
 1324     void addInheritedNs(
const NamedList& list);
 
 1334             m_children.removeChild(x,
false);
 
 1343         { 
return m_element; }
 
 1358         const String* auth = 0) 
const;
 
 1370         bool noPrefix = 
true)
 const 
 1383         bool noPrefix = 
true)
 const 
 1397         const String* ns = 0, 
bool noPrefix = 
true)
 const {
 
 1399                 return findFirstChild(name,ns,noPrefix);
 
 1415         const String* ns = 0, 
bool noPrefix = 
true)
 const 
 1416         { 
return findNextChild(prev,&name,ns,noPrefix); }
 
 1428         bool noPrefix = 
true)
 const {
 
 1429             XmlElement* c = findFirstChild(&name,ns,noPrefix);
 
 1430             return c ? &(c->
getText()) : 0;
 
 1442     const String& getText() 
const;
 
 1451     XmlText* setText(
const char* text);
 
 1457     void addText(
const char* text);
 
 1464         { 
return m_element; }
 
 1472     unsigned int copyAttributes(
NamedList& list, 
const String& prefix) 
const;
 
 1481     void setAttributes(
NamedList& list, 
const String& prefix, 
bool skipPrefix = 
true);
 
 1489         { m_element.setParam(name,value); }
 
 1498                 m_element.setParam(name,value);
 
 1500                 removeAttribute(name);
 
 1509         { 
return m_element.getValue(name); }
 
 1517         { 
return m_element.getParam(name); }
 
 1526             String* a = getAttribute(name);
 
 1527             return a && *a == value;
 
 1535         { m_element.clearParam(name); }
 
 1543                 return xmlnsAttribute(s_ns);
 
 1544             return xmlnsAttribute(s_nsPrefix + *m_prefixed);
 
 1559             const String* x = xmlns();
 
 1560             return x && *x == ns;
 
 1579     virtual void replaceParams(
const NamedList& params);
 
 1588         { 
return str == s_ns || str.
startsWith(s_nsPrefix); }
 
 1607         bool copyXml = 
false);
 
 1619         bool copyXml = 
false);
 
 1632         bool copyXml = 
false);
 
 1646     inline void setPrefixed() {
 
 1648             int pos = m_element.find(
":");
 
 1650                 m_prefixed = 
new NamedString(m_element.substr(pos + 1),m_element.substr(0,pos));
 
 1692         { 
return m_comment; }
 
 1831     virtual void replaceParams(
const NamedList& params);
 
 1863         { 
return m_doctype; }
 
const char * getError(const char *defVal="Xml error")
Definition: yatexml.h:169
const String * childText(const String &name, const String *ns=0, bool noPrefix=true) const 
Definition: yatexml.h:1427
virtual XmlText * xmlText()
Definition: yatexml.h:1818
Xml Declaration. 
Definition: yatexml.h:798
virtual ~XmlParent()
Definition: yatexml.h:516
bool startsWith(const char *what, bool wordBreak=false, bool caseInsensitive=false) const 
void clearChildren()
Definition: yatexml.h:1303
const char * tag() const 
Definition: yatexml.h:1178
Document Object Model XML Parser. 
Definition: yatexml.h:608
const String & getDoctype() const 
Definition: yatexml.h:1862
virtual XmlCData * xmlCData()
Definition: yatexml.h:761
String m_buf
Definition: yatexml.h:486
Xml Document. 
Definition: yatexml.h:979
virtual const ObjList & getChildren() const 
Definition: yatexml.h:887
const ObjList & getChildren() const 
Definition: yatexml.h:1297
XmlChild * pop()
Definition: yatexml.h:906
Xml Declaration. 
Definition: yatexml.h:1767
virtual void gotText(const String &text)
Definition: yatexml.h:404
virtual void gotElement(const NamedList &element, bool empty)
Definition: yatexml.h:421
XmlDocument * document()
Definition: yatexml.h:635
XmlParent()
Definition: yatexml.h:510
char replace
Definition: yatexml.h:59
virtual bool completed()
Definition: yatexml.h:713
NamedList m_parsed
Definition: yatexml.h:492
Xml Fragment. 
Definition: yatexml.h:856
Serial Access XML Parser. 
Definition: yatexml.h:66
XmlChild * addChildSafe(XmlChild *child, XmlSaxParser::Error *code=0)
Definition: yatexml.h:556
unsigned int column() const 
Definition: yatexml.h:124
Xml Child. 
Definition: yatexml.h:726
virtual XmlChild * removeChild(XmlChild *child, bool delObj=true)
Definition: yatexml.h:1057
virtual XmlDoctype * xmlDoctype()
Definition: yatexml.h:782
virtual const ObjList & getChildren() const 
Definition: yatexml.h:586
Xml Element. 
Definition: yatexml.h:1136
void setAttribute(const String &name, const char *value)
Definition: yatexml.h:1488
void resetError()
Definition: yatexml.h:354
const String & getText() const 
unsigned int m_column
Definition: yatexml.h:476
virtual XmlCData * xmlCData()
Definition: yatexml.h:1756
const String & getCData() const 
Definition: yatexml.h:1742
ObjList * find(const GenObject *obj) const 
int lookup(const char *str, const TokenDict *tokens, int defvalue=0, int base=0)
bool isCurrent(const XmlElement *el) const 
Definition: yatexml.h:655
void destruct(GenObject *obj)
Definition: yateclass.h:951
virtual XmlFragment * fragment()
Definition: yatexml.h:532
virtual void gotProcessing(const NamedString &instr)
Definition: yatexml.h:388
virtual void gotDeclaration(const NamedList &decl)
Definition: yatexml.h:396
bool hasAttribute(const String &name, const String &value) const 
Definition: yatexml.h:1525
virtual XmlDoctype * xmlDoctype()
Definition: yatexml.h:1869
const String & getTag() const 
Definition: yatexml.h:1205
const char * attribute(const String &name) const 
Definition: yatexml.h:1508
bool hasChildren() const 
Definition: yatexml.h:600
static const char * getError(int code, const char *defVal="Xml error")
Definition: yatexml.h:202
A holder for a debug level. 
Definition: yateclass.h:309
XmlElement * parent() const 
Definition: yatexml.h:1266
virtual void setCompleted()
Definition: yatexml.h:1247
virtual bool completed()
Definition: yatexml.h:445
virtual const String & getName() const 
Definition: yatexml.h:1284
virtual const NamedList & getElement() const 
Definition: yatexml.h:1290
bool hasXmlns(const String &ns) const 
Definition: yatexml.h:1558
virtual void replaceParams(const NamedList ¶ms)
Definition: yatexml.h:789
static const ObjList & empty()
virtual void clearChildren()
Definition: yatexml.h:593
virtual void endElement(const String &name)
Definition: yatexml.h:429
A named string class. 
Definition: yateclass.h:3260
virtual void gotCdata(const String &data)
Definition: yatexml.h:412
virtual XmlFragment * fragment()
Definition: yatexml.h:880
const NamedList & attributes() const 
Definition: yatexml.h:1463
virtual void gotComment(const String &text)
Definition: yatexml.h:380
const String & getText() const 
Definition: yatexml.h:1791
bool null(const char *str)
Definition: yateclass.h:2960
virtual XmlText * xmlText()
Definition: yatexml.h:768
virtual void reset()
Definition: yatexml.h:578
A named string container class. 
Definition: yateclass.h:4773
const NamedList * inheritedNs() const 
Definition: yatexml.h:1310
virtual XmlElement * xmlElement()
Definition: yatexml.h:1220
void setText(const char *text)
Definition: yatexml.h:1798
bool completed() const 
Definition: yatexml.h:1253
Type m_unparsed
Definition: yatexml.h:497
const NamedList & getDec() const 
Definition: yatexml.h:830
An abstract stream class capable of reading and writing. 
Definition: yateclass.h:6542
virtual const String & toString() const 
Definition: yatexml.h:1342
void setUnparsed(Type id)
Definition: yatexml.h:182
unsigned int m_offset
Definition: yatexml.h:466
Definition: yatexml.h:1837
void setAttributeValid(const String &name, const char *value)
Definition: yatexml.h:1496
virtual XmlDeclaration * xmlDeclaration()
Definition: yatexml.h:838
const String & buffer() const 
Definition: yatexml.h:131
XmlElement * findFirstChild(const String &name, const String *ns=0, bool noPrefix=true) const 
Definition: yatexml.h:1382
ObjList * skipNext() const 
const char * value
Definition: yatexml.h:54
virtual XmlElement * element()
Definition: yatexml.h:1227
const String & unprefixedTag() const 
Definition: yatexml.h:1192
virtual void setParent(XmlParent *parent)
Definition: yatexml.h:740
Definition: yateclass.h:217
XmlElement * pop()
Definition: yatexml.h:1330
virtual XmlParent * getParent()
Definition: yatexml.h:1272
unsigned int offset() const 
Definition: yatexml.h:110
XmlElement * findNextChild(const XmlElement *prev=0, const String *name=0, const String *ns=0, bool noPrefix=true) const 
Definition: yatexml.h:1396
void removeAttribute(const String &name)
Definition: yatexml.h:1534
static bool blank(char c)
Definition: yatexml.h:210
A C-style string handling class. 
Definition: yateclass.h:1924
Error error()
Definition: yatexml.h:153
const XmlFragment & getFragment(bool before) const 
Definition: yatexml.h:1023
Error m_error
Definition: yatexml.h:481
Definition: yateclass.h:683
static const String s_nsPrefix
Definition: yatexml.h:1642
virtual XmlDocument * document()
Definition: yatexml.h:997
Type unparsed()
Definition: yatexml.h:175
An object list class. 
Definition: yateclass.h:1247
String * getAttribute(const String &name) const 
Definition: yatexml.h:1516
XmlFragment * fragment()
Definition: yatexml.h:642
static bool isXmlns(const String &str)
Definition: yatexml.h:1587
XmlElement * findFirstChild(const String *name=0, const String *ns=0, bool noPrefix=true) const 
Definition: yatexml.h:1369
void resetParsed()
Definition: yatexml.h:360
void YCLASS(class type, class base)
virtual XmlElement * element()
Definition: yatexml.h:540
bool isDefaultNs() const 
Definition: yatexml.h:1185
XmlElement * takeRoot(bool completed=false)
Definition: yatexml.h:1038
Xml Declaration. 
Definition: yatexml.h:1716
bool badCharacter(char c)
Definition: yatexml.h:348
static const String & empty()
bool empty() const 
Definition: yatexml.h:1259
XmlElement * findNextChild(const String &name, const XmlElement *prev=0, const String *ns=0, bool noPrefix=true) const 
Definition: yatexml.h:1414
virtual void gotDoctype(const String &doc)
Definition: yatexml.h:437
virtual XmlComment * xmlComment()
Definition: yatexml.h:754
unsigned int row() const 
Definition: yatexml.h:117
virtual XmlDocument * document()
Definition: yatexml.h:524
virtual XmlElement * xmlElement()
Definition: yatexml.h:747
Xml Parent. 
Definition: yatexml.h:504
String * xmlns() const 
Definition: yatexml.h:1541
const String & getBuffer() const 
Definition: yatexml.h:193
static const String s_ns
Definition: yatexml.h:1637
virtual XmlDeclaration * xmlDeclaration()
Definition: yatexml.h:775
static XmlElement * findElement(ObjList *list, const String *name, const String *ns, bool noPrefix=true)
Definition: yateclass.h:848
virtual void clearChildren()
Definition: yatexml.h:926
unsigned int m_row
Definition: yatexml.h:471