XROAD
xroad_xml.h File Reference
#include "xroad_common_fwd.h"
#include "xroad_string.h"
#include <stdint.h>
#include <stdbool.h>
#include <libxml/parser.h>
#include "xroad_sstream.h"
Include dependency graph for xroad_xml.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define __xroad_xml_dtor__   __dtor__(xroad_xml_destructor)
 

Typedefs

typedef void(* xroad_xml_error_t) (void *, const char *,...)
 

Functions

xroad_xml_doc_t * xroad_xml_read_file (xroad_str_t xml, xroad_str_t xsd)
 
xroad_xml_doc_t * xroad_xml_read_memory (xroad_str_t xml_data, xroad_str_t xsd)
 
xroad_xml_doc_t * xroad_xml_read_memory_ex (xroad_str_t xml_data, xroad_str_t xsd, xroad_xml_error_t err_cb)
 
xroad_str_t xroad_xml_to_str (xroad_xml_tag_t xml, xroad_sstream_t *ss)
 
void xroad_xml_destroy (xroad_xml_doc_t *doc)
 
void xroad_xml_destructor (xroad_xml_doc_t **doc)
 
xroad_xml_tag_t xroad_xml_get_root (xroad_xml_doc_t *doc)
 
int32_t xroad_xml_has_tag (xroad_xml_tag_t tag, xroad_str_t path)
 
xroad_xml_tag_t xroad_xml_get_tag (xroad_xml_tag_t tag, xroad_str_t path)
 
xroad_str_t xroad_xml_get_name (xroad_xml_tag_t tag)
 
xroad_str_t xroad_xml_get_text (xroad_xml_tag_t tag)
 
uint32_t xroad_xml_get_children_count (xroad_xml_tag_t tag)
 
uint32_t xroad_xml_get_children_by_tag_count (xroad_xml_tag_t tag, xroad_str_t path)
 
xroad_xml_tag_t xroad_xml_get_first (xroad_xml_tag_t tag, xroad_str_t child_name)
 
xroad_xml_tag_t xroad_xml_get_next (xroad_xml_tag_t tag, xroad_str_t child_name)
 
int32_t xroad_xml_has_attr (xroad_xml_tag_t tag, xroad_str_t attribute)
 
xroad_str_t xroad_xml_get_attr_s (xroad_xml_tag_t tag, xroad_str_t attribute)
 
int64_t xroad_xml_get_attr_i (xroad_xml_tag_t tag, xroad_str_t attribute)
 
double xroad_xml_get_attr_d (xroad_xml_tag_t tag, xroad_str_t attribute)
 
bool xroad_xml_get_attr_b (xroad_xml_tag_t tag, xroad_str_t attribute)
 
xroad_xml_attr_t xroad_xml_attr_get_first (xroad_xml_tag_t tag)
 
xroad_xml_attr_t xroad_xml_attr_get_next (xroad_xml_attr_t attr)
 
xroad_str_t xroad_xml_attr_get_s (xroad_xml_attr_t attribute)
 
int64_t xroad_xml_attr_get_i (xroad_xml_attr_t attribute)
 
double xroad_xml_attr_get_d (xroad_xml_attr_t attribute)
 
bool xroad_xml_attr_get_b (xroad_xml_attr_t attribute)
 

Detailed Description

Macro Definition Documentation

◆ __xroad_xml_dtor__

#define __xroad_xml_dtor__   __dtor__(xroad_xml_destructor)

automatic destructor

Function Documentation

◆ xroad_xml_attr_get_b()

bool xroad_xml_attr_get_b ( xroad_xml_attr_t  attribute)

get content as bool of tag's attribute

Parameters
[in]attribute- attribute
Returns
pointer to string, NULL - error

◆ xroad_xml_attr_get_d()

double xroad_xml_attr_get_d ( xroad_xml_attr_t  attribute)

get content as double of tag's attribute

Parameters
[in]attribute- attribute
Returns
double value

◆ xroad_xml_attr_get_first()

xroad_xml_attr_t xroad_xml_attr_get_first ( xroad_xml_tag_t  tag)

get first attribute of the xml tag

Parameters
[in]tag- pointer to the xml tag
Returns
pointer to the xml attr, NULL - attrfree tag

◆ xroad_xml_attr_get_i()

int64_t xroad_xml_attr_get_i ( xroad_xml_attr_t  attribute)

get content as int32_t of tag's attribute

Parameters
[in]attribute- attribute
Returns
integer value

◆ xroad_xml_attr_get_next()

xroad_xml_attr_t xroad_xml_attr_get_next ( xroad_xml_attr_t  attr)

find child of the xml tag parent

Parameters
[in]tag- pointer to the xml tag
[in]child_name- name of next child tag
Returns
pointer to the xml tag, NULL - error

◆ xroad_xml_attr_get_s()

xroad_str_t xroad_xml_attr_get_s ( xroad_xml_attr_t  attribute)

get content as string of attribute

Parameters
[in]attribute- attribute
Returns
pointer to string, NULL - error

◆ xroad_xml_destroy()

void xroad_xml_destroy ( xroad_xml_doc_t *  doc)

destroy document and frees memory

Parameters
[in]doc- pointer to the xml document. It NULL, nothing happened

◆ xroad_xml_get_attr_b()

bool xroad_xml_get_attr_b ( xroad_xml_tag_t  tag,
xroad_str_t  attribute 
)

get content as bool of tag's attribute by its name

Parameters
[in]tag- pointer to the xml tag
[in]attribute- attribute name
Returns
boolean value

◆ xroad_xml_get_attr_d()

double xroad_xml_get_attr_d ( xroad_xml_tag_t  tag,
xroad_str_t  attribute 
)

get content as double of tag's attribute by its name

Parameters
[in]tag- pointer to the xml tag
[in]attribute- attribute name
Returns
double value

◆ xroad_xml_get_attr_i()

int64_t xroad_xml_get_attr_i ( xroad_xml_tag_t  tag,
xroad_str_t  attribute 
)

get content as int32_t of tag's attribute by its name

Parameters
[in]tag- pointer to the xml tag
[in]attribute- attribute name
Returns
integer value

◆ xroad_xml_get_attr_s()

xroad_str_t xroad_xml_get_attr_s ( xroad_xml_tag_t  tag,
xroad_str_t  attribute 
)

get content as string of tag's attribute by its name

Parameters
[in]tag- pointer to the xml tag
[in]attribute- attribute name
Returns
pointer to string, NULL - error

◆ xroad_xml_get_children_by_tag_count()

uint32_t xroad_xml_get_children_by_tag_count ( xroad_xml_tag_t  tag,
xroad_str_t  path 
)

get quantity of children of the xml tag parent

Parameters
[in]tag- pointer to the xml tag
[in]path- path to the tag
Returns
quantity of children

◆ xroad_xml_get_children_count()

uint32_t xroad_xml_get_children_count ( xroad_xml_tag_t  tag)

get quantity of children of the xml tag parent

Parameters
[in]tag- pointer to the xml tag
Returns
quantity of children

◆ xroad_xml_get_first()

xroad_xml_tag_t xroad_xml_get_first ( xroad_xml_tag_t  tag,
xroad_str_t  child_name 
)

get first child of the xml tag parent

Parameters
[in]tag- pointer to the xml tag
[in]child_name- name of first child tag
Returns
pointer to the xml tag, NULL - childfree node

◆ xroad_xml_get_name()

xroad_str_t xroad_xml_get_name ( xroad_xml_tag_t  tag)

get name of the xml tag

Parameters
[in]tag- pointer to the xml tag
Returns
pointer to string, NULL - error

◆ xroad_xml_get_next()

xroad_xml_tag_t xroad_xml_get_next ( xroad_xml_tag_t  tag,
xroad_str_t  child_name 
)

find child of the xml tag parent

Parameters
[in]tag- pointer to the xml tag
[in]child_name- name of next child tag
Returns
pointer to the xml tag, NULL - error

◆ xroad_xml_get_root()

xroad_xml_tag_t xroad_xml_get_root ( xroad_xml_doc_t *  doc)

get the root tag of the xml document

Parameters
[in]doc- pointer to the xml document
Returns
pointer to the xml tag, NULL - error

◆ xroad_xml_get_tag()

xroad_xml_tag_t xroad_xml_get_tag ( xroad_xml_tag_t  tag,
xroad_str_t  path 
)

get the tag of the xml document by its path

Parameters
[in]tag- pointer to the xml document
[in]path- path to the tag
Returns
pointer to the xml tag, NULL - error

◆ xroad_xml_get_text()

xroad_str_t xroad_xml_get_text ( xroad_xml_tag_t  tag)

get text of the xml tag

Parameters
[in]tag- pointer to the xml tag
Returns
pointer to string, NULL - error

◆ xroad_xml_has_attr()

int32_t xroad_xml_has_attr ( xroad_xml_tag_t  tag,
xroad_str_t  attribute 
)

check if tag has attribute

Parameters
[in]tag- pointer to the xml tag
[in]attribute- attribute name
Returns
1 - exists, 0 - absent

◆ xroad_xml_has_tag()

int32_t xroad_xml_has_tag ( xroad_xml_tag_t  tag,
xroad_str_t  path 
)

check if xml tag exists

Parameters
[in]tag- pointer to the xml document
[in]path- path to the tag
Returns
1 - exists, 0 - no such tag

◆ xroad_xml_read_file()

xroad_xml_doc_t* xroad_xml_read_file ( xroad_str_t  xml,
xroad_str_t  xsd 
)

parse xml file and validates it according scheme

Parameters
[in]xml- path to the xml file
[in]xsd- optional path to the xsd scheme
Returns
pointer to new xml document, NULL - error

◆ xroad_xml_read_memory()

xroad_xml_doc_t* xroad_xml_read_memory ( xroad_str_t  xml_data,
xroad_str_t  xsd 
)

parse xml string and validates it according scheme

Parameters
[in]xml_data- xml string
[in]xsd- optional path to the xsd scheme
Returns
pointer to new xml document, NULL - error

◆ xroad_xml_read_memory_ex()

xroad_xml_doc_t* xroad_xml_read_memory_ex ( xroad_str_t  xml_data,
xroad_str_t  xsd,
xroad_xml_error_t  err_cb 
)

parse xml string and validates it according scheme

Parameters
[in]xml_data- xml string
[in]xsd- optional path to the xsd scheme
[out]err_cb- parse error callback
Returns
pointer to new xml document, NULL - error

◆ xroad_xml_to_str()

xroad_str_t xroad_xml_to_str ( xroad_xml_tag_t  xml,
xroad_sstream_t *  ss 
)

convert xml tag to string

Parameters
[in]xml- xml tag to convert
[out]ss- string stream
Returns
string representation