// @(#)root/xmlparser:$Id$
// Author: Jose Lo   12/4/2005

/*************************************************************************
 * Copyright (C) 1995-2005, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TXMLDocument                                                         //
//                                                                      //
// TXMLDocument contains a pointer to an xmlDoc structure, after the    //
// parser returns a tree built during the document analysis.            //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#include "TXMLDocument.h"
#include "TXMLNode.h"
#include <libxml/tree.h>


ClassImp(TXMLDocument);

//______________________________________________________________________________
TXMLDocument::TXMLDocument(_xmlDoc *doc) : fXMLDoc(doc)
{
   // TXMLDocument constructor.

   if (fXMLDoc) {
      fRootNode = new TXMLNode(xmlDocGetRootElement(fXMLDoc));
   } else {
      fRootNode = 0;
   }
}

//______________________________________________________________________________
TXMLDocument::~TXMLDocument()
{
   // TXMLDocument destructor.
   // Free the global variables that may
   // have been allocated by the parser.

   delete fRootNode;
   xmlFreeDoc(fXMLDoc);
}

//______________________________________________________________________________
TXMLNode *TXMLDocument::GetRootNode() const
{
   // Returns the root element node.

   return fRootNode;
}

//______________________________________________________________________________
const char *TXMLDocument::Version() const
{
   // Returns the XML version string or 0 in case there is no document set.

   if (fXMLDoc)
      return (const char *) fXMLDoc->version;
   return 0;
}

//______________________________________________________________________________
const char *TXMLDocument::Encoding() const
{
   // Returns external initial encoding, if any or 0 in case there is no
   // document set.

   if (fXMLDoc)
      return (const char *) fXMLDoc->encoding;
   return 0;
}

//______________________________________________________________________________
const char *TXMLDocument::URL() const
{
   // Returns the URI for the document or 0 in case there is no document set.

   if (fXMLDoc)
      return (const char *) fXMLDoc->URL;
   return 0;
}
 TXMLDocument.cxx:1
 TXMLDocument.cxx:2
 TXMLDocument.cxx:3
 TXMLDocument.cxx:4
 TXMLDocument.cxx:5
 TXMLDocument.cxx:6
 TXMLDocument.cxx:7
 TXMLDocument.cxx:8
 TXMLDocument.cxx:9
 TXMLDocument.cxx:10
 TXMLDocument.cxx:11
 TXMLDocument.cxx:12
 TXMLDocument.cxx:13
 TXMLDocument.cxx:14
 TXMLDocument.cxx:15
 TXMLDocument.cxx:16
 TXMLDocument.cxx:17
 TXMLDocument.cxx:18
 TXMLDocument.cxx:19
 TXMLDocument.cxx:20
 TXMLDocument.cxx:21
 TXMLDocument.cxx:22
 TXMLDocument.cxx:23
 TXMLDocument.cxx:24
 TXMLDocument.cxx:25
 TXMLDocument.cxx:26
 TXMLDocument.cxx:27
 TXMLDocument.cxx:28
 TXMLDocument.cxx:29
 TXMLDocument.cxx:30
 TXMLDocument.cxx:31
 TXMLDocument.cxx:32
 TXMLDocument.cxx:33
 TXMLDocument.cxx:34
 TXMLDocument.cxx:35
 TXMLDocument.cxx:36
 TXMLDocument.cxx:37
 TXMLDocument.cxx:38
 TXMLDocument.cxx:39
 TXMLDocument.cxx:40
 TXMLDocument.cxx:41
 TXMLDocument.cxx:42
 TXMLDocument.cxx:43
 TXMLDocument.cxx:44
 TXMLDocument.cxx:45
 TXMLDocument.cxx:46
 TXMLDocument.cxx:47
 TXMLDocument.cxx:48
 TXMLDocument.cxx:49
 TXMLDocument.cxx:50
 TXMLDocument.cxx:51
 TXMLDocument.cxx:52
 TXMLDocument.cxx:53
 TXMLDocument.cxx:54
 TXMLDocument.cxx:55
 TXMLDocument.cxx:56
 TXMLDocument.cxx:57
 TXMLDocument.cxx:58
 TXMLDocument.cxx:59
 TXMLDocument.cxx:60
 TXMLDocument.cxx:61
 TXMLDocument.cxx:62
 TXMLDocument.cxx:63
 TXMLDocument.cxx:64
 TXMLDocument.cxx:65
 TXMLDocument.cxx:66
 TXMLDocument.cxx:67
 TXMLDocument.cxx:68
 TXMLDocument.cxx:69
 TXMLDocument.cxx:70
 TXMLDocument.cxx:71
 TXMLDocument.cxx:72
 TXMLDocument.cxx:73
 TXMLDocument.cxx:74
 TXMLDocument.cxx:75
 TXMLDocument.cxx:76
 TXMLDocument.cxx:77
 TXMLDocument.cxx:78
 TXMLDocument.cxx:79
 TXMLDocument.cxx:80
 TXMLDocument.cxx:81
 TXMLDocument.cxx:82
 TXMLDocument.cxx:83
 TXMLDocument.cxx:84
 TXMLDocument.cxx:85
 TXMLDocument.cxx:86
 TXMLDocument.cxx:87
 TXMLDocument.cxx:88