diff options
author | Marc-André Lureau <marcandre.lureau@gmail.com> | 2013-01-08 15:00:08 +0100 |
---|---|---|
committer | Marc-André Lureau <marcandre.lureau@gmail.com> | 2013-01-08 18:20:54 +0100 |
commit | 9cc9b8d81023f39900115bc38eb48c038c5d182f (patch) | |
tree | cc9c054fddf8a349e0a381fc181595ef5448353c /vapi | |
parent | 752afa1c4c5caf59a3b510a7fae3a1995c4b5b02 (diff) | |
download | msitools-9cc9b8d81023f39900115bc38eb48c038c5d182f.tar.gz msitools-9cc9b8d81023f39900115bc38eb48c038c5d182f.tar.xz msitools-9cc9b8d81023f39900115bc38eb48c038c5d182f.zip |
Start simple preprocessor, supports variables substitution
Diffstat (limited to 'vapi')
-rw-r--r-- | vapi/libxml-2.0.vapi | 1860 |
1 files changed, 1860 insertions, 0 deletions
diff --git a/vapi/libxml-2.0.vapi b/vapi/libxml-2.0.vapi new file mode 100644 index 0000000..7ffaa4d --- /dev/null +++ b/vapi/libxml-2.0.vapi @@ -0,0 +1,1860 @@ +/* libxml2.vala + * + * Copyright (C) 2006-2008 Jürg Billeter, Raffaele Sandrini, Michael Lawrence + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Author: + * Jürg Billeter <j@bitron.ch> + * Raffaele Sandrini <rasa@gmx.ch> + * Michael Lawrence <lawremi@iastate.edu> + * Ondřej Jirman <megous@megous.com> + */ + +[CCode (gir_namespace = "libxml2", gir_version = "2.0")] +namespace Xml { + /* nanoftp - minimal FTP implementation */ + + [CCode (has_target = false, cname = "ftpDataCallback", cheader_filename = "libxml/nanoftp.h")] + public delegate void FtpDataCallback (void* userData, [CCode (array_length = false)] char[] data, int len); + + [CCode (has_target = false, cname = "ftpListCallback", cheader_filename = "libxml/nanoftp.h")] + public delegate void FtpListCallback (void* userData, string filename, string attrib, string owner, string group, ulong size, int links, int year, string month, int day, int hour, int minute); + + [Compact] + [CCode (cname = "void", free_function = "xmlNanoFTPFreeCtxt", cheader_filename = "libxml/nanoftp.h")] + public class NanoFTP { + [CCode (cname = "xmlNanoFTPCheckResponse")] + public int check_response (); + + [CCode (cname = "xmlNanoFTPCleanup")] + public static void cleanup (); + + [CCode (cname = "xmlNanoFTPClose")] + public int close (); + + [CCode (cname = "xmlNanoFTPCloseConnection")] + public int close_connection (); + + [CCode (cname = "xmlNanoFTPConnect")] + public int connect (); + + [CCode (cname = "xmlNanoFTPConnectTo")] + public static NanoFTP* connect_to (string server, int port); + + [CCode (cname = "xmlNanoFTPCwd")] + public int cwd (string directory); + + [CCode (cname = "xmlNanoFTPDele")] + public int dele (string file); + + [CCode (cname = "xmlNanoFTPGet")] + public int get (FtpDataCallback cb, void* user_data, string filename); + + [CCode (cname = "xmlNanoFTPGetConnection")] + public int get_connection (); + + [CCode (cname = "xmlNanoFTPGetResponse")] + public int get_response (); + + [CCode (cname = "xmlNanoFTPGetSocket")] + public int get_socket (string filename); + + [CCode (cname = "xmlNanoFTPInit")] + public static void init (); + + [CCode (cname = "xmlNanoFTPList")] + public int list (FtpListCallback cb, void* user_data, string filename); + + [CCode (cname = "xmlNanoFTPNewCtxt")] + public NanoFTP (string url); + + [CCode (cname = "xmlNanoFTPOpen")] + public static NanoFTP* open (string url); + + [CCode (cname = "xmlNanoFTPProxy")] + public static void proxy (string host, int port, string user, string passwd, int type); + + [CCode (cname = "xmlNanoFTPQuit")] + public int quit (); + + [CCode (cname = "xmlNanoFTPRead")] + public int read (void* dest, int len); + + [CCode (cname = "xmlNanoFTPScanProxy")] + public static void scan_proxy (string url); + + [CCode (cname = "xmlNanoFTPUpdateURL")] + public int update_url (string url); + } + + + /* nanohttp - minimal HTTP implementation */ + + [Compact] + [CCode (cname = "void", cheader_filename = "libxml/nanohttp.h")] + public class NanoHTTP { + [CCode (cname = "xmlNanoHTTPAuthHeader")] + public unowned string auth_header (); + + [CCode (cname = "xmlNanoHTTPCleanup")] + public static void cleanup (); + + [CCode (cname = "xmlNanoHTTPClose")] + public int close (); + + [CCode (cname = "xmlNanoHTTPContentLength")] + public int content_length (); + + [CCode (cname = "xmlNanoHTTPEncoding")] + public unowned string http_encoding (); + + [CCode (cname = "xmlNanoHTTPFetch")] + public static int fetch (string url, string filename, out string content_type); + + [CCode (cname = "xmlNanoHTTPInit")] + public static void init (); + + [CCode (cname = "xmlNanoHTTPMethod")] + public static NanoHTTP* method (string url, string method, string input, out string content_type, string headers, int ilen); + + [CCode (cname = "xmlNanoHTTPMethodRedir")] + public static NanoHTTP* method_redir (string url, string method, string input, out string content_type, out string redir, string headers, int ilen); + + [CCode (cname = "xmlNanoHTTPMimeType")] + public string mime_type (); + + [CCode (cname = "xmlNanoHTTPOpen")] + public static NanoHTTP* open (string url, out string content_type); + + [CCode (cname = "xmlNanoHTTPOpenRedir")] + public static NanoHTTP* open_redir (string url, out string content_type, out string redir); + + [CCode (cname = "xmlNanoHTTPRead")] + public int read (void* dest, int len); + + [CCode (cname = "xmlNanoHTTPRedir")] + public unowned string redir (); + + [CCode (cname = "xmlNanoHTTPReturnCode")] + public int return_code (); + + [CCode (cname = "xmlNanoHTTPSave")] + public int save (string filename); + + [CCode (cname = "xmlNanoHTTPScanProxy")] + public static void scan_proxy (string URL); + } + + + /* parser - the core parser module */ + + [CCode (cheader_filename = "libxml/parser.h")] + namespace Parser { + [CCode (cname = "xmlCleanupParser")] + public static void cleanup (); + + [CCode (cname = "xmlInitParser")] + public static void init (); + + [CCode (cname = "xmlParseDoc")] + public static Doc* parse_doc (string cur); + + [CCode (cname = "xmlParseFile")] + public static Doc* parse_file (string filename); + + [CCode (cname = "xmlParseMemory")] + public static Doc* parse_memory (string buffer, int size); + + [CCode (cname = "xmlReadDoc")] + public static Doc* read_doc (string cur, string? url = null, string? encoding = null, int options = 0); + + [CCode (cname = "xmlReadFd")] + public static Doc* read_fd (int fd, string? base_url = null, string? encoding = null, int options = 0); + + [CCode (cname = "xmlReadFile")] + public static Doc* read_file (string filename, string? encoding = null, int options = 0); + + [CCode (cname = "xmlReadMemory")] + public static Doc* read_memory (string text, int len, string? url = null, string? encoding = null, int options = 0); + } + + [CCode (cname = "xmlParserOption", cprefix = "XML_PARSE_", cheader_filename = "libxml/parser.h", has_type_id = false)] + public enum ParserOption { + RECOVER, + NOENT, + DTDLOAD, + DTDATTR, + DTDVALID, + NOERROR, + NOWARNING, + PEDANTIC, + NOBLANKS, + SAX1, + XINCLUDE, + NONET, + NODICT, + NSCLEAN, + NOCDATA, + NOXINCNODE, + COMPACT, + } + + [CCode (cname = "xmlCharEncoding", cprefix = "XML_CHAR_ENCODING_", cheader_filename = "libxml/encoding.h", has_type_id = false)] + public enum CharEncoding { + ERROR, + NONE, + UTF8, + UTF16LE, + UTF16BE, + UCS4LE, + UCS4BE, + EBCDIC, + UCS4_2143, + UCS4_3412, + UCS2, + [CCode (cname = "XML_CHAR_ENCODING_8859_1")] + ISO_8859_1, + [CCode (cname = "XML_CHAR_ENCODING_8859_2")] + ISO_8859_2, + [CCode (cname = "XML_CHAR_ENCODING_8859_3")] + ISO_8859_3, + [CCode (cname = "XML_CHAR_ENCODING_8859_4")] + ISO_8859_4, + [CCode (cname = "XML_CHAR_ENCODING_8859_5")] + ISO_8859_5, + [CCode (cname = "XML_CHAR_ENCODING_8859_6")] + ISO_8859_6, + [CCode (cname = "XML_CHAR_ENCODING_8859_7")] + ISO_8859_7, + [CCode (cname = "XML_CHAR_ENCODING_8859_8")] + ISO_8859_8, + [CCode (cname = "XML_CHAR_ENCODING_8859_9")] + ISO_8859_9, + ISO_2022_JP, + SHIFT_JIS, + EUC_JP, + ASCII, + } + + /* tree - interfaces for tree manipulation */ + + [CCode (cheader_filename = "libxml/tree.h")] + namespace Tree { + [CCode (cname = "xmlGetCompressMode")] + public static int get_compress_mode (); + + [CCode (cname = "xmlIsXHTML")] + public static int is_xhtml (string system_id, string public_id); + + [CCode (cname = "xmlSetCompressMode")] + public static void set_compress_mode (int mode); + } + + [Compact] + [CCode (cname = "xmlAttr", free_function = "xmlFreeProp", cheader_filename = "libxml/tree.h")] + public class Attr { + public ElementType type; + public weak string name; + public Node* children; + public Node* last; + public Node* parent; + public Attr* next; + public Attr* prev; + public Doc* doc; + public Ns* ns; + public AttributeType atype; + + [CCode (cname = "xmlRemoveProp")] + public int remove(); + } + + [Compact] + [CCode (cname = "xmlAttribute", cheader_filename = "libxml/tree.h")] + public class Attribute { + public ElementType type; + public weak string name; + public Node* children; + public Node* last; + public Dtd* parent; + public Node* next; + public Node* prev; + public Doc* doc; + public Attribute* nexth; + public AttributeType atype; + public AttributeDefault def; + public weak string default_value; + public weak string prefix; + public weak string elem; + } + + [CCode (cname = "xmlAttributeDefault", cprefix = "XML_ATTRIBUTE_", cheader_filename = "libxml/tree.h", has_type_id = false)] + public enum AttributeDefault { + NONE, + REQUIRED, + IMPLIED, + FIXED + } + + [CCode (cname = "xmlAttributeType", cprefix = "XML_ATTRIBUTE_", cheader_filename = "libxml/tree.h", has_type_id = false)] + public enum AttributeType { + CDATA, + ID, + IDREF , + IDREFS, + ENTITY, + ENTITIES, + NMTOKEN, + NMTOKENS, + ENUMERATION, + NOTATION + } + + [Compact] + [CCode (cname = "xmlDoc", free_function = "xmlFreeDoc", cheader_filename = "libxml/tree.h,libxml/parser.h")] + public class Doc { + public ElementType type; + public string name; + public Node* children; + public Node* last; + public Node* parent; + public Node* next; + public Node* prev; + public Doc* doc; + public int compression; + public int standalone; + [CCode (cname = "intSubset")] + public Dtd* int_subset; + [CCode (cname = "extSubset")] + public Dtd* ext_subset; + [CCode (cname = "oldNs")] + public Ns* old_ns; + public weak string version; + public weak string encoding; + [CCode (cname = "URL")] + public weak string url; + public int charset; + + [CCode (cname = "xmlCopyDoc")] + public Doc* copy (int recursive); + + [CCode (cname = "xmlCreateIntSubset")] + public Dtd* create_int_subset (string name, string external_id, string system_id); + + [CCode (cname = "xmlDocDump", instance_pos = -1)] + public int dump (GLib.FileStream f); + + [CCode (cname = "xmlDocDumpFormatMemory")] + public void dump_memory_format (out string mem, out int len = null, bool format = true); + + [CCode (cname = "xmlDocDumpFormatMemoryEnc")] + public void dump_memory_enc_format (out string mem, out int len = null, string enc = "UTF-8", bool format = true); + + [CCode (cname = "xmlDocDumpMemory")] + public void dump_memory (out string mem, out int len = null); + + [CCode (cname = "xmlDocDumpMemoryEnc")] + public void dump_memory_enc (out string mem, out int len = null, string enc = "UTF-8"); + + [CCode (cname = "xmlDocFormatDump", instance_pos = 1.1)] + public int dump_format (GLib.FileStream f, bool format = true); + + [CCode (cname = "xmlDocGetRootElement")] + public Node* get_root_element(); + + [CCode (cname = "xmlDocSetRootElement")] + public Node* set_root_element(Node* root); + + [CCode (cname = "xmlElemDump", instance_pos = 1.1)] + public void elem_dump (GLib.FileStream f, Node* cur); + + [CCode (cname = "xmlGetDocCompressMode")] + public int get_compress_mode (); + + [CCode (cname = "xmlNewCDataBlock")] + public Node* new_cdata_block (string content, int len); + + [CCode (cname = "xmlNewCharRef")] + public Node* new_char_ref (string name); + + [CCode (cname = "xmlNewDoc")] + public Doc (string? version = null); + + [CCode (cname = "xmlNewDocComment")] + public Node* new_comment (string content); + + [CCode (cname = "xmlNewDocFragment")] + public Node* new_fragment (); + + [CCode (cname = "xmlNewDocNode")] + public Node* new_node (Ns* ns, string name, string? content = null); + + [CCode (cname = "xmlNewDocNodeEatName")] + public Node* new_node_eat_name (Ns* ns, owned string name, string? content = null); + + [CCode (cname = "xmlNewDocPI")] + public Node* new_pi (string name, string content); + + [CCode (cname = "xmlNewDocProp")] + public Attr* new_prop (string name, string value); + + [CCode (cname = "xmlNewDocRawNode")] + public Node* new_raw_node (Ns* ns, string name, string? content = null); + + [CCode (cname = "xmlNewDocText")] + public Node* new_text (string content); + + [CCode (cname = "xmlNewDocTextLen")] + public Node* new_text_len (string content, int len); + + [CCode (cname = "xmlNewReference")] + public Node* new_reference (string name); + + [CCode (cname = "xmlNodeListGetRawString")] + public string node_list_get_raw_string (Node* list, bool in_line); + + [CCode (cname = "xmlNodeListGetString")] + public string node_list_get_string (Node* list, bool in_line); + + [CCode (cname = "xmlSaveFile", instance_pos = -1)] + public int save_file (string filename); + + [CCode (cname = "xmlSaveFileEnc", instance_pos = 1.1)] + public void save_file_enc (string filename, string enc = "UTF-8"); + + [CCode (cname = "xmlSaveFormatFile", instance_pos = 1.1)] + public int save_format_file (string filename, int format); + + [CCode (cname = "xmlSaveFormatFileEnc", instance_pos = 1.1)] + public void save_format_file_enc (string filename, string enc = "UTf-8", bool format = true); + + [CCode (cname = "xmlSetDocCompressMode")] + public void set_compress_mode (int mode); + + [CCode (cname = "xmlStringGetNodeList")] + public Node* string_get_node_list (string str); + + [CCode (cname = "xmlStringLenGetNodeList")] + public Node* string_len_get_node_list (string str, int len); + } + + [Compact] + [CCode (cname = "xmlDtd", free_function="xmlFreeDtd", cheader_filename = "libxml/tree.h")] + public class Dtd { + public ElementType type; + public string name; + public Node* children; + public Node* last; + public Node* parent; + public Node* next; + public Node* prev; + public Doc* doc; + + public weak string external_id; + public weak string system_id; + + [CCode (cname = "xmlNewDtd")] + public Dtd (Doc* doc, string name, string external_id, string system_id); + + [CCode (cname = "xmlCopyDtd")] + public Dtd* copy(); + } + + [Compact] + [CCode (cname = "xmlElement", cheader_filename = "libxml/tree.h")] + public class Element { + public ElementType type; + public weak string name; + public Node* children; + public Node* last; + public Dtd* parent; + public Node* next; + public Node* prev; + public Doc* doc; + public Attribute* attributes; + public weak string prefix; + } + + [CCode (cname = "xmlElementType", cprefix = "XML_", cheader_filename = "libxml/tree.h", has_type_id = false)] + public enum ElementType { + ELEMENT_NODE, + ATTRIBUTE_NODE, + TEXT_NODE, + CDATA_SECTION_NODE, + ENTITY_REF_NODE, + ENTITY_NODE, + PI_NODE, + COMMENT_NODE, + DOCUMENT_NODE, + DOCUMENT_TYPE_NODE, + DOCUMENT_FRAG_NODE, + NOTATION_NODE, + HTML_DOCUMENT_NODE, + DTD_NODE, + ELEMENT_DECL, + ATTRIBUTE_DECL, + ENTITY_DECL, + NAMESPACE_DECL, + XINCLUDE_START, + XINCLUDE_END, + DOCB_DOCUMENT_NODE + } + + [Compact] + [CCode (cname = "xmlElementContent", free_function = "xmlFreeElementContent", cheader_filename = "libxml/tree.h")] + public class ElementContent { + [CCode (cname = "xmlNewElementContent")] + ElementContent (string name, ElementContentType type); + + public ElementContentType type; + public ElementContentOccur ocur; + public const string name; + public ElementContent c1; + public ElementContent c2; + public ElementContent parent; + public const string prefix; + } + + [CCode (cname = "xmlElementContentType", cprefix = "XML_ELEMENT_CONTENT_", cheader_filename = "libxml/tree.h", has_type_id = false)] + public enum ElementContentType { + PCDATA, + ELEMENT, + SEQ, + OR + } + + [CCode (cname = "xmlElementContentOccur", cprefix = "XML_ELEMENT_CONTENT_", cheader_filename = "libxml/tree.h", has_type_id = false)] + public enum ElementContentOccur { + ONCE, + OPT, + MULT, + PLUS + } + + [Compact] + [CCode (cname = "xmlEntity", cheader_filename = "libxml/tree.h")] + public struct Entity { + public void* private; + public ElementType type; + public const string name; + public Node* children; + public Node* last; + public Dtd* parent; + public Node* next; + public Node* prev; + public Doc* doc; + public string orig; + public string content; + public int length; + public EntityType etype; + [CCode (cname = "ExternalID")] + public const string external_id; + [CCode (cname = "SystemID")] + public const string system_id; + public Entity* nexte; + [CCode (cname = "URI")] + public const string uri; + public int owner; + public int checked; + } + + [CCode (cname = "xmlEntityType", cprefix = "XML_", cheader_filename = "libxml/tree.h", has_type_id = false)] + public enum EntityType { + INTERNAL_GENERAL_ENTITY, + EXTERNAL_GENERAL_PARSED_ENTITY, + EXTERNAL_GENERAL_UNPARSED_ENTITY, + INTERNAL_PARAMETER_ENTITY, + EXTERNAL_PARAMETER_ENTITY, + INTERNAL_PREDEFINED_ENTITY + } + + [Compact] + [CCode (cname = "xmlEnumeration", cheader_filename = "libxml/tree.h")] + public struct Enumeration { + public Enumeration* next; + public const string name; + } + + + [Compact] + [CCode (cname = "xmlNode", free_function = "xmlFreeNode", cheader_filename = "libxml/tree.h")] + public class Node { + public ElementType type; + public weak string name; + public Node* children; + public Node* last; + public Node* parent; + public Node* next; + public Node* prev; + public Doc* doc; + public Ns* ns; + public string content; + public Attr* properties; + [CCode (cname = "nsDef")] + public Ns* ns_def; + public ushort line; + public ushort extra; + + [CCode (cname = "xmlAddChild")] + public Node* add_child (Node* cur); + + [CCode (cname = "xmlAddChildList")] + public Node* add_child_list (Node* cur); + + [CCode (cname = "xmlAddNextSibling")] + public Node* add_next_sibling (Node* elem); + + [CCode (cname = "xmlAddPrevSibling")] + public Node* add_prev_sibling (Node* elem); + + [CCode (cname = "xmlAddSibling")] + public Node* add_sibling (Node* elem); + + [CCode (cname = "xmlCopyNode")] + public Node* copy (int extended); + + [CCode (cname = "xmlCopyNodeList")] + public Node copy_list(); + + [CCode (cname = "xmlDocCopyNode")] + public Node* doc_copy (Doc* doc, int extended); + + [CCode (cname = "xmlDocCopyNodeList")] + public Node* doc_copy_list (Doc* doc); + + [CCode (cname = "xmlFreeNodeList")] + public void free_list (); + + [CCode (cname = "xmlGetLastChild")] + public Node* get_last_child (); + + [CCode (cname = "xmlGetLineNo")] + public long get_line_no (); + + [CCode (cname = "xmlGetNoNsProp")] + public string? get_no_ns_prop (string name); + + [CCode (cname = "xmlGetNodePath")] + public string get_path (); + + [CCode (cname = "xmlGetNsProp")] + public string? get_ns_prop (string name, string ns); + + [CCode (cname = "xmlGetProp")] + public string? get_prop (string name); + + [CCode (cname = "xmlHasNsProp")] + public Attr* has_ns_prop (string name, string name_space); + + [CCode (cname = "xmlHasProp")] + public Attr* has_prop (string name); + + [CCode (cname = "xmlIsBlankNode")] + public int is_blank (); + + [CCode (cname = "xmlNewChild")] + public Node* new_child (Ns* ns, string name, string? content = null); + + [CCode (cname = "xmlNewNs")] + public Ns* new_ns (string href, string prefix); + + [CCode (cname = "xmlNewNsProp")] + public Attr* new_ns_prop (Ns* ns, string name, string value); + + [CCode (cname = "xmlNewProp")] + public Attr* new_prop (string name, string value); + + [CCode (cname = "xmlNewTextChild")] + public Node* new_text_child (Ns* ns, string name, string content); + + [CCode (cname = "xmlNodeAddContent")] + public void add_content (string content); + + [CCode (cname = "xmlNodeAddContentLen")] + public void add_content_len (string content, int len); + + [CCode (cname = "xmlNodeGetContent")] + public string get_content(); + + [CCode (cname = "xmlNodeGetLang")] + public string get_lang(); + + [CCode (cname = "xmlNodeGetSpacePreserve")] + public int get_space_preserve(); + + [CCode (cname = "xmlNodeIsText")] + public int is_text(); + + [CCode (cname = "xmlNodeSetContent")] + public void set_content (string content); + + [CCode (cname = "xmlNodeSetContentLen")] + public void set_content_len (string content, int len); + + [CCode (cname = "xmlNodeSetLang")] + public void set_lang (string val); + + [CCode (cname = "xmlNodeSetName")] + public void set_name (string name); + + [CCode (cname = "xmlNodeSetSpacePreserve")] + public void set_space_preserve (int val); + + [CCode (cname = "xmlReplaceNode")] + public Node* replace (Node* cur); + + [CCode (cname = "xmlNewComment")] + public Node.comment (string content); + + [CCode (cname = "xmlNewNode")] + public Node (Ns* ns, string name); + + [CCode (cname = "xmlNewNodeEatName")] + public Node.eat_name (Ns* ns, owned string name); + + [CCode (cname = "xmlNewText")] + public Node.text (string content); + + [CCode (cname = "xmlNewTextLen")] + public Node.text_len (string content, int len); + + [CCode (cname = "xmlNewPI")] + public Node.pi (string name, string content); + + [CCode (cname = "xmlSetListDoc")] + public void set_list_doc (Doc* doc); + + [CCode (cname = "xmlSetNsProp")] + public Attr* set_ns_prop (Ns* ns, string name, string value); + + [CCode (cname = "xmlSetProp")] + public Attr* set_prop (string name, string value); + + [CCode (cname = "xmlSetTreeDoc")] + public void set_tree_doc (Doc* doc); + + [CCode (cname = "xmlTextConcat")] + public int text_concat (string content, int len); + + [CCode (cname = "xmlTextMerge")] + public Node* text_merge (Node* second); + + [CCode (cname = "xmlUnlinkNode")] + public void unlink (); + + [CCode (cname = "xmlUnsetNsProp")] + public int unset_ns_prop (Ns* ns, string name); + + [CCode (cname = "xmlUnsetProp")] + public int unset_prop (string name); + + [CCode (cname = "xmlNextElementSibling")] + public Node* next_element_sibling (); + + [CCode (cname = "xmlFirstElementChild")] + public Node* first_element_child (); + + [CCode (cname = "xmlChildElementCount")] + public ulong child_element_count (); + } + + [Compact] + [CCode (cname = "xmlNs", free_function= "xmlFreeNs", cheader_filename = "libxml/tree.h")] + public class Ns { + [CCode (cname = "xmlNewNs")] + public Ns (Xml.Node* node, string href, string prefix); + public Ns* next; + public ElementType type; + public string href; + public string prefix; + public Doc* context; + } + + [Compact] + [CCode (cname = "xmlParserCtxt", free_function = "xmlFreeParserCtxt", cheader_filename = "libxml/parser.h")] + public class ParserCtxt { + public SAXHandler* sax; + [CCode (cname = "userData")] + public void* user_data; + + [CCode (cname = "xmlNewParserCtxt")] + public ParserCtxt (); + + [CCode (cname = "xmlCreatePushParserCtxt")] + public ParserCtxt.create_push (Xml.SAXHandler* sax, void* user_data, [CCode (array_length = false)] char[] data, int len, string? filename = null); + + [CCode (cname = "xmlCreateIOParserCtxt")] + public ParserCtxt.create_io (Xml.SAXHandler* sax, void* user_data, Xml.InputReadCallback ioread, Xml.InputCloseCallback ioclose, void* ioctx, string? encoding = null); + + [CCode (cname = "xmlCreateDocParserCtxt")] + public ParserCtxt.create_doc (string cur); + + [CCode (cname = "xmlParseChunk")] + public int parse_chunk ([CCode (array_length = false)] char[] data, int size, bool terminate); + + [CCode (cname = "xmlParseDocument")] + public int parse_document (); + + [CCode (cname = "xmlCtxtResetPush")] + public void reset_push ([CCode (array_length = false)] char[] data, int len, string? filename = null, string? encoding = null); + + [CCode (cname = "xmlCtxtReset")] + public void reset (); + + [CCode (cname = "xmlCtxtInit")] + public void init (); + + [CCode (cname = "xmlCtxtClear")] + public void clear (); + + [CCode (cname = "xmlCtxtUseOptions")] + public int use_options (int options); + + [CCode (cname = "xmlCtxtReadDoc")] + public Doc* read_doc (string cur, string url, string? encoding = null, int options = 0); + + [CCode (cname = "xmlCtxtReadFile")] + public Doc* read_file (string filename, string? encoding = null, int options = 0); + + [CCode (cname = "xmlCtxtReadMemory")] + public Doc* read_memory ([CCode (array_length = false)] char[] buffer, int size, string url, string? encoding = null, int options = 0); + + [CCode (cname = "xmlCtxtReadFd")] + public Doc* read_fd (int fd, string url, string? encoding = null, int options = 0); + + [CCode (cname = "xmlCtxtReadIO")] + public Doc* read_io (Xml.InputReadCallback ioread, Xml.InputCloseCallback ioclose, void* ioctx, string url, string? encoding = null, int options = 0); + } + + + /* uri - library of generic URI related routines */ + + [Compact] + [CCode (cname = "xmlURI", free_function = "xmlFreeURI", cheader_filename = "libxml/uri.h")] + public class URI { + [CCode (cname = "xmlBuildRelativeURI")] + public static string build_relative (string uri, string @base); + + [CCode (cname = "xmlBuildURI")] + public static string build (string URI, string @base); + + [CCode (cname = "xmlCanonicPath")] + public static string canonic_path (string path); + + [CCode (cname = "xmlCreateURI")] + public URI (); + + [CCode (cname = "xmlNormalizeURIPath")] + public static int normalize_uri_path (string path); + + [CCode (cname = "xmlParseURI")] + public static URI? parse (string str); + + [CCode (cname = "xmlParseURIRaw")] + public static URI? parse_raw (string str, bool raw); + + [CCode (cname = "xmlParseURIReference")] + public int parse_reference (string str); + + [CCode (cname = "xmlPathToURI")] + public static string path_to_uri (string path); + + [CCode (cname = "xmlPrintURI", instance_pos = -1)] + public void print (GLib.FileStream stream); + + [CCode (cname = "xmlSaveUri")] + public string save (); + + [CCode (cname = "xmlURIEscape")] + public static string escape (string str); + + [CCode (cname = "xmlURIEscapeStr")] + public static string escape_str (string str, string list); + + [CCode (cname = "xmlURIUnescapeString")] + public static string unescape_string (string str, int len, string? target); + + public string scheme; + public string opaque; + public string authority; + public string server; + public string user; + public int port; + public string path; + public string query; + public string fragment; + public int cleanup; + public string query_raw; + } + + + /* xmlIO - interface for the I/O interfaces used by the parser */ + + [CCode (has_target = false, cname = "xmlInputCloseCallback", cheader_filename = "libxml/xmlIO.h")] + public delegate int InputCloseCallback (void* context); + + [CCode (has_target = false, cname = "xmlInputReadCallback", cheader_filename = "libxml/xmlIO.h")] + public delegate int InputReadCallback (void* context, [CCode (array_length = false)] char[] buffer, int len); + + [CCode (has_target = false, cname = "xmlInputMatchCallback", cheader_filename = "libxml/xmlIO.h")] + public delegate int InputMatchCallback (string filename); + + [CCode (has_target = false, cname = "xmlInputOpenCallback", cheader_filename = "libxml/xmlIO.h")] + public delegate void* InputOpenCallback (string filename); + + [CCode (has_target = false, cname = "xmlOutputMatchCallback", cheader_filename = "libxml/xmlIO.h")] + public delegate int OutputMatchCallback (string filename); + + [CCode (has_target = false, cname = "xmlOutputOpenCallback", cheader_filename = "libxml/xmlIO.h")] + public delegate void* OutputOpenCallback (string filename); + + [CCode (has_target = false, cname = "xmlOutputWriteCallback", cheader_filename = "libxml/xmlIO.h")] + public delegate int OutputWriteCallback ([CCode (array_length = false)] char[] buffer, int len); + + [CCode (has_target = false, cname = "xmlOutputCloseCallback", cheader_filename = "libxml/xmlIO.h")] + public delegate int OutputCloseCallback (void * context); + + [CCode (cname = "xmlRegisterInputCallbacks", cheader_filename = "libxml/xmlIO.h")] + public int registerInputCallbacks (InputMatchCallback matchFunc, InputOpenCallback openFunc, InputReadCallback readFunc, InputCloseCallback closeFunc); + + [CCode (cname = "xmlRegisterOutputCallbacks", cheader_filename = "libxml/xmlIO.h")] + public int registerOutputCallbacks(OutputMatchCallback matchFunc, OutputOpenCallback openFunc, OutputWriteCallback writeFunc, OutputCloseCallback closeFunc); + + /* xmlschemas - incomplete XML Schemas structure implementation */ + + [Compact] + [CCode (cname = "xmlSchemaValidCtxt", cheader_filename = "libxml/xmlreader.h")] + public class SchemaValidCtxt { + } + + /* xmlsave */ + + [Compact] + [CCode (cname = "xmlSaveCtxt", free_function = "xmlSaveClose", cheader_filename = "libxml/xmlsave.h")] + public class SaveCtxt { + [CCode (cname = "xmlSaveToIO")] + public SaveCtxt.to_io (OutputWriteCallback iowrite, OutputCloseCallback ioclose, void * ioctx = null, string? encoding = null, int options = 0); + + [CCode (cname = "xmlSaveClose")] + public int close (); + [CCode (cname = "xmlSaveFlush")] + public int flush (); + [CCode (cname = "xmlSaveDoc")] + public int save_doc (Xml.Doc *doc); + [CCode (cname = "xmlSaveTree")] + public int save_tree (Xml.Node *node); + } + + /* xmlwriter - the XMLWriter implementation */ + + [Compact] + [CCode (cname = "xmlTextWriter", free_function = "xmlFreeTextWriter", cheader_filename = "libxml/xmlwriter.h")] + public class TextWriter { + [CCode (cname = "xmlNewTextWriterFilename")] + public TextWriter.filename (string uri, bool compression = false); + + [CCode (cname = "xmlNewTextWriterDoc")] + public TextWriter.doc (out Doc doc, bool compression = false); + + [CCode (cname = "xmlTextWriterFlush")] + public int flush (); + + [CCode (cname = "xmlTextWriterSetIndent")] + public int set_indent (bool indent); + + [CCode (cname = "xmlTextWriterSetIndentString")] + public int set_indent_string (string str); + + /* End */ + [CCode (cname = "xmlTextWriterEndCDATA")] + public int end_cdata (); + + [CCode (cname = "xmlTextWriterEndComment")] + public int end_comment (); + + [CCode (cname = "xmlTextWriterEndDocument")] + public int end_document (); + + [CCode (cname = "xmlTextWriterEndElement")] + public int end_element (); + + [CCode (cname = "xmlTextWriterEndAttribute")] + public int end_attribute (); + + /* Start */ + + [CCode (cname = "xmlTextWriterStartCDATA")] + public int start_cdata (); + + [CCode (cname = "xmlTextWriterStartComment")] + public int start_comment (); + + [CCode (cname = "xmlTextWriterStartDocument")] + public int start_document (string? version = null, string? encoding = null, string? standalone = null); + + [CCode (cname = "xmlTextWriterStartElement")] + public int start_element (string name); + + [CCode (cname = "xmlTextWriterStartElementNS")] + public int start_element_ns (string prefix, string name, string namespaceURI); + + [CCode (cname = "xmlTextWriterStartAttribute")] + public int start_attribute (string name); + + [CCode (cname = "xmlTextWriterStartAttributeNS")] + public int start_attribute_ns (string prefix, string name, string namespaceURI); + + /* write */ + + [CCode (cname = "xmlTextWriterWriteAttribute")] + public int write_attribute (string name, string content); + + [CCode (cname = "xmlTextWriterWriteAttributeNS")] + public int write_attribute_ns (string prefix, string name, string namespaceURI, string content); + + [CCode (cname = "xmlTextWriterWriteElement")] + public int write_element (string name, string content); + + [CCode (cname = "xmlTextWriterWriteElementNS")] + public int write_element_ns (string prefix, string name, string namespaceURI, string content); + + [CCode (cname = "xmlTextWriterWriteBase64")] + public int write_base64 (void* data, int start, int length); + + [CCode (cname = "xmlTextWriterWriteComment")] + public int write_comment (string content); + + [CCode (cname = "xmlTextWriterWriteString")] + public int write_string (string content); + + /* formatted */ + + [CCode (cname = "xmlTextWriterWriteFormatAttribute")] + public int format_attribute (string name, string format, ...); + + [CCode (cname = "xmlTextWriterWriteFormatAttributeNS")] + public int format_attribute_ns (string prefix, string name, string namespaceURI, string format, ...); + + [CCode (cname = "xmlTextWriterWriteFormatCDATA")] + public int format_cdata (string format, ...); + + [CCode (cname = "xmlTextWriterWriteFormatComment")] + public int format_comment (string format, ...); + + [CCode (cname = "xmlTextWriterWriteFormatElement")] + public int format_element (string name, string format, ...); + + [CCode (cname = "xmlTextWriterWriteFormatElementNS")] + public int format_element_ns (string prefix, string name, string namespaceURI, string format, ...); + + [CCode (cname = "xmlTextWriterWriteFormatString")] + public int format_string (string format, ...); + } + + /* xmlreader - the XMLReader implementation */ + + [CCode (cname = "xmlParserProperties", cprefix = "XML_PARSER_", cheader_filename = "libxml/xmlreader.h", has_type_id = false)] + public enum ParserProperties { + LOADDTD, + DEFAULTATTRS, + VALIDATE, + SUBST_ENTITIES + } + + [CCode (cname = "xmlParserSeverities", cprefix = "XML_PARSER_SEVERITY_", cheader_filename = "libxml/xmlreader.h", has_type_id = false)] + public enum ParserSeverities { + VALIDITY_WARNING, + VALIDITY_ERROR, + WARNING, + ERROR + } + + [CCode (cname = "xmlReaderTypes", cheader_filename = "libxml/xmlreader.h", has_type_id = false)] + public enum ReaderType { + NONE, + ELEMENT, + ATTRIBUTE, + TEXT, + CDATA, + ENTITY_REFERENCE, + ENTITY, + PROCESSING_INSTRUCTION, + COMMENT, + DOCUMENT, + DOCUMENT_TYPE, + DOCUMENT_FRAGMENT, + NOTATION, + WHITESPACE, + SIGNIFICANT_WHITESPACE, + END_ELEMENT, + END_ENTITY, + XML_DECLARATION + } + + [Compact] + [CCode (cname = "xmlTextReader", free_function = "xmlFreeTextReader", cheader_filename = "libxml/xmlreader.h")] + public class TextReader { + [CCode (cname = "xmlNewTextReaderFilename")] + public TextReader.filename (string uri); + + [CCode (cname = "xmlReaderForDoc")] + public TextReader.for_doc (string cur, string url, string? encoding = null, int options = 0); + + [CCode (cname = "xmlReaderForFd")] + public TextReader.for_fd (int fd, string url, string? encoding = null, int options = 0); + + [CCode (cname = "xmlReaderForFile")] + public TextReader.for_file (string filename, string? encoding = null, int options = 0); + + [CCode (cname = "xmlReaderForIO")] + public TextReader.for_io (InputReadCallback ioread, InputCloseCallback ioclose, void* ioctx, string url, string? encoding = null, int options = 0); + + [CCode (cname = "xmlReaderForMemory")] + public TextReader.for_memory ([CCode (array_length = false)] char[] buffer, int size, string url, string? encoding = null, int options = 0); + + [CCode (cname = "xmlReaderNewDoc")] + public int new_doc (string cur, string url, string? encoding = null, int options = 0); + + [CCode (cname = "xmlReaderNewFd")] + public int new_fd (int fd, string url, string? encoding = null, int options = 0); + + [CCode (cname = "xmlReaderNewFile")] + public int new_file (string filename, string? encoding = null, int options = 0); + + [CCode (cname = "xmlReaderNewIO")] + public int new_io (InputReadCallback ioread, InputCloseCallback ioclose, void* ioctx, string url, string? encoding = null, int options = 0); + + [CCode (cname = "xmlReaderNewMemory")] + public int new_memory ([CCode (array_length = false)] char[] buffer, int size, string url, string? encoding = null, int options = 0); + + [CCode (cname = "xmlReaderNewWalker")] + public int new_walker (Doc* doc); + + [CCode (cname = "xmlReaderWalker")] + public TextReader.walker (Doc* doc); + + [CCode (cname = "xmlTextReaderAttributeCount")] + public int attribute_count (); + + [CCode (cname = "xmlTextReaderBaseUri")] + public string base_uri (); + + [CCode (cname = "xmlTextReaderByteConsumed")] + public long byte_consumed (); + + [CCode (cname = "xmlTextReaderClose")] + public int close (); + + [CCode (cname = "xmlTextReaderConstBaseUri")] + public unowned string const_base_uri (); + + [CCode (cname = "xmlTextReaderConstEncoding")] + public unowned string const_encoding (); + + [CCode (cname = "xmlTextReaderConstLocalName")] + public unowned string const_local_name (); + + [CCode (cname = "xmlTextReaderConstName")] + public unowned string const_name (); + + [CCode (cname = "xmlTextReaderConstNamespaceUri")] + public unowned string const_namespace_uri (); + + [CCode (cname = "xmlTextReaderConstPrefix")] + public unowned string const_prefix (); + + [CCode (cname = "xmlTextReaderConstString")] + public unowned string const_string (string str); + + [CCode (cname = "xmlTextReaderConstValue")] + public unowned string const_value (); + + [CCode (cname = "xmlTextReaderConstXmlLang")] + public unowned string const_xml_lang (); + + [CCode (cname = "xmlTextReaderConstXmlVersion")] + public unowned string const_xml_version (); + + [CCode (cname = "xmlTextReaderCurrentDoc")] + public Doc* current_doc (); + + [CCode (cname = "xmlTextReaderCurrentNode")] + public Node* current_node (); + + [CCode (cname = "xmlTextReaderDepth")] + public int depth (); + + [CCode (cname = "xmlTextReaderExpand")] + public Node* expand (); + + [CCode (cname = "xmlTextReaderGetAttribute")] + public string get_attribute (string name); + + [CCode (cname = "xmlTextReaderGetAttributeNo")] + public string get_attribute_no (int no); + + [CCode (cname = "xmlTextReaderGetAttributeNs")] + public string get_attribute_ns (string local_name, string namespace_uri); + + [CCode (cname = "xmlTextReaderGetErrorHandler")] + public void get_error_handler (out TextReaderErrorFunc f, void** arg); + + [CCode (cname = "xmlTextReaderGetParserColumnNumber")] + public int get_parser_column_number (); + + [CCode (cname = "xmlTextReaderGetParserLineNumber")] + public int get_parser_line_number (); + + [CCode (cname = "xmlTextReaderGetParserProp")] + public int get_parser_prop (int prop); + + [CCode (cname = "xmlTextReaderHasAttributes")] + public int has_attributes (); + + [CCode (cname = "xmlTextReaderHasValue")] + public int has_value (); + + [CCode (cname = "xmlTextReaderIsDefault")] + public int is_default (); + + [CCode (cname = "xmlTextReaderIsEmptyElement")] + public int is_empty_element (); + + [CCode (cname = "xmlTextReaderIsNamespaceDecl")] + public int is_namespace_decl (); + + [CCode (cname = "xmlTextReaderIsValid")] + public int is_valid (); + + [CCode (cname = "xmlTextReaderLocalName")] + public string local_name (); + + [CCode (cname = "xmlTextReaderLookupNamespace")] + public string lookup_namespace (string prefix); + + [CCode (cname = "xmlTextReaderMoveToAttribute")] + public int move_to_attribute (string name); + + [CCode (cname = "xmlTextReaderMoveToAttributeNo")] + public int move_to_attribute_no (int no); + + [CCode (cname = "xmlTextReaderMoveToAttributeNs")] + public int move_to_attribute_ns (string local_name, string namespace_uri); + + [CCode (cname = "xmlTextReaderMoveToElement")] + public int move_to_element (); + + [CCode (cname = "xmlTextReaderMoveToFirstAttribute")] + public int move_to_first_attribute (); + + [CCode (cname = "xmlTextReaderMoveToNextAttribute")] + public int move_to_next_attribute (); + + [CCode (cname = "xmlTextReaderName")] + public string name (); + + [CCode (cname = "xmlTextReaderNamespaceUri")] + public string namespace_uri (); + + [CCode (cname = "xmlTextReaderNext")] + public int next (); + + [CCode (cname = "xmlTextReaderNextSibling")] + public int next_sibling (); + + [CCode (cname = "xmlTextReaderNodeType")] + public int node_type (); + + [CCode (cname = "xmlTextReaderNormalization")] + public int normalization (); + + [CCode (cname = "xmlTextReaderPrefix")] + public string prefix (); + + [CCode (cname = "xmlTextReaderPreserve")] + public Node* preserve (); + + [CCode (cname = "xmlTextReaderPreservePattern")] + public int preserve_pattern (string pattern, [CCode (array_length = false)] string[] namespaces); + + [CCode (cname = "xmlTextReaderQuoteChar")] + public int quote_char (); + + [CCode (cname = "xmlTextReaderRead")] + public int read (); + + [CCode (cname = "xmlTextReaderReadAttributeValue")] + public int read_attribute_value (); + + [CCode (cname = "xmlTextReaderReadInnerXml")] + public string read_inner_xml (); + + [CCode (cname = "xmlTextReaderReadOuterXml")] + public string read_outer_xml (); + + [CCode (cname = "xmlTextReaderReadState")] + public int read_state (); + + [CCode (cname = "xmlTextReaderReadString")] + public string read_string (); + + [CCode (cname = "xmlTextReaderSchemaValidate")] + public int schema_validate (string xsd); + + [CCode (cname = "xmlTextReaderSchemaValidateCtxt")] + public int schema_validate_ctxt (SchemaValidCtxt* ctxt, int options); + + [CCode (cname = "xmlTextReaderSetErrorHandler")] + public void set_error_handler (TextReaderErrorFunc f, void* arg); + + [CCode (cname = "xmlTextReaderSetParserProp")] + public int set_parser_prop (SchemaValidCtxt* ctxt, int options); + + [CCode (cname = "xmlTextReaderStandalone")] + public int standalone (); + + [CCode (cname = "xmlTextReaderValue")] + public string value (); + + [CCode (cname = "xmlTextReaderXmlLang")] + public string xml_lang (); + } + + [Compact] + [CCode (cname = "void", cheader_filename = "libxml/xmlreader.h")] + public class TextReaderLocator { + } + + [CCode (cname = "xmlTextReaderMode", cprefix = "XML_TEXTREADER_MODE_", cheader_filename = "libxml/xmlreader.h", has_type_id = false)] + public enum TextReaderMode { + INITIAL, + INTERACTIVE, + ERROR, + EOF, + CLOSED, + READING + } + + [CCode (has_target = false)] + public delegate void TextReaderErrorFunc (void* arg, string msg, ParserSeverities severity, TextReaderLocator* locator); + + + /* xpath - XML Path Language implementation */ + + [CCode (cheader_filename = "libxml/xpath.h")] + namespace XPath { + [CCode (cname = "xmlXPathOrderDocElems")] + public static long order_doc_elements (Doc* doc); + + [Compact] + [CCode (cname = "xmlNodeSet", free_function="xmlXPathFreeNodeSet", cheader_filename = "libxml/xpath.h")] + public class NodeSet { + [CCode (cname = "xmlXPathNodeSetGetLength")] + public int length (); + + [CCode (cname = "xmlXPathNodeSetIsEmpty")] + public bool is_empty (); + + [CCode (cname = "xmlXPathNodeSetItem")] + public Node* item (int index); + } + + [Compact] + [CCode (cname = "xmlXPathContext", free_function = "xmlXPathFreeContext", cheader_filename = "libxml/xpath.h")] + public class Context { + public Doc* doc; + public Node* node; + + [CCode (cname = "xmlXPathContextSetCache")] + public int set_cache (int active, int value, int options); + + [CCode (cname = "xmlXPathEval", instance_pos = -1)] + public Object* eval (string str); + + [CCode (cname = "xmlXPathEvalExpression", instance_pos = -1)] + public Object* eval_expression (string str); + + [CCode (cname = "xmlXPathRegisterNs")] + public int register_ns (string prefix, string ns_uri); + + [CCode (cname = "xmlXPathNewContext")] + public Context (Doc* doc); + } + + [CCode (cname = "xmlXPathError", cprefix = "XPATH_", cheader_filename = "libxml/xpath.h", has_type_id = false)] + public enum Error { + EXPRESSION_OK, + NUMBER_ERROR, + UNFINISHED_LITERAL_ERROR, + START_LITERAL_ERROR, + VARIABLE_REF_ERROR, + UNDEF_VARIABLE_ERROR, + INVALID_PREDICATE_ERROR, + EXPR_ERROR, + UNCLOSED_ERROR, + UNKNOWN_FUNC_ERROR, + INVALID_OPERAND, + INVALID_TYPE, + INVALID_ARITY, + INVALID_CTXT_SIZE, + INVALID_CTXT_POSITION, + MEMORY_ERROR, + [CCode (cname = "XPTR_SYNTAX_ERROR")] + XPTR_SYNTAX_ERROR, + [CCode (cname = "XPTR_RESOURCE_ERROR")] + XPTR_RESOURCE_ERROR, + [CCode (cname = "XPTR_SUB_RESOURCE_ERROR")] + XPTR_SUB_RESOURCE_ERROR, + UNDEF_PREFIX_ERROR, + ENCODING_ERROR, + INVALID_CHAR_ERROR, + INVALID_CTXT + } + + [Compact] + [CCode (cname = "xmlXPathObject", free_function="xmlXPathFreeObject", cheader_filename = "libxml/xpath.h")] + public class Object { + public ObjectType type; + public NodeSet* nodesetval; + public int boolval; + public double floatval; + public string stringval; + public void* user; + public int index; + public void* user2; + public int index2; + } + + [CCode (cname = "xmlXPathObjectType", cprefix = "XPATH_", cheader_filename = "libxml/xpath.h", has_type_id = false)] + public enum ObjectType { + UNDEFINED, + NODESET, + BOOLEAN, + NUMBER, + STRING, + POINT, + RANGE, + LOCATIONSET, + USERS, + XSLT_TREE + } + } + + /* SAX CALLBACKS */ + + [CCode (cname = "attributeDeclSAXFunc", has_target = false)] + public delegate void attributeDeclSAXFunc (void* ctx, string elem, string fullname, int type, int def, string defaultValue, Enumeration* tree); + + [CCode (cname = "attributeSAXFunc", has_target = false)] + public delegate void attributeSAXFunc (void* ctx, string name, string value); + + [CCode (cname = "cdataBlockSAXFunc", has_target = false)] + public delegate void cdataBlockSAXFunc (void* ctx, string value, int len); + + [CCode (cname = "charactersSAXFunc", has_target = false)] + public delegate void charactersSAXFunc (void* ctx, string ch, int len); + + [CCode (cname = "commentsSAXFunc", has_target = false)] + public delegate void commentSAXFunc (void* ctx, string value); + + [CCode (cname = "elementDeclSAXFunc", has_target = false)] + public delegate void elementDeclSAXFunc (void* ctx, string name, int type, ElementContent content); + + [CCode (cname = "endDocumentSAXFunc", has_target = false)] + public delegate void endDocumentSAXFunc (void* ctx); + + [CCode (cname = "endElementNsSAX2Func", has_target = false)] + public delegate void endElementNsSAX2Func (void* ctx, string localname, string prefix, string URI); + + [CCode (cname = "endElementSAXFunc", has_target = false)] + public delegate void endElementSAXFunc (void* ctx, string name); + + [CCode (cname = "entityDeclSAXFunc", has_target = false)] + public delegate void entityDeclSAXFunc (void* ctx, string name, int type, string publicId, string systemId, string content); + + [CCode (cname = "errorSAXFunc", has_target = false)] + public delegate void errorSAXFunc (void* ctx, string msg, ...); + + [CCode (cname = "externalSubsetSAXFunc", has_target = false)] + public delegate void externalSubsetSAXFunc (void* ctx, string name, string ExternalID, string SystemID); + + [CCode (cname = "fatalErrorSAXFunc", has_target = false)] + public delegate void fatalErrorSAXFunc (void* ctx, string msg, ...); + + [CCode (cname = "getEntitySAXFunc", has_target = false)] + public delegate Entity* getEntitySAXFunc (void* ctx, string name); + + [CCode (cname = "getParameterEntitySAXFunc", has_target = false)] + public delegate Entity* getParameterEntitySAXFunc (void* ctx, string name); + + [CCode (cname = "hasExternalSubsetSAXFunc", has_target = false)] + public delegate int hasExternalSubsetSAXFunc (void* ctx); + + [CCode (cname = "hasInternalSubsetSAXFunc", has_target = false)] + public delegate int hasInternalSubsetSAXFunc (void* ctx); + + [CCode (cname = "ignorableWhitespaceSAXFunc", has_target = false)] + public delegate void ignorableWhitespaceSAXFunc (void* ctx, string ch, int len); + + [CCode (cname = "internalSubsetSAXFunc", has_target = false)] + public delegate void internalSubsetSAXFunc (void* ctx, string name, string ExternalID, string SystemID); + + [CCode (cname = "isStandaloneSAXFunc", has_target = false)] + public delegate int isStandaloneSAXFunc (void* ctx); + + [CCode (cname = "notationDeclSAXFunc", has_target = false)] + public delegate void notationDeclSAXFunc (void* ctx, string name, string publicId, string systemId); + + [CCode (cname = "processingInstructionSAXFunc", has_target = false)] + public delegate void processingInstructionSAXFunc (void* ctx, string target, string data); + + [CCode (cname = "referenceSAXFunc", has_target = false)] + public delegate void referenceSAXFunc (void* ctx, string name); + + // [CCode (cname = "resolveEntitySAXFunc", has_target = false)] + // public delegate ParserInput resolveEntitySAXFunc (void* ctx, string publicId, string systemId); + + // [CCode (cname = "setDocumentLocatorSAXFunc", has_target = false)] + // public delegate void setDocumentLocatorSAXFunc (void* ctx, SAXLocator loc); + + [CCode (cname = "startDocumentSAXFunc", has_target = false)] + public delegate void startDocumentSAXFunc (void* ctx); + + [CCode (cname = "startElementNsSAX2Func", has_target = false)] + public delegate void startElementNsSAX2Func (void* ctx, string localname, string prefix, string URI, int nb_namespaces, [CCode (array_length = false, array_null_terminated = true)] string[] namespaces, int nb_attributes, int nb_defaulted, [CCode (array_length = false)] string[] attributes); + + [CCode (cname = "startElementSAXFunc", has_target = false)] + public delegate void startElementSAXFunc (void* ctx, string name, [CCode (array_length = false, array_null_terminated = true)] string[] atts); + + [CCode (cname = "unparsedEntityDeclSAXFunc", has_target = false)] + public delegate void unparsedEntityDeclSAXFunc (void* ctx, string name, string publicId, string systemId, string notationName); + + [CCode (cname = "warningSAXFunc", has_target = false)] + public delegate void warningSAXFunc (void* ctx, string msg, ...); + + [CCode (cname ="xmlStructuredErrorFunc", has_target = false)] + public delegate void xmlStructuredErrorFunc (void* ctx, Error* error); + + [Compact] + [CCode (cname = "xmlSAXHandler", cheader_filename = "libxml/parser.h")] + public struct SAXHandler { + [CCode (cname = "internalSubset")] + public internalSubsetSAXFunc internalSubset; + [CCode (cname = "isStandalone")] + public isStandaloneSAXFunc is_standalone; + [CCode (cname = "hasInternalSubset")] + public hasInternalSubsetSAXFunc hasInternalSubset; + [CCode (cname = "hasExternalSubset")] + public hasExternalSubsetSAXFunc hasExternalSubset; + // public resolveEntitySAXFunc resolveEntity; + [CCode (cname = "getEntity")] + public getEntitySAXFunc getEntity; + [CCode (cname = "entityDecl")] + public entityDeclSAXFunc entityDecl; + [CCode (cname = "notationDecl")] + public notationDeclSAXFunc notationDecl; + [CCode (cname = "attributeDecl")] + public attributeDeclSAXFunc attributeDecl; + [CCode (cname = "elementDecl")] + public elementDeclSAXFunc elementDecl; + [CCode (cname = "unparsedEntityDecl")] + public unparsedEntityDeclSAXFunc unparsedEntityDecl; + // public setDocumentLocatorSAXFunc setDocumentLocator; + [CCode (cname = "startDocument")] + public startDocumentSAXFunc startDocument; + [CCode (cname = "endDocument")] + public endDocumentSAXFunc endDocument; + [CCode (cname = "startElement")] + public startElementSAXFunc startElement; + [CCode (cname = "endElement")] + public endElementSAXFunc endElement; + public referenceSAXFunc reference; + public charactersSAXFunc characters; + [CCode (cname = "ignorableWhitespace")] + public ignorableWhitespaceSAXFunc ignorableWhitespace; + [CCode (cname = "processingInstruction")] + public processingInstructionSAXFunc processingInstruction; + public commentSAXFunc comment; + public warningSAXFunc warning; + public errorSAXFunc error; + [CCode (cname = "fatalError")] + public fatalErrorSAXFunc fatalError; + [CCode (cname = "getParameterEntity")] + public getParameterEntitySAXFunc getParameterEntity; + [CCode (cname = "cdataBlock")] + public cdataBlockSAXFunc cdataBlock; + [CCode (cname = "externalSubset")] + public externalSubsetSAXFunc externalSubset; + public uint initialized; + [CCode (cname = "startElementNs")] + public startElementNsSAX2Func startElementNs; + [CCode (cname = "endElementNs")] + public endElementNsSAX2Func endElementNs; + public xmlStructuredErrorFunc serror; + + [CCode (cname = "xmlSAXUserParseMemory")] + public int user_parse_memory (void* user_data, string buffer, int size); + [CCode (cname = "xmlSAXUserParseFile")] + public int user_parse_file (void* user_data, string filename); + } + + + /* xmlerror - error handling */ + + [Compact] + [CCode (cname = "xmlError", cheader_filename = "libxml/xmlerror.h")] + public struct Error { + public int domain; + public int code; + public string message; + public ErrorLevel level; + public string file; + public int line; + public string str1; + public string str2; + public string str3; + public int int1; + public int int2; + public void* ctx; + public void* node; + } + + [CCode (cname = "xmlErrorLevel", cprefix = "XML_ERR_", cheader_filename = "libxml/xmlerror.h", has_type_id = false)] + public enum ErrorLevel { + NONE = 0, + WARNING = 1, + ERROR = 2, + FATAL = 3 + } + +} + +namespace Html { + [CCode (cname = "htmlIsBooleanAttr", cheader_filename = "libxml/HTMLtree.h")] + public static int is_boolean_attr (string name); + + [CCode (cname = "UTF8ToHtml", cheader_filename = "libxml/HTMLparser.h")] + public static int utf8_to_html ([CCode (array_length = false)] char[] outdata, out int outlen, [CCode (array_length = false)] char[] indata, out int inlen); + + [CCode (cname = "htmlEncodeEntities", cheader_filename = "libxml/HTMLparser.h")] + public static int encode_entities ([CCode (array_length = false)] char[] outdata, out int outlen, [CCode (array_length = false)] char[] indata, out int inlen, char quote_char = '\0'); + + [CCode (cname = "htmlIsScriptAttribute", cheader_filename = "libxml/HTMLparser.h")] + public static bool is_script_attribute (string name); + + [CCode (cname = "htmlHandleOmittedElem", cheader_filename = "libxml/HTMLparser.h")] + public static bool handle_omitted_elem (bool val); + + [CCode (cname = "htmlParserOption", cprefix = "HTML_PARSE_", cheader_filename = "libxml/HTMLparser.h", has_type_id = false)] + public enum ParserOption { + RECOVER, + NOERROR, + NOWARNING, + PEDANTIC, + NOBLANKS, + NONET, + COMPACT, + } + + [CCode (cname = "htmlStatus", cprefix = "HTML_", cheader_filename = "libxml/HTMLparser.h", has_type_id = false)] + public enum Status { + NA, + INVALID, + DEPRECATED, + VALID, + REQUIRED, + } + + [Compact] + [CCode (cname = "xmlNode", cheader_filename = "libxml/HTMLparser.h")] + public class Node : Xml.Node { + [CCode (cname = "htmlNodeStatus")] + public Status status (bool legacy); + } + + [Compact] + [CCode (cname = "xmlDoc", cheader_filename = "libxml/HTMLtree.h,libxml/HTMLparser.h")] + public class Doc : Xml.Doc { + [CCode (cname = "htmlNewDoc")] + public Doc (string? uri = null, string? external_id = null); + + [CCode (cname = "htmlNewNoDtD")] + public Doc.new_no_dtd (string? uri = null, string? external_id = null); + + [CCode (cname = "htmlSAXParseDoc")] + public static Doc* sax_parse_doc (string cur, string? encoding, Xml.SAXHandler* sax, void* user_data = null); + + [CCode (cname = "htmlSAXParseFile")] + public static Doc* sax_parse_file (string filename, string? encoding, Xml.SAXHandler* sax, void* user_data = null); + + [CCode (cname = "htmlParseFile")] + public static Doc* parse_file (string filename, string? encoding); + + [CCode (cname = "htmlReadDoc")] + public static Doc* read_doc (string cur, string url, string? encoding = null, int options = 0); + + [CCode (cname = "htmlReadMemory")] + public static Doc* read_memory ([CCode (array_length = false)] char[] buffer, int size, string url, string? encoding = null, int options = 0); + + [CCode (cname = "htmlReadFd")] + public static Doc* read_fd (int fd, string url, string? encoding = null, int options = 0); + + [CCode (cname = "htmlReadIO")] + public static Doc* read_io (Xml.InputReadCallback ioread, Xml.InputCloseCallback ioclose, void* ioctx, string url, string? encoding = null, int options = 0); + + [CCode (cname = "htmlGetMetaEncoding")] + public string get_meta_encoding (); + + [CCode (cname = "htmlSetMetaEncoding")] + public int set_meta_encoding (string encoding); + + [CCode (cname = "htmlDocDumpMemory")] + public void dump_memory (out string mem, out int len = null); + + [CCode (cname = "htmlDocDumpMemoryFormat")] + public void dump_memory_format (out string mem, out int len = null, bool format = true); + + [CCode (cname = "htmlDocDump", instance_pos = -1)] + public int dump (GLib.FileStream f); + + [CCode (cname = "htmlSaveFile", instance_pos = -1)] + public int save_file (string filename); + + [CCode (cname = "htmlNodeDumpFile", instance_pos = 1.1)] + public int node_dump_file (GLib.FileStream file, Xml.Node* node); + + [CCode (cname = "htmlNodeDumpFileFormat", instance_pos = 1.1)] + public int node_dump_file_format (GLib.FileStream file, string enc = "UTF-8", bool format = true); + + [CCode (cname = "htmlSaveFileEnc", instance_pos = 1.1)] + public int save_file_enc (string filename, string enc = "UTF-8"); + + [CCode (cname = "htmlSaveFileFormat", instance_pos = 1.1)] + public int save_file_format (string filename, string enc = "UTF-8", bool format = true); + + [CCode (cname = "htmlIsAutoClosed")] + public bool is_auto_closed (Node* elem); + + [CCode (cname = "htmlAutoCloseTag")] + public bool auto_close_tag (string name, Node* elem); + } + + [Compact] + [CCode (cname = "htmlElemDesc", cheader_filename = "libxml/HTMLparser.h")] + public class ElemDesc { + public weak string name; + [CCode (cname = "startTag")] + public bool start_tag; + [CCode (cname = "endTag")] + public bool end_tag; + [CCode (cname = "saveEndTag")] + public bool save_end_tag; + public bool empty; + public bool depr; + public char dtd; + public bool isinline; + public weak string desc; + public weak string[] subelts; + public weak string defaultsubelt; + public weak string[] attrs_opt; + public weak string[] attrs_depr; + public weak string[] attrs_req; + + [CCode (cname = "htmlTagLookup")] + public static ElemDesc* tag_lookup (string tag); + + [CCode (cname = "htmlAttrAllowed")] + public Status attr_allowed (string attr, bool legacy); + + [CCode (cname = "htmlElementAllowedHere")] + public bool allowed_here (string elt); + + [CCode (cname = "htmlElementAllowedHereDesc")] + public bool allowed_here_desc (ElemDesc* child); + + [CCode (cname = "htmlElementStatusHere")] + public Status status_here (ElemDesc* child); + + [Ccode (cname = "htmlDefaultSubelement")] + public unowned string default_subelement (); + + [Ccode (cname = "htmlRequiredAttrs")] + public unowned string[] required_attrs (); + } + + [Compact] + [CCode (cname = "htmlEntityDesc", cheader_filename = "libxml/HTMLParser.h")] + public class EntityDesc + { + public uint value; + public weak string name; + public weak string desc; + + [CCode (cname = "htmlEntityDesc")] + public static EntityDesc* lookup (string name); + + [CCode (cname = "htmlEntityValueDesc")] + public static EntityDesc* value_lookup (uint value); + } + + [Compact] + [CCode (cname = "htmlParserCtxt", free_function = "htmlFreeParserCtxt", cheader_filename = "libxml/HTMLparser.h")] + public class ParserCtxt : Xml.ParserCtxt { + [CCode (cname = "htmlNewParserCtxt")] + public ParserCtxt (); + + [CCode (cname = "htmlCreateMemoryParserCtxt")] + public ParserCtxt.create_memory ([CCode (array_length = false)] char[] buffer, int size); + + [CCode (cname = "htmlCreatePushParserCtxt")] + public ParserCtxt.create_push (Xml.SAXHandler* sax, void* user_data, [CCode (array_length = false)] char[] data, int len, string? filename = null, Xml.CharEncoding enc = Xml.CharEncoding.NONE); + + [CCode (cname = "htmlParseChunk")] + public int parse_chunk ([CCode (array_length = false)] char[] data, int size, bool terminate); + + [CCode (cname = "htmlParseEntityRef")] + public EntityDesc* parse_entity_ref (out string entity_name); + + [CCode (cname = "htmlParseCharRef")] + public int parse_char_ref (); + + [CCode (cname = "htmlParseElement")] + public void parse_element (); + + [CCode (cname = "htmlParseDocument")] + public int parse_document (); + + [CCode (cname = "htmlCtxtReset")] + public void reset (); + + [CCode (cname = "htmlCtxtUseOptions")] + public int use_options (int options); + + [CCode (cname = "htmlCtxtReadDoc")] + public Doc* read_doc (string cur, string url, string? encoding = null, int options = 0); + + [CCode (cname = "htmlCtxtReadFile")] + public Doc* read_file (string filename, string? encoding = null, int options = 0); + + [CCode (cname = "htmlCtxtReadMemory")] + public Doc* read_memory ([CCode (array_length = false)] char[] buffer, int size, string url, string? encoding = null, int options = 0); + + [CCode (cname = "htmlCtxtReadFd")] + public Doc* read_fd (int fd, string url, string? encoding = null, int options = 0); + + [CCode (cname = "htmlCtxtReadIO")] + public Doc* read_io (Xml.InputReadCallback ioread, Xml.InputCloseCallback ioclose, void* ioctx, string url, string? encoding = null, int options = 0); + } +} |