decompiler  1.0.0
Public Member Functions | Private Attributes | List of all members
DocumentStorage Class Reference

A container for parsed XML documents. More...

#include <xml.hh>

Public Member Functions

 ~DocumentStorage (void)
 Destructor.
 
DocumentparseDocument (istream &s)
 Parse an XML document from the given stream. More...
 
DocumentopenDocument (const string &filename)
 Open and parse an XML file. More...
 
void registerTag (const Element *el)
 Register the given XML Element object under its tag name. More...
 
const ElementgetTag (const string &nm) const
 Retrieve a registered XML Element by name. More...
 

Private Attributes

vector< Document * > doclist
 The list of documents held by this container.
 
map< string, const Element * > tagmap
 The map from name to registered XML elements.
 

Detailed Description

A container for parsed XML documents.

This holds multiple XML documents that have already been parsed. Documents can be put in this container, either by handing it a stream via parseDocument() or a filename via openDocument(). If they are explicitly registered, specific XML Elements can be looked up by name via getTag().

Member Function Documentation

const Element* DocumentStorage::getTag ( const string &  nm) const
Document* DocumentStorage::openDocument ( const string &  filename)

Open and parse an XML file.

The given filename is opened on the local filesystem and an attempt is made to parse its contents into an in-memory DOM tree. An XmlException is thrown for any parsing error.

Parameters
filenameis the name of the XML document file
Returns
the in-memory DOM tree

Referenced by XmlArchitecture::buildLoader(), and SleighArchitecture::buildSpecFile().

Document* DocumentStorage::parseDocument ( istream &  s)

Parse an XML document from the given stream.

Parsing starts immediately on the stream, attempting to make an in-memory DOM tree. An XmlException is thrown for any parsing error.

Parameters
sis the given stream to parse
Returns
the in-memory DOM tree

Referenced by ArchitectureGhidra::buildSpecFile().

void DocumentStorage::registerTag ( const Element el)

Register the given XML Element object under its tag name.

Only one Element can be stored on this object per tag name.

Parameters
elis the given XML element

Referenced by XmlArchitecture::buildLoader(), ArchitectureGhidra::buildSpecFile(), SleighArchitecture::buildSpecFile(), XmlArchitecture::restoreXml(), RawBinaryArchitecture::restoreXml(), and BfdArchitecture::restoreXml().


The documentation for this class was generated from the following file: