williamr@4: /* williamr@4: * Summary: Provide Canonical XML and Exclusive XML Canonicalization williamr@4: * Description: the c14n modules provides a williamr@4: * williamr@4: * "Canonical XML" implementation williamr@4: * http://www.w3.org/TR/xml-c14n williamr@4: * williamr@4: * and an williamr@4: * williamr@4: * "Exclusive XML Canonicalization" implementation williamr@4: * http://www.w3.org/TR/xml-exc-c14n williamr@4: williamr@4: * Copy: See Copyright for the status of this software. williamr@4: * williamr@4: * Author: Aleksey Sanin williamr@4: * Portion Copyright © 2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. williamr@4: */ williamr@4: williamr@4: /** @file williamr@4: @publishedAll williamr@4: @released williamr@4: */ williamr@4: #ifndef XML_C14N_H williamr@4: #define XML_C14N_H williamr@4: williamr@4: #if defined(LIBXML_OUTPUT_ENABLED) && defined(LIBXML_C14N_ENABLED) williamr@4: williamr@4: #ifdef __cplusplus williamr@4: extern "C" { williamr@4: #endif /* __cplusplus */ williamr@4: williamr@4: #include williamr@4: #include williamr@4: #include williamr@4: williamr@4: /* williamr@4: * XML Canonicazation williamr@4: * http://www.w3.org/TR/xml-c14n williamr@4: * williamr@4: * Exclusive XML Canonicazation williamr@4: * http://www.w3.org/TR/xml-exc-c14n williamr@4: * williamr@4: * Canonical form of an XML document could be created if and only if williamr@4: * a) default attributes (if any) are added to all nodes williamr@4: * b) all character and parsed entity references are resolved williamr@4: * In order to achive this in libxml2 the document MUST be loaded with williamr@4: * following global setings: williamr@4: * williamr@4: * xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS; williamr@4: * xmlSubstituteEntitiesDefault(1); williamr@4: * williamr@4: * or corresponding parser context setting: williamr@4: * xmlParserCtxtPtr ctxt; williamr@4: * williamr@4: * ... williamr@4: * ctxt->loadsubset = XML_DETECT_IDS | XML_COMPLETE_ATTRS; williamr@4: * ctxt->replaceEntities = 1; williamr@4: * ... williamr@4: */ williamr@4: williamr@4: williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlC14NDocSaveTo (xmlDocPtr doc, williamr@4: xmlNodeSetPtr nodes, williamr@4: int exclusive, williamr@4: xmlChar **inclusive_ns_prefixes, williamr@4: int with_comments, williamr@4: xmlOutputBufferPtr buf); williamr@4: williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlC14NDocDumpMemory (xmlDocPtr doc, williamr@4: xmlNodeSetPtr nodes, williamr@4: int exclusive, williamr@4: xmlChar **inclusive_ns_prefixes, williamr@4: int with_comments, williamr@4: xmlChar **doc_txt_ptr); williamr@4: williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlC14NDocSave (xmlDocPtr doc, williamr@4: xmlNodeSetPtr nodes, williamr@4: int exclusive, williamr@4: xmlChar **inclusive_ns_prefixes, williamr@4: int with_comments, williamr@4: const char* filename, williamr@4: int compression); williamr@4: williamr@4: williamr@4: /** williamr@4: * This is the core C14N function williamr@4: */ williamr@4: typedef int (*xmlC14NIsVisibleCallback) (void* user_data, williamr@4: xmlNodePtr node, williamr@4: xmlNodePtr parent); williamr@4: williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlC14NExecute (xmlDocPtr doc, williamr@4: xmlC14NIsVisibleCallback is_visible_callback, williamr@4: void* user_data, williamr@4: int exclusive, williamr@4: xmlChar **inclusive_ns_prefixes, williamr@4: int with_comments, williamr@4: xmlOutputBufferPtr buf); williamr@4: williamr@4: #ifdef __cplusplus williamr@4: } williamr@4: #endif /* __cplusplus */ williamr@4: williamr@4: #endif /* defined(LIBXML_OUTPUT_ENABLED) && defined(LIBXML_C14N_ENABLED) */ williamr@4: #endif /* XML_C14N_H */ williamr@4: