library: libXMLIO
#include "TXMLEngine.h"

TXMLEngine


class description - header file - source file - inheritance tree (.pdf)

class TXMLEngine : public TObject

Inheritance Chart:
TObject
<-
TXMLEngine

    protected:
XMLAttrPointer_t AllocateAttr(int namelen, int valuelen, XMLNodePointer_t xmlnode) XMLNodePointer_t AllocateNode(int namelen, XMLNodePointer_t parent) void DisplayError(Int_t error, Int_t linenumber) XMLNsPointer_t FindNs(XMLNodePointer_t xmlnode, const char* nsname) char* Makenstr(const char* start, int len) char* Makestr(const char* str) void OutputValue(Char_t* value, TXMLOutputStream* out) XMLNodePointer_t ReadNode(XMLNodePointer_t xmlparent, TXMLInputStream* inp, Int_t& resvalue) void SaveNode(XMLNodePointer_t xmlnode, TXMLOutputStream* out, Int_t layout, Int_t level) void TruncateNsExtension(XMLNodePointer_t xmlnode) void UnpackSpecialCharacters(char* target, const char* source, int srclen) public:
TXMLEngine() TXMLEngine(const TXMLEngine&) virtual ~TXMLEngine() void AddChild(XMLNodePointer_t parent, XMLNodePointer_t child) void AddChildFirst(XMLNodePointer_t parent, XMLNodePointer_t child) void AssignDtd(XMLDocPointer_t xmldoc, const char* dtdname, const char* rootname) static TClass* Class() void CleanNode(XMLNodePointer_t xmlnode) XMLNodePointer_t DocGetRootElement(XMLDocPointer_t xmldoc) void DocSetRootElement(XMLDocPointer_t xmldoc, XMLNodePointer_t xmlnode) void FreeAllAttr(XMLNodePointer_t xmlnode) void FreeAttr(XMLNodePointer_t xmlnode, const char* name) void FreeDoc(XMLDocPointer_t xmldoc) void FreeNode(XMLNodePointer_t xmlnode) const char* GetAttr(XMLNodePointer_t xmlnode, const char* name) const char* GetAttrName(XMLAttrPointer_t xmlattr) const char* GetAttrValue(XMLAttrPointer_t xmlattr) XMLNodePointer_t GetChild(XMLNodePointer_t xmlnode) XMLAttrPointer_t GetFirstAttr(XMLNodePointer_t xmlnode) Int_t GetIntAttr(XMLNodePointer_t node, const char* name) XMLNodePointer_t GetNext(XMLNodePointer_t xmlnode) XMLAttrPointer_t GetNextAttr(XMLAttrPointer_t xmlattr) const char* GetNodeContent(XMLNodePointer_t xmlnode) const char* GetNodeName(XMLNodePointer_t xmlnode) XMLNsPointer_t GetNS(XMLNodePointer_t xmlnode) const char* GetNSName(XMLNsPointer_t ns) const char* GetNSReference(XMLNsPointer_t ns) XMLNodePointer_t GetParent(XMLNodePointer_t xmlnode) Bool_t HasAttr(XMLNodePointer_t xmlnode, const char* name) virtual TClass* IsA() const Bool_t IsEmptyNode(XMLNodePointer_t) XMLAttrPointer_t NewAttr(XMLNodePointer_t xmlnode, XMLNsPointer_t, const char* name, const char* value) XMLNodePointer_t NewChild(XMLNodePointer_t parent, XMLNsPointer_t ns, const char* name, const char* content = "0") XMLDocPointer_t NewDoc(const char* version = "0") XMLAttrPointer_t NewIntAttr(XMLNodePointer_t xmlnode, const char* name, Int_t value) XMLNsPointer_t NewNS(XMLNodePointer_t xmlnode, const char* reference, const char* name = "0") TXMLEngine& operator=(const TXMLEngine&) XMLDocPointer_t ParseFile(const char* filename) XMLNodePointer_t ReadSingleNode(const char* src) void SaveDoc(XMLDocPointer_t xmldoc, const char* filename, Int_t layout = 1) void SaveSingleNode(XMLNodePointer_t xmlnode, TString* res, Int_t layout = 1) void ShiftToNext(XMLNodePointer_t& xmlnode) virtual void ShowMembers(TMemberInspector& insp, char* parent) void SkipEmpty(XMLNodePointer_t&) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) void UnlinkFreeNode(XMLNodePointer_t xmlnode) void UnlinkNode(XMLNodePointer_t node) Bool_t ValidateDocument(XMLDocPointer_t, Bool_t = kFALSE)

Data Members




Class Description

________________________________________________________________________

  TXMLEngine class is used to write and read ROOT XML files - TXMLFile.
  It does not conform to complete xml standard and cannot be used
  as parser for arbitrary XML files. For such cases TXMLParser should
  be used. This class was introduced to exclude dependency from
  external libraries (like libxml2) and improve speed / memory consumption.

________________________________________________________________________
TXMLEngine()
 default (normal) constructor of TXMLEngine class
~TXMLEngine()
 destructor for TXMLEngine object
Bool_t HasAttr(XMLNodePointer_t xmlnode, const char* name)
 checks if node has attribute of specified name
const char* GetAttr(XMLNodePointer_t xmlnode, const char* name)
 returns value of attribute for xmlnode
Int_t GetIntAttr(XMLNodePointer_t xmlnode, const char* name)
 returns value of attribute as integer
XMLAttrPointer_t NewAttr(XMLNodePointer_t xmlnode, XMLNsPointer_t, const char* name, const char* value)
 creates new attribute for xmlnode,
 namespaces are not supported for attributes
XMLAttrPointer_t NewIntAttr(XMLNodePointer_t xmlnode, const char* name, Int_t value)
 create node attribute with integer value
void FreeAttr(XMLNodePointer_t xmlnode, const char* name)
 remove attribute from xmlnode
void FreeAllAttr(XMLNodePointer_t xmlnode)
 Free all attributes of the node
XMLAttrPointer_t GetFirstAttr(XMLNodePointer_t xmlnode)
 return first attribute in the list, namespace (if exists) will be skiped
XMLAttrPointer_t GetNextAttr(XMLAttrPointer_t xmlattr)
 return next attribute in the list
const char* GetAttrName(XMLAttrPointer_t xmlattr)
 return name of the attribute
const char* GetAttrValue(XMLAttrPointer_t xmlattr)
 return value of attribute
XMLNodePointer_t NewChild(XMLNodePointer_t parent, XMLNsPointer_t ns, const char* name, const char* content)
 create new child element for parent node
XMLNsPointer_t NewNS(XMLNodePointer_t xmlnode, const char* reference, const char* name)
 create namespace attribute for xmlnode.
 namespace attribute will be always the first in list of node attributes
XMLNsPointer_t GetNS(XMLNodePointer_t xmlnode)
 return namespace attribute  (if exists)
const char* GetNSName(XMLNsPointer_t ns)
 return name id of namespace
const char* GetNSReference(XMLNsPointer_t ns)
 return reference id of namespace
void AddChild(XMLNodePointer_t parent, XMLNodePointer_t child)
 add child element to xmlnode
void AddChildFirst(XMLNodePointer_t parent, XMLNodePointer_t child)
 add node as first child
void UnlinkNode(XMLNodePointer_t xmlnode)
 unlink (dettach) xml node from parent
void FreeNode(XMLNodePointer_t xmlnode)
 release all memory, allocated fro this node and
 destroyes node itself
void UnlinkFreeNode(XMLNodePointer_t xmlnode)
 combined operation. Unlink node and free used memory
const char* GetNodeName(XMLNodePointer_t xmlnode)
 returns name of xmlnode
const char* GetNodeContent(XMLNodePointer_t xmlnode)
 get contents (if any) of xml node
XMLNodePointer_t GetChild(XMLNodePointer_t xmlnode)
 returns first child of xml node
XMLNodePointer_t GetParent(XMLNodePointer_t xmlnode)
 returns parent of xmlnode
XMLNodePointer_t GetNext(XMLNodePointer_t xmlnode)
 return next to xmlnode node
void ShiftToNext(XMLNodePointer_t &xmlnode)
 shifts specified node to next
void CleanNode(XMLNodePointer_t xmlnode)
 remove all childs node from xmlnode
XMLDocPointer_t NewDoc(const char* version)
 creates new xml document with provided version
void AssignDtd(XMLDocPointer_t xmldoc, const char* dtdname, const char* rootname)
 assignes dtd filename to document
void FreeDoc(XMLDocPointer_t xmldoc)
 frees allocated document data and deletes document itself
void SaveDoc(XMLDocPointer_t xmldoc, const char* filename, Int_t layout)
 store document content to file
 if layout<=0, no any spaces or newlines will be placed between
 xmlnodes. Xml file will have minimum size, but nonreadable structure
 if (layout>0) each node will be started from new line,
 and number of spaces will correspond to structure depth.
void DocSetRootElement(XMLDocPointer_t xmldoc, XMLNodePointer_t xmlnode)
 set main (root) node for document
XMLNodePointer_t DocGetRootElement(XMLDocPointer_t xmldoc)
 returns root node of document
XMLDocPointer_t ParseFile(const char* filename)
 parses content of file and tries to produce xml structures
void SaveSingleNode(XMLNodePointer_t xmlnode, TString* res, Int_t layout)
 convert single xml node (and its child node) to string
 if layout<=0, no any spaces or newlines will be placed between
 xmlnodes. Xml file will have minimum size, but nonreadable structure
 if (layout>0) each node will be started from new line,
 and number of spaces will correspond to structure depth.
XMLNodePointer_t ReadSingleNode(const char* src)
 read snigle xml node from provided string
char* Makestr(const char* str)
 creates char* variable with copy of provided string
char* Makenstr(const char* str, int len)
 creates char* variable with copy of len symbols from provided string
XMLNodePointer_t AllocateNode(int namelen, XMLNodePointer_t parent)
 Allocates new xml node with specified namelength
XMLAttrPointer_t AllocateAttr(int namelen, int valuelen, XMLNodePointer_t xmlnode)
 Allocate new attribute with specified name length and value length
XMLNsPointer_t FindNs(XMLNodePointer_t xmlnode, const char* name)
 define if namespace of that name exists for xmlnode
void TruncateNsExtension(XMLNodePointer_t xmlnode)
 removes namespace extension of nodename
void UnpackSpecialCharacters(char* target, const char* source, int srclen)
 unpack special symbols, used in xml syntax to code characters
 these symbols: '<' - &lt, '>' - &gt, '&' - &amp, '"' - &quot
void OutputValue(char* value, TXMLOutputStream* out)
 output value to output stream
 if symbols '<' '&' '>' '"' appears in the string, they
 will be encoded to appropriate xml symbols: &lt, &amp, &gt, &quot
void SaveNode(XMLNodePointer_t xmlnode, TXMLOutputStream* out, Int_t layout, Int_t level)
 stream data of xmlnode to output
XMLNodePointer_t ReadNode(XMLNodePointer_t xmlparent, TXMLInputStream* inp, Int_t& resvalue)
 Tries to construct xml node from input stream. Node should be
 child of xmlparent node or it can be closing tag of xmlparent.
 resvalue <= 0 if error
 resvalue == 1 if this is endnode of parent
 resvalue == 2 if this is child
void DisplayError(Int_t error, Int_t linenumber)
 Dsiplays error, occured during parsing of xml file
TXMLEngine()
Bool_t IsEmptyNode(XMLNodePointer_t)
void SkipEmpty(XMLNodePointer_t &)
Bool_t ValidateDocument(XMLDocPointer_t, Bool_t = kFALSE)

Author: Sergey Linev 10.05.2004
Last update: root/xml:$Name: $:$Id: TXMLEngine.cxx,v 1.20 2006/06/22 08:21:22 brun Exp $
Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. *


ROOT page - Class index - Class Hierarchy - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.