libxml2
Loading...
Searching...
No Matches
c14n.h File Reference

Provide Canonical XML and Exclusive XML Canonicalization. More...

Typedefs

typedef int(* xmlC14NIsVisibleCallback) (void *user_data, xmlNode *node, xmlNode *parent)
 This is the core C14N function.

Enumerations

enum  xmlC14NMode
 Predefined values for C14N modes. More...

Functions

int xmlC14NDocSaveTo (xmlDoc *doc, xmlNodeSet *nodes, int mode, xmlChar **inclusive_ns_prefixes, int with_comments, xmlOutputBuffer *buf)
 Dumps the canonized image of given XML document into the provided buffer.
int xmlC14NDocDumpMemory (xmlDoc *doc, xmlNodeSet *nodes, int mode, xmlChar **inclusive_ns_prefixes, int with_comments, xmlChar **doc_txt_ptr)
 Dumps the canonized image of given XML document into memory.
int xmlC14NDocSave (xmlDoc *doc, xmlNodeSet *nodes, int mode, xmlChar **inclusive_ns_prefixes, int with_comments, const char *filename, int compression)
 Dumps the canonized image of given XML document into the file.
int xmlC14NExecute (xmlDoc *doc, xmlC14NIsVisibleCallback is_visible_callback, void *user_data, int mode, xmlChar **inclusive_ns_prefixes, int with_comments, xmlOutputBuffer *buf)
 Dumps the canonized image of given XML document into the provided buffer.

Detailed Description

Provide Canonical XML and Exclusive XML Canonicalization.

the c14n modules provides a

"Canonical XML" implementation http://www.w3.org/TR/xml-c14n

and an

"Exclusive XML Canonicalization" implementation http://www.w3.org/TR/xml-exc-c14n

Author
Aleksey Sanin

Typedef Documentation

◆ xmlC14NIsVisibleCallback

typedef int(* xmlC14NIsVisibleCallback) (void *user_data, xmlNode *node, xmlNode *parent)

This is the core C14N function.

Signature for a C14N callback on visible nodes

Parameters
user_datauser data
nodethe current node
parentthe parent node
Returns
1 if the node should be included

Enumeration Type Documentation

◆ xmlC14NMode

Predefined values for C14N modes.

Enumerator
XML_C14N_1_0 

Original C14N 1.0 spec.

XML_C14N_EXCLUSIVE_1_0 

Exclusive C14N 1.0 spec.

XML_C14N_1_1 

C14N 1.1 spec.

Function Documentation

◆ xmlC14NDocDumpMemory()

int xmlC14NDocDumpMemory ( xmlDoc * doc,
xmlNodeSet * nodes,
int mode,
xmlChar ** inclusive_ns_prefixes,
int with_comments,
xmlChar ** doc_txt_ptr )

Dumps the canonized image of given XML document into memory.

For details see "Canonical XML" (http://www.w3.org/TR/xml-c14n) or "Exclusive XML Canonicalization" (http://www.w3.org/TR/xml-exc-c14n)

Parameters
docthe XML document for canonization
nodesthe nodes set to be included in the canonized image or NULL if all document nodes should be included
modethe c14n mode (see xmlC14NMode)
inclusive_ns_prefixesthe list of inclusive namespace prefixes ended with a NULL or NULL if there is no inclusive namespaces (only for exclusive canonicalization, ignored otherwise)
with_commentsinclude comments in the result (!=0) or not (==0)
doc_txt_ptrthe memory pointer for allocated canonical XML text; the caller of this functions is responsible for calling xmlFree() to free allocated memory
Returns
the number of bytes written on success or a negative value on fail

◆ xmlC14NDocSave()

int xmlC14NDocSave ( xmlDoc * doc,
xmlNodeSet * nodes,
int mode,
xmlChar ** inclusive_ns_prefixes,
int with_comments,
const char * filename,
int compression )

Dumps the canonized image of given XML document into the file.

For details see "Canonical XML" (http://www.w3.org/TR/xml-c14n) or "Exclusive XML Canonicalization" (http://www.w3.org/TR/xml-exc-c14n)

Parameters
docthe XML document for canonization
nodesthe nodes set to be included in the canonized image or NULL if all document nodes should be included
modethe c14n mode (see xmlC14NMode)
inclusive_ns_prefixesthe list of inclusive namespace prefixes ended with a NULL or NULL if there is no inclusive namespaces (only for exclusive canonicalization, ignored otherwise)
with_commentsinclude comments in the result (!=0) or not (==0)
filenamethe filename to store canonical XML image
compressionthe compression level (zlib required): -1 - libxml default, 0 - uncompressed, >0 - compression level
Returns
the number of bytes written success or a negative value on fail

◆ xmlC14NDocSaveTo()

int xmlC14NDocSaveTo ( xmlDoc * doc,
xmlNodeSet * nodes,
int mode,
xmlChar ** inclusive_ns_prefixes,
int with_comments,
xmlOutputBuffer * buf )

Dumps the canonized image of given XML document into the provided buffer.

For details see "Canonical XML" (http://www.w3.org/TR/xml-c14n) or "Exclusive XML Canonicalization" (http://www.w3.org/TR/xml-exc-c14n)

Parameters
docthe XML document for canonization
nodesthe nodes set to be included in the canonized image or NULL if all document nodes should be included
modethe c14n mode (see xmlC14NMode)
inclusive_ns_prefixesthe list of inclusive namespace prefixes ended with a NULL or NULL if there is no inclusive namespaces (only for exclusive canonicalization, ignored otherwise)
with_commentsinclude comments in the result (!=0) or not (==0)
bufthe output buffer to store canonical XML; this buffer MUST have encoder==NULL because C14N requires UTF-8 output
Returns
non-negative value on success or a negative value on fail

◆ xmlC14NExecute()

int xmlC14NExecute ( xmlDoc * doc,
xmlC14NIsVisibleCallback is_visible_callback,
void * user_data,
int mode,
xmlChar ** inclusive_ns_prefixes,
int with_comments,
xmlOutputBuffer * buf )

Dumps the canonized image of given XML document into the provided buffer.

For details see "Canonical XML" (http://www.w3.org/TR/xml-c14n) or "Exclusive XML Canonicalization" (http://www.w3.org/TR/xml-exc-c14n)

Parameters
docthe XML document for canonization
is_visible_callbackthe function to use to determine is node visible or not
user_datathe first parameter for is_visible_callback function (in most cases, it is nodes set)
modethe c14n mode (see xmlC14NMode)
inclusive_ns_prefixesthe list of inclusive namespace prefixes ended with a NULL or NULL if there is no inclusive namespaces (only for exclusive canonicalization, ignored otherwise)
with_commentsinclude comments in the result (!=0) or not (==0)
bufthe output buffer to store canonical XML; this buffer MUST have encoder==NULL because C14N requires UTF-8 output
Returns
non-negative value on success or a negative value on fail