library: libXMLIO #include "TXMLFile.h" |
TXMLFile() | |
TXMLFile(const char* filename, Option_t* option = "read", const char* title = "title", Int_t compression = 1) | |
virtual | ~TXMLFile() |
void | TObject::AbstractMethod(const char* method) const |
void | TDirectory::Add(TObject* obj) |
Bool_t | AddXmlComment(const char* comment) |
Bool_t | AddXmlLine(const char* line) |
Bool_t | AddXmlStyleSheet(const char* href, const char* type = "text/css", const char* title = "0", int alternate = -1, const char* media = "0", const char* charset = "0") |
virtual void | TDirectory::Append(TObject* obj) |
Int_t | TDirectory::AppendKey(TKey* key) |
virtual void | TObject::AppendPad(Option_t* option = "") |
static TFileOpenHandle* | TFile::AsyncOpen(const char* name, Option_t* option = "", const char* ftitle = "", Int_t compress = 1, Int_t netopt = 0) |
virtual void | TDirectory::Browse(TBrowser* b) |
void | TDirectory::Build(TFile* motherFile = 0, TDirectory* motherDir = 0) |
virtual Bool_t | TDirectory::cd(const char* path = "0") |
static Bool_t | TDirectory::Cd(const char* path) |
static TClass* | Class() |
virtual const char* | TObject::ClassName() const |
virtual void | TDirectory::Clear(Option_t* option = "") |
virtual TObject* | TNamed::Clone(const char* newname = "") const |
virtual void | Close(Option_t* option = "") |
virtual Int_t | TNamed::Compare(const TObject* obj) const |
virtual void | TFile::Copy(TObject&) const |
virtual TKey* | CreateKey(TDirectory* mother, const TObject* obj, const char* name, Int_t bufsize) |
virtual TKey* | CreateKey(TDirectory* mother, const void* obj, const TClass* cl, const char* name, Int_t bufsize) |
static void | TDirectory::DecodeNameCycle(const char* namecycle, char* name, Short_t& cycle) |
static TString | TXMLSetup::DefaultXmlSetup() |
virtual void | TFile::Delete(const char* namecycle = "") |
virtual void | TDirectory::DeleteAll(Option_t* option = "") |
virtual Int_t | TObject::DistancetoPrimitive(Int_t px, Int_t py) |
virtual void | TFile::Draw(Option_t* option = "") |
virtual void | TObject::DrawClass() const |
virtual TObject* | TObject::DrawClone(Option_t* option = "") const |
virtual void | DrawMap(const char* = "*", Option_t* = "") |
virtual void | TObject::Dump() const |
static void | TDirectory::EncodeNameCycle(char* buffer, const char* name, Short_t cycle) |
virtual void | TObject::Error(const char* method, const char* msgfmt) const |
virtual void | TObject::Execute(const char* method, const char* params, Int_t* error = 0) |
virtual void | TObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0) |
virtual void | TObject::ExecuteEvent(Int_t event, Int_t px, Int_t py) |
virtual void | TObject::Fatal(const char* method, const char* msgfmt) const |
virtual void | FillBuffer(char*&) |
virtual TKey* | TDirectory::FindKey(const char* keyname) const |
virtual TKey* | TDirectory::FindKeyAny(const char* keyname) const |
virtual TObject* | TDirectory::FindObject(const char* name) const |
virtual TObject* | TDirectory::FindObject(const TObject* obj) const |
virtual TObject* | TDirectory::FindObjectAny(const char* name) const |
virtual void | Flush() |
virtual TObject* | TDirectory::Get(const char* namecycle) |
TArchiveFile* | TFile::GetArchive() const |
static TFile::EAsyncOpenStatus | TFile::GetAsyncOpenStatus(const char* name) |
static TFile::EAsyncOpenStatus | TFile::GetAsyncOpenStatus(TFileOpenHandle* handle) |
Int_t | TFile::GetBestBuffer() const |
virtual Int_t | TDirectory::GetBufferSize() const |
virtual Long64_t | TFile::GetBytesRead() const |
virtual Long64_t | TFile::GetBytesWritten() const |
TFileCacheRead* | TFile::GetCacheRead() const |
TFileCacheWrite* | TFile::GetCacheWrite() const |
TArrayC* | TFile::GetClassIndex() const |
Float_t | TFile::GetCompressionFactor() |
Int_t | TFile::GetCompressionLevel() const |
const TDatime& | TDirectory::GetCreationDate() const |
virtual TDirectory* | TDirectory::GetDirectory(const char* namecycle, Bool_t printError = false, const char* funcname = "GetDirectory") |
virtual Option_t* | TObject::GetDrawOption() const |
static Long_t | TObject::GetDtorOnly() |
virtual Long64_t | GetEND() const |
virtual const TUrl* | TFile::GetEndpointUrl() const |
static const TUrl* | TFile::GetEndpointUrl(const char* name) |
virtual Int_t | GetErrno() const |
Int_t | TFile::GetFd() const |
virtual TFile* | TDirectory::GetFile() const |
static Long64_t | TFile::GetFileBytesRead() |
static Long64_t | TFile::GetFileBytesWritten() |
static Long64_t | TFile::GetFileCounter() |
static Int_t | TFile::GetFileReadCalls() |
virtual const char* | TObject::GetIconName() const |
Int_t | GetIOVersion() const |
virtual TKey* | TDirectory::GetKey(const char* name, Short_t cycle = 9999) const |
virtual TList* | TDirectory::GetList() const |
TList* | TFile::GetListOfFree() const |
virtual TList* | TDirectory::GetListOfKeys() const |
TObjArray* | TFile::GetListOfProcessIDs() const |
const TDatime& | TDirectory::GetModificationDate() const |
TObject* | TDirectory::GetMother() const |
TDirectory* | TDirectory::GetMotherDir() const |
virtual const char* | TNamed::GetName() const |
virtual Int_t | GetNbytesFree() const |
virtual Int_t | GetNbytesInfo() const |
virtual Int_t | TDirectory::GetNbytesKeys() const |
Int_t | TXMLSetup::GetNextRefCounter() |
virtual Int_t | GetNfree() const |
virtual Int_t | TDirectory::GetNkeys() const |
virtual Int_t | TFile::GetNProcessIDs() const |
void | TDirectory::GetObject(const char* namecycle, void*& ptr) |
virtual void* | TDirectory::GetObjectChecked(const char* namecycle, const char* classname) |
virtual void* | TDirectory::GetObjectChecked(const char* namecycle, const TClass* cl) |
virtual char* | TObject::GetObjectInfo(Int_t px, Int_t py) const |
static Bool_t | TObject::GetObjectStat() |
virtual void* | TDirectory::GetObjectUnchecked(const char* namecycle) |
virtual Option_t* | TFile::GetOption() const |
virtual const char* | TDirectory::GetPath() const |
virtual const char* | TDirectory::GetPathStatic() const |
virtual Int_t | TFile::GetReadCalls() const |
Int_t | TFile::GetRecordHeader(char* buf, Long64_t first, Int_t maxbytes, Int_t& nbytes, Int_t& objlen, Int_t& keylen) |
virtual Long64_t | TDirectory::GetSeekDir() const |
virtual Long64_t | GetSeekFree() const |
virtual Long64_t | GetSeekInfo() const |
virtual Long64_t | TDirectory::GetSeekKeys() const |
virtual Long64_t | TDirectory::GetSeekParent() const |
TString | TXMLSetup::GetSetupAsString() |
virtual Long64_t | GetSize() const |
const TList* | TFile::GetStreamerInfoCache() |
virtual TList* | GetStreamerInfoList() |
virtual const char* | TNamed::GetTitle() const |
static TFile::EFileType | TFile::GetType(const char* name, Option_t* option = "") |
virtual UInt_t | TObject::GetUniqueID() const |
TUUID | TDirectory::GetUUID() const |
Int_t | TFile::GetVersion() const |
TXMLSetup::EXMLLayout | TXMLSetup::GetXmlLayout() const |
virtual Bool_t | TObject::HandleTimer(TTimer* timer) |
virtual ULong_t | TNamed::Hash() const |
static void | TFile::IncrementFileCounter() |
virtual void | TFile::IncrementProcessIDs() |
virtual void | TObject::Info(const char* method, const char* msgfmt) const |
virtual Bool_t | TObject::InheritsFrom(const char* classname) const |
virtual Bool_t | TObject::InheritsFrom(const TClass* cl) const |
virtual void | TObject::Inspect() const |
void | TObject::InvertBit(UInt_t f) |
virtual TClass* | IsA() const |
virtual Bool_t | TFile::IsArchive() const |
Bool_t | TFile::IsBinary() const |
virtual Bool_t | TObject::IsEqual(const TObject* obj) const |
virtual Bool_t | TDirectory::IsFolder() const |
Bool_t | TDirectory::IsModified() const |
Bool_t | TObject::IsOnHeap() const |
virtual Bool_t | IsOpen() const |
Bool_t | TFile::IsRaw() const |
virtual Bool_t | TNamed::IsSortable() const |
Bool_t | TXMLSetup::IsStoreStreamerInfos() const |
Bool_t | TXMLSetup::IsUseDtd() const |
Bool_t | TXMLSetup::IsUseNamespaces() const |
Bool_t | TDirectory::IsWritable() const |
Bool_t | TObject::IsZombie() const |
virtual void | TFile::ls(Option_t* option = "") const |
virtual void | MakeFree(Long64_t, Long64_t) |
virtual void | MakeProject(const char*, const char* = "*", Option_t* = "new") |
virtual void | Map() |
virtual Bool_t | TFile::Matches(const char* name) |
void | TObject::MayNotUse(const char* method) const |
virtual TDirectory* | TDirectory::mkdir(const char* name, const char* title = "") |
virtual Bool_t | TFile::MustFlush() const |
virtual Bool_t | TObject::Notify() |
static TFile* | TFile::Open(TFileOpenHandle* handle) |
static TFile* | TFile::Open(const char* name, Option_t* option = "", const char* ftitle = "", Int_t compress = 1, Int_t netopt = 0) |
static void | TObject::operator delete(void* ptr) |
static void | TObject::operator delete(void* ptr, void* vp) |
static void | TObject::operator delete[](void* ptr) |
static void | TObject::operator delete[](void* ptr, void* vp) |
void* | TObject::operator new(size_t sz) |
void* | TObject::operator new(size_t sz, void* vp) |
void* | TObject::operator new[](size_t sz) |
void* | TObject::operator new[](size_t sz, void* vp) |
virtual void | Paint(Option_t* = "") |
virtual void | TObject::Pop() |
virtual void | Print(Option_t* = "") const |
void | TXMLSetup::PrintSetup() |
virtual void | TDirectory::Purge(Short_t nkeep = 1) |
virtual void | TDirectory::pwd() const |
virtual Int_t | TObject::Read(const char* name) |
virtual void | TDirectory::ReadAll(Option_t* option = "") |
virtual Bool_t | ReadBuffer(char*, Int_t) |
virtual Bool_t | TFile::ReadBuffers(char* buf, Long64_t* pos, Int_t* len, Int_t nbuf) |
virtual void | ReadFree() |
virtual Int_t | TDirectory::ReadKeys() |
virtual void | TFile::ReadStreamerInfo() |
virtual Int_t | Recover() |
virtual void | TDirectory::RecursiveRemove(TObject* obj) |
virtual Int_t | ReOpen(Option_t* mode) |
void | TObject::ResetBit(UInt_t f) |
virtual void | ResetErrno() const |
virtual void | TDirectory::rmdir(const char* name) |
virtual void | TDirectory::Save() |
virtual void | TObject::SaveAs(const char* filename = "", Option_t* option = "") const |
virtual void | TObject::SavePrimitive(ostream& out, Option_t* option = "") |
virtual void | TDirectory::SaveSelf(Bool_t force = kFALSE) |
virtual void | Seek(Long64_t, TFile::ERelativeTo = kBeg) |
void | TObject::SetBit(UInt_t f) |
void | TObject::SetBit(UInt_t f, Bool_t set) |
virtual void | TDirectory::SetBufferSize(Int_t bufsize) |
virtual void | TFile::SetCacheRead(TFileCacheRead* cache) |
virtual void | TFile::SetCacheWrite(TFileCacheWrite* cache) |
virtual void | TFile::SetCompressionLevel(Int_t level = 1) |
virtual void | TObject::SetDrawOption(Option_t* option = "") |
static void | TObject::SetDtorOnly(void* obj) |
virtual void | SetEND(Long64_t) |
static void | TFile::SetFileBytesRead(Long64_t bytes = 0) |
static void | TFile::SetFileBytesWritten(Long64_t bytes = 0) |
static void | TFile::SetFileReadCalls(Int_t readcalls = 0) |
void | TDirectory::SetModified() |
void | TDirectory::SetMother(const TObject* mother) |
virtual void | TDirectory::SetName(const char* newname) |
static void | TXMLSetup::SetNameSpaceBase(const char* namespacebase) |
virtual void | TNamed::SetNameTitle(const char* name, const char* title) |
static void | TObject::SetObjectStat(Bool_t stat) |
virtual void | TFile::SetOption(Option_t* option = ">") |
virtual void | TFile::SetReadCalls(Int_t readcalls = 0) |
static void | TFile::SetReadStreamerInfo(Bool_t readinfo = kTRUE) |
void | TDirectory::SetSeekDir(Long64_t v) |
virtual void | SetStoreStreamerInfos(Bool_t iConvert = kTRUE) |
virtual void | TNamed::SetTitle(const char* title = "") |
virtual void | TObject::SetUniqueID(UInt_t uid) |
virtual void | SetUsedDtd(Bool_t use = kTRUE) |
virtual void | SetUseNamespaces(Bool_t iUseNamespaces = kTRUE) |
void | TDirectory::SetWritable(Bool_t writable = kTRUE) |
virtual void | SetXmlLayout(TXMLSetup::EXMLLayout layout) |
virtual void | ShowMembers(TMemberInspector& insp, char* parent) |
virtual void | TFile::ShowStreamerInfo() |
virtual Int_t | Sizeof() const |
virtual void | Streamer(TBuffer& b) |
void | StreamerNVirtual(TBuffer& b) |
void | TFile::SumBuffer(Int_t bufsize) |
virtual void | TObject::SysError(const char* method, const char* msgfmt) const |
Bool_t | TObject::TestBit(UInt_t f) const |
Int_t | TObject::TestBits(UInt_t f) const |
virtual void | UseCache(Int_t = 10, Int_t = 0) |
virtual void | TObject::UseCurrentStyle() |
virtual void | TObject::Warning(const char* method, const char* msgfmt) const |
virtual Int_t | Write(const char* = "0", Int_t = 0, Int_t = 0) |
virtual Int_t | Write(const char* = "0", Int_t = 0, Int_t = 0) const |
virtual Bool_t | WriteBuffer(const char*, Int_t) |
virtual void | TDirectory::WriteDirHeader() |
virtual void | WriteFree() |
virtual void | WriteHeader() |
virtual void | TDirectory::WriteKeys() |
Int_t | TDirectory::WriteObject(const void* obj, const char* name, Option_t* option = "") |
virtual Int_t | TDirectory::WriteObjectAny(const void* obj, const char* classname, const char* name, Option_t* option = "") |
virtual Int_t | TDirectory::WriteObjectAny(const void* obj, const TClass* cl, const char* name, Option_t* option = "") |
virtual void | WriteStreamerInfo() |
virtual Int_t | TDirectory::WriteTObject(const TObject* obj, const char* name = "0", Option_t* option = "") |
TXMLEngine* | XML() |
const char* | TXMLSetup::XmlClassNameSpaceRef(const TClass* cl) |
const char* | TXMLSetup::XmlConvertClassName(const char* name) |
const char* | TXMLSetup::XmlGetElementName(const TStreamerElement* el) |
enum TFile::EAsyncOpenStatus { | kAOSNotAsync | |
kAOSFailure | ||
kAOSInProgress | ||
kAOSSuccess | ||
}; | ||
enum TFile::EStatusBits { | kRecovered | |
kHasReferences | ||
kDevNull | ||
kWriteError | ||
kBinaryFile | ||
kRedirected | ||
}; | ||
enum TFile::ERelativeTo { | kBeg | |
kCur | ||
kEnd | ||
}; | ||
enum TFile::[unnamed] { | kStartBigFile | |
}; | ||
enum TFile::EFileType { | kDefault | |
kLocal | ||
kNet | ||
kWeb | ||
kFile | ||
}; | ||
enum TDirectory::[unnamed] { | kCloseDirectory | |
}; | ||
enum TObject::EStatusBits { | kCanDelete | |
kMustCleanup | ||
kObjInCanvas | ||
kIsReferenced | ||
kHasUUID | ||
kCannotPick | ||
kNoContextMenu | ||
kInvalidObject | ||
}; | ||
enum TObject::[unnamed] { | kIsOnHeap | |
kNotDeleted | ||
kZombie | ||
kBitMask | ||
kSingleKey | ||
kOverwrite | ||
kWriteDelete | ||
}; | ||
enum TXMLSetup::EXMLLayout { | kSpecialized | |
kGeneralized | ||
}; |
XMLDocPointer_t | fDoc | ! |
XMLNodePointer_t | fStreamerInfoNode | ! pointer of node with streamer info data |
TXMLEngine* | fXML | ! object for interface with xml library |
Int_t | fIOVersion | ! indicates format of ROOT xml file |
Long64_t | fKeyCounter | ! counter of created keys, used for keys id |
Double_t | TFile::fSumBuffer | Sum of buffer sizes of objects written so far |
Double_t | TFile::fSum2Buffer | Sum of squares of buffer sizes of objects written so far |
Long64_t | TFile::fBytesWrite | Number of bytes written to this file |
Long64_t | TFile::fBytesRead | Number of bytes read from this file |
Long64_t | TFile::fBEGIN | First used byte in file |
Long64_t | TFile::fEND | Last used byte in file |
Long64_t | TFile::fSeekFree | Location on disk of free segments structure |
Long64_t | TFile::fSeekInfo | Location on disk of StreamerInfo record |
Int_t | TFile::fD | File descriptor |
Int_t | TFile::fVersion | File format version |
Int_t | TFile::fCompress | Compression level from 0(not compressed) to 9 (max compression) |
Int_t | TFile::fNbytesFree | Number of bytes for free segments structure |
Int_t | TFile::fNbytesInfo | Number of bytes for StreamerInfo record |
Int_t | TFile::fWritten | Number of objects written so far |
Int_t | TFile::fNProcessIDs | Number of TProcessID written to this file |
Int_t | TFile::fReadCalls | Number of read calls ( not counting the cache calls ) |
TString | TFile::fRealName | Effective real file name (not original url) |
TString | TFile::fOption | File options |
Char_t | TFile::fUnits | Number of bytes for file pointers |
TList* | TFile::fFree | Free segments linked list table |
TArrayC* | TFile::fClassIndex | !Index of TStreamerInfo classes written to this file |
TObjArray* | TFile::fProcessIDs | !Array of pointers to TProcessIDs |
Long64_t | TFile::fOffset | !Seek offset used by remote file classes |
TArchiveFile* | TFile::fArchive | !Archive file from which we read this file |
TFileCacheRead* | TFile::fCacheRead | !Pointer to the read cache (if any) |
TFileCacheWrite* | TFile::fCacheWrite | !Pointer to the write cache (if any) |
Long64_t | TFile::fArchiveOffset | !Offset at which file starts in archive |
Bool_t | TFile::fIsArchive | !True if this is a pure archive file |
Bool_t | TFile::fNoAnchorInName | !True if we don't want to force the anchor to be appended to the file name |
Bool_t | TFile::fIsRootFile | !True is this is a ROOT file, raw file otherwise |
Bool_t | TFile::fInitDone | !True if the file has been initialized |
Bool_t | TFile::fMustFlush | !True if the file buffers must be flushed |
TFileOpenHandle* | TFile::fAsyncHandle | !For proper automatic cleanup |
TFile::EAsyncOpenStatus | TFile::fAsyncOpenStatus | !Status of an asynchronous open request |
TUrl | TFile::fUrl | !URL of file |
TList* | TFile::fInfoCache | !Cached list of the streamer infos in this file |
static TList* | TFile::fgAsyncOpenRequests | !List of handles for pending open requests |
static Long64_t | TFile::fgBytesWrite | Number of bytes written by all TFile objects |
static Long64_t | TFile::fgBytesRead | Number of bytes read by all TFile objects |
static Long64_t | TFile::fgFileCounter | Counter for all opened files |
static Int_t | TFile::fgReadCalls | Number of bytes read from all TFile objects |
static Bool_t | TFile::fgReadInfo | if true (default) ReadStreamerInfo is called when opening a file |
Bool_t | TDirectory::fModified | true if directory has been modified |
Bool_t | TDirectory::fWritable | true if directory is writable |
TDatime | TDirectory::fDatimeC | Date and time when directory is created |
TDatime | TDirectory::fDatimeM | Date and time of last modification |
Int_t | TDirectory::fNbytesKeys | Number of bytes for the keys |
Int_t | TDirectory::fNbytesName | Number of bytes in TNamed at creation time |
Int_t | TDirectory::fBufferSize | Default buffer size to create new TKeys |
Long64_t | TDirectory::fSeekDir | Location of directory on file |
Long64_t | TDirectory::fSeekParent | Location of parent directory on file |
Long64_t | TDirectory::fSeekKeys | Location of Keys record on file |
TFile* | TDirectory::fFile | pointer to current file in memory |
TObject* | TDirectory::fMother | pointer to mother of the directory |
TList* | TDirectory::fList | Pointer to objects list in memory |
TList* | TDirectory::fKeys | Pointer to keys list in memory |
TUUID | TDirectory::fUUID | Unique identifier |
TString | TDirectory::fPathBuffer | !Buffer for GetPath() function |
TString | TNamed::fName | object identifier |
TString | TNamed::fTitle | object title |
TXMLSetup::EXMLLayout | TXMLSetup::fXmlLayout | |
Bool_t | TXMLSetup::fStoreStreamerInfos | |
Bool_t | TXMLSetup::fUseDtd | |
Bool_t | TXMLSetup::fUseNamespaces | |
Int_t | TXMLSetup::fRefCounter | ! counter , used to build id of xml references |
TString | TXMLSetup::fStrBuf | ! buffer, used in XmlDefineClass() function |
static TString | TXMLSetup::fgNameSpaceBase |
The main motivation for the XML format is to facilitate the communication with other non ROOT applications. Currently writing and reading XML files is limited to ROOT applications. It is our intention to develop a simple reader independent of the ROOT libraries that could be used as an example for real applications. One of possible approach with code generation is implemented in TXMLPlayer class. The XML format should be used only for small data volumes, typically histogram files, pictures, geometries, calibrations. The XML file is built in memory before being dumped to disk. Like for normal ROOT files, XML files use the same I/O mechanism exploiting the ROOT/CINT dictionary. Any class having a dictionary can be saved in XML format. This first implementation does not support subdirectories or Trees. The shared library libRXML.so may be loaded dynamically via gSystem->Load("libRXML"). This library is automatically loaded by the plugin manager as soon as a XML file is created via, eg TFile::Open("file.xml","recreate"); TFile::Open returns a TXMLFile object. When a XML file is open in write mode, one can use the normal TObject::Write to write an object in the file. Alternatively one can use the new functions TDirectory::WriteObject and TDirectory::WriteObjectAny to write a TObject* or any class not deriving from TObject. example of a session saving a histogram to a XML file ===================================================== TFile *f = TFile::Open("Example.xml","recreate"); TH1F *h = new TH1F("h","test",1000,-2,2); h->FillRandom("gaus"); h->Write(); delete f; example of a session reading the histogram from the file ======================================================== TFile *f = TFile::Open("Example.xml"); TH1F *h = (TH1F*)f->Get("h"); h->Draw(); A new option in the canvas "File" menu is available to save a TCanvas as a XML file. One can also do canvas->Print("Example.xml"); Configuring ROOT with the option "xml" ====================================== The XML package is enabled by default documentation ============= See also classes TBufferXML, TKeyXML, TXMLEngine, TXMLSetup and TXMLPlayer. An example of XML file corresponding to the small example below can be found at http://root.cern.ch/root/Example.xml ______________________________________________________________________________
Open or creates local XML file with name filename. It is recommended to specify filename as "<file>.xml". The suffix ".xml" will be used by object browsers to automatically identify the file as a XML file. If the constructor fails in any way IsZombie() will return true. Use IsOpen() to check if the file is (still) open. If option = NEW or CREATE create a new file and open it for writing, if the file already exists the file is not opened. = RECREATE create a new file, if the file already exists it will be overwritten. = 2xoo create a new file with specified xml settings for more details see TXMLSetup class = UPDATE open an existing file for writing. if no file exists, it is created. = READ open an existing file for reading. For more details see comments for TFile::TFile() constructor For a moment TXMLFile does not support TTree objects and subdirectories
initialize xml file and correspondent structures identical to TFile::Init() function
Reopen a file with a different access mode, like from READ to See TFile::Open() for details
create XML key, which will store object in xml structures
create XML key, which will store object in xml structures
function produces pair of xml and dtd file names
Saves xml structures to file xml elements are kept in list of TKeyXML objects When saving, all this elements are linked to root xml node In the end StreamerInfo structures are added After xml document is saved, all nodes will be unlinked from root node and kept in memory. Only Close() or destructor relase memory, used by xml structures
Connect/disconnect all file nodes to single tree before/after saving
read document from file Now full content of docuument reads into the memory Then document decomposed to separate keys and streamer info structures All inrelevant data will be cleaned
Read streamerinfo structures from xml format and provide them in the list It is user responsibility to destroy this list
store data of single TStreamerElement in streamer node
read and reconstruct single TStreamerElement from xml node
Change layout of objects in xml file Can be changed only for newly created file. Currently there are two supported layouts: TXMLSetup::kSpecialized = 2 This is default layout of the file, when xml nodes names class names and data member names are used. For instance: <TAttLine version="1"> <fLineColor v="1"/> <fLineStyle v="1"/> <fLineWidth v="1"/> </TAttLine> TXMLSetup::kGeneralized = 3 For this layout all nodes name does not depend from class definitions. The same class looks like <Class name="TAttLine" version="1"> <Member name="fLineColor" v="1"/> <Member name="fLineStyle" v="1"/> <Member name="fLineWidth" v="1"/> </Member>
If true, all correspondent to file TStreamerInfo objects will be stored in file this allows to apply schema avolution later for this file may be usefull, when file used outside ROOT and TStreamerInfo objects does not required Can be changed only for newly created file.
Specify usage of DTD for this file. Currently this option not avaliable (always false). Can be changed only for newly created file.
Specifiy usage of namespaces in xml file In current implementation every instrumented class in file gets its unique namespace, which is equal to name of class and refer to root documentation page like <TAttPad xmlns:TAttPad="http://root.cern.ch/root/htmldoc/TAttPad.html" version="3"> And xml node for class member gets its name as combination of class name and member name <TAttPad:fLeftMargin v="0.100000"/> <TAttPad:fRightMargin v="0.100000"/> <TAttPad:fBottomMargin v="0.100000"/> and so on Usage of namespace increase size of xml file, but makes file more readable and allows to produce DTD in the case, when in several classes data member has same name Can be changed only for newly created file.
Add comment line on the top of the xml document This line can only be seen in xml editor and cannot be accessed later with TXMLFile methods
Adds style sheet definition on the top of xml document Creates <?xml-stylesheet alternate="yes" title="compact" href="small-base.css" type="text/css"?> Attributes href and type must be supplied, other attributes: title, alternate, media, charset are optional if alternate==0, attribyte alternate="no" will be created, if alternate>0, attribute alternate="yes" if alternate<0, attribute will not be created This style sheet definition cannot be later access with TXMLFile methods.
Add just one line on the top of xml document For instance, line can contain special xml processing instructions Line should has correct xml syntax that later it can be decoded by xml parser To be parsed later by TXMLFile again, this line should contain either xml comments or xml processing instruction
Find a directory in motherdir with a seek equal to keyid
Read keys for directory Make sence only once, while next time no new subnodes will be created