## c14n

c14n —

## Synopsis

    int         xmlC14NDocSaveTo                (xmlDocPtr doc,
                                                 xmlNodeSetPtr nodes,
                                                 int exclusive,
                                                 xmlChar **inclusive_ns_prefixes,
                                                 int with_comments,
                                                 xmlOutputBufferPtr buf);
    int         xmlC14NDocDumpMemory            (xmlDocPtr doc,
                                                 xmlNodeSetPtr nodes,
                                                 int exclusive,
                                                 xmlChar **inclusive_ns_prefixes,
                                                 int with_comments,
                                                 xmlChar **doc_txt_ptr);
    int         xmlC14NDocSave                  (xmlDocPtr doc,
                                                 xmlNodeSetPtr nodes,
                                                 int exclusive,
                                                 xmlChar **inclusive_ns_prefixes,
                                                 int with_comments,
                                                 const char *filename,
                                                 int compression);
    int         (*xmlC14NIsVisibleCallback)     (void *user_data,
                                                 xmlNodePtr node,
                                                 xmlNodePtr parent);
    int         xmlC14NExecute                  (xmlDocPtr doc,
                                                 xmlC14NIsVisibleCallback is_visible_callback,
                                                 void *user_data,
                                                 int exclusive,
                                                 xmlChar **inclusive_ns_prefixes,
                                                 int with_comments,
                                                 xmlOutputBufferPtr buf);

## Description

## Details

### xmlC14NDocSaveTo ()

    int         xmlC14NDocSaveTo                (xmlDocPtr doc,
                                                 xmlNodeSetPtr nodes,
                                                 int exclusive,
                                                 xmlChar **inclusive_ns_prefixes,
                                                 int with_comments,
                                                 xmlOutputBufferPtr 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)

`doc` : | the XML document for canonization
`nodes` : | the nodes set to be included in the canonized image or NULL if all document nodes should be included
`exclusive` : | the exclusive flag (0 - non-exclusive canonicalization; otherwise - exclusive canonicalization)
`inclusive_ns_prefixes` : | the list of inclusive namespace prefixes ended with a NULL or NULL if there is no inclusive namespaces (only for exclusive canonicalization, ignored otherwise)
`with_comments` : | include comments in the result (!=0) or not (==0)
`buf` : | the 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

### xmlC14NDocDumpMemory ()

    int         xmlC14NDocDumpMemory            (xmlDocPtr doc,
                                                 xmlNodeSetPtr nodes,
                                                 int exclusive,
                                                 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)

`doc` : | the XML document for canonization
`nodes` : | the nodes set to be included in the canonized image or NULL if all document nodes should be included
`exclusive` : | the exclusive flag (0 - non-exclusive canonicalization; otherwise - exclusive canonicalization)
`inclusive_ns_prefixes` : | the list of inclusive namespace prefixes ended with a NULL or NULL if there is no inclusive namespaces (only for exclusive canonicalization, ignored otherwise)
`with_comments` : | include comments in the result (!=0) or not (==0)
`doc_txt_ptr` : | the 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                  (xmlDocPtr doc,
                                                 xmlNodeSetPtr nodes,
                                                 int exclusive,
                                                 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)

`doc` : | the XML document for canonization
`nodes` : | the nodes set to be included in the canonized image or NULL if all document nodes should be included
`exclusive` : | the exclusive flag (0 - non-exclusive canonicalization; otherwise - exclusive canonicalization)
`inclusive_ns_prefixes` : | the list of inclusive namespace prefixes ended with a NULL or NULL if there is no inclusive namespaces (only for exclusive canonicalization, ignored otherwise)
`with_comments` : | include comments in the result (!=0) or not (==0)
`filename` : | the filename to store canonical XML image
`compression` : | the compression level (zlib requred): -1 - libxml default, 0 - uncompressed, >0 - compression level
Returns : | the number of bytes written success or a negative value on fail

### xmlC14NIsVisibleCallback ()

    int         (*xmlC14NIsVisibleCallback)     (void *user_data,
                                                 xmlNodePtr node,
                                                 xmlNodePtr parent);

`user_data` : |
`node` : |
`parent` : |
Returns : |

### xmlC14NExecute ()

    int         xmlC14NExecute                  (xmlDocPtr doc,
                                                 xmlC14NIsVisibleCallback is_visible_callback,
                                                 void *user_data,
                                                 int exclusive,
                                                 xmlChar **inclusive_ns_prefixes,
                                                 int with_comments,
                                                 xmlOutputBufferPtr 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)

`doc` : | the XML document for canonization
`is_visible_callback` : | the function to use to determine is node visible or not
`user_data` : | the first parameter for `is_visible_callback` function (in most cases, it is nodes set)
`exclusive` : | the exclusive flag (0 - non-exclusive canonicalization; otherwise - exclusive canonicalization)
`inclusive_ns_prefixes` : | the list of inclusive namespace prefixes ended with a NULL or NULL if there is no inclusive namespaces (only for exclusive canonicalization, ignored otherwise)
`with_comments` : | include comments in the result (!=0) or not (==0)
`buf` : | the 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