libSBML C++ API
5.18.0
|
This class of objects is defined by libSBML only and has no direct equivalent in terms of SBML components. This class is not prescribed by the SBML specifications, although it is used to implement features defined in SBML.
The libSBML XML parser interface can read an XML file or data stream and convert the contents into tokens. The tokens represent items in the XML stream, either XML elements (start or end tags) or text that appears as content inside an element. The XMLToken class is libSBML's low-level representation of these entities.
Each XMLToken has the following information associated with it:
<mytag>
, the name is "mytag"
), but this name may be qualified with a namespace (e.g., it may appear as <someNamespace:mytag>
in the input). An XMLToken stores the name of a token, along with any namespace qualification present, through the use of an XMLTriple object. This object stores the bare name of the element, its XML namespace prefix (if any), and the XML namespace with which that prefix is associated. The XMLToken class serves as base class for XMLNode. XML lends itself to a tree-structured representation, and in libSBML, the nodes in an XML document tree are XMLNode objects. Most higher-level libSBML classes and methods that offer XML-level functionality (such as the methods on SBase for interacting with annotations) work with XMLNode objects rather than XMLToken objects directly.
Public Member Functions | |
int | addAttr (const std::string &name, const std::string &value, const std::string namespaceURI="", const std::string prefix="") |
Adds an attribute to the XML element represented by this token. More... | |
int | addAttr (const XMLTriple &triple, const std::string &value) |
Adds an attribute to the XML element represented by this token. More... | |
int | addNamespace (const std::string &uri, const std::string prefix="") |
Appends an XML namespace declaration to this token. More... | |
int | append (const std::string &chars) |
Appends characters to the text content of token. More... | |
int | clearAttributes () |
Removes all attributes of this XMLToken object. More... | |
int | clearNamespaces () |
Removes all XML namespace declarations from this token. More... | |
XMLToken * | clone () const |
Creates and returns a deep copy of this XMLToken object. More... | |
const XMLAttributes & | getAttributes () const |
Returns the attributes of the XML element represented by this token. More... | |
int | getAttributesLength () const |
Returns the number of attributes on this XMLToken object. More... | |
int | getAttrIndex (const std::string &name, const std::string uri="") const |
Returns the index of the attribute with the given name and namespace URI. More... | |
int | getAttrIndex (const XMLTriple &triple) const |
Returns the index of the attribute defined by the given XMLTriple object. More... | |
std::string | getAttrName (int index) const |
Returns the name of the nth attribute in this token's list of attributes. More... | |
std::string | getAttrPrefix (int index) const |
Returns the prefix of the nth attribute in this token's list of attributes. More... | |
std::string | getAttrPrefixedName (int index) const |
Returns the prefixed name of the nth attribute in this token's list of attributes. More... | |
std::string | getAttrURI (int index) const |
Returns the XML namespace URI of the nth attribute in this token's list of attributes. More... | |
std::string | getAttrValue (int index) const |
Returns the value of the nth attribute in this token's list of attributes. More... | |
std::string | getAttrValue (const std::string &name, const std::string uri="") const |
Returns the value of the attribute with a given name and XML namespace URI. More... | |
std::string | getAttrValue (const XMLTriple &triple) const |
Returns the value of the attribute specified by a given XMLTriple object. More... | |
const std::string & | getCharacters () const |
Returns the character text of token. More... | |
unsigned int | getColumn () const |
Returns the column number at which this token occurs in the input. More... | |
unsigned int | getLine () const |
Returns the line number at which this token occurs in the input. More... | |
const std::string & | getName () const |
Returns the (unqualified) name of token. More... | |
int | getNamespaceIndex (const std::string &uri) const |
Returns the index of an XML namespace declaration based on its URI. More... | |
int | getNamespaceIndexByPrefix (const std::string &prefix) const |
Returns the index of an XML namespace declaration based on its prefix. More... | |
std::string | getNamespacePrefix (int index) const |
Returns the prefix of the nth XML namespace declaration. More... | |
std::string | getNamespacePrefix (const std::string &uri) const |
Returns the prefix associated with a given XML namespace URI on this token. More... | |
const XMLNamespaces & | getNamespaces () const |
Returns the XML namespaces declared for this token. More... | |
int | getNamespacesLength () const |
Returns the number of XML namespaces declared on this token. More... | |
std::string | getNamespaceURI (int index) const |
Returns the URI of the nth XML namespace declared on this token. More... | |
std::string | getNamespaceURI (const std::string prefix="") const |
Returns the URI of an XML namespace with a given prefix. More... | |
const std::string & | getPrefix () const |
Returns the XML namespace prefix of token. More... | |
const std::string & | getURI () const |
Returns the XML namespace URI of token. More... | |
bool | hasAttr (int index) const |
Returns true if an attribute with the given index exists. More... | |
bool | hasAttr (const std::string &name, const std::string uri="") const |
Returns true if an attribute with a given name and namespace URI exists. More... | |
bool | hasAttr (const XMLTriple &triple) const |
Returns true if an attribute defined by a given XMLTriple object exists. More... | |
bool | hasNamespaceNS (const std::string &uri, const std::string &prefix) const |
Returns true if this token has an XML namespace with a given prefix and URI combination. More... | |
bool | hasNamespacePrefix (const std::string &prefix) const |
Returns true if this token has an XML namespace with a given prefix. More... | |
bool | hasNamespaceURI (const std::string &uri) const |
Returns true if this token has an XML namespace with a given URI. More... | |
bool | isAttributesEmpty () const |
Returns true if this token has no attributes. More... | |
bool | isElement () const |
Returns true if this token represents an XML element. More... | |
bool | isEnd () const |
Returns true if this token represents an XML end element. More... | |
bool | isEndFor (const XMLToken &element) const |
Returns true if this token represents an XML end element for a particular start element. More... | |
bool | isEOF () const |
Returns true if this token is an end of file marker. More... | |
bool | isNamespacesEmpty () const |
Returns true if there are no namespaces declared on this token. More... | |
bool | isStart () const |
Returns true if this token represents an XML start element. More... | |
bool | isText () const |
Returns true if this token represents an XML text element. More... | |
XMLToken & | operator= (const XMLToken &rhs) |
Assignment operator for XMLToken. More... | |
int | removeAttr (int n) |
Removes the nth attribute from the XML element represented by this token. More... | |
int | removeAttr (const std::string &name, const std::string uri="") |
Removes an attribute from the XML element represented by this token. More... | |
int | removeAttr (const XMLTriple &triple) |
Removes an attribute from the XML element represented by this token. More... | |
int | removeNamespace (int index) |
Removes the nth XML namespace declaration. More... | |
int | removeNamespace (const std::string &prefix) |
Removes an XML namespace declaration having a given prefix. More... | |
int | setAttributes (const XMLAttributes &attributes) |
Sets the attributes on the XML element represented by this token. More... | |
int | setCharacters (const std::string &chars) |
Sets the characters for this XMLToken. More... | |
int | setEnd () |
Declares that this token represents an XML element end tag. More... | |
int | setEOF () |
Declares that this token is an end-of-file/input marker. More... | |
int | setNamespaces (const XMLNamespaces &namespaces) |
Sets the XML namespaces on this XML element. More... | |
int | setTriple (const XMLTriple &triple) |
Sets the name, namespace prefix and namespace URI of this token. More... | |
std::string | toString () |
Prints a string representation of the underlying token stream. More... | |
int | unsetEnd () |
Declares that this token no longer represents an XML start/end element. More... | |
XMLToken () | |
Creates a new empty XMLToken object. More... | |
XMLToken (const XMLTriple &triple, const XMLAttributes &attributes, const XMLNamespaces &namespaces, const unsigned int line=0, const unsigned int column=0) | |
Creates an XML start element with attributes and namespace declarations. More... | |
XMLToken (const XMLTriple &triple, const XMLAttributes &attributes, const unsigned int line=0, const unsigned int column=0) | |
Creates an XML start element with attributes. More... | |
XMLToken (const XMLTriple &triple, const unsigned int line=0, const unsigned int column=0) | |
Creates an XML end element. More... | |
XMLToken (const std::string &chars, const unsigned int line=0, const unsigned int column=0) | |
Creates a text object. More... | |
XMLToken (const XMLToken &orig) | |
Copy constructor; creates a copy of this XMLToken object. More... | |
virtual | ~XMLToken () |
Destroys this XMLToken object. More... | |
XMLToken::XMLToken | ( | ) |
Creates a new empty XMLToken object.
XMLToken::XMLToken | ( | const XMLTriple & | triple, |
const XMLAttributes & | attributes, | ||
const XMLNamespaces & | namespaces, | ||
const unsigned int | line = 0 , |
||
const unsigned int | column = 0 |
||
) |
Creates an XML start element with attributes and namespace declarations.
triple | an XMLTriple object describing the start tag. |
attributes | XMLAttributes, the attributes to set on the element to be created. |
namespaces | XMLNamespaces, the namespaces to set on the element to be created. |
line | an unsigned int, the line number to associate with the token (default = 0). |
column | an unsigned int, the column number to associate with the token (default = 0). |
XMLToken::XMLToken | ( | const XMLTriple & | triple, |
const XMLAttributes & | attributes, | ||
const unsigned int | line = 0 , |
||
const unsigned int | column = 0 |
||
) |
Creates an XML start element with attributes.
triple | an XMLTriple object describing the start tag. |
attributes | XMLAttributes, the attributes to set on the element to be created. |
line | an unsigned int, the line number to associate with the token (default = 0). |
column | an unsigned int, the column number to associate with the token (default = 0). |
The XML namespace component of this XMLToken object will be left empty. See the other variants of the XMLToken constructors for versions that take namespace arguments.
XMLToken::XMLToken | ( | const XMLTriple & | triple, |
const unsigned int | line = 0 , |
||
const unsigned int | column = 0 |
||
) |
Creates an XML end element.
triple | an XMLTriple object describing the end tag. |
line | an unsigned int, the line number to associate with the token (default = 0). |
column | an unsigned int, the column number to associate with the token (default = 0). |
XMLToken::XMLToken | ( | const std::string & | chars, |
const unsigned int | line = 0 , |
||
const unsigned int | column = 0 |
||
) |
Creates a text object.
chars | a string, the text to be added to the XMLToken object. |
line | an unsigned int, the line number to associate with the token (default = 0). |
column | an unsigned int, the column number to associate with the token (default = 0). |
|
virtual |
Destroys this XMLToken object.
XMLToken::XMLToken | ( | const XMLToken & | orig | ) |
int XMLToken::addAttr | ( | const std::string & | name, |
const std::string & | value, | ||
const std::string | namespaceURI = "" , |
||
const std::string | prefix = "" |
||
) |
Adds an attribute to the XML element represented by this token.
name | a string, the so-called "local part" of the attribute name; that is, the attribute name without any namespace qualifier or prefix. |
value | a string, the value assigned to the attribute. |
namespaceURI | a string, the XML namespace URI of the attribute. |
prefix | a string, the prefix for the XML namespace. |
Recall that in XML, the complete form of an attribute on an XML element is the following:
prefix:name="value"
The name
part is the name of the attribute, the "value"
part is the value assigned to the attribute (and it is always a quoted string), and the prefix
part is an optional XML namespace prefix. Internally in libSBML, this data is stored in an XMLAttributes object associated with this XMLToken.
int XMLToken::addAttr | ( | const XMLTriple & | triple, |
const std::string & | value | ||
) |
Adds an attribute to the XML element represented by this token.
triple | an XMLTriple object defining the attribute, its value, and optionally its XML namespace (if any is provided). |
value | a string, the value assigned to the attribute. |
int XMLToken::addNamespace | ( | const std::string & | uri, |
const std::string | prefix = "" |
||
) |
Appends an XML namespace declaration to this token.
The namespace added will be defined by the given XML namespace URI and an optional prefix. If this XMLToken object already possesses an XML namespace declaration with the given prefix
, then the existing XML namespace URI will be overwritten by the new one given by uri
.
uri | a string, the XML namespace URI for the namespace. |
prefix | a string, the namespace prefix to use. |
int XMLToken::append | ( | const std::string & | chars | ) |
Appends characters to the text content of token.
This method only makes sense for XMLToken objects that contains text. If this method is called on a token that represents an XML start or end tag, it will return the code LIBSBML_OPERATION_FAILED.
chars | string, characters to append to the text of this token. |
int XMLToken::clearAttributes | ( | ) |
Removes all attributes of this XMLToken object.
int XMLToken::clearNamespaces | ( | ) |
Removes all XML namespace declarations from this token.
XMLToken * XMLToken::clone | ( | ) | const |
const XMLAttributes & XMLToken::getAttributes | ( | ) | const |
Returns the attributes of the XML element represented by this token.
int XMLToken::getAttributesLength | ( | ) | const |
int XMLToken::getAttrIndex | ( | const std::string & | name, |
const std::string | uri = "" |
||
) | const |
Returns the index of the attribute with the given name and namespace URI.
name | a string, the name of the attribute. |
uri | a string, the namespace URI of the attribute. |
-1
if it is not present on this token. int XMLToken::getAttrIndex | ( | const XMLTriple & | triple | ) | const |
std::string XMLToken::getAttrName | ( | int | index | ) | const |
Returns the name of the nth attribute in this token's list of attributes.
index | an integer, the position of the attribute whose name is being sought. |
n
in the list of attributes possessed by this XMLToken object.index
is out of range, this method will return an empty string. XMLToken::hasAttr() can be used to test for an attribute's existence explicitly, and XMLToken::getAttributesLength() can be used to find out the number of attributes possessed by this token.std::string XMLToken::getAttrPrefix | ( | int | index | ) | const |
Returns the prefix of the nth attribute in this token's list of attributes.
index | an integer, the position of the attribute whose prefix is being sought. |
n
in the list of attributes possessed by this XMLToken object.index
is out of range, this method will return an empty string. XMLToken::hasAttr() can be used to test for an attribute's existence explicitly, and XMLToken::getAttributesLength() can be used to find out the number of attributes possessed by this token.std::string XMLToken::getAttrPrefixedName | ( | int | index | ) | const |
Returns the prefixed name of the nth attribute in this token's list of attributes.
In this context, prefixed name means the name of the attribute prefixed with the XML namespace prefix assigned to the attribute. This will be a string of the form prefix:name
.
index | an integer, the position of the attribute whose prefixed name is being sought. |
n
in the list of attributes possessed by this XMLToken object.index
is out of range, this method will return an empty string. XMLToken::hasAttr() can be used to test for an attribute's existence explicitly, and XMLToken::getAttributesLength() can be used to find out the number of attributes possessed by this token. std::string XMLToken::getAttrURI | ( | int | index | ) | const |
Returns the XML namespace URI of the nth attribute in this token's list of attributes.
index | an integer, the position of the attribute whose namespace URI is being sought. |
n
in the list of attributes possessed by this XMLToken object.index
is out of range, this method will return an empty string. XMLToken::hasAttr() can be used to test for an attribute's existence explicitly, and XMLToken::getAttributesLength() can be used to find out the number of attributes possessed by this token. std::string XMLToken::getAttrValue | ( | int | index | ) | const |
Returns the value of the nth attribute in this token's list of attributes.
index | an integer, the position of the attribute whose value is required. |
n
in the list of attributes possessed by this XMLToken object.index
is out of range, this method will return an empty string. XMLToken::hasAttr() can be used to test for an attribute's existence explicitly, and XMLToken::getAttributesLength() can be used to find out the number of attributes possessed by this token. std::string XMLToken::getAttrValue | ( | const std::string & | name, |
const std::string | uri = "" |
||
) | const |
Returns the value of the attribute with a given name and XML namespace URI.
name | a string, the name of the attribute whose value is being sought. |
uri | a string, the XML namespace URI of the attribute. |
name
and uri
does not exist on this token object, this method will return an empty string. XMLToken::hasAttr() can be used to test explicitly for the presence of an attribute with a given name and namespace. std::string XMLToken::getAttrValue | ( | const XMLTriple & | triple | ) | const |
Returns the value of the attribute specified by a given XMLTriple object.
triple | an XMLTriple describing the attribute whose value is being sought. |
triple
does not exist on this token object, this method will return an empty string. XMLToken::hasAttr() can be used to test explicitly for the existence of an attribute with the properties of a given triple. const string & XMLToken::getCharacters | ( | ) | const |
Returns the character text of token.
unsigned int XMLToken::getColumn | ( | ) | const |
Returns the column number at which this token occurs in the input.
unsigned int XMLToken::getLine | ( | ) | const |
Returns the line number at which this token occurs in the input.
const string & XMLToken::getName | ( | ) | const |
Returns the (unqualified) name of token.
int XMLToken::getNamespaceIndex | ( | const std::string & | uri | ) | const |
Returns the index of an XML namespace declaration based on its URI.
uri | a string, the XML namespace URI of the sought-after namespace. |
-1
if no such namespace URI is present on this XMLToken object. int XMLToken::getNamespaceIndexByPrefix | ( | const std::string & | prefix | ) | const |
Returns the index of an XML namespace declaration based on its prefix.
prefix | a string, the prefix of the sought-after XML namespace. |
-1
if no such namespace URI is present on this XMLToken object. std::string XMLToken::getNamespacePrefix | ( | int | index | ) | const |
Returns the prefix of the nth XML namespace declaration.
index | an integer, position of the required prefix. |
index
is out of range, this method will return an empty string. XMLToken::getNamespacesLength() can be used to find out how many namespaces are defined on this XMLToken object.std::string XMLToken::getNamespacePrefix | ( | const std::string & | uri | ) | const |
Returns the prefix associated with a given XML namespace URI on this token.
uri | a string, the URI of the namespace whose prefix is being sought. |
uri
declared on this XMLToken object, this method will return an empty string. const XMLNamespaces & XMLToken::getNamespaces | ( | ) | const |
Returns the XML namespaces declared for this token.
int XMLToken::getNamespacesLength | ( | ) | const |
Returns the number of XML namespaces declared on this token.
std::string XMLToken::getNamespaceURI | ( | int | index | ) | const |
Returns the URI of the nth XML namespace declared on this token.
index | an integer, the position of the sought-after XML namespace URI. |
index
is out of range, this method will return an empty string.std::string XMLToken::getNamespaceURI | ( | const std::string | prefix = "" | ) | const |
Returns the URI of an XML namespace with a given prefix.
prefix | a string, the prefix of the sought-after XML namespace URI. |
prefix
stored in the XMLNamespaces object of this XMLToken object, this method will return an empty string. const string & XMLToken::getPrefix | ( | ) | const |
Returns the XML namespace prefix of token.
const string & XMLToken::getURI | ( | ) | const |
Returns the XML namespace URI of token.
bool XMLToken::hasAttr | ( | int | index | ) | const |
Returns true
if an attribute with the given index exists.
index | an integer, the position of the attribute. |
true
if this token object possesses an attribute with the given index, false
otherwise. bool XMLToken::hasAttr | ( | const std::string & | name, |
const std::string | uri = "" |
||
) | const |
Returns true
if an attribute with a given name and namespace URI exists.
name | a string, the name of the attribute being sought. |
uri | a string, the XML namespace URI of the attribute being sought. |
true
if an attribute with the given local name and namespace URI exists in the list of attributes on this token object, false
otherwise. bool XMLToken::hasAttr | ( | const XMLTriple & | triple | ) | const |
bool XMLToken::hasNamespaceNS | ( | const std::string & | uri, |
const std::string & | prefix | ||
) | const |
Returns true
if this token has an XML namespace with a given prefix and URI combination.
uri | a string, the URI for the namespace. |
prefix | a string, the prefix for the namespace. |
true
if an XML namespace with the given URI/prefix pair is contained in the XMLNamespaces object of this XMLToken object, false
otherwise. bool XMLToken::hasNamespacePrefix | ( | const std::string & | prefix | ) | const |
Returns true
if this token has an XML namespace with a given prefix.
prefix | a string, the prefix for the XML namespace. |
true
if an XML Namespace with the given URI is contained in the XMLNamespaces of this XMLToken, false
otherwise. bool XMLToken::hasNamespaceURI | ( | const std::string & | uri | ) | const |
Returns true
if this token has an XML namespace with a given URI.
uri | a string, the URI of the XML namespace. |
true
if an XML namespace with the given URI is contained in the XMLNamespaces object of this XMLToken object, false
otherwise. bool XMLToken::isAttributesEmpty | ( | ) | const |
Returns true
if this token has no attributes.
true
if the list of attributes on XMLToken object is empty, false
otherwise. bool XMLToken::isElement | ( | ) | const |
Returns true
if this token represents an XML element.
This generic predicate returns true
if the element is either a start or end tag, and false
if it's a text object. The related methods XMLToken:isStart(), XMLToken::isEnd() and XMLToken::isText() are more specific predicates.
true
if this XMLToken object represents an XML element, false
otherwise.bool XMLToken::isEnd | ( | ) | const |
Returns true
if this token represents an XML end element.
true
if this XMLToken object represents an XML end element, false
otherwise.bool XMLToken::isEndFor | ( | const XMLToken & | element | ) | const |
Returns true
if this token represents an XML end element for a particular start element.
element | XMLToken, the element with which the current object should be compared to determined whether the current object is a start element for the given one. |
true
if this XMLToken object represents an XML end tag for the start tag given by element
, false
otherwise.bool XMLToken::isEOF | ( | ) | const |
bool XMLToken::isNamespacesEmpty | ( | ) | const |
Returns true
if there are no namespaces declared on this token.
true
if the XMLNamespaces object stored in this XMLToken token is empty, false
otherwise. bool XMLToken::isStart | ( | ) | const |
Returns true
if this token represents an XML start element.
true
if this XMLToken is an XML start element, false
otherwise.bool XMLToken::isText | ( | ) | const |
Returns true
if this token represents an XML text element.
true
if this XMLToken is an XML text element, false
otherwise.int XMLToken::removeAttr | ( | int | n | ) |
Removes the nth attribute from the XML element represented by this token.
n | an integer the index of the resource to be deleted. |
n
.int XMLToken::removeAttr | ( | const std::string & | name, |
const std::string | uri = "" |
||
) |
Removes an attribute from the XML element represented by this token.
name | a string, the name of the attribute to be removed. |
uri | a string, the XML namespace URI of the attribute to be removed. |
name
(and uri
if specified).int XMLToken::removeAttr | ( | const XMLTriple & | triple | ) |
Removes an attribute from the XML element represented by this token.
triple | an XMLTriple describing the attribute to be removed. |
triple
.int XMLToken::removeNamespace | ( | int | index | ) |
Removes the nth XML namespace declaration.
index | an integer, the position of the namespace to be removed. The position in this context refers to the position of the namespace in the XMLNamespaces object stored in this XMLToken object. Callers can use one of the getNamespace___() methods to find the index number of a given namespace. |
int XMLToken::removeNamespace | ( | const std::string & | prefix | ) |
Removes an XML namespace declaration having a given prefix.
prefix | a string, the prefix of the namespace to be removed. |
prefix
on this element.int XMLToken::setAttributes | ( | const XMLAttributes & | attributes | ) |
Sets the attributes on the XML element represented by this token.
attributes | an XMLAttributes object to be assigned to this XMLToken object, thereby setting the XML attributes associated with this token. |
attributes
. int XMLToken::setCharacters | ( | const std::string & | chars | ) |
Sets the characters for this XMLToken.
This method only makes sense for XMLToken objects that contains text. If this method is called on a token that represents an XML start or end tag, it will return the code LIBSBML_OPERATION_FAILED.
chars | string, characters to append to the text of this token. |
int XMLToken::setEnd | ( | ) |
Declares that this token represents an XML element end tag.
int XMLToken::setEOF | ( | ) |
Declares that this token is an end-of-file/input marker.
int XMLToken::setNamespaces | ( | const XMLNamespaces & | namespaces | ) |
Sets the XML namespaces on this XML element.
namespaces | the XMLNamespaces object to be assigned to this XMLToken object. |
namespaces
. int XMLToken::setTriple | ( | const XMLTriple & | triple | ) |
Sets the name, namespace prefix and namespace URI of this token.
triple | the new XMLTriple to use for this XMLToken object. If this XMLToken already had an XMLTriple object stored within it, that object will be replaced. |
string XMLToken::toString | ( | ) |
Prints a string representation of the underlying token stream.
This method is intended for debugging purposes.
int XMLToken::unsetEnd | ( | ) |
Declares that this token no longer represents an XML start/end element.