bes Updated for version 3.21.1
The Backend Server (BES) is the lower two tiers of the Hyrax data server
The 'strict' mode

Functions

void dmrpp::DmrppParserSax2::XMLAttribute::clone (const XMLAttribute &src)
 
XMLAttribute & dmrpp::DmrppParserSax2::XMLAttribute::operator= (const XMLAttribute &rhs)
 
 dmrpp::DmrppParserSax2::XMLAttribute::XMLAttribute (const std::string &p, const std::string &ns, const std::string &v)
 
 dmrpp::DmrppParserSax2::XMLAttribute::XMLAttribute (const XMLAttribute &rhs)
 
 dmrpp::DmrppParserSax2::XMLAttribute::XMLAttribute (const xmlChar **attributes)
 

Variables

std::string dmrpp::DmrppParserSax2::XMLAttribute::nsURI
 
std::string dmrpp::DmrppParserSax2::XMLAttribute::prefix
 
std::string dmrpp::DmrppParserSax2::XMLAttribute::value
 

Parser Actions

These methods are the 'actions' carried out by the start_element and end_element callbacks. Most of what takes place in those has been factored out to this set of functions.

void dmrpp::DmrppParserSax2::set_strict (bool s)
 Set the 'strict' mode to true or false.
 
bool dmrpp::DmrppParserSax2::get_strict () const
 Get the setting of the 'strict' mode.
 

SAX Parser Callbacks

These methods are declared static in the class header. This gives them C linkage which allows them to be used as callbacks by the SAX parser engine.

static void dmrpp::DmrppParserSax2::dmr_start_document (void *parser)
 
static void dmrpp::DmrppParserSax2::dmr_end_document (void *parser)
 
static void dmrpp::DmrppParserSax2::dmr_start_element (void *parser, const xmlChar *localname, const xmlChar *prefix, const xmlChar *URI, int nb_namespaces, const xmlChar **namespaces, int nb_attributes, int nb_defaulted, const xmlChar **attributes)
 
static void dmrpp::DmrppParserSax2::dmr_end_element (void *parser, const xmlChar *localname, const xmlChar *prefix, const xmlChar *URI)
 
static void dmrpp::DmrppParserSax2::dmr_get_characters (void *parser, const xmlChar *ch, int len)
 
static void dmrpp::DmrppParserSax2::dmr_ignoreable_whitespace (void *parser, const xmlChar *ch, int len)
 
static void dmrpp::DmrppParserSax2::dmr_get_cdata (void *parser, const xmlChar *value, int len)
 
static xmlEntityPtr dmrpp::DmrppParserSax2::dmr_get_entity (void *parser, const xmlChar *name)
 
static void dmrpp::DmrppParserSax2::dmr_fatal_error (void *parser, const char *msg,...)
 
static void dmrpp::DmrppParserSax2::dmr_error (void *parser, const char *msg,...)
 

Detailed Description

The strict mode of the parser is the default. In this mode any error will result in an exception and parsing will stop. When strict mode is set to false (forgiving mode?), some errors will be silently ignored. The list of allowed errors is: The Array named by a Map element is not required to be in the DMR. There are no other allowed errors at this time (4/13/16)

Function Documentation

◆ clone()

void dmrpp::DmrppParserSax2::XMLAttribute::clone ( const XMLAttribute & src)
inline

Definition at line 180 of file DmrppParserSax2.h.

◆ dmr_end_document()

void dmrpp::DmrppParserSax2::dmr_end_document ( void * p)
static

Clean up after finishing a parse.

Parameters
pThe SAX parser

Definition at line 829 of file DmrppParserSax2.cc.

◆ dmr_end_element()

void dmrpp::DmrppParserSax2::dmr_end_element ( void * parser,
const xmlChar * localname,
const xmlChar * prefix,
const xmlChar * URI )
static

Definition at line 1291 of file DmrppParserSax2.cc.

◆ dmr_error()

void dmrpp::DmrppParserSax2::dmr_error ( void * parser,
const char * msg,
... )
static

Definition at line 1670 of file DmrppParserSax2.cc.

◆ dmr_fatal_error()

void dmrpp::DmrppParserSax2::dmr_fatal_error ( void * p,
const char * msg,
... )
static

Process an XML fatal error. Note that SAX provides for warnings, errors and fatal errors. This code treats them all as fatal errors since there's typically no way to tell a user about the error since there's often no user interface for this software.

Note
This static function does not throw an exception or otherwise alter flow of control except for altering the parser state.
Parameters
pThe SAX parser
msgA printf-style format string.

Definition at line 1652 of file DmrppParserSax2.cc.

◆ dmr_get_cdata()

void dmrpp::DmrppParserSax2::dmr_get_cdata ( void * p,
const xmlChar * value,
int len )
static

Get characters in a cdata block. DAP does not use CData, but XML in an OtherXML attribute (the value of that DAP attribute) might use it. This callback also allows CData when the parser is in the 'parser_unknown' state since some future DAP element might use it.

Definition at line 1614 of file DmrppParserSax2.cc.

◆ dmr_get_characters()

void dmrpp::DmrppParserSax2::dmr_get_characters ( void * p,
const xmlChar * ch,
int len )
static

Process/accumulate character data. This may be called more than once for one logical clump of data. Only save character data when processing 'value' elements; throw away all other characters.

Definition at line 1569 of file DmrppParserSax2.cc.

◆ dmr_get_entity()

xmlEntityPtr dmrpp::DmrppParserSax2::dmr_get_entity ( void * parser,
const xmlChar * name )
static

Handle the standard XML entities.

Parameters
parserThe SAX parser
nameThe XML entity.

Definition at line 1637 of file DmrppParserSax2.cc.

◆ dmr_ignoreable_whitespace()

void dmrpp::DmrppParserSax2::dmr_ignoreable_whitespace ( void * p,
const xmlChar * ch,
int len )
static

Read whitespace that's not really important for content. This is used only for the OtherXML attribute type to preserve formating of the XML. Doing so makes the attribute value far easier to read.

Definition at line 1595 of file DmrppParserSax2.cc.

◆ dmr_start_document()

void dmrpp::DmrppParserSax2::dmr_start_document ( void * p)
static

Initialize the SAX parser state object. This object is passed to each callback as a void pointer. The initial state is parser_start.

Parameters
pThe SAX parser

Definition at line 811 of file DmrppParserSax2.cc.

◆ dmr_start_element()

void dmrpp::DmrppParserSax2::dmr_start_element ( void * parser,
const xmlChar * localname,
const xmlChar * prefix,
const xmlChar * URI,
int nb_namespaces,
const xmlChar ** namespaces,
int nb_attributes,
int nb_defaulted,
const xmlChar ** attributes )
static

Definition at line 859 of file DmrppParserSax2.cc.

◆ get_strict()

bool dmrpp::DmrppParserSax2::get_strict ( ) const
inline

Get the setting of the 'strict' mode.

Returns
True or False.

Definition at line 303 of file DmrppParserSax2.h.

◆ operator=()

XMLAttribute & dmrpp::DmrppParserSax2::XMLAttribute::operator= ( const XMLAttribute & rhs)
inline

Definition at line 199 of file DmrppParserSax2.h.

◆ set_strict()

void dmrpp::DmrppParserSax2::set_strict ( bool s)
inline

Set the 'strict' mode to true or false.

Definition at line 299 of file DmrppParserSax2.h.

◆ XMLAttribute() [1/4]

dmrpp::DmrppParserSax2::XMLAttribute::XMLAttribute ( )
inline

Definition at line 186 of file DmrppParserSax2.h.

◆ XMLAttribute() [2/4]

dmrpp::DmrppParserSax2::XMLAttribute::XMLAttribute ( const std::string & p,
const std::string & ns,
const std::string & v )
inline

Definition at line 187 of file DmrppParserSax2.h.

◆ XMLAttribute() [3/4]

dmrpp::DmrppParserSax2::XMLAttribute::XMLAttribute ( const XMLAttribute & rhs)
inline

Definition at line 196 of file DmrppParserSax2.h.

◆ XMLAttribute() [4/4]

dmrpp::DmrppParserSax2::XMLAttribute::XMLAttribute ( const xmlChar ** attributes)
inline

Definition at line 191 of file DmrppParserSax2.h.

Variable Documentation

◆ nsURI

std::string dmrpp::DmrppParserSax2::XMLAttribute::nsURI

Definition at line 177 of file DmrppParserSax2.h.

◆ prefix

std::string dmrpp::DmrppParserSax2::XMLAttribute::prefix

Definition at line 176 of file DmrppParserSax2.h.

◆ value

std::string dmrpp::DmrppParserSax2::XMLAttribute::value

Definition at line 178 of file DmrppParserSax2.h.