| Top |
gboolean (*GsfXMLInUnknownFunc) (GsfXMLIn *xin,xmlChar const *elem,xmlChar const **attrs);
gboolean (*GsfXMLProbeFunc) (const xmlChar *name,const xmlChar *prefix,const xmlChar *URI,int nb_namespaces,const xmlChar **namespaces,int nb_attributes,int nb_defaulted,const xmlChar **attributes);
#define GSF_XML_IN_NODE_FULL(parent_id, id, ns, name, has_content, \
share_children_with_parent, check_ns, start, end, user)
GsfXMLInDoc * gsf_xml_in_doc_new (GsfXMLInNode const *nodes,GsfXMLInNS const *ns);
Combine the nodes in the NULL terminated array starting at nodes
with the
name spaces in the NULL terminated array starting at ns
. Prepare the
data structures necessary to validate a doument based on that description.
void gsf_xml_in_doc_add_nodes (GsfXMLInDoc *doc,GsfXMLInNode const *nodes);
Adds additional nodes to the structure of doc
gboolean gsf_xml_in_doc_parse (GsfXMLInDoc *doc,GsfInput *input,gpointer user_state);
Read an xml document from input
and parse based on the the descriptor in
doc
void gsf_xml_in_doc_set_unknown_handler (GsfXMLInDoc *doc,GsfXMLInUnknownFunc handler);
Call the function handler
when an unexpected child node is found
void gsf_xml_in_push_state (GsfXMLIn *xin,GsfXMLInDoc const *doc,gpointer new_state,GsfXMLInExtDtor dtor,xmlChar const **attrs);
Take the first node from doc
as the current node and call its start handler.
gboolean gsf_xml_in_namecmp (GsfXMLIn const *xin,char const *str,unsigned int ns_id,char const *name);
Checks to see if str
is the same as ns_id
::name
with either an explicit
namespace or the current default namespace.
xin |
The GsfXMLIn we are reading from. |
|
str |
The potentially namespace qualified node name. |
|
ns_id |
The name space id to check |
|
name |
The target node name |
char const * gsf_xml_in_check_ns (GsfXMLIn const *xin,char const *str,unsigned int ns_id);
According to state
is str
in the namespace ns_id
?
void gsf_xml_out_set_doc_type (GsfXMLOut *xout,char const *type);
Store some optional <!DOCTYPE .. > content
GsfOutput *
gsf_xml_out_get_output (GsfXMLOut const *xout);
Get the GsfOutput we are writing to..
void gsf_xml_out_start_element (GsfXMLOut *xout,char const *id);
Output a start element id
, if necessary preceeded by an XML declaration.
char const *
gsf_xml_out_end_element (GsfXMLOut *xout);
Closes/ends an XML element.
void gsf_xml_out_add_cstr (GsfXMLOut *xout,char const *id,char const *val_utf8);
dump val_utf8
to an attribute named id
or as the nodes content escaping
characters as necessary. If val_utf8
is NULL do nothing (no warning, no
output)
void gsf_xml_out_add_cstr_unchecked (GsfXMLOut *xout,char const *id,char const *val_utf8);
dump val_utf8
to an attribute named id
without checking to see if
the content needs escaping. A useful performance enhancement when
the application knows that structure of the content well. If
val_utf8
is NULL do nothing (no warning, no output)
void gsf_xml_out_add_bool (GsfXMLOut *xout,char const *id,gboolean val);
dump boolean value val
to an attribute named id
or as the nodes content
Use '1' or '0' to simplify import
void gsf_xml_out_add_int (GsfXMLOut *xout,char const *id,int val);
dump integer value val
to an attribute named id
or as the nodes content
void gsf_xml_out_add_uint (GsfXMLOut *xout,char const *id,unsigned int val);
dump unsigned integer value val
to an attribute named id
or as the nodes
content
void gsf_xml_out_add_float (GsfXMLOut *xout,char const *id,double val,int precision);
dump float value val
to an attribute named id
or as the nodes
content with precision precision
. The number will be formattted
according to the "C" locale.
void gsf_xml_out_add_enum (GsfXMLOut *xout,char const *id,GType etype,gint val);
Output the name of value val
of enumeration type etype
.
void gsf_xml_out_add_color (GsfXMLOut *xout,char const *id,unsigned int r,unsigned int g,unsigned int b);
dump Color r
.g
.b
to an attribute named id
or as the nodes content
void gsf_xml_out_add_base64 (GsfXMLOut *xout,char const *id,guint8 const *data,unsigned int len);
Dump len
bytes in data
into the content of node id
using base64
void gsf_xml_out_add_gvalue (GsfXMLOut *xout,char const *id,GValue const *val);
Output the value of val
as a string. Does NOT store any type information
with the string, just thevalue.
void gsf_xml_out_simple_element (GsfXMLOut *xout,char const *id,char const *content);
Convenience routine to output a simple id
element with content content
.
void gsf_xml_out_simple_float_element (GsfXMLOut *xout,char const *id,double val,int precision);
Convenience routine to output an element id
with float value val
using
precision
significant digits.
void gsf_xml_out_simple_int_element (GsfXMLOut *xout,char const *id,int val);
Convenience routine to output an element id
with integer value val
.
xmlParserCtxt *
gsf_xml_parser_context (GsfInput *input);
Create a libxml2 pull style parser context wrapper around gsf input input
.
This signature will probably change to supply a SAX structure.
input.NOTE: skipped since xmlParserCtxt is not exported to introspection.
[skip]
gboolean gsf_xml_gvalue_from_str (GValue *res,GType t,char const *str);
Try to parse str
as a value of type t
into res
.
int gsf_xmlDocFormatDump (GsfOutput *output,xmlDoc *cur,char const *encoding,gboolean format);
Dumps the document cur
into output
.
typedef struct {
/* public state : read only */
gpointer user_state;
GString *content;
GsfXMLInDoc const *doc;
GsfXMLInNode const *node; /* current node (not on the stack) */
} GsfXMLIn;
user data |
||
the current node content |
||
GsfXMLInDoc const * |
||
GsfXMLInNode const * |
current node (not on the stack) |
typedef struct {
char const *id; /* unique in the entire tree */
int ns_id;
char const *name;
char const *parent_id;
void (*start) (GsfXMLIn *xin, xmlChar const **attrs);
void (*end) (GsfXMLIn *xin, GsfXMLBlob *unknown);
union {
int v_int;
gboolean v_bool;
gpointer v_blob;
char const *v_str;
} user_data;
GsfXMLContent has_content;
unsigned int check_children_for_ns : 1;
unsigned int share_children_with_parent : 1;
} GsfXMLInNode;
identifier unique in the entire tree |
||
namespace identifier |
||
node name |
||
parent node identifier |
||
callback for the node opening |
||
callback for node end |
||
GsfXMLContent |
whether the node has content |
|
whether to check namespace for children |
||
whether to share children with parent. |
“pretty-print” property “pretty-print” gboolean
Should the output auto-indent elements to make reading easier?.
Flags: Read / Write
Default value: TRUE
“sink” property“sink” GsfOutput *
The destination for writes.
Flags: Read / Write / Construct Only