#![allow(non_upper_case_globals)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(dead_code)]
#![allow(improper_ctypes)]
#![allow(missing_docs)]

/*
 * helper var until we figure out well-formedness checks
 */

pub static mut HACKY_WELL_FORMED: bool = false;

/* automatically generated by rust-bindgen */

pub const LIBXML_DOTTED_VERSION: &[u8; 6usize] = b"2.9.4\0";
pub const LIBXML_VERSION: u32 = 20_904;
pub const LIBXML_VERSION_STRING: &[u8; 6usize] = b"20904\0";
pub const LIBXML_VERSION_EXTRA: &[u8; 1usize] = b"\0";
pub const LIBXML_MODULE_EXTENSION: &[u8; 4usize] = b".so\0";
pub const __GNUC_VA_LIST: u32 = 1;
pub const _STDIO_H: u32 = 1;
pub const _FEATURES_H: u32 = 1;
pub const _DEFAULT_SOURCE: u32 = 1;
pub const __USE_ISOC11: u32 = 1;
pub const __USE_ISOC99: u32 = 1;
pub const __USE_ISOC95: u32 = 1;
pub const __USE_POSIX_IMPLICITLY: u32 = 1;
pub const _POSIX_SOURCE: u32 = 1;
pub const _POSIX_C_SOURCE: u32 = 200_809;
pub const __USE_POSIX: u32 = 1;
pub const __USE_POSIX2: u32 = 1;
pub const __USE_POSIX199309: u32 = 1;
pub const __USE_POSIX199506: u32 = 1;
pub const __USE_XOPEN2K: u32 = 1;
pub const __USE_XOPEN2K8: u32 = 1;
pub const _ATFILE_SOURCE: u32 = 1;
pub const __USE_MISC: u32 = 1;
pub const __USE_ATFILE: u32 = 1;
pub const __USE_FORTIFY_LEVEL: u32 = 0;
pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0;
pub const _STDC_PREDEF_H: u32 = 1;
pub const __STDC_IEC_559__: u32 = 1;
pub const __STDC_IEC_559_COMPLEX__: u32 = 1;
pub const __STDC_ISO_10_646__: u32 = 201_706;
pub const __STDC_NO_THREADS__: u32 = 1;
pub const __GNU_LIBRARY__: u32 = 6;
pub const __GLIBC__: u32 = 2;
pub const __GLIBC_MINOR__: u32 = 27;
pub const _SYS_CDEFS_H: u32 = 1;
pub const __glibc_c99_flexarr_available: u32 = 1;
pub const __WORDSIZE: u32 = 64;
pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1;
pub const __SYSCALL_WORDSIZE: u32 = 64;
pub const __HAVE_GENERIC_SELECTION: u32 = 1;
pub const __GLIBC_USE_LIB_EXT2: u32 = 0;
pub const __GLIBC_USE_IEC_60_559_BFP_EXT: u32 = 0;
pub const __GLIBC_USE_IEC_60_559_FUNCS_EXT: u32 = 0;
pub const __GLIBC_USE_IEC_60_559_TYPES_EXT: u32 = 0;
pub const _BITS_TYPES_H: u32 = 1;
pub const _BITS_TYPESIZES_H: u32 = 1;
pub const __OFF_T_MATCHES_OFF64_T: u32 = 1;
pub const __INO_T_MATCHES_INO64_T: u32 = 1;
pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1;
pub const __FD_SETSIZE: u32 = 1_024;
pub const ____FILE_defined: u32 = 1;
pub const __FILE_defined: u32 = 1;
pub const _BITS_LIBIO_H: u32 = 1;
pub const _BITS_G_CONFIG_H: u32 = 1;
pub const ____mbstate_t_defined: u32 = 1;
pub const _G_HAVE_MMAP: u32 = 1;
pub const _G_HAVE_MREMAP: u32 = 1;
pub const _G_IO_IO_FILE_VERSION: u32 = 131_073;
pub const _G_BUFSIZ: u32 = 8_192;
pub const _IO_BUFSIZ: u32 = 8_192;
pub const _IO_UNIFIED_JUMPTABLES: u32 = 1;
pub const EOF: i32 = -1;
pub const _IOS_INPUT: u32 = 1;
pub const _IOS_OUTPUT: u32 = 2;
pub const _IOS_ATEND: u32 = 4;
pub const _IOS_APPEND: u32 = 8;
pub const _IOS_TRUNC: u32 = 16;
pub const _IOS_NOCREATE: u32 = 32;
pub const _IOS_NOREPLACE: u32 = 64;
pub const _IOS_BIN: u32 = 128;
pub const _IO_MAGIC: u32 = 4_222_418_944;
pub const _OLD_STDIO_MAGIC: u32 = 4_206_624_768;
pub const _IO_MAGIC_MASK: u32 = 4_294_901_760;
pub const _IO_USER_BUF: u32 = 1;
pub const _IO_UNBUFFERED: u32 = 2;
pub const _IO_NO_READS: u32 = 4;
pub const _IO_NO_WRITES: u32 = 8;
pub const _IO_EOF_SEEN: u32 = 16;
pub const _IO_ERR_SEEN: u32 = 32;
pub const _IO_DELETE_DONT_CLOSE: u32 = 64;
pub const _IO_LINKED: u32 = 128;
pub const _IO_IN_BACKUP: u32 = 256;
pub const _IO_LINE_BUF: u32 = 512;
pub const _IO_TIED_PUT_GET: u32 = 1_024;
pub const _IO_CURRENTLY_PUTTING: u32 = 2_048;
pub const _IO_IS_APPENDING: u32 = 4_096;
pub const _IO_IS_FILEBUF: u32 = 8_192;
pub const _IO_BAD_SEEN: u32 = 16_384;
pub const _IO_USER_LOCK: u32 = 32_768;
pub const _IO_FLAGS2_MMAP: u32 = 1;
pub const _IO_FLAGS2_NOTCANCEL: u32 = 2;
pub const _IO_FLAGS2_USER_WBUF: u32 = 8;
pub const _IO_SKIPWS: u32 = 1;
pub const _IO_LEFT: u32 = 2;
pub const _IO_RIGHT: u32 = 4;
pub const _IO_INTERNAL: u32 = 8;
pub const _IO_DEC: u32 = 16;
pub const _IO_OCT: u32 = 32;
pub const _IO_HEX: u32 = 64;
pub const _IO_SHOWBASE: u32 = 128;
pub const _IO_SHOWPOINT: u32 = 256;
pub const _IO_UPPERCASE: u32 = 512;
pub const _IO_SHOWPOS: u32 = 1_024;
pub const _IO_SCIENTIFIC: u32 = 2_048;
pub const _IO_FIXED: u32 = 4_096;
pub const _IO_UNITBUF: u32 = 8_192;
pub const _IO_STDIO: u32 = 16_384;
pub const _IO_DONT_CLOSE: u32 = 32_768;
pub const _IO_BOOLALPHA: u32 = 65_536;
pub const _IOFBF: u32 = 0;
pub const _IOLBF: u32 = 1;
pub const _IONBF: u32 = 2;
pub const BUFSIZ: u32 = 8_192;
pub const SEEK_SET: u32 = 0;
pub const SEEK_CUR: u32 = 1;
pub const SEEK_END: u32 = 2;
pub const P_tmpdir: &[u8; 5usize] = b"/tmp\0";
pub const _BITS_STDIO_LIM_H: u32 = 1;
pub const L_tmpnam: u32 = 20;
pub const TMP_MAX: u32 = 238_328;
pub const FILENAME_MAX: u32 = 4_096;
pub const L_ctermid: u32 = 9;
pub const FOPEN_MAX: u32 = 16;
pub const _LIBC_LIMITS_H_: u32 = 1;
pub const MB_LEN_MAX: u32 = 16;
pub const _BITS_POSIX1_LIM_H: u32 = 1;
pub const _POSIX_AIO_LISTIO_MAX: u32 = 2;
pub const _POSIX_AIO_MAX: u32 = 1;
pub const _POSIX_ARG_MAX: u32 = 4_096;
pub const _POSIX_CHILD_MAX: u32 = 25;
pub const _POSIX_DELAYTIMER_MAX: u32 = 32;
pub const _POSIX_HOST_NAME_MAX: u32 = 255;
pub const _POSIX_LINK_MAX: u32 = 8;
pub const _POSIX_LOGIN_NAME_MAX: u32 = 9;
pub const _POSIX_MAX_CANON: u32 = 255;
pub const _POSIX_MAX_INPUT: u32 = 255;
pub const _POSIX_MQ_OPEN_MAX: u32 = 8;
pub const _POSIX_MQ_PRIO_MAX: u32 = 32;
pub const _POSIX_NAME_MAX: u32 = 14;
pub const _POSIX_NGROUPS_MAX: u32 = 8;
pub const _POSIX_OPEN_MAX: u32 = 20;
pub const _POSIX_PATH_MAX: u32 = 256;
pub const _POSIX_PIPE_BUF: u32 = 512;
pub const _POSIX_RE_DUP_MAX: u32 = 255;
pub const _POSIX_RTSIG_MAX: u32 = 8;
pub const _POSIX_SEM_NSEMS_MAX: u32 = 256;
pub const _POSIX_SEM_VALUE_MAX: u32 = 32_767;
pub const _POSIX_SIGQUEUE_MAX: u32 = 32;
pub const _POSIX_SSIZE_MAX: u32 = 32_767;
pub const _POSIX_STREAM_MAX: u32 = 8;
pub const _POSIX_SYMLINK_MAX: u32 = 255;
pub const _POSIX_SYMLOOP_MAX: u32 = 8;
pub const _POSIX_TIMER_MAX: u32 = 32;
pub const _POSIX_TTY_NAME_MAX: u32 = 9;
pub const _POSIX_TZNAME_MAX: u32 = 6;
pub const _POSIX_CLOCKRES_MIN: u32 = 20_000_000;
pub const NR_OPEN: u32 = 1_024;
pub const NGROUPS_MAX: u32 = 65_536;
pub const ARG_MAX: u32 = 131_072;
pub const LINK_MAX: u32 = 127;
pub const MAX_CANON: u32 = 255;
pub const MAX_INPUT: u32 = 255;
pub const NAME_MAX: u32 = 255;
pub const PATH_MAX: u32 = 4_096;
pub const PIPE_BUF: u32 = 4_096;
pub const XATTR_NAME_MAX: u32 = 255;
pub const XATTR_SIZE_MAX: u32 = 65_536;
pub const XATTR_LIST_MAX: u32 = 65_536;
pub const RTSIG_MAX: u32 = 32;
pub const _POSIX_THREAD_KEYS_MAX: u32 = 128;
pub const PTHREAD_KEYS_MAX: u32 = 1_024;
pub const _POSIX_THREAD_DESTRUCTOR_ITERATIONS: u32 = 4;
pub const PTHREAD_DESTRUCTOR_ITERATIONS: u32 = 4;
pub const _POSIX_THREAD_THREADS_MAX: u32 = 64;
pub const AIO_PRIO_DELTA_MAX: u32 = 20;
pub const PTHREAD_STACK_MIN: u32 = 16_384;
pub const DELAYTIMER_MAX: u32 = 2_147_483_647;
pub const TTY_NAME_MAX: u32 = 32;
pub const LOGIN_NAME_MAX: u32 = 256;
pub const HOST_NAME_MAX: u32 = 64;
pub const MQ_PRIO_MAX: u32 = 32_768;
pub const SEM_VALUE_MAX: u32 = 2_147_483_647;
pub const _BITS_POSIX2_LIM_H: u32 = 1;
pub const _POSIX2_BC_BASE_MAX: u32 = 99;
pub const _POSIX2_BC_DIM_MAX: u32 = 2_048;
pub const _POSIX2_BC_SCALE_MAX: u32 = 99;
pub const _POSIX2_BC_STRING_MAX: u32 = 1_000;
pub const _POSIX2_COLL_WEIGHTS_MAX: u32 = 2;
pub const _POSIX2_EXPR_NEST_MAX: u32 = 32;
pub const _POSIX2_LINE_MAX: u32 = 2_048;
pub const _POSIX2_RE_DUP_MAX: u32 = 255;
pub const _POSIX2_CHARCLASS_NAME_MAX: u32 = 14;
pub const BC_BASE_MAX: u32 = 99;
pub const BC_DIM_MAX: u32 = 2_048;
pub const BC_SCALE_MAX: u32 = 99;
pub const BC_STRING_MAX: u32 = 1_000;
pub const COLL_WEIGHTS_MAX: u32 = 255;
pub const EXPR_NEST_MAX: u32 = 32;
pub const LINE_MAX: u32 = 2_048;
pub const CHARCLASS_NAME_MAX: u32 = 2_048;
pub const RE_DUP_MAX: u32 = 32_767;
pub const BASE_BUFFER_SIZE: u32 = 4_096;
pub const XML_DEFAULT_VERSION: &[u8; 4usize] = b"1.0\0";
pub const XML_DETECT_IDS: u32 = 2;
pub const XML_COMPLETE_ATTRS: u32 = 4;
pub const XML_SKIP_IDS: u32 = 8;
pub const XML_SAX2_MAGIC: u32 = 3_740_122_799;
pub const _ICONV_H: u32 = 1;
pub const U_DEBUG: u32 = 0;
pub const UCLN_NO_AUTO_CLEANUP: u32 = 1;
pub const U_DISABLE_RENAMING: u32 = 0;
pub const U_NO_DEFAULT_INCLUDE_UTF_HEADERS: u32 = 0;
pub const U_OVERRIDE_CXX_ALLOCATION: u32 = 1;
pub const U_ENABLE_TRACING: u32 = 0;
pub const UCONFIG_ENABLE_PLUGINS: u32 = 0;
pub const U_ENABLE_DYLOAD: u32 = 1;
pub const U_CHECK_DYLOAD: u32 = 1;
pub const U_DEFAULT_SHOW_DRAFT: u32 = 1;
pub const U_LIB_SUFFIX_C_NAME_STRING: &[u8; 1usize] = b"\0";
pub const UCONFIG_ONLY_COLLATION: u32 = 0;
pub const UCONFIG_NO_FILE_IO: u32 = 0;
pub const UCONFIG_NO_CONVERSION: u32 = 0;
pub const UCONFIG_ONLY_HTML_CONVERSION: u32 = 0;
pub const UCONFIG_NO_LEGACY_CONVERSION: u32 = 0;
pub const UCONFIG_NO_NORMALIZATION: u32 = 0;
pub const UCONFIG_NO_BREAK_ITERATION: u32 = 0;
pub const UCONFIG_NO_IDNA: u32 = 0;
pub const UCONFIG_NO_COLLATION: u32 = 0;
pub const UCONFIG_NO_FORMATTING: u32 = 0;
pub const UCONFIG_NO_TRANSLITERATION: u32 = 0;
pub const UCONFIG_NO_REGULAR_EXPRESSIONS: u32 = 0;
pub const UCONFIG_NO_SERVICE: u32 = 0;
pub const UCONFIG_HAVE_PARSEALLINPUT: u32 = 1;
pub const UCONFIG_FORMAT_FASTPATHS_49: u32 = 1;
pub const UCONFIG_NO_FILTERED_BREAK_ITERATION: u32 = 0;
pub const U_COPYRIGHT_STRING : &[ u8 ; 120usize ] = b" Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html \0" ;
pub const U_ICU_VERSION_MAJOR_NUM: u32 = 60;
pub const U_ICU_VERSION_MINOR_NUM: u32 = 2;
pub const U_ICU_VERSION_PATCHLEVEL_NUM: u32 = 0;
pub const U_ICU_VERSION_BUILDLEVEL_NUM: u32 = 0;
pub const U_ICU_VERSION: &[u8; 5usize] = b"60.2\0";
pub const U_ICU_VERSION_SHORT: &[u8; 3usize] = b"60\0";
pub const U_ICU_DATA_VERSION: &[u8; 5usize] = b"60.2\0";
pub const UCOL_RUNTIME_VERSION: u32 = 9;
pub const UCOL_BUILDER_VERSION: u32 = 9;
pub const UCOL_TAILORINGS_VERSION: u32 = 1;
pub const U_PF_UNKNOWN: u32 = 0;
pub const U_PF_WINDOWS: u32 = 1_000;
pub const U_PF_MINGW: u32 = 1_800;
pub const U_PF_CYGWIN: u32 = 1_900;
pub const U_PF_HPUX: u32 = 2_100;
pub const U_PF_SOLARIS: u32 = 2_600;
pub const U_PF_BSD: u32 = 3_000;
pub const U_PF_AIX: u32 = 3_100;
pub const U_PF_IRIX: u32 = 3_200;
pub const U_PF_DARWIN: u32 = 3_500;
pub const U_PF_IPHONE: u32 = 3_550;
pub const U_PF_QNX: u32 = 3_700;
pub const U_PF_LINUX: u32 = 4_000;
pub const U_PF_BROWSER_NATIVE_CLIENT: u32 = 4_020;
pub const U_PF_ANDROID: u32 = 4_050;
pub const U_PF_FUCHSIA: u32 = 4_100;
pub const U_PF_OS390: u32 = 9_000;
pub const U_PF_OS400: u32 = 9_400;
pub const U_PLATFORM: u32 = 4_000;
pub const U_PLATFORM_USES_ONLY_WIN32_API: u32 = 0;
pub const U_PLATFORM_HAS_WIN32_API: u32 = 0;
pub const U_PLATFORM_HAS_WINUWP_API: u32 = 0;
pub const U_PLATFORM_IMPLEMENTS_POSIX: u32 = 1;
pub const U_PLATFORM_IS_LINUX_BASED: u32 = 1;
pub const U_PLATFORM_IS_DARWIN_BASED: u32 = 0;
pub const U_HAVE_STDINT_H: u32 = 1;
pub const U_HAVE_INTTYPES_H: u32 = 1;
pub const U_HAVE_PLACEMENT_NEW: u32 = 1;
pub const U_HAVE_DEBUG_LOCATION_NEW: u32 = 0;
pub const U_CPLUSPLUS_VERSION: u32 = 0;
pub const U_HAVE_RVALUE_REFERENCES: u32 = 0;
pub const U_ASCII_FAMILY: u32 = 0;
pub const U_EBCDIC_FAMILY: u32 = 1;
pub const U_CHARSET_FAMILY: u32 = 0;
pub const U_CHARSET_IS_UTF8: u32 = 0;
pub const U_HAVE_WCHAR_H: u32 = 1;
pub const U_SIZEOF_WCHAR_T: u32 = 4;
pub const U_HAVE_WCSCPY: u32 = 1;
pub const U_HAVE_CHAR16_T: u32 = 1;
pub const _STDINT_H: u32 = 1;
pub const _BITS_WCHAR_H: u32 = 1;
pub const _BITS_STDINT_INTN_H: u32 = 1;
pub const _BITS_STDINT_UINTN_H: u32 = 1;
pub const INT8_MIN: i32 = -128;
pub const INT16_MIN: i32 = -32_768;
pub const INT32_MIN: i32 = -2_147_483_648;
pub const INT8_MAX: u32 = 127;
pub const INT16_MAX: u32 = 32_767;
pub const INT32_MAX: u32 = 2_147_483_647;
pub const UINT8_MAX: u32 = 255;
pub const UINT16_MAX: u32 = 65_535;
pub const UINT32_MAX: u32 = 4_294_967_295;
pub const INT_LEAST8_MIN: i32 = -128;
pub const INT_LEAST16_MIN: i32 = -32_768;
pub const INT_LEAST32_MIN: i32 = -2_147_483_648;
pub const INT_LEAST8_MAX: u32 = 127;
pub const INT_LEAST16_MAX: u32 = 32_767;
pub const INT_LEAST32_MAX: u32 = 2_147_483_647;
pub const UINT_LEAST8_MAX: u32 = 255;
pub const UINT_LEAST16_MAX: u32 = 65_535;
pub const UINT_LEAST32_MAX: u32 = 4_294_967_295;
pub const INT_FAST8_MIN: i32 = -128;
pub const INT_FAST16_MIN: i64 = -9_223_372_036_854_775_808;
pub const INT_FAST32_MIN: i64 = -9_223_372_036_854_775_808;
pub const INT_FAST8_MAX: u32 = 127;
pub const INT_FAST16_MAX: u64 = 9_223_372_036_854_775_807;
pub const INT_FAST32_MAX: u64 = 9_223_372_036_854_775_807;
pub const UINT_FAST8_MAX: u32 = 255;
pub const UINT_FAST16_MAX: i32 = -1;
pub const UINT_FAST32_MAX: i32 = -1;
pub const INTPTR_MIN: i64 = -9_223_372_036_854_775_808;
pub const INTPTR_MAX: u64 = 9_223_372_036_854_775_807;
pub const UINTPTR_MAX: i32 = -1;
pub const PTRDIFF_MIN: i64 = -9_223_372_036_854_775_808;
pub const PTRDIFF_MAX: u64 = 9_223_372_036_854_775_807;
pub const SIG_ATOMIC_MIN: i32 = -2_147_483_648;
pub const SIG_ATOMIC_MAX: u32 = 2_147_483_647;
pub const SIZE_MAX: i32 = -1;
pub const WINT_MIN: u32 = 0;
pub const WINT_MAX: u32 = 4_294_967_295;
pub const TRUE: u32 = 1;
pub const FALSE: u32 = 0;
pub const U_SIZEOF_UCHAR: u32 = 2;
pub const U_CHAR16_IS_TYPEDEF: u32 = 0;
pub const U_SENTINEL: i32 = -1;
pub const U_COPYRIGHT_STRING_LENGTH: u32 = 128;
pub const U_MAX_VERSION_LENGTH: u32 = 4;
pub const U_VERSION_DELIMITER: u8 = 46u8;
pub const U_MAX_VERSION_STRING_LENGTH: u32 = 20;
pub const U8_LEAD3_T1_BITS: &[u8; 17usize] = b" 000000000000\x1000\0";
pub const U8_LEAD4_T1_BITS: &[u8; 17usize] = b"\0\0\0\0\0\0\0\0\x1E\x0F\x0F\x0F\0\0\0\0\0";
pub const U8_MAX_LENGTH: u32 = 4;
pub const U16_SURROGATE_OFFSET: u32 = 56_613_888;
pub const U16_MAX_LENGTH: u32 = 2;
pub const U_HIDE_OBSOLETE_UTF_OLD_H: u32 = 0;
pub const UTF_SIZE: u32 = 16;
pub const UTF8_ERROR_VALUE_1: u32 = 21;
pub const UTF8_ERROR_VALUE_2: u32 = 159;
pub const UTF_ERROR_VALUE: u32 = 65_535;
pub const UTF8_MAX_CHAR_LENGTH: u32 = 4;
pub const UTF_SURROGATE_OFFSET: u32 = 56_613_888;
pub const UTF16_MAX_CHAR_LENGTH: u32 = 2;
pub const UTF32_MAX_CHAR_LENGTH: u32 = 1;
pub const UTF_MAX_CHAR_LENGTH: u32 = 2;
pub const U_SHOW_CPLUSPLUS_API: u32 = 0;
pub const U_ICUDATA_TYPE_LETTER: &[u8; 2usize] = b"l\0";
pub const U_ICUDATA_NAME: &[u8; 9usize] = b"icudt60l\0";
pub const U_USRDATA_NAME: &[u8; 9usize] = b"usrdt60l\0";
pub const U_USE_USRDATA: u32 = 0;
pub const U_MILLIS_PER_SECOND: u32 = 1_000;
pub const U_MILLIS_PER_MINUTE: u32 = 60_000;
pub const U_MILLIS_PER_HOUR: u32 = 3_600_000;
pub const U_MILLIS_PER_DAY: u32 = 86_400_000;
pub const UCNV_SUB_STOP_ON_ILLEGAL: &[u8; 2usize] = b"i\0";
pub const UCNV_SKIP_STOP_ON_ILLEGAL: &[u8; 2usize] = b"i\0";
pub const UCNV_ESCAPE_JAVA: &[u8; 2usize] = b"J\0";
pub const UCNV_ESCAPE_C: &[u8; 2usize] = b"C\0";
pub const UCNV_ESCAPE_XML_DEC: &[u8; 2usize] = b"D\0";
pub const UCNV_ESCAPE_XML_HEX: &[u8; 2usize] = b"X\0";
pub const UCNV_ESCAPE_UNICODE: &[u8; 2usize] = b"U\0";
pub const UCNV_ESCAPE_CSS2: &[u8; 2usize] = b"S\0";
pub const UCNV_MAX_CONVERTER_NAME_LENGTH: u32 = 60;
pub const UCNV_MAX_FULL_FILE_NAME_LENGTH: u32 = 660;
pub const UCNV_SI: u32 = 15;
pub const UCNV_SO: u32 = 14;
pub const UCNV_OPTION_SEP_CHAR: u8 = 44u8;
pub const UCNV_OPTION_SEP_STRING: &[u8; 2usize] = b",\0";
pub const UCNV_VALUE_SEP_CHAR: u8 = 61u8;
pub const UCNV_VALUE_SEP_STRING: &[u8; 2usize] = b"=\0";
pub const UCNV_LOCALE_OPTION_STRING: &[u8; 9usize] = b",locale=\0";
pub const UCNV_VERSION_OPTION_STRING: &[u8; 10usize] = b",version=\0";
pub const UCNV_SWAP_LFNL_OPTION_STRING: &[u8; 10usize] = b",swaplfnl\0";
pub const U_CNV_SAFECLONE_BUFFERSIZE: u32 = 1_024;
pub const _STDLIB_H: u32 = 1;
pub const WNOHANG: u32 = 1;
pub const WUNTRACED: u32 = 2;
pub const WSTOPPED: u32 = 2;
pub const WEXITED: u32 = 4;
pub const WCONTINUED: u32 = 8;
pub const WNOWAIT: u32 = 16_777_216;
pub const __WNOTHREAD: u32 = 536_870_912;
pub const __WALL: u32 = 1_073_741_824;
pub const __WCLONE: u32 = 2_147_483_648;
pub const __ENUM_IDTYPE_T: u32 = 1;
pub const __W_CONTINUED: u32 = 65_535;
pub const __WCOREFLAG: u32 = 128;
pub const __HAVE_FLOAT128: u32 = 0;
pub const __HAVE_DISTINCT_FLOAT128: u32 = 0;
pub const __HAVE_FLOAT64X: u32 = 1;
pub const __HAVE_FLOAT64X_LONG_DOUBLE: u32 = 1;
pub const __HAVE_FLOAT16: u32 = 0;
pub const __HAVE_FLOAT32: u32 = 1;
pub const __HAVE_FLOAT64: u32 = 1;
pub const __HAVE_FLOAT32X: u32 = 1;
pub const __HAVE_FLOAT128X: u32 = 0;
pub const __HAVE_DISTINCT_FLOAT16: u32 = 0;
pub const __HAVE_DISTINCT_FLOAT32: u32 = 0;
pub const __HAVE_DISTINCT_FLOAT64: u32 = 0;
pub const __HAVE_DISTINCT_FLOAT32X: u32 = 0;
pub const __HAVE_DISTINCT_FLOAT64X: u32 = 0;
pub const __HAVE_DISTINCT_FLOAT128X: u32 = 0;
pub const __HAVE_FLOATN_NOT_TYPEDEF: u32 = 0;
pub const __ldiv_t_defined: u32 = 1;
pub const __lldiv_t_defined: u32 = 1;
pub const RAND_MAX: u32 = 2_147_483_647;
pub const EXIT_FAILURE: u32 = 1;
pub const EXIT_SUCCESS: u32 = 0;
pub const _SYS_TYPES_H: u32 = 1;
pub const __clock_t_defined: u32 = 1;
pub const __clockid_t_defined: u32 = 1;
pub const __time_t_defined: u32 = 1;
pub const __timer_t_defined: u32 = 1;
pub const __BIT_TYPES_DEFINED__: u32 = 1;
pub const _ENDIAN_H: u32 = 1;
pub const __LITTLE_ENDIAN: u32 = 1_234;
pub const __BIG_ENDIAN: u32 = 4_321;
pub const __PDP_ENDIAN: u32 = 3_412;
pub const __BYTE_ORDER: u32 = 1_234;
pub const __FLOAT_WORD_ORDER: u32 = 1_234;
pub const LITTLE_ENDIAN: u32 = 1_234;
pub const BIG_ENDIAN: u32 = 4_321;
pub const PDP_ENDIAN: u32 = 3_412;
pub const BYTE_ORDER: u32 = 1_234;
pub const _BITS_BYTESWAP_H: u32 = 1;
pub const _BITS_UINTN_IDENTITY_H: u32 = 1;
pub const _SYS_SELECT_H: u32 = 1;
pub const __FD_ZERO_STOS: &[u8; 6usize] = b"stosq\0";
pub const __sigset_t_defined: u32 = 1;
pub const __timeval_defined: u32 = 1;
pub const __timespec_defined: u32 = 1;
pub const FD_SETSIZE: u32 = 1_024;
pub const _SYS_SYSMACROS_H: u32 = 1;
pub const _BITS_SYSMACROS_H: u32 = 1;
pub const _BITS_PTHREADTYPES_COMMON_H: u32 = 1;
pub const _THREAD_SHARED_TYPES_H: u32 = 1;
pub const _BITS_PTHREADTYPES_ARCH_H: u32 = 1;
pub const __SIZEOF_PTHREAD_MUTEX_T: u32 = 40;
pub const __SIZEOF_PTHREAD_ATTR_T: u32 = 56;
pub const __SIZEOF_PTHREAD_RWLOCK_T: u32 = 56;
pub const __SIZEOF_PTHREAD_BARRIER_T: u32 = 32;
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: u32 = 4;
pub const __SIZEOF_PTHREAD_COND_T: u32 = 48;
pub const __SIZEOF_PTHREAD_CONDATTR_T: u32 = 4;
pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: u32 = 8;
pub const __SIZEOF_PTHREAD_BARRIERATTR_T: u32 = 4;
pub const __PTHREAD_MUTEX_LOCK_ELISION: u32 = 1;
pub const __PTHREAD_MUTEX_NUSERS_AFTER_KIND: u32 = 0;
pub const __PTHREAD_MUTEX_USE_UNION: u32 = 0;
pub const __PTHREAD_RWLOCK_INT_FLAGS_SHARED: u32 = 1;
pub const __PTHREAD_MUTEX_HAVE_PREV: u32 = 1;
pub const __have_pthread_attr_t: u32 = 1;
pub const _ALLOCA_H: u32 = 1;
pub const XML_MAX_TEXT_LENGTH: u32 = 10_000_000;
pub const XML_MAX_NAME_LENGTH: u32 = 50_000;
pub const XML_MAX_DICTIONARY_LIMIT: u32 = 10_000_000;
pub const XML_MAX_LOOKUP_LIMIT: u32 = 10_000_000;
pub const XML_MAX_NAMELEN: u32 = 100;
pub const INPUT_CHUNK: u32 = 250;
pub const XML_SUBSTITUTE_NONE: u32 = 0;
pub const XML_SUBSTITUTE_REF: u32 = 1;
pub const XML_SUBSTITUTE_PEREF: u32 = 2;
pub const XML_SUBSTITUTE_BOTH: u32 = 3;
pub const XML_XPATH_CHECKNS: u32 = 1;
pub const XML_XPATH_NOVAR: u32 = 2;
pub const INVALID_SOCKET: i32 = -1;
pub const XML_SCHEMAS_ANYATTR_SKIP: u32 = 1;
pub const XML_SCHEMAS_ANYATTR_LAX: u32 = 2;
pub const XML_SCHEMAS_ANYATTR_STRICT: u32 = 3;
pub const XML_SCHEMAS_ANY_SKIP: u32 = 1;
pub const XML_SCHEMAS_ANY_LAX: u32 = 2;
pub const XML_SCHEMAS_ANY_STRICT: u32 = 3;
pub const XML_SCHEMAS_ATTR_USE_PROHIBITED: u32 = 0;
pub const XML_SCHEMAS_ATTR_USE_REQUIRED: u32 = 1;
pub const XML_SCHEMAS_ATTR_USE_OPTIONAL: u32 = 2;
pub const XML_SCHEMAS_ATTR_GLOBAL: u32 = 1;
pub const XML_SCHEMAS_ATTR_NSDEFAULT: u32 = 128;
pub const XML_SCHEMAS_ATTR_INTERNAL_RESOLVED: u32 = 256;
pub const XML_SCHEMAS_ATTR_FIXED: u32 = 512;
pub const XML_SCHEMAS_WILDCARD_COMPLETE: u32 = 1;
pub const XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED: u32 = 1;
pub const XML_SCHEMAS_ATTRGROUP_GLOBAL: u32 = 2;
pub const XML_SCHEMAS_ATTRGROUP_MARKED: u32 = 4;
pub const XML_SCHEMAS_ATTRGROUP_REDEFINED: u32 = 8;
pub const XML_SCHEMAS_ATTRGROUP_HAS_REFS: u32 = 16;
pub const XML_SCHEMAS_TYPE_MIXED: u32 = 1;
pub const XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION: u32 = 2;
pub const XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION: u32 = 4;
pub const XML_SCHEMAS_TYPE_GLOBAL: u32 = 8;
pub const XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD: u32 = 16;
pub const XML_SCHEMAS_TYPE_VARIETY_ABSENT: u32 = 32;
pub const XML_SCHEMAS_TYPE_VARIETY_LIST: u32 = 64;
pub const XML_SCHEMAS_TYPE_VARIETY_UNION: u32 = 128;
pub const XML_SCHEMAS_TYPE_VARIETY_ATOMIC: u32 = 256;
pub const XML_SCHEMAS_TYPE_FINAL_EXTENSION: u32 = 512;
pub const XML_SCHEMAS_TYPE_FINAL_RESTRICTION: u32 = 1_024;
pub const XML_SCHEMAS_TYPE_FINAL_LIST: u32 = 2_048;
pub const XML_SCHEMAS_TYPE_FINAL_UNION: u32 = 4_096;
pub const XML_SCHEMAS_TYPE_FINAL_DEFAULT: u32 = 8_192;
pub const XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE: u32 = 16_384;
pub const XML_SCHEMAS_TYPE_MARKED: u32 = 65_536;
pub const XML_SCHEMAS_TYPE_BLOCK_DEFAULT: u32 = 131_072;
pub const XML_SCHEMAS_TYPE_BLOCK_EXTENSION: u32 = 262_144;
pub const XML_SCHEMAS_TYPE_BLOCK_RESTRICTION: u32 = 524_288;
pub const XML_SCHEMAS_TYPE_ABSTRACT: u32 = 1_048_576;
pub const XML_SCHEMAS_TYPE_FACETSNEEDVALUE: u32 = 2_097_152;
pub const XML_SCHEMAS_TYPE_INTERNAL_RESOLVED: u32 = 4_194_304;
pub const XML_SCHEMAS_TYPE_INTERNAL_INVALID: u32 = 8_388_608;
pub const XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE: u32 = 16_777_216;
pub const XML_SCHEMAS_TYPE_WHITESPACE_REPLACE: u32 = 33_554_432;
pub const XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE: u32 = 67_108_864;
pub const XML_SCHEMAS_TYPE_HAS_FACETS: u32 = 134_217_728;
pub const XML_SCHEMAS_TYPE_NORMVALUENEEDED: u32 = 268_435_456;
pub const XML_SCHEMAS_TYPE_FIXUP_1: u32 = 536_870_912;
pub const XML_SCHEMAS_TYPE_REDEFINED: u32 = 1_073_741_824;
pub const XML_SCHEMAS_ELEM_NILLABLE: u32 = 1;
pub const XML_SCHEMAS_ELEM_GLOBAL: u32 = 2;
pub const XML_SCHEMAS_ELEM_DEFAULT: u32 = 4;
pub const XML_SCHEMAS_ELEM_FIXED: u32 = 8;
pub const XML_SCHEMAS_ELEM_ABSTRACT: u32 = 16;
pub const XML_SCHEMAS_ELEM_TOPLEVEL: u32 = 32;
pub const XML_SCHEMAS_ELEM_REF: u32 = 64;
pub const XML_SCHEMAS_ELEM_NSDEFAULT: u32 = 128;
pub const XML_SCHEMAS_ELEM_INTERNAL_RESOLVED: u32 = 256;
pub const XML_SCHEMAS_ELEM_CIRCULAR: u32 = 512;
pub const XML_SCHEMAS_ELEM_BLOCK_ABSENT: u32 = 1_024;
pub const XML_SCHEMAS_ELEM_BLOCK_EXTENSION: u32 = 2_048;
pub const XML_SCHEMAS_ELEM_BLOCK_RESTRICTION: u32 = 4_096;
pub const XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION: u32 = 8_192;
pub const XML_SCHEMAS_ELEM_FINAL_ABSENT: u32 = 16_384;
pub const XML_SCHEMAS_ELEM_FINAL_EXTENSION: u32 = 32_768;
pub const XML_SCHEMAS_ELEM_FINAL_RESTRICTION: u32 = 65_536;
pub const XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD: u32 = 131_072;
pub const XML_SCHEMAS_ELEM_INTERNAL_CHECKED: u32 = 262_144;
pub const XML_SCHEMAS_FACET_UNKNOWN: u32 = 0;
pub const XML_SCHEMAS_FACET_PRESERVE: u32 = 1;
pub const XML_SCHEMAS_FACET_REPLACE: u32 = 2;
pub const XML_SCHEMAS_FACET_COLLAPSE: u32 = 3;
pub const XML_SCHEMAS_QUALIF_ELEM: u32 = 1;
pub const XML_SCHEMAS_QUALIF_ATTR: u32 = 2;
pub const XML_SCHEMAS_FINAL_DEFAULT_EXTENSION: u32 = 4;
pub const XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION: u32 = 8;
pub const XML_SCHEMAS_FINAL_DEFAULT_LIST: u32 = 16;
pub const XML_SCHEMAS_FINAL_DEFAULT_UNION: u32 = 32;
pub const XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION: u32 = 64;
pub const XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION: u32 = 128;
pub const XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION: u32 = 256;
pub const XML_SCHEMAS_INCLUDING_CONVERT_NS: u32 = 512;
extern "C" {
  pub fn xmlCheckVersion(version: ::std::os::raw::c_int);
}
pub type va_list = __builtin_va_list;
pub type __gnuc_va_list = __builtin_va_list;
pub type __u_char = ::std::os::raw::c_uchar;
pub type __u_short = ::std::os::raw::c_ushort;
pub type __u_int = ::std::os::raw::c_uint;
pub type __u_long = ::std::os::raw::c_ulong;
pub type __int8_t = ::std::os::raw::c_schar;
pub type __uint8_t = ::std::os::raw::c_uchar;
pub type __int16_t = ::std::os::raw::c_short;
pub type __uint16_t = ::std::os::raw::c_ushort;
pub type __int32_t = ::std::os::raw::c_int;
pub type __uint32_t = ::std::os::raw::c_uint;
pub type __int64_t = ::std::os::raw::c_long;
pub type __uint64_t = ::std::os::raw::c_ulong;
pub type __quad_t = ::std::os::raw::c_long;
pub type __u_quad_t = ::std::os::raw::c_ulong;
pub type __intmax_t = ::std::os::raw::c_long;
pub type __uintmax_t = ::std::os::raw::c_ulong;
pub type __dev_t = ::std::os::raw::c_ulong;
pub type __uid_t = ::std::os::raw::c_uint;
pub type __gid_t = ::std::os::raw::c_uint;
pub type __ino_t = ::std::os::raw::c_ulong;
pub type __ino64_t = ::std::os::raw::c_ulong;
pub type __mode_t = ::std::os::raw::c_uint;
pub type __nlink_t = ::std::os::raw::c_ulong;
pub type __off_t = ::std::os::raw::c_long;
pub type __off64_t = ::std::os::raw::c_long;
pub type __pid_t = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __fsid_t {
  pub __val: [::std::os::raw::c_int; 2usize],
}
#[test]
fn bindgen_test_layout___fsid_t() {
  assert_eq!(
    ::std::mem::size_of::<__fsid_t>(),
    8usize,
    concat!("Size of: ", stringify!(__fsid_t))
  );
  assert_eq!(
    ::std::mem::align_of::<__fsid_t>(),
    4usize,
    concat!("Alignment of ", stringify!(__fsid_t))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<__fsid_t>())).__val as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(__fsid_t),
  //     "::",
  //     stringify!(__val)
  //   )
  // );
}
pub type __clock_t = ::std::os::raw::c_long;
pub type __rlim_t = ::std::os::raw::c_ulong;
pub type __rlim64_t = ::std::os::raw::c_ulong;
pub type __id_t = ::std::os::raw::c_uint;
pub type __time_t = ::std::os::raw::c_long;
pub type __useconds_t = ::std::os::raw::c_uint;
pub type __suseconds_t = ::std::os::raw::c_long;
pub type __daddr_t = ::std::os::raw::c_int;
pub type __key_t = ::std::os::raw::c_int;
pub type __clockid_t = ::std::os::raw::c_int;
pub type __timer_t = *mut ::std::os::raw::c_void;
pub type __blksize_t = ::std::os::raw::c_long;
pub type __blkcnt_t = ::std::os::raw::c_long;
pub type __blkcnt64_t = ::std::os::raw::c_long;
pub type __fsblkcnt_t = ::std::os::raw::c_ulong;
pub type __fsblkcnt64_t = ::std::os::raw::c_ulong;
pub type __fsfilcnt_t = ::std::os::raw::c_ulong;
pub type __fsfilcnt64_t = ::std::os::raw::c_ulong;
pub type __fsword_t = ::std::os::raw::c_long;
pub type __ssize_t = ::std::os::raw::c_long;
pub type __syscall_slong_t = ::std::os::raw::c_long;
pub type __syscall_ulong_t = ::std::os::raw::c_ulong;
pub type __loff_t = __off64_t;
pub type __caddr_t = *mut ::std::os::raw::c_char;
pub type __intptr_t = ::std::os::raw::c_long;
pub type __socklen_t = ::std::os::raw::c_uint;
pub type __sig_atomic_t = ::std::os::raw::c_int;
pub type __FILE = _IO_FILE;
pub type FILE = _IO_FILE;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct __mbstate_t {
  pub __count: ::std::os::raw::c_int,
  pub __value: __mbstate_t__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union __mbstate_t__bindgen_ty_1 {
  pub __wch: ::std::os::raw::c_uint,
  pub __wchb: [::std::os::raw::c_char; 4usize],
  _bindgen_union_align: u32,
}
#[test]
fn bindgen_test_layout___mbstate_t__bindgen_ty_1() {
  assert_eq!(
    ::std::mem::size_of::<__mbstate_t__bindgen_ty_1>(),
    4usize,
    concat!("Size of: ", stringify!(__mbstate_t__bindgen_ty_1))
  );
  assert_eq!(
    ::std::mem::align_of::<__mbstate_t__bindgen_ty_1>(),
    4usize,
    concat!("Alignment of ", stringify!(__mbstate_t__bindgen_ty_1))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<__mbstate_t__bindgen_ty_1>())).__wch as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(__mbstate_t__bindgen_ty_1),
  //     "::",
  //     stringify!(__wch)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<__mbstate_t__bindgen_ty_1>())).__wchb as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(__mbstate_t__bindgen_ty_1),
  //     "::",
  //     stringify!(__wchb)
  //   )
  // );
}
#[test]
fn bindgen_test_layout___mbstate_t() {
  assert_eq!(
    ::std::mem::size_of::<__mbstate_t>(),
    8usize,
    concat!("Size of: ", stringify!(__mbstate_t))
  );
  assert_eq!(
    ::std::mem::align_of::<__mbstate_t>(),
    4usize,
    concat!("Alignment of ", stringify!(__mbstate_t))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<__mbstate_t>())).__count as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(__mbstate_t),
  //     "::",
  //     stringify!(__count)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<__mbstate_t>())).__value as *const _ as usize },
  //   4usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(__mbstate_t),
  //     "::",
  //     stringify!(__value)
  //   )
  // );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _G_fpos_t {
  pub __pos: __off_t,
  pub __state: __mbstate_t,
}

#[repr(C)]
#[derive(Copy, Clone)]
pub struct _G_fpos64_t {
  pub __pos: __off64_t,
  pub __state: __mbstate_t,
}

#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IO_jump_t {
  _unused: [u8; 0],
}
pub type _IO_lock_t = ::std::os::raw::c_void;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IO_marker {
  pub _next: *mut _IO_marker,
  pub _sbuf: *mut _IO_FILE,
  pub _pos: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout__IO_marker() {
  assert_eq!(
    ::std::mem::size_of::<_IO_marker>(),
    24usize,
    concat!("Size of: ", stringify!(_IO_marker))
  );
  assert_eq!(
    ::std::mem::align_of::<_IO_marker>(),
    8usize,
    concat!("Alignment of ", stringify!(_IO_marker))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_IO_marker>()))._next as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_IO_marker),
  //     "::",
  //     stringify!(_next)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_IO_marker>()))._sbuf as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_IO_marker),
  //     "::",
  //     stringify!(_sbuf)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_IO_marker>()))._pos as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_IO_marker),
  //     "::",
  //     stringify!(_pos)
  //   )
  // );
}
pub const __codecvt_result___codecvt_ok: __codecvt_result = 0;
pub const __codecvt_result___codecvt_partial: __codecvt_result = 1;
pub const __codecvt_result___codecvt_error: __codecvt_result = 2;
pub const __codecvt_result___codecvt_noconv: __codecvt_result = 3;
pub type __codecvt_result = u32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IO_FILE {
  pub _flags: ::std::os::raw::c_int,
  pub _IO_read_ptr: *mut ::std::os::raw::c_char,
  pub _IO_read_end: *mut ::std::os::raw::c_char,
  pub _IO_read_base: *mut ::std::os::raw::c_char,
  pub _IO_write_base: *mut ::std::os::raw::c_char,
  pub _IO_write_ptr: *mut ::std::os::raw::c_char,
  pub _IO_write_end: *mut ::std::os::raw::c_char,
  pub _IO_buf_base: *mut ::std::os::raw::c_char,
  pub _IO_buf_end: *mut ::std::os::raw::c_char,
  pub _IO_save_base: *mut ::std::os::raw::c_char,
  pub _IO_backup_base: *mut ::std::os::raw::c_char,
  pub _IO_save_end: *mut ::std::os::raw::c_char,
  pub _markers: *mut _IO_marker,
  pub _chain: *mut _IO_FILE,
  pub _fileno: ::std::os::raw::c_int,
  pub _flags2: ::std::os::raw::c_int,
  pub _old_offset: __off_t,
  pub _cur_column: ::std::os::raw::c_ushort,
  pub _vtable_offset: ::std::os::raw::c_schar,
  pub _shortbuf: [::std::os::raw::c_char; 1usize],
  pub _lock: *mut _IO_lock_t,
  pub _offset: __off64_t,
  pub __pad1: *mut ::std::os::raw::c_void,
  pub __pad2: *mut ::std::os::raw::c_void,
  pub __pad3: *mut ::std::os::raw::c_void,
  pub __pad4: *mut ::std::os::raw::c_void,
  pub __pad5: usize,
  pub _mode: ::std::os::raw::c_int,
  pub _unused2: [::std::os::raw::c_char; 20usize],
}

#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IO_FILE_plus {
  _unused: [u8; 0],
}
extern "C" {
  #[link_name = "\u{1}_IO_2_1_stdin_"]
  pub static mut _IO_2_1_stdin_: _IO_FILE_plus;
}
extern "C" {
  #[link_name = "\u{1}_IO_2_1_stdout_"]
  pub static mut _IO_2_1_stdout_: _IO_FILE_plus;
}
extern "C" {
  #[link_name = "\u{1}_IO_2_1_stderr_"]
  pub static mut _IO_2_1_stderr_: _IO_FILE_plus;
}
pub type __io_read_fn = ::std::option::Option<
  unsafe extern "C" fn(
    __cookie: *mut ::std::os::raw::c_void,
    __buf: *mut ::std::os::raw::c_char,
    __nbytes: usize,
  ) -> __ssize_t,
>;
pub type __io_write_fn = ::std::option::Option<
  unsafe extern "C" fn(
    __cookie: *mut ::std::os::raw::c_void,
    __buf: *const ::std::os::raw::c_char,
    __n: usize,
  ) -> __ssize_t,
>;
pub type __io_seek_fn = ::std::option::Option<
  unsafe extern "C" fn(
    __cookie: *mut ::std::os::raw::c_void,
    __pos: *mut __off64_t,
    __w: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int,
>;
pub type __io_close_fn = ::std::option::Option<
  unsafe extern "C" fn(__cookie: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
>;
extern "C" {
  pub fn __underflow(arg1: *mut _IO_FILE) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn __uflow(arg1: *mut _IO_FILE) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn __overflow(arg1: *mut _IO_FILE, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn _IO_getc(__fp: *mut _IO_FILE) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn _IO_putc(__c: ::std::os::raw::c_int, __fp: *mut _IO_FILE) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn _IO_feof(__fp: *mut _IO_FILE) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn _IO_ferror(__fp: *mut _IO_FILE) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn _IO_peekc_locked(__fp: *mut _IO_FILE) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn _IO_flockfile(arg1: *mut _IO_FILE);
}
extern "C" {
  pub fn _IO_funlockfile(arg1: *mut _IO_FILE);
}
extern "C" {
  pub fn _IO_ftrylockfile(arg1: *mut _IO_FILE) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn _IO_vfscanf(
    arg1: *mut _IO_FILE,
    arg2: *const ::std::os::raw::c_char,
    arg3: *mut __va_list_tag,
    arg4: *mut ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn _IO_vfprintf(
    arg1: *mut _IO_FILE,
    arg2: *const ::std::os::raw::c_char,
    arg3: *mut __va_list_tag,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn _IO_padn(arg1: *mut _IO_FILE, arg2: ::std::os::raw::c_int, arg3: __ssize_t) -> __ssize_t;
}
extern "C" {
  pub fn _IO_sgetn(arg1: *mut _IO_FILE, arg2: *mut ::std::os::raw::c_void, arg3: usize) -> usize;
}
extern "C" {
  pub fn _IO_seekoff(
    arg1: *mut _IO_FILE,
    arg2: __off64_t,
    arg3: ::std::os::raw::c_int,
    arg4: ::std::os::raw::c_int,
  ) -> __off64_t;
}
extern "C" {
  pub fn _IO_seekpos(
    arg1: *mut _IO_FILE,
    arg2: __off64_t,
    arg3: ::std::os::raw::c_int,
  ) -> __off64_t;
}
extern "C" {
  pub fn _IO_free_backup_area(arg1: *mut _IO_FILE);
}
pub type off_t = __off_t;
pub type fpos_t = _G_fpos_t;
extern "C" {
  #[link_name = "\u{1}stdin"]
  pub static mut stdin: *mut _IO_FILE;
}
extern "C" {
  #[link_name = "\u{1}stdout"]
  pub static mut stdout: *mut _IO_FILE;
}
extern "C" {
  #[link_name = "\u{1}stderr"]
  pub static mut stderr: *mut _IO_FILE;
}
extern "C" {
  pub fn remove(__filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn rename(
    __old: *const ::std::os::raw::c_char,
    __new: *const ::std::os::raw::c_char,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn renameat(
    __oldfd: ::std::os::raw::c_int,
    __old: *const ::std::os::raw::c_char,
    __newfd: ::std::os::raw::c_int,
    __new: *const ::std::os::raw::c_char,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn tmpfile() -> *mut FILE;
}
extern "C" {
  pub fn tmpnam(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
  pub fn tmpnam_r(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
  pub fn tempnam(
    __dir: *const ::std::os::raw::c_char,
    __pfx: *const ::std::os::raw::c_char,
  ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
  pub fn fclose(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn fflush(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn fflush_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn fopen(
    __filename: *const ::std::os::raw::c_char,
    __modes: *const ::std::os::raw::c_char,
  ) -> *mut FILE;
}
extern "C" {
  pub fn freopen(
    __filename: *const ::std::os::raw::c_char,
    __modes: *const ::std::os::raw::c_char,
    __stream: *mut FILE,
  ) -> *mut FILE;
}
extern "C" {
  pub fn fdopen(__fd: ::std::os::raw::c_int, __modes: *const ::std::os::raw::c_char) -> *mut FILE;
}
extern "C" {
  pub fn fmemopen(
    __s: *mut ::std::os::raw::c_void,
    __len: usize,
    __modes: *const ::std::os::raw::c_char,
  ) -> *mut FILE;
}
extern "C" {
  pub fn open_memstream(
    __bufloc: *mut *mut ::std::os::raw::c_char,
    __sizeloc: *mut usize,
  ) -> *mut FILE;
}
extern "C" {
  pub fn setbuf(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char);
}
extern "C" {
  pub fn setvbuf(
    __stream: *mut FILE,
    __buf: *mut ::std::os::raw::c_char,
    __modes: ::std::os::raw::c_int,
    __n: usize,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn setbuffer(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char, __size: usize);
}
extern "C" {
  pub fn setlinebuf(__stream: *mut FILE);
}
extern "C" {
  pub fn fprintf(
    __stream: *mut FILE,
    __format: *const ::std::os::raw::c_char,
    ...
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn printf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn sprintf(
    __s: *mut ::std::os::raw::c_char,
    __format: *const ::std::os::raw::c_char,
    ...
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn vfprintf(
    __s: *mut FILE,
    __format: *const ::std::os::raw::c_char,
    __arg: *mut __va_list_tag,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn vprintf(
    __format: *const ::std::os::raw::c_char,
    __arg: *mut __va_list_tag,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn vsprintf(
    __s: *mut ::std::os::raw::c_char,
    __format: *const ::std::os::raw::c_char,
    __arg: *mut __va_list_tag,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn snprintf(
    __s: *mut ::std::os::raw::c_char,
    __maxlen: usize,
    __format: *const ::std::os::raw::c_char,
    ...
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn vsnprintf(
    __s: *mut ::std::os::raw::c_char,
    __maxlen: usize,
    __format: *const ::std::os::raw::c_char,
    __arg: *mut __va_list_tag,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn vdprintf(
    __fd: ::std::os::raw::c_int,
    __fmt: *const ::std::os::raw::c_char,
    __arg: *mut __va_list_tag,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn dprintf(
    __fd: ::std::os::raw::c_int,
    __fmt: *const ::std::os::raw::c_char,
    ...
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn fscanf(
    __stream: *mut FILE,
    __format: *const ::std::os::raw::c_char,
    ...
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn scanf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn sscanf(
    __s: *const ::std::os::raw::c_char,
    __format: *const ::std::os::raw::c_char,
    ...
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  #[link_name = "\u{1}__isoc99_fscanf"]
  pub fn fscanf1(
    __stream: *mut FILE,
    __format: *const ::std::os::raw::c_char,
    ...
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  #[link_name = "\u{1}__isoc99_scanf"]
  pub fn scanf1(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
}
extern "C" {
  #[link_name = "\u{1}__isoc99_sscanf"]
  pub fn sscanf1(
    __s: *const ::std::os::raw::c_char,
    __format: *const ::std::os::raw::c_char,
    ...
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn vfscanf(
    __s: *mut FILE,
    __format: *const ::std::os::raw::c_char,
    __arg: *mut __va_list_tag,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn vscanf(
    __format: *const ::std::os::raw::c_char,
    __arg: *mut __va_list_tag,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn vsscanf(
    __s: *const ::std::os::raw::c_char,
    __format: *const ::std::os::raw::c_char,
    __arg: *mut __va_list_tag,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  #[link_name = "\u{1}__isoc99_vfscanf"]
  pub fn vfscanf1(
    __s: *mut FILE,
    __format: *const ::std::os::raw::c_char,
    __arg: *mut __va_list_tag,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  #[link_name = "\u{1}__isoc99_vscanf"]
  pub fn vscanf1(
    __format: *const ::std::os::raw::c_char,
    __arg: *mut __va_list_tag,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  #[link_name = "\u{1}__isoc99_vsscanf"]
  pub fn vsscanf1(
    __s: *const ::std::os::raw::c_char,
    __format: *const ::std::os::raw::c_char,
    __arg: *mut __va_list_tag,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn fgetc(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn getc(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn getchar() -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn getc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn getchar_unlocked() -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn fgetc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn fputc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn putc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn putchar(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn fputc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn putc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn putchar_unlocked(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn getw(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn putw(__w: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn fgets(
    __s: *mut ::std::os::raw::c_char,
    __n: ::std::os::raw::c_int,
    __stream: *mut FILE,
  ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
  pub fn __getdelim(
    __lineptr: *mut *mut ::std::os::raw::c_char,
    __n: *mut usize,
    __delimiter: ::std::os::raw::c_int,
    __stream: *mut FILE,
  ) -> __ssize_t;
}
extern "C" {
  pub fn getdelim(
    __lineptr: *mut *mut ::std::os::raw::c_char,
    __n: *mut usize,
    __delimiter: ::std::os::raw::c_int,
    __stream: *mut FILE,
  ) -> __ssize_t;
}
extern "C" {
  pub fn getline(
    __lineptr: *mut *mut ::std::os::raw::c_char,
    __n: *mut usize,
    __stream: *mut FILE,
  ) -> __ssize_t;
}
extern "C" {
  pub fn fputs(__s: *const ::std::os::raw::c_char, __stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn puts(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn ungetc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn fread(
    __ptr: *mut ::std::os::raw::c_void,
    __size: usize,
    __n: usize,
    __stream: *mut FILE,
  ) -> usize;
}
extern "C" {
  pub fn fwrite(
    __ptr: *const ::std::os::raw::c_void,
    __size: usize,
    __n: usize,
    __s: *mut FILE,
  ) -> usize;
}
extern "C" {
  pub fn fread_unlocked(
    __ptr: *mut ::std::os::raw::c_void,
    __size: usize,
    __n: usize,
    __stream: *mut FILE,
  ) -> usize;
}
extern "C" {
  pub fn fwrite_unlocked(
    __ptr: *const ::std::os::raw::c_void,
    __size: usize,
    __n: usize,
    __stream: *mut FILE,
  ) -> usize;
}
extern "C" {
  pub fn fseek(
    __stream: *mut FILE,
    __off: ::std::os::raw::c_long,
    __whence: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn ftell(__stream: *mut FILE) -> ::std::os::raw::c_long;
}
extern "C" {
  pub fn rewind(__stream: *mut FILE);
}
extern "C" {
  pub fn fseeko(
    __stream: *mut FILE,
    __off: __off_t,
    __whence: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn ftello(__stream: *mut FILE) -> __off_t;
}
extern "C" {
  pub fn fgetpos(__stream: *mut FILE, __pos: *mut fpos_t) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn fsetpos(__stream: *mut FILE, __pos: *const fpos_t) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn clearerr(__stream: *mut FILE);
}
extern "C" {
  pub fn feof(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn ferror(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn clearerr_unlocked(__stream: *mut FILE);
}
extern "C" {
  pub fn feof_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn ferror_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn perror(__s: *const ::std::os::raw::c_char);
}
extern "C" {
  #[link_name = "\u{1}sys_nerr"]
  pub static mut sys_nerr: ::std::os::raw::c_int;
}
extern "C" {
  #[link_name = "\u{1}sys_errlist"]
  pub static mut sys_errlist: [*const ::std::os::raw::c_char; 0usize];
}
extern "C" {
  pub fn fileno(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn fileno_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn popen(
    __command: *const ::std::os::raw::c_char,
    __modes: *const ::std::os::raw::c_char,
  ) -> *mut FILE;
}
extern "C" {
  pub fn pclose(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn ctermid(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
  pub fn flockfile(__stream: *mut FILE);
}
extern "C" {
  pub fn ftrylockfile(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn funlockfile(__stream: *mut FILE);
}
/// xmlChar:
///
/// This is a basic byte in an UTF-8 encoded string.
/// It's unsigned allowing to pinpoint case where char * are assigned
/// to xmlChar * (possibly making serialization back impossible).
pub type xmlChar = ::std::os::raw::c_uchar;
extern "C" {
  pub fn xmlStrdup(cur: *const xmlChar) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlStrndup(cur: *const xmlChar, len: ::std::os::raw::c_int) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlCharStrndup(
    cur: *const ::std::os::raw::c_char,
    len: ::std::os::raw::c_int,
  ) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlCharStrdup(cur: *const ::std::os::raw::c_char) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlStrsub(
    str: *const xmlChar,
    start: ::std::os::raw::c_int,
    len: ::std::os::raw::c_int,
  ) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlStrchr(str: *const xmlChar, val: xmlChar) -> *const xmlChar;
}
extern "C" {
  pub fn xmlStrstr(str: *const xmlChar, val: *const xmlChar) -> *const xmlChar;
}
extern "C" {
  pub fn xmlStrcasestr(str: *const xmlChar, val: *const xmlChar) -> *const xmlChar;
}
extern "C" {
  pub fn xmlStrcmp(str1: *const xmlChar, str2: *const xmlChar) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlStrncmp(
    str1: *const xmlChar,
    str2: *const xmlChar,
    len: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlStrcasecmp(str1: *const xmlChar, str2: *const xmlChar) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlStrncasecmp(
    str1: *const xmlChar,
    str2: *const xmlChar,
    len: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlStrEqual(str1: *const xmlChar, str2: *const xmlChar) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlStrQEqual(
    pref: *const xmlChar,
    name: *const xmlChar,
    str: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlStrlen(str: *const xmlChar) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlStrcat(cur: *mut xmlChar, add: *const xmlChar) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlStrncat(
    cur: *mut xmlChar,
    add: *const xmlChar,
    len: ::std::os::raw::c_int,
  ) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlStrncatNew(
    str1: *const xmlChar,
    str2: *const xmlChar,
    len: ::std::os::raw::c_int,
  ) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlStrPrintf(
    buf: *mut xmlChar,
    len: ::std::os::raw::c_int,
    msg: *const ::std::os::raw::c_char,
    ...
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlStrVPrintf(
    buf: *mut xmlChar,
    len: ::std::os::raw::c_int,
    msg: *const ::std::os::raw::c_char,
    ap: *mut __va_list_tag,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlGetUTF8Char(
    utf: *const ::std::os::raw::c_uchar,
    len: *mut ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlCheckUTF8(utf: *const ::std::os::raw::c_uchar) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUTF8Strsize(utf: *const xmlChar, len: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUTF8Strndup(utf: *const xmlChar, len: ::std::os::raw::c_int) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlUTF8Strpos(utf: *const xmlChar, pos: ::std::os::raw::c_int) -> *const xmlChar;
}
extern "C" {
  pub fn xmlUTF8Strloc(utf: *const xmlChar, utfchar: *const xmlChar) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUTF8Strsub(
    utf: *const xmlChar,
    start: ::std::os::raw::c_int,
    len: ::std::os::raw::c_int,
  ) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlUTF8Strlen(utf: *const xmlChar) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUTF8Size(utf: *const xmlChar) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUTF8Charcmp(utf1: *const xmlChar, utf2: *const xmlChar) -> ::std::os::raw::c_int;
}
pub type xmlParserInputBuffer = _xmlParserInputBuffer;
pub type xmlParserInputBufferPtr = *mut xmlParserInputBuffer;
pub type xmlOutputBuffer = _xmlOutputBuffer;
pub type xmlOutputBufferPtr = *mut xmlOutputBuffer;
pub type xmlParserInput = _xmlParserInput;
pub type xmlParserInputPtr = *mut xmlParserInput;
pub type xmlParserCtxt = _xmlParserCtxt;
pub type xmlParserCtxtPtr = *mut xmlParserCtxt;
pub type xmlSAXLocator = _xmlSAXLocator;
pub type xmlSAXLocatorPtr = *mut xmlSAXLocator;
pub type xmlSAXHandler = _xmlSAXHandler;
pub type xmlSAXHandlerPtr = *mut xmlSAXHandler;
pub type xmlEntity = _xmlEntity;
pub type xmlEntityPtr = *mut xmlEntity;
pub const xmlBufferAllocationScheme_XML_BUFFER_ALLOC_DOUBLEIT: xmlBufferAllocationScheme = 0;
pub const xmlBufferAllocationScheme_XML_BUFFER_ALLOC_EXACT: xmlBufferAllocationScheme = 1;
pub const xmlBufferAllocationScheme_XML_BUFFER_ALLOC_IMMUTABLE: xmlBufferAllocationScheme = 2;
pub const xmlBufferAllocationScheme_XML_BUFFER_ALLOC_IO: xmlBufferAllocationScheme = 3;
pub const xmlBufferAllocationScheme_XML_BUFFER_ALLOC_HYBRID: xmlBufferAllocationScheme = 4;
pub const xmlBufferAllocationScheme_XML_BUFFER_ALLOC_BOUNDED: xmlBufferAllocationScheme = 5;
/// xmlBufferAllocationScheme:
///
/// A buffer allocation scheme can be defined to either match exactly the
/// need or double it's allocated size each time it is found too small.
pub type xmlBufferAllocationScheme = u32;
/// xmlBuffer:
///
/// A buffer structure, this old construct is limited to 2GB and
/// is being deprecated, use API with xmlBuf instead
pub type xmlBuffer = _xmlBuffer;
pub type xmlBufferPtr = *mut xmlBuffer;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlBuffer {
  pub content: *mut xmlChar,
  pub use_: ::std::os::raw::c_uint,
  pub size: ::std::os::raw::c_uint,
  pub alloc: xmlBufferAllocationScheme,
  pub contentIO: *mut xmlChar,
}
#[test]
fn bindgen_test_layout__xmlBuffer() {
  assert_eq!(
    ::std::mem::size_of::<_xmlBuffer>(),
    32usize,
    concat!("Size of: ", stringify!(_xmlBuffer))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlBuffer>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlBuffer))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlBuffer>())).content as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlBuffer),
  //     "::",
  //     stringify!(content)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlBuffer>())).use_ as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlBuffer),
  //     "::",
  //     stringify!(use_)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlBuffer>())).size as *const _ as usize },
  //   12usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlBuffer),
  //     "::",
  //     stringify!(size)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlBuffer>())).alloc as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlBuffer),
  //     "::",
  //     stringify!(alloc)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlBuffer>())).contentIO as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlBuffer),
  //     "::",
  //     stringify!(contentIO)
  //   )
  // );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlBuf {
  _unused: [u8; 0],
}
/// xmlBuf:
///
/// A buffer structure, new one, the actual structure internals are not public
pub type xmlBuf = _xmlBuf;
/// xmlBufPtr:
///
/// A pointer to a buffer structure, the actual structure internals are not
/// public
pub type xmlBufPtr = *mut xmlBuf;
extern "C" {
  pub fn xmlBufContent(buf: *const xmlBuf) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlBufEnd(buf: xmlBufPtr) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlBufUse(buf: xmlBufPtr) -> usize;
}
extern "C" {
  pub fn xmlBufShrink(buf: xmlBufPtr, len: usize) -> usize;
}
pub const xmlElementType_XML_ELEMENT_NODE: xmlElementType = 1;
pub const xmlElementType_XML_ATTRIBUTE_NODE: xmlElementType = 2;
pub const xmlElementType_XML_TEXT_NODE: xmlElementType = 3;
pub const xmlElementType_XML_CDATA_SECTION_NODE: xmlElementType = 4;
pub const xmlElementType_XML_ENTITY_REF_NODE: xmlElementType = 5;
pub const xmlElementType_XML_ENTITY_NODE: xmlElementType = 6;
pub const xmlElementType_XML_PI_NODE: xmlElementType = 7;
pub const xmlElementType_XML_COMMENT_NODE: xmlElementType = 8;
pub const xmlElementType_XML_DOCUMENT_NODE: xmlElementType = 9;
pub const xmlElementType_XML_DOCUMENT_TYPE_NODE: xmlElementType = 10;
pub const xmlElementType_XML_DOCUMENT_FRAG_NODE: xmlElementType = 11;
pub const xmlElementType_XML_NOTATION_NODE: xmlElementType = 12;
pub const xmlElementType_XML_HTML_DOCUMENT_NODE: xmlElementType = 13;
pub const xmlElementType_XML_DTD_NODE: xmlElementType = 14;
pub const xmlElementType_XML_ELEMENT_DECL: xmlElementType = 15;
pub const xmlElementType_XML_ATTRIBUTE_DECL: xmlElementType = 16;
pub const xmlElementType_XML_ENTITY_DECL: xmlElementType = 17;
pub const xmlElementType_XML_NAMESPACE_DECL: xmlElementType = 18;
pub const xmlElementType_XML_XINCLUDE_START: xmlElementType = 19;
pub const xmlElementType_XML_XINCLUDE_END: xmlElementType = 20;
pub const xmlElementType_XML_DOCB_DOCUMENT_NODE: xmlElementType = 21;
pub type xmlElementType = u32;
/// xmlNotation:
///
/// A DTD Notation definition.
pub type xmlNotation = _xmlNotation;
pub type xmlNotationPtr = *mut xmlNotation;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlNotation {
  pub name: *const xmlChar,
  pub PublicID: *const xmlChar,
  pub SystemID: *const xmlChar,
}
#[test]
fn bindgen_test_layout__xmlNotation() {
  assert_eq!(
    ::std::mem::size_of::<_xmlNotation>(),
    24usize,
    concat!("Size of: ", stringify!(_xmlNotation))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlNotation>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlNotation))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlNotation>())).name as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlNotation),
  //     "::",
  //     stringify!(name)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlNotation>())).PublicID as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlNotation),
  //     "::",
  //     stringify!(PublicID)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlNotation>())).SystemID as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlNotation),
  //     "::",
  //     stringify!(SystemID)
  //   )
  // );
}
pub const xmlAttributeType_XML_ATTRIBUTE_CDATA: xmlAttributeType = 1;
pub const xmlAttributeType_XML_ATTRIBUTE_ID: xmlAttributeType = 2;
pub const xmlAttributeType_XML_ATTRIBUTE_IDREF: xmlAttributeType = 3;
pub const xmlAttributeType_XML_ATTRIBUTE_IDREFS: xmlAttributeType = 4;
pub const xmlAttributeType_XML_ATTRIBUTE_ENTITY: xmlAttributeType = 5;
pub const xmlAttributeType_XML_ATTRIBUTE_ENTITIES: xmlAttributeType = 6;
pub const xmlAttributeType_XML_ATTRIBUTE_NMTOKEN: xmlAttributeType = 7;
pub const xmlAttributeType_XML_ATTRIBUTE_NMTOKENS: xmlAttributeType = 8;
pub const xmlAttributeType_XML_ATTRIBUTE_ENUMERATION: xmlAttributeType = 9;
pub const xmlAttributeType_XML_ATTRIBUTE_NOTATION: xmlAttributeType = 10;
/// xmlAttributeType:
///
/// A DTD Attribute type definition.
pub type xmlAttributeType = u32;
pub const xmlAttributeDefault_XML_ATTRIBUTE_NONE: xmlAttributeDefault = 1;
pub const xmlAttributeDefault_XML_ATTRIBUTE_REQUIRED: xmlAttributeDefault = 2;
pub const xmlAttributeDefault_XML_ATTRIBUTE_IMPLIED: xmlAttributeDefault = 3;
pub const xmlAttributeDefault_XML_ATTRIBUTE_FIXED: xmlAttributeDefault = 4;
/// xmlAttributeDefault:
///
/// A DTD Attribute default definition.
pub type xmlAttributeDefault = u32;
/// xmlEnumeration:
///
/// List structure used when there is an enumeration in DTDs.
pub type xmlEnumeration = _xmlEnumeration;
pub type xmlEnumerationPtr = *mut xmlEnumeration;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlEnumeration {
  pub next: *mut _xmlEnumeration,
  pub name: *const xmlChar,
}
#[test]
fn bindgen_test_layout__xmlEnumeration() {
  assert_eq!(
    ::std::mem::size_of::<_xmlEnumeration>(),
    16usize,
    concat!("Size of: ", stringify!(_xmlEnumeration))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlEnumeration>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlEnumeration))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlEnumeration>())).next as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlEnumeration),
  //     "::",
  //     stringify!(next)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlEnumeration>())).name as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlEnumeration),
  //     "::",
  //     stringify!(name)
  //   )
  // );
}
/// xmlAttribute:
///
/// An Attribute declaration in a DTD.
pub type xmlAttribute = _xmlAttribute;
pub type xmlAttributePtr = *mut xmlAttribute;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlAttribute {
  pub _private: *mut ::std::os::raw::c_void,
  pub type_: xmlElementType,
  pub name: *const xmlChar,
  pub children: *mut _xmlNode,
  pub last: *mut _xmlNode,
  pub parent: *mut _xmlDtd,
  pub next: *mut _xmlNode,
  pub prev: *mut _xmlNode,
  pub doc: *mut _xmlDoc,
  pub nexth: *mut _xmlAttribute,
  pub atype: xmlAttributeType,
  pub def: xmlAttributeDefault,
  pub defaultValue: *const xmlChar,
  pub tree: xmlEnumerationPtr,
  pub prefix: *const xmlChar,
  pub elem: *const xmlChar,
}
#[test]
fn bindgen_test_layout__xmlAttribute() {
  assert_eq!(
    ::std::mem::size_of::<_xmlAttribute>(),
    120usize,
    concat!("Size of: ", stringify!(_xmlAttribute))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlAttribute>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlAttribute))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlAttribute>()))._private as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlAttribute),
  //     "::",
  //     stringify!(_private)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlAttribute>())).type_ as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlAttribute),
  //     "::",
  //     stringify!(type_)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlAttribute>())).name as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlAttribute),
  //     "::",
  //     stringify!(name)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlAttribute>())).children as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlAttribute),
  //     "::",
  //     stringify!(children)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlAttribute>())).last as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlAttribute),
  //     "::",
  //     stringify!(last)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlAttribute>())).parent as *const _ as usize },
  //   40usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlAttribute),
  //     "::",
  //     stringify!(parent)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlAttribute>())).next as *const _ as usize },
  //   48usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlAttribute),
  //     "::",
  //     stringify!(next)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlAttribute>())).prev as *const _ as usize },
  //   56usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlAttribute),
  //     "::",
  //     stringify!(prev)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlAttribute>())).doc as *const _ as usize },
  //   64usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlAttribute),
  //     "::",
  //     stringify!(doc)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlAttribute>())).nexth as *const _ as usize },
  //   72usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlAttribute),
  //     "::",
  //     stringify!(nexth)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlAttribute>())).atype as *const _ as usize },
  //   80usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlAttribute),
  //     "::",
  //     stringify!(atype)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlAttribute>())).def as *const _ as usize },
  //   84usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlAttribute),
  //     "::",
  //     stringify!(def)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlAttribute>())).defaultValue as *const _ as usize },
  //   88usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlAttribute),
  //     "::",
  //     stringify!(defaultValue)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlAttribute>())).tree as *const _ as usize },
  //   96usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlAttribute),
  //     "::",
  //     stringify!(tree)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlAttribute>())).prefix as *const _ as usize },
  //   104usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlAttribute),
  //     "::",
  //     stringify!(prefix)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlAttribute>())).elem as *const _ as usize },
  //   112usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlAttribute),
  //     "::",
  //     stringify!(elem)
  //   )
  // );
}
pub const xmlElementContentType_XML_ELEMENT_CONTENT_PCDATA: xmlElementContentType = 1;
pub const xmlElementContentType_XML_ELEMENT_CONTENT_ELEMENT: xmlElementContentType = 2;
pub const xmlElementContentType_XML_ELEMENT_CONTENT_SEQ: xmlElementContentType = 3;
pub const xmlElementContentType_XML_ELEMENT_CONTENT_OR: xmlElementContentType = 4;
/// xmlElementContentType:
///
/// Possible definitions of element content types.
pub type xmlElementContentType = u32;
pub const xmlElementContentOccur_XML_ELEMENT_CONTENT_ONCE: xmlElementContentOccur = 1;
pub const xmlElementContentOccur_XML_ELEMENT_CONTENT_OPT: xmlElementContentOccur = 2;
pub const xmlElementContentOccur_XML_ELEMENT_CONTENT_MULT: xmlElementContentOccur = 3;
pub const xmlElementContentOccur_XML_ELEMENT_CONTENT_PLUS: xmlElementContentOccur = 4;
/// xmlElementContentOccur:
///
/// Possible definitions of element content occurrences.
pub type xmlElementContentOccur = u32;
/// xmlElementContent:
///
/// An XML Element content as stored after parsing an element definition
/// in a DTD.
pub type xmlElementContent = _xmlElementContent;
pub type xmlElementContentPtr = *mut xmlElementContent;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlElementContent {
  pub type_: xmlElementContentType,
  pub ocur: xmlElementContentOccur,
  pub name: *const xmlChar,
  pub c1: *mut _xmlElementContent,
  pub c2: *mut _xmlElementContent,
  pub parent: *mut _xmlElementContent,
  pub prefix: *const xmlChar,
}
#[test]
fn bindgen_test_layout__xmlElementContent() {
  assert_eq!(
    ::std::mem::size_of::<_xmlElementContent>(),
    48usize,
    concat!("Size of: ", stringify!(_xmlElementContent))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlElementContent>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlElementContent))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlElementContent>())).type_ as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlElementContent),
  //     "::",
  //     stringify!(type_)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlElementContent>())).ocur as *const _ as usize },
  //   4usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlElementContent),
  //     "::",
  //     stringify!(ocur)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlElementContent>())).name as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlElementContent),
  //     "::",
  //     stringify!(name)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlElementContent>())).c1 as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlElementContent),
  //     "::",
  //     stringify!(c1)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlElementContent>())).c2 as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlElementContent),
  //     "::",
  //     stringify!(c2)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlElementContent>())).parent as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlElementContent),
  //     "::",
  //     stringify!(parent)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlElementContent>())).prefix as *const _ as usize },
  //   40usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlElementContent),
  //     "::",
  //     stringify!(prefix)
  //   )
  // );
}
pub const xmlElementTypeVal_XML_ELEMENT_TYPE_UNDEFINED: xmlElementTypeVal = 0;
pub const xmlElementTypeVal_XML_ELEMENT_TYPE_EMPTY: xmlElementTypeVal = 1;
pub const xmlElementTypeVal_XML_ELEMENT_TYPE_ANY: xmlElementTypeVal = 2;
pub const xmlElementTypeVal_XML_ELEMENT_TYPE_MIXED: xmlElementTypeVal = 3;
pub const xmlElementTypeVal_XML_ELEMENT_TYPE_ELEMENT: xmlElementTypeVal = 4;
/// xmlElementTypeVal:
///
/// The different possibilities for an element content type.
pub type xmlElementTypeVal = u32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlRegexp {
  _unused: [u8; 0],
}
/// xmlRegexpPtr:
///
/// A libxml regular expression, they can actually be far more complex
/// thank the POSIX regex expressions.
pub type xmlRegexp = _xmlRegexp;
pub type xmlRegexpPtr = *mut xmlRegexp;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlRegExecCtxt {
  _unused: [u8; 0],
}
/// xmlRegExecCtxtPtr:
///
/// A libxml progressive regular expression evaluation context
pub type xmlRegExecCtxt = _xmlRegExecCtxt;
pub type xmlRegExecCtxtPtr = *mut xmlRegExecCtxt;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlDict {
  _unused: [u8; 0],
}
pub type xmlDict = _xmlDict;
pub type xmlDictPtr = *mut xmlDict;
extern "C" {
  pub fn xmlInitializeDict() -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlDictCreate() -> xmlDictPtr;
}
extern "C" {
  pub fn xmlDictSetLimit(dict: xmlDictPtr, limit: usize) -> usize;
}
extern "C" {
  pub fn xmlDictGetUsage(dict: xmlDictPtr) -> usize;
}
extern "C" {
  pub fn xmlDictCreateSub(sub: xmlDictPtr) -> xmlDictPtr;
}
extern "C" {
  pub fn xmlDictReference(dict: xmlDictPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlDictFree(dict: xmlDictPtr);
}
extern "C" {
  pub fn xmlDictLookup(
    dict: xmlDictPtr,
    name: *const xmlChar,
    len: ::std::os::raw::c_int,
  ) -> *const xmlChar;
}
extern "C" {
  pub fn xmlDictExists(
    dict: xmlDictPtr,
    name: *const xmlChar,
    len: ::std::os::raw::c_int,
  ) -> *const xmlChar;
}
extern "C" {
  pub fn xmlDictQLookup(
    dict: xmlDictPtr,
    prefix: *const xmlChar,
    name: *const xmlChar,
  ) -> *const xmlChar;
}
extern "C" {
  pub fn xmlDictOwns(dict: xmlDictPtr, str: *const xmlChar) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlDictSize(dict: xmlDictPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlDictCleanup();
}
extern "C" {
  pub fn xmlRegexpCompile(regexp: *const xmlChar) -> xmlRegexpPtr;
}
extern "C" {
  pub fn xmlRegFreeRegexp(regexp: xmlRegexpPtr);
}
extern "C" {
  pub fn xmlRegexpExec(comp: xmlRegexpPtr, value: *const xmlChar) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlRegexpPrint(output: *mut FILE, regexp: xmlRegexpPtr);
}
extern "C" {
  pub fn xmlRegexpIsDeterminist(comp: xmlRegexpPtr) -> ::std::os::raw::c_int;
}
/// xmlRegExecCallbacks:
/// @exec: the regular expression context
/// @token: the current token string
/// @transdata: transition data
/// @inputdata: input data
///
/// Callback function when doing a transition in the automata
pub type xmlRegExecCallbacks = ::std::option::Option<
  unsafe extern "C" fn(
    exec: xmlRegExecCtxtPtr,
    token: *const xmlChar,
    transdata: *mut ::std::os::raw::c_void,
    inputdata: *mut ::std::os::raw::c_void,
  ),
>;
extern "C" {
  pub fn xmlRegNewExecCtxt(
    comp: xmlRegexpPtr,
    callback: xmlRegExecCallbacks,
    data: *mut ::std::os::raw::c_void,
  ) -> xmlRegExecCtxtPtr;
}
extern "C" {
  pub fn xmlRegFreeExecCtxt(exec: xmlRegExecCtxtPtr);
}
extern "C" {
  pub fn xmlRegExecPushString(
    exec: xmlRegExecCtxtPtr,
    value: *const xmlChar,
    data: *mut ::std::os::raw::c_void,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlRegExecPushString2(
    exec: xmlRegExecCtxtPtr,
    value: *const xmlChar,
    value2: *const xmlChar,
    data: *mut ::std::os::raw::c_void,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlRegExecNextValues(
    exec: xmlRegExecCtxtPtr,
    nbval: *mut ::std::os::raw::c_int,
    nbneg: *mut ::std::os::raw::c_int,
    values: *mut *mut xmlChar,
    terminal: *mut ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlRegExecErrInfo(
    exec: xmlRegExecCtxtPtr,
    string: *mut *const xmlChar,
    nbval: *mut ::std::os::raw::c_int,
    nbneg: *mut ::std::os::raw::c_int,
    values: *mut *mut xmlChar,
    terminal: *mut ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlExpCtxt {
  _unused: [u8; 0],
}
pub type xmlExpCtxt = _xmlExpCtxt;
pub type xmlExpCtxtPtr = *mut xmlExpCtxt;
extern "C" {
  pub fn xmlExpFreeCtxt(ctxt: xmlExpCtxtPtr);
}
extern "C" {
  pub fn xmlExpNewCtxt(maxNodes: ::std::os::raw::c_int, dict: xmlDictPtr) -> xmlExpCtxtPtr;
}
extern "C" {
  pub fn xmlExpCtxtNbNodes(ctxt: xmlExpCtxtPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlExpCtxtNbCons(ctxt: xmlExpCtxtPtr) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlExpNode {
  _unused: [u8; 0],
}
pub type xmlExpNode = _xmlExpNode;
pub type xmlExpNodePtr = *mut xmlExpNode;
pub const xmlExpNodeType_XML_EXP_EMPTY: xmlExpNodeType = 0;
pub const xmlExpNodeType_XML_EXP_FORBID: xmlExpNodeType = 1;
pub const xmlExpNodeType_XML_EXP_ATOM: xmlExpNodeType = 2;
pub const xmlExpNodeType_XML_EXP_SEQ: xmlExpNodeType = 3;
pub const xmlExpNodeType_XML_EXP_OR: xmlExpNodeType = 4;
pub const xmlExpNodeType_XML_EXP_COUNT: xmlExpNodeType = 5;
pub type xmlExpNodeType = u32;
extern "C" {
  #[link_name = "\u{1}forbiddenExp"]
  pub static mut forbiddenExp: xmlExpNodePtr;
}
extern "C" {
  #[link_name = "\u{1}emptyExp"]
  pub static mut emptyExp: xmlExpNodePtr;
}
extern "C" {
  pub fn xmlExpFree(ctxt: xmlExpCtxtPtr, expr: xmlExpNodePtr);
}
extern "C" {
  pub fn xmlExpRef(expr: xmlExpNodePtr);
}
extern "C" {
  pub fn xmlExpParse(ctxt: xmlExpCtxtPtr, expr: *const ::std::os::raw::c_char) -> xmlExpNodePtr;
}
extern "C" {
  pub fn xmlExpNewAtom(
    ctxt: xmlExpCtxtPtr,
    name: *const xmlChar,
    len: ::std::os::raw::c_int,
  ) -> xmlExpNodePtr;
}
extern "C" {
  pub fn xmlExpNewOr(
    ctxt: xmlExpCtxtPtr,
    left: xmlExpNodePtr,
    right: xmlExpNodePtr,
  ) -> xmlExpNodePtr;
}
extern "C" {
  pub fn xmlExpNewSeq(
    ctxt: xmlExpCtxtPtr,
    left: xmlExpNodePtr,
    right: xmlExpNodePtr,
  ) -> xmlExpNodePtr;
}
extern "C" {
  pub fn xmlExpNewRange(
    ctxt: xmlExpCtxtPtr,
    subset: xmlExpNodePtr,
    min: ::std::os::raw::c_int,
    max: ::std::os::raw::c_int,
  ) -> xmlExpNodePtr;
}
extern "C" {
  pub fn xmlExpIsNillable(expr: xmlExpNodePtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlExpMaxToken(expr: xmlExpNodePtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlExpGetLanguage(
    ctxt: xmlExpCtxtPtr,
    expr: xmlExpNodePtr,
    langList: *mut *const xmlChar,
    len: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlExpGetStart(
    ctxt: xmlExpCtxtPtr,
    expr: xmlExpNodePtr,
    tokList: *mut *const xmlChar,
    len: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlExpStringDerive(
    ctxt: xmlExpCtxtPtr,
    expr: xmlExpNodePtr,
    str: *const xmlChar,
    len: ::std::os::raw::c_int,
  ) -> xmlExpNodePtr;
}
extern "C" {
  pub fn xmlExpExpDerive(
    ctxt: xmlExpCtxtPtr,
    expr: xmlExpNodePtr,
    sub: xmlExpNodePtr,
  ) -> xmlExpNodePtr;
}
extern "C" {
  pub fn xmlExpSubsume(
    ctxt: xmlExpCtxtPtr,
    expr: xmlExpNodePtr,
    sub: xmlExpNodePtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlExpDump(buf: xmlBufferPtr, expr: xmlExpNodePtr);
}
/// xmlElement:
///
/// An XML Element declaration from a DTD.
pub type xmlElement = _xmlElement;
pub type xmlElementPtr = *mut xmlElement;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlElement {
  pub _private: *mut ::std::os::raw::c_void,
  pub type_: xmlElementType,
  pub name: *const xmlChar,
  pub children: *mut _xmlNode,
  pub last: *mut _xmlNode,
  pub parent: *mut _xmlDtd,
  pub next: *mut _xmlNode,
  pub prev: *mut _xmlNode,
  pub doc: *mut _xmlDoc,
  pub etype: xmlElementTypeVal,
  pub content: xmlElementContentPtr,
  pub attributes: xmlAttributePtr,
  pub prefix: *const xmlChar,
  pub contModel: xmlRegexpPtr,
}
#[test]
fn bindgen_test_layout__xmlElement() {
  assert_eq!(
    ::std::mem::size_of::<_xmlElement>(),
    112usize,
    concat!("Size of: ", stringify!(_xmlElement))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlElement>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlElement))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlElement>()))._private as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlElement),
  //     "::",
  //     stringify!(_private)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlElement>())).type_ as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlElement),
  //     "::",
  //     stringify!(type_)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlElement>())).name as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlElement),
  //     "::",
  //     stringify!(name)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlElement>())).children as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlElement),
  //     "::",
  //     stringify!(children)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlElement>())).last as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlElement),
  //     "::",
  //     stringify!(last)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlElement>())).parent as *const _ as usize },
  //   40usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlElement),
  //     "::",
  //     stringify!(parent)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlElement>())).next as *const _ as usize },
  //   48usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlElement),
  //     "::",
  //     stringify!(next)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlElement>())).prev as *const _ as usize },
  //   56usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlElement),
  //     "::",
  //     stringify!(prev)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlElement>())).doc as *const _ as usize },
  //   64usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlElement),
  //     "::",
  //     stringify!(doc)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlElement>())).etype as *const _ as usize },
  //   72usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlElement),
  //     "::",
  //     stringify!(etype)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlElement>())).content as *const _ as usize },
  //   80usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlElement),
  //     "::",
  //     stringify!(content)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlElement>())).attributes as *const _ as usize },
  //   88usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlElement),
  //     "::",
  //     stringify!(attributes)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlElement>())).prefix as *const _ as usize },
  //   96usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlElement),
  //     "::",
  //     stringify!(prefix)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlElement>())).contModel as *const _ as usize },
  //   104usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlElement),
  //     "::",
  //     stringify!(contModel)
  //   )
  // );
}
pub use self::xmlElementType as xmlNsType;
/// xmlNs:
///
/// An XML namespace.
/// Note that prefix == NULL is valid, it defines the default namespace
/// within the subtree (until overridden).
///
/// xmlNsType is unified with xmlElementType.
pub type xmlNs = _xmlNs;
pub type xmlNsPtr = *mut xmlNs;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlNs {
  pub next: *mut _xmlNs,
  pub type_: xmlNsType,
  pub href: *const xmlChar,
  pub prefix: *const xmlChar,
  pub _private: *mut ::std::os::raw::c_void,
  pub context: *mut _xmlDoc,
}
#[test]
fn bindgen_test_layout__xmlNs() {
  assert_eq!(
    ::std::mem::size_of::<_xmlNs>(),
    48usize,
    concat!("Size of: ", stringify!(_xmlNs))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlNs>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlNs))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlNs>())).next as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlNs),
  //     "::",
  //     stringify!(next)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlNs>())).type_ as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlNs),
  //     "::",
  //     stringify!(type_)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlNs>())).href as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlNs),
  //     "::",
  //     stringify!(href)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlNs>())).prefix as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlNs),
  //     "::",
  //     stringify!(prefix)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlNs>()))._private as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlNs),
  //     "::",
  //     stringify!(_private)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlNs>())).context as *const _ as usize },
  //   40usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlNs),
  //     "::",
  //     stringify!(context)
  //   )
  // );
}
/// xmlDtd:
///
/// An XML DTD, as defined by <!DOCTYPE ... There is actually one for
/// the internal subset and for the external subset.
pub type xmlDtd = _xmlDtd;
pub type xmlDtdPtr = *mut xmlDtd;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlDtd {
  pub _private: *mut ::std::os::raw::c_void,
  pub type_: xmlElementType,
  pub name: *const xmlChar,
  pub children: *mut _xmlNode,
  pub last: *mut _xmlNode,
  pub parent: *mut _xmlDoc,
  pub next: *mut _xmlNode,
  pub prev: *mut _xmlNode,
  pub doc: *mut _xmlDoc,
  pub notations: *mut ::std::os::raw::c_void,
  pub elements: *mut ::std::os::raw::c_void,
  pub attributes: *mut ::std::os::raw::c_void,
  pub entities: *mut ::std::os::raw::c_void,
  pub ExternalID: *const xmlChar,
  pub SystemID: *const xmlChar,
  pub pentities: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout__xmlDtd() {
  assert_eq!(
    ::std::mem::size_of::<_xmlDtd>(),
    128usize,
    concat!("Size of: ", stringify!(_xmlDtd))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlDtd>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlDtd))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDtd>()))._private as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDtd),
  //     "::",
  //     stringify!(_private)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDtd>())).type_ as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDtd),
  //     "::",
  //     stringify!(type_)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDtd>())).name as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDtd),
  //     "::",
  //     stringify!(name)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDtd>())).children as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDtd),
  //     "::",
  //     stringify!(children)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDtd>())).last as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDtd),
  //     "::",
  //     stringify!(last)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDtd>())).parent as *const _ as usize },
  //   40usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDtd),
  //     "::",
  //     stringify!(parent)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDtd>())).next as *const _ as usize },
  //   48usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDtd),
  //     "::",
  //     stringify!(next)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDtd>())).prev as *const _ as usize },
  //   56usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDtd),
  //     "::",
  //     stringify!(prev)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDtd>())).doc as *const _ as usize },
  //   64usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDtd),
  //     "::",
  //     stringify!(doc)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDtd>())).notations as *const _ as usize },
  //   72usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDtd),
  //     "::",
  //     stringify!(notations)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDtd>())).elements as *const _ as usize },
  //   80usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDtd),
  //     "::",
  //     stringify!(elements)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDtd>())).attributes as *const _ as usize },
  //   88usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDtd),
  //     "::",
  //     stringify!(attributes)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDtd>())).entities as *const _ as usize },
  //   96usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDtd),
  //     "::",
  //     stringify!(entities)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDtd>())).ExternalID as *const _ as usize },
  //   104usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDtd),
  //     "::",
  //     stringify!(ExternalID)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDtd>())).SystemID as *const _ as usize },
  //   112usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDtd),
  //     "::",
  //     stringify!(SystemID)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDtd>())).pentities as *const _ as usize },
  //   120usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDtd),
  //     "::",
  //     stringify!(pentities)
  //   )
  // );
}
/// xmlAttr:
///
/// An attribute on an XML node.
pub type xmlAttr = _xmlAttr;
pub type xmlAttrPtr = *mut xmlAttr;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlAttr {
  pub _private: *mut ::std::os::raw::c_void,
  pub type_: xmlElementType,
  pub name: *const xmlChar,
  pub children: *mut _xmlNode,
  pub last: *mut _xmlNode,
  pub parent: *mut _xmlNode,
  pub next: *mut _xmlAttr,
  pub prev: *mut _xmlAttr,
  pub doc: *mut _xmlDoc,
  pub ns: *mut xmlNs,
  pub atype: xmlAttributeType,
  pub psvi: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout__xmlAttr() {
  assert_eq!(
    ::std::mem::size_of::<_xmlAttr>(),
    96usize,
    concat!("Size of: ", stringify!(_xmlAttr))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlAttr>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlAttr))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlAttr>()))._private as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlAttr),
  //     "::",
  //     stringify!(_private)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlAttr>())).type_ as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlAttr),
  //     "::",
  //     stringify!(type_)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlAttr>())).name as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlAttr),
  //     "::",
  //     stringify!(name)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlAttr>())).children as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlAttr),
  //     "::",
  //     stringify!(children)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlAttr>())).last as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlAttr),
  //     "::",
  //     stringify!(last)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlAttr>())).parent as *const _ as usize },
  //   40usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlAttr),
  //     "::",
  //     stringify!(parent)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlAttr>())).next as *const _ as usize },
  //   48usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlAttr),
  //     "::",
  //     stringify!(next)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlAttr>())).prev as *const _ as usize },
  //   56usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlAttr),
  //     "::",
  //     stringify!(prev)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlAttr>())).doc as *const _ as usize },
  //   64usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlAttr),
  //     "::",
  //     stringify!(doc)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlAttr>())).ns as *const _ as usize },
  //   72usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlAttr),
  //     "::",
  //     stringify!(ns)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlAttr>())).atype as *const _ as usize },
  //   80usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlAttr),
  //     "::",
  //     stringify!(atype)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlAttr>())).psvi as *const _ as usize },
  //   88usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlAttr),
  //     "::",
  //     stringify!(psvi)
  //   )
  // );
}
/// xmlID:
///
/// An XML ID instance.
pub type xmlID = _xmlID;
pub type xmlIDPtr = *mut xmlID;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlID {
  pub next: *mut _xmlID,
  pub value: *const xmlChar,
  pub attr: xmlAttrPtr,
  pub name: *const xmlChar,
  pub lineno: ::std::os::raw::c_int,
  pub doc: *mut _xmlDoc,
}
#[test]
fn bindgen_test_layout__xmlID() {
  assert_eq!(
    ::std::mem::size_of::<_xmlID>(),
    48usize,
    concat!("Size of: ", stringify!(_xmlID))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlID>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlID))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlID>())).next as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlID),
  //     "::",
  //     stringify!(next)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlID>())).value as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlID),
  //     "::",
  //     stringify!(value)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlID>())).attr as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlID),
  //     "::",
  //     stringify!(attr)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlID>())).name as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlID),
  //     "::",
  //     stringify!(name)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlID>())).lineno as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlID),
  //     "::",
  //     stringify!(lineno)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlID>())).doc as *const _ as usize },
  //   40usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlID),
  //     "::",
  //     stringify!(doc)
  //   )
  // );
}
/// xmlRef:
///
/// An XML IDREF instance.
pub type xmlRef = _xmlRef;
pub type xmlRefPtr = *mut xmlRef;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlRef {
  pub next: *mut _xmlRef,
  pub value: *const xmlChar,
  pub attr: xmlAttrPtr,
  pub name: *const xmlChar,
  pub lineno: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout__xmlRef() {
  assert_eq!(
    ::std::mem::size_of::<_xmlRef>(),
    40usize,
    concat!("Size of: ", stringify!(_xmlRef))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlRef>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlRef))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlRef>())).next as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlRef),
  //     "::",
  //     stringify!(next)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlRef>())).value as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlRef),
  //     "::",
  //     stringify!(value)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlRef>())).attr as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlRef),
  //     "::",
  //     stringify!(attr)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlRef>())).name as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlRef),
  //     "::",
  //     stringify!(name)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlRef>())).lineno as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlRef),
  //     "::",
  //     stringify!(lineno)
  //   )
  // );
}
/// xmlNode:
///
/// A node in an XML tree.
pub type xmlNode = _xmlNode;
pub type xmlNodePtr = *mut xmlNode;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlNode {
  pub _private: *mut ::std::os::raw::c_void,
  pub type_: xmlElementType,
  pub name: *const xmlChar,
  pub children: *mut _xmlNode,
  pub last: *mut _xmlNode,
  pub parent: *mut _xmlNode,
  pub next: *mut _xmlNode,
  pub prev: *mut _xmlNode,
  pub doc: *mut _xmlDoc,
  pub ns: *mut xmlNs,
  pub content: *mut xmlChar,
  pub properties: *mut _xmlAttr,
  pub nsDef: *mut xmlNs,
  pub psvi: *mut ::std::os::raw::c_void,
  pub line: ::std::os::raw::c_ushort,
  pub extra: ::std::os::raw::c_ushort,
}
#[test]
fn bindgen_test_layout__xmlNode() {
  assert_eq!(
    ::std::mem::size_of::<_xmlNode>(),
    120usize,
    concat!("Size of: ", stringify!(_xmlNode))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlNode>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlNode))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlNode>()))._private as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlNode),
  //     "::",
  //     stringify!(_private)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlNode>())).type_ as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlNode),
  //     "::",
  //     stringify!(type_)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlNode>())).name as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlNode),
  //     "::",
  //     stringify!(name)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlNode>())).children as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlNode),
  //     "::",
  //     stringify!(children)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlNode>())).last as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlNode),
  //     "::",
  //     stringify!(last)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlNode>())).parent as *const _ as usize },
  //   40usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlNode),
  //     "::",
  //     stringify!(parent)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlNode>())).next as *const _ as usize },
  //   48usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlNode),
  //     "::",
  //     stringify!(next)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlNode>())).prev as *const _ as usize },
  //   56usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlNode),
  //     "::",
  //     stringify!(prev)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlNode>())).doc as *const _ as usize },
  //   64usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlNode),
  //     "::",
  //     stringify!(doc)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlNode>())).ns as *const _ as usize },
  //   72usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlNode),
  //     "::",
  //     stringify!(ns)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlNode>())).content as *const _ as usize },
  //   80usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlNode),
  //     "::",
  //     stringify!(content)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlNode>())).properties as *const _ as usize },
  //   88usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlNode),
  //     "::",
  //     stringify!(properties)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlNode>())).nsDef as *const _ as usize },
  //   96usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlNode),
  //     "::",
  //     stringify!(nsDef)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlNode>())).psvi as *const _ as usize },
  //   104usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlNode),
  //     "::",
  //     stringify!(psvi)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlNode>())).line as *const _ as usize },
  //   112usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlNode),
  //     "::",
  //     stringify!(line)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlNode>())).extra as *const _ as usize },
  //   114usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlNode),
  //     "::",
  //     stringify!(extra)
  //   )
  // );
}
pub const xmlDocProperties_XML_DOC_WELLFORMED: xmlDocProperties = 1;
pub const xmlDocProperties_XML_DOC_NSVALID: xmlDocProperties = 2;
pub const xmlDocProperties_XML_DOC_OLD10: xmlDocProperties = 4;
pub const xmlDocProperties_XML_DOC_DTDVALID: xmlDocProperties = 8;
pub const xmlDocProperties_XML_DOC_XINCLUDE: xmlDocProperties = 16;
pub const xmlDocProperties_XML_DOC_USERBUILT: xmlDocProperties = 32;
pub const xmlDocProperties_XML_DOC_INTERNAL: xmlDocProperties = 64;
pub const xmlDocProperties_XML_DOC_HTML: xmlDocProperties = 128;
/// xmlDocProperty
///
/// Set of properties of the document as found by the parser
/// Some of them are linked to similary named xmlParserOption
pub type xmlDocProperties = u32;
/// xmlDoc:
///
/// An XML document.
pub type xmlDoc = _xmlDoc;
pub type xmlDocPtr = *mut xmlDoc;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlDoc {
  pub _private: *mut ::std::os::raw::c_void,
  pub type_: xmlElementType,
  pub name: *mut ::std::os::raw::c_char,
  pub children: *mut _xmlNode,
  pub last: *mut _xmlNode,
  pub parent: *mut _xmlNode,
  pub next: *mut _xmlNode,
  pub prev: *mut _xmlNode,
  pub doc: *mut _xmlDoc,
  pub compression: ::std::os::raw::c_int,
  pub standalone: ::std::os::raw::c_int,
  pub intSubset: *mut _xmlDtd,
  pub extSubset: *mut _xmlDtd,
  pub oldNs: *mut _xmlNs,
  pub version: *const xmlChar,
  pub encoding: *const xmlChar,
  pub ids: *mut ::std::os::raw::c_void,
  pub refs: *mut ::std::os::raw::c_void,
  pub URL: *const xmlChar,
  pub charset: ::std::os::raw::c_int,
  pub dict: *mut _xmlDict,
  pub psvi: *mut ::std::os::raw::c_void,
  pub parseFlags: ::std::os::raw::c_int,
  pub properties: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout__xmlDoc() {
  assert_eq!(
    ::std::mem::size_of::<_xmlDoc>(),
    176usize,
    concat!("Size of: ", stringify!(_xmlDoc))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlDoc>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlDoc))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDoc>()))._private as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDoc),
  //     "::",
  //     stringify!(_private)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDoc>())).type_ as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDoc),
  //     "::",
  //     stringify!(type_)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDoc>())).name as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDoc),
  //     "::",
  //     stringify!(name)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDoc>())).children as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDoc),
  //     "::",
  //     stringify!(children)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDoc>())).last as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDoc),
  //     "::",
  //     stringify!(last)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDoc>())).parent as *const _ as usize },
  //   40usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDoc),
  //     "::",
  //     stringify!(parent)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDoc>())).next as *const _ as usize },
  //   48usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDoc),
  //     "::",
  //     stringify!(next)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDoc>())).prev as *const _ as usize },
  //   56usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDoc),
  //     "::",
  //     stringify!(prev)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDoc>())).doc as *const _ as usize },
  //   64usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDoc),
  //     "::",
  //     stringify!(doc)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDoc>())).compression as *const _ as usize },
  //   72usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDoc),
  //     "::",
  //     stringify!(compression)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDoc>())).standalone as *const _ as usize },
  //   76usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDoc),
  //     "::",
  //     stringify!(standalone)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDoc>())).intSubset as *const _ as usize },
  //   80usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDoc),
  //     "::",
  //     stringify!(intSubset)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDoc>())).extSubset as *const _ as usize },
  //   88usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDoc),
  //     "::",
  //     stringify!(extSubset)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDoc>())).oldNs as *const _ as usize },
  //   96usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDoc),
  //     "::",
  //     stringify!(oldNs)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDoc>())).version as *const _ as usize },
  //   104usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDoc),
  //     "::",
  //     stringify!(version)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDoc>())).encoding as *const _ as usize },
  //   112usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDoc),
  //     "::",
  //     stringify!(encoding)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDoc>())).ids as *const _ as usize },
  //   120usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDoc),
  //     "::",
  //     stringify!(ids)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDoc>())).refs as *const _ as usize },
  //   128usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDoc),
  //     "::",
  //     stringify!(refs)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDoc>())).URL as *const _ as usize },
  //   136usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDoc),
  //     "::",
  //     stringify!(URL)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDoc>())).charset as *const _ as usize },
  //   144usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDoc),
  //     "::",
  //     stringify!(charset)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDoc>())).dict as *const _ as usize },
  //   152usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDoc),
  //     "::",
  //     stringify!(dict)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDoc>())).psvi as *const _ as usize },
  //   160usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDoc),
  //     "::",
  //     stringify!(psvi)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDoc>())).parseFlags as *const _ as usize },
  //   168usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDoc),
  //     "::",
  //     stringify!(parseFlags)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDoc>())).properties as *const _ as usize },
  //   172usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDoc),
  //     "::",
  //     stringify!(properties)
  //   )
  // );
}
pub type xmlDOMWrapCtxt = _xmlDOMWrapCtxt;
pub type xmlDOMWrapCtxtPtr = *mut xmlDOMWrapCtxt;
/// xmlDOMWrapAcquireNsFunction:
/// @ctxt:  a DOM wrapper context
/// @node:  the context node (element or attribute)
/// @nsName:  the requested namespace name
/// @nsPrefix:  the requested namespace prefix
///
/// A function called to acquire namespaces (xmlNs) from the wrapper.
///
/// Returns an xmlNsPtr or NULL in case of an error.
pub type xmlDOMWrapAcquireNsFunction = ::std::option::Option<
  unsafe extern "C" fn(
    ctxt: xmlDOMWrapCtxtPtr,
    node: xmlNodePtr,
    nsName: *const xmlChar,
    nsPrefix: *const xmlChar,
  ) -> xmlNsPtr,
>;
/// xmlDOMWrapCtxt:
///
/// Context for DOM wrapper-operations.
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlDOMWrapCtxt {
  pub _private: *mut ::std::os::raw::c_void,
  pub type_: ::std::os::raw::c_int,
  pub namespaceMap: *mut ::std::os::raw::c_void,
  pub getNsForNodeFunc: xmlDOMWrapAcquireNsFunction,
}
#[test]
fn bindgen_test_layout__xmlDOMWrapCtxt() {
  assert_eq!(
    ::std::mem::size_of::<_xmlDOMWrapCtxt>(),
    32usize,
    concat!("Size of: ", stringify!(_xmlDOMWrapCtxt))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlDOMWrapCtxt>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlDOMWrapCtxt))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDOMWrapCtxt>()))._private as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDOMWrapCtxt),
  //     "::",
  //     stringify!(_private)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDOMWrapCtxt>())).type_ as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDOMWrapCtxt),
  //     "::",
  //     stringify!(type_)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDOMWrapCtxt>())).namespaceMap as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDOMWrapCtxt),
  //     "::",
  //     stringify!(namespaceMap)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlDOMWrapCtxt>())).getNsForNodeFunc as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlDOMWrapCtxt),
  //     "::",
  //     stringify!(getNsForNodeFunc)
  //   )
  // );
}
extern "C" {
  pub fn xmlValidateNCName(
    value: *const xmlChar,
    space: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlValidateQName(
    value: *const xmlChar,
    space: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlValidateName(
    value: *const xmlChar,
    space: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlValidateNMToken(
    value: *const xmlChar,
    space: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlBuildQName(
    ncname: *const xmlChar,
    prefix: *const xmlChar,
    memory: *mut xmlChar,
    len: ::std::os::raw::c_int,
  ) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlSplitQName2(name: *const xmlChar, prefix: *mut *mut xmlChar) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlSplitQName3(name: *const xmlChar, len: *mut ::std::os::raw::c_int) -> *const xmlChar;
}
extern "C" {
  pub fn xmlSetBufferAllocationScheme(scheme: xmlBufferAllocationScheme);
}
extern "C" {
  pub fn xmlGetBufferAllocationScheme() -> xmlBufferAllocationScheme;
}
extern "C" {
  pub fn xmlBufferCreate() -> xmlBufferPtr;
}
extern "C" {
  pub fn xmlBufferCreateSize(size: usize) -> xmlBufferPtr;
}
extern "C" {
  pub fn xmlBufferCreateStatic(mem: *mut ::std::os::raw::c_void, size: usize) -> xmlBufferPtr;
}
extern "C" {
  pub fn xmlBufferResize(buf: xmlBufferPtr, size: ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlBufferFree(buf: xmlBufferPtr);
}
extern "C" {
  pub fn xmlBufferDump(file: *mut FILE, buf: xmlBufferPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlBufferAdd(
    buf: xmlBufferPtr,
    str: *const xmlChar,
    len: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlBufferAddHead(
    buf: xmlBufferPtr,
    str: *const xmlChar,
    len: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlBufferCat(buf: xmlBufferPtr, str: *const xmlChar) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlBufferCCat(
    buf: xmlBufferPtr,
    str: *const ::std::os::raw::c_char,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlBufferShrink(buf: xmlBufferPtr, len: ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlBufferGrow(buf: xmlBufferPtr, len: ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlBufferEmpty(buf: xmlBufferPtr);
}
extern "C" {
  pub fn xmlBufferContent(buf: *const xmlBuffer) -> *const xmlChar;
}
extern "C" {
  pub fn xmlBufferDetach(buf: xmlBufferPtr) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlBufferSetAllocationScheme(buf: xmlBufferPtr, scheme: xmlBufferAllocationScheme);
}
extern "C" {
  pub fn xmlBufferLength(buf: *const xmlBuffer) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlCreateIntSubset(
    doc: xmlDocPtr,
    name: *const xmlChar,
    ExternalID: *const xmlChar,
    SystemID: *const xmlChar,
  ) -> xmlDtdPtr;
}
extern "C" {
  pub fn xmlNewDtd(
    doc: xmlDocPtr,
    name: *const xmlChar,
    ExternalID: *const xmlChar,
    SystemID: *const xmlChar,
  ) -> xmlDtdPtr;
}
extern "C" {
  pub fn xmlGetIntSubset(doc: *const xmlDoc) -> xmlDtdPtr;
}
extern "C" {
  pub fn xmlFreeDtd(cur: xmlDtdPtr);
}
extern "C" {
  pub fn xmlNewGlobalNs(doc: xmlDocPtr, href: *const xmlChar, prefix: *const xmlChar) -> xmlNsPtr;
}
extern "C" {
  pub fn xmlNewNs(node: xmlNodePtr, href: *const xmlChar, prefix: *const xmlChar) -> xmlNsPtr;
}
extern "C" {
  pub fn xmlFreeNs(cur: xmlNsPtr);
}
extern "C" {
  pub fn xmlFreeNsList(cur: xmlNsPtr);
}
extern "C" {
  pub fn xmlNewDoc(version: *const xmlChar) -> xmlDocPtr;
}
extern "C" {
  pub fn xmlFreeDoc(cur: xmlDocPtr);
}
extern "C" {
  pub fn xmlNewDocProp(doc: xmlDocPtr, name: *const xmlChar, value: *const xmlChar) -> xmlAttrPtr;
}
extern "C" {
  pub fn xmlNewProp(node: xmlNodePtr, name: *const xmlChar, value: *const xmlChar) -> xmlAttrPtr;
}
extern "C" {
  pub fn xmlNewNsProp(
    node: xmlNodePtr,
    ns: xmlNsPtr,
    name: *const xmlChar,
    value: *const xmlChar,
  ) -> xmlAttrPtr;
}
extern "C" {
  pub fn xmlNewNsPropEatName(
    node: xmlNodePtr,
    ns: xmlNsPtr,
    name: *mut xmlChar,
    value: *const xmlChar,
  ) -> xmlAttrPtr;
}
extern "C" {
  pub fn xmlFreePropList(cur: xmlAttrPtr);
}
extern "C" {
  pub fn xmlFreeProp(cur: xmlAttrPtr);
}
extern "C" {
  pub fn xmlCopyProp(target: xmlNodePtr, cur: xmlAttrPtr) -> xmlAttrPtr;
}
extern "C" {
  pub fn xmlCopyPropList(target: xmlNodePtr, cur: xmlAttrPtr) -> xmlAttrPtr;
}
extern "C" {
  pub fn xmlCopyDtd(dtd: xmlDtdPtr) -> xmlDtdPtr;
}
extern "C" {
  pub fn xmlCopyDoc(doc: xmlDocPtr, recursive: ::std::os::raw::c_int) -> xmlDocPtr;
}
extern "C" {
  pub fn xmlNewDocNode(
    doc: xmlDocPtr,
    ns: xmlNsPtr,
    name: *const xmlChar,
    content: *const xmlChar,
  ) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlNewDocNodeEatName(
    doc: xmlDocPtr,
    ns: xmlNsPtr,
    name: *mut xmlChar,
    content: *const xmlChar,
  ) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlNewNode(ns: xmlNsPtr, name: *const xmlChar) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlNewNodeEatName(ns: xmlNsPtr, name: *mut xmlChar) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlNewChild(
    parent: xmlNodePtr,
    ns: xmlNsPtr,
    name: *const xmlChar,
    content: *const xmlChar,
  ) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlNewDocText(doc: *const xmlDoc, content: *const xmlChar) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlNewText(content: *const xmlChar) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlNewDocPI(doc: xmlDocPtr, name: *const xmlChar, content: *const xmlChar) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlNewPI(name: *const xmlChar, content: *const xmlChar) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlNewDocTextLen(
    doc: xmlDocPtr,
    content: *const xmlChar,
    len: ::std::os::raw::c_int,
  ) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlNewTextLen(content: *const xmlChar, len: ::std::os::raw::c_int) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlNewDocComment(doc: xmlDocPtr, content: *const xmlChar) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlNewComment(content: *const xmlChar) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlNewCDataBlock(
    doc: xmlDocPtr,
    content: *const xmlChar,
    len: ::std::os::raw::c_int,
  ) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlNewCharRef(doc: xmlDocPtr, name: *const xmlChar) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlNewReference(doc: *const xmlDoc, name: *const xmlChar) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlCopyNode(node: xmlNodePtr, recursive: ::std::os::raw::c_int) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlDocCopyNode(
    node: xmlNodePtr,
    doc: xmlDocPtr,
    recursive: ::std::os::raw::c_int,
  ) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlDocCopyNodeList(doc: xmlDocPtr, node: xmlNodePtr) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlCopyNodeList(node: xmlNodePtr) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlNewTextChild(
    parent: xmlNodePtr,
    ns: xmlNsPtr,
    name: *const xmlChar,
    content: *const xmlChar,
  ) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlNewDocRawNode(
    doc: xmlDocPtr,
    ns: xmlNsPtr,
    name: *const xmlChar,
    content: *const xmlChar,
  ) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlNewDocFragment(doc: xmlDocPtr) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlGetLineNo(node: *const xmlNode) -> ::std::os::raw::c_long;
}
extern "C" {
  pub fn xmlGetNodePath(node: *const xmlNode) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlDocGetRootElement(doc: *const xmlDoc) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlGetLastChild(parent: *const xmlNode) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlNodeIsText(node: *const xmlNode) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlIsBlankNode(node: *const xmlNode) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlDocSetRootElement(doc: xmlDocPtr, root: xmlNodePtr) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlNodeSetName(cur: xmlNodePtr, name: *const xmlChar);
}
extern "C" {
  pub fn xmlAddChild(parent: xmlNodePtr, cur: xmlNodePtr) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlAddChildList(parent: xmlNodePtr, cur: xmlNodePtr) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlReplaceNode(old: xmlNodePtr, cur: xmlNodePtr) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlAddPrevSibling(cur: xmlNodePtr, elem: xmlNodePtr) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlAddSibling(cur: xmlNodePtr, elem: xmlNodePtr) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlAddNextSibling(cur: xmlNodePtr, elem: xmlNodePtr) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlUnlinkNode(cur: xmlNodePtr);
}
extern "C" {
  pub fn xmlTextMerge(first: xmlNodePtr, second: xmlNodePtr) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlTextConcat(
    node: xmlNodePtr,
    content: *const xmlChar,
    len: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlFreeNodeList(cur: xmlNodePtr);
}
extern "C" {
  pub fn xmlFreeNode(cur: xmlNodePtr);
}
extern "C" {
  pub fn xmlSetTreeDoc(tree: xmlNodePtr, doc: xmlDocPtr);
}
extern "C" {
  pub fn xmlSetListDoc(list: xmlNodePtr, doc: xmlDocPtr);
}
extern "C" {
  pub fn xmlSearchNs(doc: xmlDocPtr, node: xmlNodePtr, nameSpace: *const xmlChar) -> xmlNsPtr;
}
extern "C" {
  pub fn xmlSearchNsByHref(doc: xmlDocPtr, node: xmlNodePtr, href: *const xmlChar) -> xmlNsPtr;
}
extern "C" {
  pub fn xmlGetNsList(doc: *const xmlDoc, node: *const xmlNode) -> *mut xmlNsPtr;
}
extern "C" {
  pub fn xmlSetNs(node: xmlNodePtr, ns: xmlNsPtr);
}
extern "C" {
  pub fn xmlCopyNamespace(cur: xmlNsPtr) -> xmlNsPtr;
}
extern "C" {
  pub fn xmlCopyNamespaceList(cur: xmlNsPtr) -> xmlNsPtr;
}
extern "C" {
  pub fn xmlSetProp(node: xmlNodePtr, name: *const xmlChar, value: *const xmlChar) -> xmlAttrPtr;
}
extern "C" {
  pub fn xmlSetNsProp(
    node: xmlNodePtr,
    ns: xmlNsPtr,
    name: *const xmlChar,
    value: *const xmlChar,
  ) -> xmlAttrPtr;
}
extern "C" {
  pub fn xmlGetNoNsProp(node: *const xmlNode, name: *const xmlChar) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlGetProp(node: *const xmlNode, name: *const xmlChar) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlHasProp(node: *const xmlNode, name: *const xmlChar) -> xmlAttrPtr;
}
extern "C" {
  pub fn xmlHasNsProp(
    node: *const xmlNode,
    name: *const xmlChar,
    nameSpace: *const xmlChar,
  ) -> xmlAttrPtr;
}
extern "C" {
  pub fn xmlGetNsProp(
    node: *const xmlNode,
    name: *const xmlChar,
    nameSpace: *const xmlChar,
  ) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlStringGetNodeList(doc: *const xmlDoc, value: *const xmlChar) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlStringLenGetNodeList(
    doc: *const xmlDoc,
    value: *const xmlChar,
    len: ::std::os::raw::c_int,
  ) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlNodeListGetString(
    doc: xmlDocPtr,
    list: *const xmlNode,
    inLine: ::std::os::raw::c_int,
  ) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlNodeListGetRawString(
    doc: *const xmlDoc,
    list: *const xmlNode,
    inLine: ::std::os::raw::c_int,
  ) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlNodeSetContent(cur: xmlNodePtr, content: *const xmlChar);
}
extern "C" {
  pub fn xmlNodeSetContentLen(cur: xmlNodePtr, content: *const xmlChar, len: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlNodeAddContent(cur: xmlNodePtr, content: *const xmlChar);
}
extern "C" {
  pub fn xmlNodeAddContentLen(cur: xmlNodePtr, content: *const xmlChar, len: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlNodeGetContent(cur: *const xmlNode) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlNodeBufGetContent(buffer: xmlBufferPtr, cur: *const xmlNode) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlBufGetNodeContent(buf: xmlBufPtr, cur: *const xmlNode) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlNodeGetLang(cur: *const xmlNode) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlNodeGetSpacePreserve(cur: *const xmlNode) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlNodeSetLang(cur: xmlNodePtr, lang: *const xmlChar);
}
extern "C" {
  pub fn xmlNodeSetSpacePreserve(cur: xmlNodePtr, val: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlNodeGetBase(doc: *const xmlDoc, cur: *const xmlNode) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlNodeSetBase(cur: xmlNodePtr, uri: *const xmlChar);
}
extern "C" {
  pub fn xmlRemoveProp(cur: xmlAttrPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUnsetNsProp(
    node: xmlNodePtr,
    ns: xmlNsPtr,
    name: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUnsetProp(node: xmlNodePtr, name: *const xmlChar) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlBufferWriteCHAR(buf: xmlBufferPtr, string: *const xmlChar);
}
extern "C" {
  pub fn xmlBufferWriteChar(buf: xmlBufferPtr, string: *const ::std::os::raw::c_char);
}
extern "C" {
  pub fn xmlBufferWriteQuotedString(buf: xmlBufferPtr, string: *const xmlChar);
}
extern "C" {
  pub fn xmlAttrSerializeTxtContent(
    buf: xmlBufferPtr,
    doc: xmlDocPtr,
    attr: xmlAttrPtr,
    string: *const xmlChar,
  );
}
extern "C" {
  pub fn xmlReconciliateNs(doc: xmlDocPtr, tree: xmlNodePtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlDocDumpFormatMemory(
    cur: xmlDocPtr,
    mem: *mut *mut xmlChar,
    size: *mut ::std::os::raw::c_int,
    format: ::std::os::raw::c_int,
  );
}
extern "C" {
  pub fn xmlDocDumpMemory(cur: xmlDocPtr, mem: *mut *mut xmlChar, size: *mut ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlDocDumpMemoryEnc(
    out_doc: xmlDocPtr,
    doc_txt_ptr: *mut *mut xmlChar,
    doc_txt_len: *mut ::std::os::raw::c_int,
    txt_encoding: *const ::std::os::raw::c_char,
  );
}
extern "C" {
  pub fn xmlDocDumpFormatMemoryEnc(
    out_doc: xmlDocPtr,
    doc_txt_ptr: *mut *mut xmlChar,
    doc_txt_len: *mut ::std::os::raw::c_int,
    txt_encoding: *const ::std::os::raw::c_char,
    format: ::std::os::raw::c_int,
  );
}
extern "C" {
  pub fn xmlDocFormatDump(
    f: *mut FILE,
    cur: xmlDocPtr,
    format: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlDocDump(f: *mut FILE, cur: xmlDocPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlElemDump(f: *mut FILE, doc: xmlDocPtr, cur: xmlNodePtr);
}
extern "C" {
  pub fn xmlSaveFile(
    filename: *const ::std::os::raw::c_char,
    cur: xmlDocPtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSaveFormatFile(
    filename: *const ::std::os::raw::c_char,
    cur: xmlDocPtr,
    format: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlBufNodeDump(
    buf: xmlBufPtr,
    doc: xmlDocPtr,
    cur: xmlNodePtr,
    level: ::std::os::raw::c_int,
    format: ::std::os::raw::c_int,
  ) -> usize;
}
extern "C" {
  pub fn xmlNodeDump(
    buf: xmlBufferPtr,
    doc: xmlDocPtr,
    cur: xmlNodePtr,
    level: ::std::os::raw::c_int,
    format: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSaveFileTo(
    buf: xmlOutputBufferPtr,
    cur: xmlDocPtr,
    encoding: *const ::std::os::raw::c_char,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSaveFormatFileTo(
    buf: xmlOutputBufferPtr,
    cur: xmlDocPtr,
    encoding: *const ::std::os::raw::c_char,
    format: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlNodeDumpOutput(
    buf: xmlOutputBufferPtr,
    doc: xmlDocPtr,
    cur: xmlNodePtr,
    level: ::std::os::raw::c_int,
    format: ::std::os::raw::c_int,
    encoding: *const ::std::os::raw::c_char,
  );
}
extern "C" {
  pub fn xmlSaveFormatFileEnc(
    filename: *const ::std::os::raw::c_char,
    cur: xmlDocPtr,
    encoding: *const ::std::os::raw::c_char,
    format: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSaveFileEnc(
    filename: *const ::std::os::raw::c_char,
    cur: xmlDocPtr,
    encoding: *const ::std::os::raw::c_char,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlIsXHTML(systemID: *const xmlChar, publicID: *const xmlChar) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlGetDocCompressMode(doc: *const xmlDoc) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSetDocCompressMode(doc: xmlDocPtr, mode: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlGetCompressMode() -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSetCompressMode(mode: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlDOMWrapNewCtxt() -> xmlDOMWrapCtxtPtr;
}
extern "C" {
  pub fn xmlDOMWrapFreeCtxt(ctxt: xmlDOMWrapCtxtPtr);
}
extern "C" {
  pub fn xmlDOMWrapReconcileNamespaces(
    ctxt: xmlDOMWrapCtxtPtr,
    elem: xmlNodePtr,
    options: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlDOMWrapAdoptNode(
    ctxt: xmlDOMWrapCtxtPtr,
    sourceDoc: xmlDocPtr,
    node: xmlNodePtr,
    destDoc: xmlDocPtr,
    destParent: xmlNodePtr,
    options: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlDOMWrapRemoveNode(
    ctxt: xmlDOMWrapCtxtPtr,
    doc: xmlDocPtr,
    node: xmlNodePtr,
    options: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlDOMWrapCloneNode(
    ctxt: xmlDOMWrapCtxtPtr,
    sourceDoc: xmlDocPtr,
    node: xmlNodePtr,
    clonedNode: *mut xmlNodePtr,
    destDoc: xmlDocPtr,
    destParent: xmlNodePtr,
    deep: ::std::os::raw::c_int,
    options: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlChildElementCount(parent: xmlNodePtr) -> ::std::os::raw::c_ulong;
}
extern "C" {
  pub fn xmlNextElementSibling(node: xmlNodePtr) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlFirstElementChild(parent: xmlNodePtr) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlLastElementChild(parent: xmlNodePtr) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlPreviousElementSibling(node: xmlNodePtr) -> xmlNodePtr;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlHashTable {
  _unused: [u8; 0],
}
pub type xmlHashTable = _xmlHashTable;
pub type xmlHashTablePtr = *mut xmlHashTable;
/// xmlHashDeallocator:
/// @payload:  the data in the hash
/// @name:  the name associated
///
/// Callback to free data from a hash.
pub type xmlHashDeallocator = ::std::option::Option<
  unsafe extern "C" fn(payload: *mut ::std::os::raw::c_void, name: *mut xmlChar),
>;
/// xmlHashCopier:
/// @payload:  the data in the hash
/// @name:  the name associated
///
/// Callback to copy data from a hash.
///
/// Returns a copy of the data or NULL in case of error.
pub type xmlHashCopier = ::std::option::Option<
  unsafe extern "C" fn(
    payload: *mut ::std::os::raw::c_void,
    name: *mut xmlChar,
  ) -> *mut ::std::os::raw::c_void,
>;
/// xmlHashScanner:
/// @payload:  the data in the hash
/// @data:  extra scannner data
/// @name:  the name associated
///
/// Callback when scanning data in a hash with the simple scanner.
pub type xmlHashScanner = ::std::option::Option<
  unsafe extern "C" fn(
    payload: *mut ::std::os::raw::c_void,
    data: *mut ::std::os::raw::c_void,
    name: *mut xmlChar,
  ),
>;
/// xmlHashScannerFull:
/// @payload:  the data in the hash
/// @data:  extra scannner data
/// @name:  the name associated
/// @name2:  the second name associated
/// @name3:  the third name associated
///
/// Callback when scanning data in a hash with the full scanner.
pub type xmlHashScannerFull = ::std::option::Option<
  unsafe extern "C" fn(
    payload: *mut ::std::os::raw::c_void,
    data: *mut ::std::os::raw::c_void,
    name: *const xmlChar,
    name2: *const xmlChar,
    name3: *const xmlChar,
  ),
>;
extern "C" {
  pub fn xmlHashCreate(size: ::std::os::raw::c_int) -> xmlHashTablePtr;
}
extern "C" {
  pub fn xmlHashCreateDict(size: ::std::os::raw::c_int, dict: xmlDictPtr) -> xmlHashTablePtr;
}
extern "C" {
  pub fn xmlHashFree(table: xmlHashTablePtr, f: xmlHashDeallocator);
}
extern "C" {
  pub fn xmlHashAddEntry(
    table: xmlHashTablePtr,
    name: *const xmlChar,
    userdata: *mut ::std::os::raw::c_void,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlHashUpdateEntry(
    table: xmlHashTablePtr,
    name: *const xmlChar,
    userdata: *mut ::std::os::raw::c_void,
    f: xmlHashDeallocator,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlHashAddEntry2(
    table: xmlHashTablePtr,
    name: *const xmlChar,
    name2: *const xmlChar,
    userdata: *mut ::std::os::raw::c_void,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlHashUpdateEntry2(
    table: xmlHashTablePtr,
    name: *const xmlChar,
    name2: *const xmlChar,
    userdata: *mut ::std::os::raw::c_void,
    f: xmlHashDeallocator,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlHashAddEntry3(
    table: xmlHashTablePtr,
    name: *const xmlChar,
    name2: *const xmlChar,
    name3: *const xmlChar,
    userdata: *mut ::std::os::raw::c_void,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlHashUpdateEntry3(
    table: xmlHashTablePtr,
    name: *const xmlChar,
    name2: *const xmlChar,
    name3: *const xmlChar,
    userdata: *mut ::std::os::raw::c_void,
    f: xmlHashDeallocator,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlHashRemoveEntry(
    table: xmlHashTablePtr,
    name: *const xmlChar,
    f: xmlHashDeallocator,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlHashRemoveEntry2(
    table: xmlHashTablePtr,
    name: *const xmlChar,
    name2: *const xmlChar,
    f: xmlHashDeallocator,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlHashRemoveEntry3(
    table: xmlHashTablePtr,
    name: *const xmlChar,
    name2: *const xmlChar,
    name3: *const xmlChar,
    f: xmlHashDeallocator,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlHashLookup(table: xmlHashTablePtr, name: *const xmlChar)
    -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn xmlHashLookup2(
    table: xmlHashTablePtr,
    name: *const xmlChar,
    name2: *const xmlChar,
  ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn xmlHashLookup3(
    table: xmlHashTablePtr,
    name: *const xmlChar,
    name2: *const xmlChar,
    name3: *const xmlChar,
  ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn xmlHashQLookup(
    table: xmlHashTablePtr,
    name: *const xmlChar,
    prefix: *const xmlChar,
  ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn xmlHashQLookup2(
    table: xmlHashTablePtr,
    name: *const xmlChar,
    prefix: *const xmlChar,
    name2: *const xmlChar,
    prefix2: *const xmlChar,
  ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn xmlHashQLookup3(
    table: xmlHashTablePtr,
    name: *const xmlChar,
    prefix: *const xmlChar,
    name2: *const xmlChar,
    prefix2: *const xmlChar,
    name3: *const xmlChar,
    prefix3: *const xmlChar,
  ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn xmlHashCopy(table: xmlHashTablePtr, f: xmlHashCopier) -> xmlHashTablePtr;
}
extern "C" {
  pub fn xmlHashSize(table: xmlHashTablePtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlHashScan(table: xmlHashTablePtr, f: xmlHashScanner, data: *mut ::std::os::raw::c_void);
}
extern "C" {
  pub fn xmlHashScan3(
    table: xmlHashTablePtr,
    name: *const xmlChar,
    name2: *const xmlChar,
    name3: *const xmlChar,
    f: xmlHashScanner,
    data: *mut ::std::os::raw::c_void,
  );
}
extern "C" {
  pub fn xmlHashScanFull(
    table: xmlHashTablePtr,
    f: xmlHashScannerFull,
    data: *mut ::std::os::raw::c_void,
  );
}
extern "C" {
  pub fn xmlHashScanFull3(
    table: xmlHashTablePtr,
    name: *const xmlChar,
    name2: *const xmlChar,
    name3: *const xmlChar,
    f: xmlHashScannerFull,
    data: *mut ::std::os::raw::c_void,
  );
}
pub const xmlErrorLevel_XML_ERR_NONE: xmlErrorLevel = 0;
pub const xmlErrorLevel_XML_ERR_WARNING: xmlErrorLevel = 1;
pub const xmlErrorLevel_XML_ERR_ERROR: xmlErrorLevel = 2;
pub const xmlErrorLevel_XML_ERR_FATAL: xmlErrorLevel = 3;
/// xmlErrorLevel:
///
/// Indicates the level of an error
pub type xmlErrorLevel = u32;
pub const xmlErrorDomain_XML_FROM_NONE: xmlErrorDomain = 0;
pub const xmlErrorDomain_XML_FROM_PARSER: xmlErrorDomain = 1;
pub const xmlErrorDomain_XML_FROM_TREE: xmlErrorDomain = 2;
pub const xmlErrorDomain_XML_FROM_NAMESPACE: xmlErrorDomain = 3;
pub const xmlErrorDomain_XML_FROM_DTD: xmlErrorDomain = 4;
pub const xmlErrorDomain_XML_FROM_HTML: xmlErrorDomain = 5;
pub const xmlErrorDomain_XML_FROM_MEMORY: xmlErrorDomain = 6;
pub const xmlErrorDomain_XML_FROM_OUTPUT: xmlErrorDomain = 7;
pub const xmlErrorDomain_XML_FROM_IO: xmlErrorDomain = 8;
pub const xmlErrorDomain_XML_FROM_FTP: xmlErrorDomain = 9;
pub const xmlErrorDomain_XML_FROM_HTTP: xmlErrorDomain = 10;
pub const xmlErrorDomain_XML_FROM_XINCLUDE: xmlErrorDomain = 11;
pub const xmlErrorDomain_XML_FROM_XPATH: xmlErrorDomain = 12;
pub const xmlErrorDomain_XML_FROM_XPOINTER: xmlErrorDomain = 13;
pub const xmlErrorDomain_XML_FROM_REGEXP: xmlErrorDomain = 14;
pub const xmlErrorDomain_XML_FROM_DATATYPE: xmlErrorDomain = 15;
pub const xmlErrorDomain_XML_FROM_SCHEMASP: xmlErrorDomain = 16;
pub const xmlErrorDomain_XML_FROM_SCHEMASV: xmlErrorDomain = 17;
pub const xmlErrorDomain_XML_FROM_RELAXNGP: xmlErrorDomain = 18;
pub const xmlErrorDomain_XML_FROM_RELAXNGV: xmlErrorDomain = 19;
pub const xmlErrorDomain_XML_FROM_CATALOG: xmlErrorDomain = 20;
pub const xmlErrorDomain_XML_FROM_C14N: xmlErrorDomain = 21;
pub const xmlErrorDomain_XML_FROM_XSLT: xmlErrorDomain = 22;
pub const xmlErrorDomain_XML_FROM_VALID: xmlErrorDomain = 23;
pub const xmlErrorDomain_XML_FROM_CHECK: xmlErrorDomain = 24;
pub const xmlErrorDomain_XML_FROM_WRITER: xmlErrorDomain = 25;
pub const xmlErrorDomain_XML_FROM_MODULE: xmlErrorDomain = 26;
pub const xmlErrorDomain_XML_FROM_I18N: xmlErrorDomain = 27;
pub const xmlErrorDomain_XML_FROM_SCHEMATRONV: xmlErrorDomain = 28;
pub const xmlErrorDomain_XML_FROM_BUFFER: xmlErrorDomain = 29;
pub const xmlErrorDomain_XML_FROM_URI: xmlErrorDomain = 30;
/// xmlErrorDomain:
///
/// Indicates where an error may have come from
pub type xmlErrorDomain = u32;
/// xmlError:
///
/// An XML Error instance.
pub type xmlError = _xmlError;
pub type xmlErrorPtr = *mut xmlError;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlError {
  pub domain: ::std::os::raw::c_int,
  pub code: ::std::os::raw::c_int,
  pub message: *mut ::std::os::raw::c_char,
  pub level: xmlErrorLevel,
  pub file: *mut ::std::os::raw::c_char,
  pub line: ::std::os::raw::c_int,
  pub str1: *mut ::std::os::raw::c_char,
  pub str2: *mut ::std::os::raw::c_char,
  pub str3: *mut ::std::os::raw::c_char,
  pub int1: ::std::os::raw::c_int,
  pub int2: ::std::os::raw::c_int,
  pub ctxt: *mut ::std::os::raw::c_void,
  pub node: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout__xmlError() {
  assert_eq!(
    ::std::mem::size_of::<_xmlError>(),
    88usize,
    concat!("Size of: ", stringify!(_xmlError))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlError>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlError))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlError>())).domain as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlError),
  //     "::",
  //     stringify!(domain)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlError>())).code as *const _ as usize },
  //   4usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlError),
  //     "::",
  //     stringify!(code)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlError>())).message as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlError),
  //     "::",
  //     stringify!(message)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlError>())).level as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlError),
  //     "::",
  //     stringify!(level)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlError>())).file as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlError),
  //     "::",
  //     stringify!(file)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlError>())).line as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlError),
  //     "::",
  //     stringify!(line)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlError>())).str1 as *const _ as usize },
  //   40usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlError),
  //     "::",
  //     stringify!(str1)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlError>())).str2 as *const _ as usize },
  //   48usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlError),
  //     "::",
  //     stringify!(str2)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlError>())).str3 as *const _ as usize },
  //   56usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlError),
  //     "::",
  //     stringify!(str3)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlError>())).int1 as *const _ as usize },
  //   64usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlError),
  //     "::",
  //     stringify!(int1)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlError>())).int2 as *const _ as usize },
  //   68usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlError),
  //     "::",
  //     stringify!(int2)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlError>())).ctxt as *const _ as usize },
  //   72usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlError),
  //     "::",
  //     stringify!(ctxt)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlError>())).node as *const _ as usize },
  //   80usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlError),
  //     "::",
  //     stringify!(node)
  //   )
  // );
}
pub const xmlParserErrors_XML_ERR_OK: xmlParserErrors = 0;
pub const xmlParserErrors_XML_ERR_INTERNAL_ERROR: xmlParserErrors = 1;
pub const xmlParserErrors_XML_ERR_NO_MEMORY: xmlParserErrors = 2;
pub const xmlParserErrors_XML_ERR_DOCUMENT_START: xmlParserErrors = 3;
pub const xmlParserErrors_XML_ERR_DOCUMENT_EMPTY: xmlParserErrors = 4;
pub const xmlParserErrors_XML_ERR_DOCUMENT_END: xmlParserErrors = 5;
pub const xmlParserErrors_XML_ERR_INVALID_HEX_CHARREF: xmlParserErrors = 6;
pub const xmlParserErrors_XML_ERR_INVALID_DEC_CHARREF: xmlParserErrors = 7;
pub const xmlParserErrors_XML_ERR_INVALID_CHARREF: xmlParserErrors = 8;
pub const xmlParserErrors_XML_ERR_INVALID_CHAR: xmlParserErrors = 9;
pub const xmlParserErrors_XML_ERR_CHARREF_AT_EOF: xmlParserErrors = 10;
pub const xmlParserErrors_XML_ERR_CHARREF_IN_PROLOG: xmlParserErrors = 11;
pub const xmlParserErrors_XML_ERR_CHARREF_IN_EPILOG: xmlParserErrors = 12;
pub const xmlParserErrors_XML_ERR_CHARREF_IN_DTD: xmlParserErrors = 13;
pub const xmlParserErrors_XML_ERR_ENTITYREF_AT_EOF: xmlParserErrors = 14;
pub const xmlParserErrors_XML_ERR_ENTITYREF_IN_PROLOG: xmlParserErrors = 15;
pub const xmlParserErrors_XML_ERR_ENTITYREF_IN_EPILOG: xmlParserErrors = 16;
pub const xmlParserErrors_XML_ERR_ENTITYREF_IN_DTD: xmlParserErrors = 17;
pub const xmlParserErrors_XML_ERR_PEREF_AT_EOF: xmlParserErrors = 18;
pub const xmlParserErrors_XML_ERR_PEREF_IN_PROLOG: xmlParserErrors = 19;
pub const xmlParserErrors_XML_ERR_PEREF_IN_EPILOG: xmlParserErrors = 20;
pub const xmlParserErrors_XML_ERR_PEREF_IN_INT_SUBSET: xmlParserErrors = 21;
pub const xmlParserErrors_XML_ERR_ENTITYREF_NO_NAME: xmlParserErrors = 22;
pub const xmlParserErrors_XML_ERR_ENTITYREF_SEMICOL_MISSING: xmlParserErrors = 23;
pub const xmlParserErrors_XML_ERR_PEREF_NO_NAME: xmlParserErrors = 24;
pub const xmlParserErrors_XML_ERR_PEREF_SEMICOL_MISSING: xmlParserErrors = 25;
pub const xmlParserErrors_XML_ERR_UNDECLARED_ENTITY: xmlParserErrors = 26;
pub const xmlParserErrors_XML_WAR_UNDECLARED_ENTITY: xmlParserErrors = 27;
pub const xmlParserErrors_XML_ERR_UNPARSED_ENTITY: xmlParserErrors = 28;
pub const xmlParserErrors_XML_ERR_ENTITY_IS_EXTERNAL: xmlParserErrors = 29;
pub const xmlParserErrors_XML_ERR_ENTITY_IS_PARAMETER: xmlParserErrors = 30;
pub const xmlParserErrors_XML_ERR_UNKNOWN_ENCODING: xmlParserErrors = 31;
pub const xmlParserErrors_XML_ERR_UNSUPPORTED_ENCODING: xmlParserErrors = 32;
pub const xmlParserErrors_XML_ERR_STRING_NOT_STARTED: xmlParserErrors = 33;
pub const xmlParserErrors_XML_ERR_STRING_NOT_CLOSED: xmlParserErrors = 34;
pub const xmlParserErrors_XML_ERR_NS_DECL_ERROR: xmlParserErrors = 35;
pub const xmlParserErrors_XML_ERR_ENTITY_NOT_STARTED: xmlParserErrors = 36;
pub const xmlParserErrors_XML_ERR_ENTITY_NOT_FINISHED: xmlParserErrors = 37;
pub const xmlParserErrors_XML_ERR_LT_IN_ATTRIBUTE: xmlParserErrors = 38;
pub const xmlParserErrors_XML_ERR_ATTRIBUTE_NOT_STARTED: xmlParserErrors = 39;
pub const xmlParserErrors_XML_ERR_ATTRIBUTE_NOT_FINISHED: xmlParserErrors = 40;
pub const xmlParserErrors_XML_ERR_ATTRIBUTE_WITHOUT_VALUE: xmlParserErrors = 41;
pub const xmlParserErrors_XML_ERR_ATTRIBUTE_REDEFINED: xmlParserErrors = 42;
pub const xmlParserErrors_XML_ERR_LITERAL_NOT_STARTED: xmlParserErrors = 43;
pub const xmlParserErrors_XML_ERR_LITERAL_NOT_FINISHED: xmlParserErrors = 44;
pub const xmlParserErrors_XML_ERR_COMMENT_NOT_FINISHED: xmlParserErrors = 45;
pub const xmlParserErrors_XML_ERR_PI_NOT_STARTED: xmlParserErrors = 46;
pub const xmlParserErrors_XML_ERR_PI_NOT_FINISHED: xmlParserErrors = 47;
pub const xmlParserErrors_XML_ERR_NOTATION_NOT_STARTED: xmlParserErrors = 48;
pub const xmlParserErrors_XML_ERR_NOTATION_NOT_FINISHED: xmlParserErrors = 49;
pub const xmlParserErrors_XML_ERR_ATTLIST_NOT_STARTED: xmlParserErrors = 50;
pub const xmlParserErrors_XML_ERR_ATTLIST_NOT_FINISHED: xmlParserErrors = 51;
pub const xmlParserErrors_XML_ERR_MIXED_NOT_STARTED: xmlParserErrors = 52;
pub const xmlParserErrors_XML_ERR_MIXED_NOT_FINISHED: xmlParserErrors = 53;
pub const xmlParserErrors_XML_ERR_ELEMCONTENT_NOT_STARTED: xmlParserErrors = 54;
pub const xmlParserErrors_XML_ERR_ELEMCONTENT_NOT_FINISHED: xmlParserErrors = 55;
pub const xmlParserErrors_XML_ERR_XMLDECL_NOT_STARTED: xmlParserErrors = 56;
pub const xmlParserErrors_XML_ERR_XMLDECL_NOT_FINISHED: xmlParserErrors = 57;
pub const xmlParserErrors_XML_ERR_CONDSEC_NOT_STARTED: xmlParserErrors = 58;
pub const xmlParserErrors_XML_ERR_CONDSEC_NOT_FINISHED: xmlParserErrors = 59;
pub const xmlParserErrors_XML_ERR_EXT_SUBSET_NOT_FINISHED: xmlParserErrors = 60;
pub const xmlParserErrors_XML_ERR_DOCTYPE_NOT_FINISHED: xmlParserErrors = 61;
pub const xmlParserErrors_XML_ERR_MISPLACED_CDATA_END: xmlParserErrors = 62;
pub const xmlParserErrors_XML_ERR_CDATA_NOT_FINISHED: xmlParserErrors = 63;
pub const xmlParserErrors_XML_ERR_RESERVED_XML_NAME: xmlParserErrors = 64;
pub const xmlParserErrors_XML_ERR_SPACE_REQUIRED: xmlParserErrors = 65;
pub const xmlParserErrors_XML_ERR_SEPARATOR_REQUIRED: xmlParserErrors = 66;
pub const xmlParserErrors_XML_ERR_NMTOKEN_REQUIRED: xmlParserErrors = 67;
pub const xmlParserErrors_XML_ERR_NAME_REQUIRED: xmlParserErrors = 68;
pub const xmlParserErrors_XML_ERR_PCDATA_REQUIRED: xmlParserErrors = 69;
pub const xmlParserErrors_XML_ERR_URI_REQUIRED: xmlParserErrors = 70;
pub const xmlParserErrors_XML_ERR_PUBID_REQUIRED: xmlParserErrors = 71;
pub const xmlParserErrors_XML_ERR_LT_REQUIRED: xmlParserErrors = 72;
pub const xmlParserErrors_XML_ERR_GT_REQUIRED: xmlParserErrors = 73;
pub const xmlParserErrors_XML_ERR_LTSLASH_REQUIRED: xmlParserErrors = 74;
pub const xmlParserErrors_XML_ERR_EQUAL_REQUIRED: xmlParserErrors = 75;
pub const xmlParserErrors_XML_ERR_TAG_NAME_MISMATCH: xmlParserErrors = 76;
pub const xmlParserErrors_XML_ERR_TAG_NOT_FINISHED: xmlParserErrors = 77;
pub const xmlParserErrors_XML_ERR_STANDALONE_VALUE: xmlParserErrors = 78;
pub const xmlParserErrors_XML_ERR_ENCODING_NAME: xmlParserErrors = 79;
pub const xmlParserErrors_XML_ERR_HYPHEN_IN_COMMENT: xmlParserErrors = 80;
pub const xmlParserErrors_XML_ERR_INVALID_ENCODING: xmlParserErrors = 81;
pub const xmlParserErrors_XML_ERR_EXT_ENTITY_STANDALONE: xmlParserErrors = 82;
pub const xmlParserErrors_XML_ERR_CONDSEC_INVALID: xmlParserErrors = 83;
pub const xmlParserErrors_XML_ERR_VALUE_REQUIRED: xmlParserErrors = 84;
pub const xmlParserErrors_XML_ERR_NOT_WELL_BALANCED: xmlParserErrors = 85;
pub const xmlParserErrors_XML_ERR_EXTRA_CONTENT: xmlParserErrors = 86;
pub const xmlParserErrors_XML_ERR_ENTITY_CHAR_ERROR: xmlParserErrors = 87;
pub const xmlParserErrors_XML_ERR_ENTITY_PE_INTERNAL: xmlParserErrors = 88;
pub const xmlParserErrors_XML_ERR_ENTITY_LOOP: xmlParserErrors = 89;
pub const xmlParserErrors_XML_ERR_ENTITY_BOUNDARY: xmlParserErrors = 90;
pub const xmlParserErrors_XML_ERR_INVALID_URI: xmlParserErrors = 91;
pub const xmlParserErrors_XML_ERR_URI_FRAGMENT: xmlParserErrors = 92;
pub const xmlParserErrors_XML_WAR_CATALOG_PI: xmlParserErrors = 93;
pub const xmlParserErrors_XML_ERR_NO_DTD: xmlParserErrors = 94;
pub const xmlParserErrors_XML_ERR_CONDSEC_INVALID_KEYWORD: xmlParserErrors = 95;
pub const xmlParserErrors_XML_ERR_VERSION_MISSING: xmlParserErrors = 96;
pub const xmlParserErrors_XML_WAR_UNKNOWN_VERSION: xmlParserErrors = 97;
pub const xmlParserErrors_XML_WAR_LANG_VALUE: xmlParserErrors = 98;
pub const xmlParserErrors_XML_WAR_NS_URI: xmlParserErrors = 99;
pub const xmlParserErrors_XML_WAR_NS_URI_RELATIVE: xmlParserErrors = 100;
pub const xmlParserErrors_XML_ERR_MISSING_ENCODING: xmlParserErrors = 101;
pub const xmlParserErrors_XML_WAR_SPACE_VALUE: xmlParserErrors = 102;
pub const xmlParserErrors_XML_ERR_NOT_STANDALONE: xmlParserErrors = 103;
pub const xmlParserErrors_XML_ERR_ENTITY_PROCESSING: xmlParserErrors = 104;
pub const xmlParserErrors_XML_ERR_NOTATION_PROCESSING: xmlParserErrors = 105;
pub const xmlParserErrors_XML_WAR_NS_COLUMN: xmlParserErrors = 106;
pub const xmlParserErrors_XML_WAR_ENTITY_REDEFINED: xmlParserErrors = 107;
pub const xmlParserErrors_XML_ERR_UNKNOWN_VERSION: xmlParserErrors = 108;
pub const xmlParserErrors_XML_ERR_VERSION_MISMATCH: xmlParserErrors = 109;
pub const xmlParserErrors_XML_ERR_NAME_TOO_LONG: xmlParserErrors = 110;
pub const xmlParserErrors_XML_ERR_USER_STOP: xmlParserErrors = 111;
pub const xmlParserErrors_XML_NS_ERR_XML_NAMESPACE: xmlParserErrors = 200;
pub const xmlParserErrors_XML_NS_ERR_UNDEFINED_NAMESPACE: xmlParserErrors = 201;
pub const xmlParserErrors_XML_NS_ERR_QNAME: xmlParserErrors = 202;
pub const xmlParserErrors_XML_NS_ERR_ATTRIBUTE_REDEFINED: xmlParserErrors = 203;
pub const xmlParserErrors_XML_NS_ERR_EMPTY: xmlParserErrors = 204;
pub const xmlParserErrors_XML_NS_ERR_COLON: xmlParserErrors = 205;
pub const xmlParserErrors_XML_DTD_ATTRIBUTE_DEFAULT: xmlParserErrors = 500;
pub const xmlParserErrors_XML_DTD_ATTRIBUTE_REDEFINED: xmlParserErrors = 501;
pub const xmlParserErrors_XML_DTD_ATTRIBUTE_VALUE: xmlParserErrors = 502;
pub const xmlParserErrors_XML_DTD_CONTENT_ERROR: xmlParserErrors = 503;
pub const xmlParserErrors_XML_DTD_CONTENT_MODEL: xmlParserErrors = 504;
pub const xmlParserErrors_XML_DTD_CONTENT_NOT_DETERMINIST: xmlParserErrors = 505;
pub const xmlParserErrors_XML_DTD_DIFFERENT_PREFIX: xmlParserErrors = 506;
pub const xmlParserErrors_XML_DTD_ELEM_DEFAULT_NAMESPACE: xmlParserErrors = 507;
pub const xmlParserErrors_XML_DTD_ELEM_NAMESPACE: xmlParserErrors = 508;
pub const xmlParserErrors_XML_DTD_ELEM_REDEFINED: xmlParserErrors = 509;
pub const xmlParserErrors_XML_DTD_EMPTY_NOTATION: xmlParserErrors = 510;
pub const xmlParserErrors_XML_DTD_ENTITY_TYPE: xmlParserErrors = 511;
pub const xmlParserErrors_XML_DTD_ID_FIXED: xmlParserErrors = 512;
pub const xmlParserErrors_XML_DTD_ID_REDEFINED: xmlParserErrors = 513;
pub const xmlParserErrors_XML_DTD_ID_SUBSET: xmlParserErrors = 514;
pub const xmlParserErrors_XML_DTD_INVALID_CHILD: xmlParserErrors = 515;
pub const xmlParserErrors_XML_DTD_INVALID_DEFAULT: xmlParserErrors = 516;
pub const xmlParserErrors_XML_DTD_LOAD_ERROR: xmlParserErrors = 517;
pub const xmlParserErrors_XML_DTD_MISSING_ATTRIBUTE: xmlParserErrors = 518;
pub const xmlParserErrors_XML_DTD_MIXED_CORRUPT: xmlParserErrors = 519;
pub const xmlParserErrors_XML_DTD_MULTIPLE_ID: xmlParserErrors = 520;
pub const xmlParserErrors_XML_DTD_NO_DOC: xmlParserErrors = 521;
pub const xmlParserErrors_XML_DTD_NO_DTD: xmlParserErrors = 522;
pub const xmlParserErrors_XML_DTD_NO_ELEM_NAME: xmlParserErrors = 523;
pub const xmlParserErrors_XML_DTD_NO_PREFIX: xmlParserErrors = 524;
pub const xmlParserErrors_XML_DTD_NO_ROOT: xmlParserErrors = 525;
pub const xmlParserErrors_XML_DTD_NOTATION_REDEFINED: xmlParserErrors = 526;
pub const xmlParserErrors_XML_DTD_NOTATION_VALUE: xmlParserErrors = 527;
pub const xmlParserErrors_XML_DTD_NOT_EMPTY: xmlParserErrors = 528;
pub const xmlParserErrors_XML_DTD_NOT_PCDATA: xmlParserErrors = 529;
pub const xmlParserErrors_XML_DTD_NOT_STANDALONE: xmlParserErrors = 530;
pub const xmlParserErrors_XML_DTD_ROOT_NAME: xmlParserErrors = 531;
pub const xmlParserErrors_XML_DTD_STANDALONE_WHITE_SPACE: xmlParserErrors = 532;
pub const xmlParserErrors_XML_DTD_UNKNOWN_ATTRIBUTE: xmlParserErrors = 533;
pub const xmlParserErrors_XML_DTD_UNKNOWN_ELEM: xmlParserErrors = 534;
pub const xmlParserErrors_XML_DTD_UNKNOWN_ENTITY: xmlParserErrors = 535;
pub const xmlParserErrors_XML_DTD_UNKNOWN_ID: xmlParserErrors = 536;
pub const xmlParserErrors_XML_DTD_UNKNOWN_NOTATION: xmlParserErrors = 537;
pub const xmlParserErrors_XML_DTD_STANDALONE_DEFAULTED: xmlParserErrors = 538;
pub const xmlParserErrors_XML_DTD_XMLID_VALUE: xmlParserErrors = 539;
pub const xmlParserErrors_XML_DTD_XMLID_TYPE: xmlParserErrors = 540;
pub const xmlParserErrors_XML_DTD_DUP_TOKEN: xmlParserErrors = 541;
pub const xmlParserErrors_XML_HTML_STRUCURE_ERROR: xmlParserErrors = 800;
pub const xmlParserErrors_XML_HTML_UNKNOWN_TAG: xmlParserErrors = 801;
pub const xmlParserErrors_XML_RNGP_ANYNAME_ATTR_ANCESTOR: xmlParserErrors = 1_000;
pub const xmlParserErrors_XML_RNGP_ATTR_CONFLICT: xmlParserErrors = 1_001;
pub const xmlParserErrors_XML_RNGP_ATTRIBUTE_CHILDREN: xmlParserErrors = 1_002;
pub const xmlParserErrors_XML_RNGP_ATTRIBUTE_CONTENT: xmlParserErrors = 1_003;
pub const xmlParserErrors_XML_RNGP_ATTRIBUTE_EMPTY: xmlParserErrors = 1_004;
pub const xmlParserErrors_XML_RNGP_ATTRIBUTE_NOOP: xmlParserErrors = 1_005;
pub const xmlParserErrors_XML_RNGP_CHOICE_CONTENT: xmlParserErrors = 1_006;
pub const xmlParserErrors_XML_RNGP_CHOICE_EMPTY: xmlParserErrors = 1_007;
pub const xmlParserErrors_XML_RNGP_CREATE_FAILURE: xmlParserErrors = 1_008;
pub const xmlParserErrors_XML_RNGP_DATA_CONTENT: xmlParserErrors = 1_009;
pub const xmlParserErrors_XML_RNGP_DEF_CHOICE_AND_INTERLEAVE: xmlParserErrors = 1_010;
pub const xmlParserErrors_XML_RNGP_DEFINE_CREATE_FAILED: xmlParserErrors = 1_011;
pub const xmlParserErrors_XML_RNGP_DEFINE_EMPTY: xmlParserErrors = 1_012;
pub const xmlParserErrors_XML_RNGP_DEFINE_MISSING: xmlParserErrors = 1_013;
pub const xmlParserErrors_XML_RNGP_DEFINE_NAME_MISSING: xmlParserErrors = 1_014;
pub const xmlParserErrors_XML_RNGP_ELEM_CONTENT_EMPTY: xmlParserErrors = 1_015;
pub const xmlParserErrors_XML_RNGP_ELEM_CONTENT_ERROR: xmlParserErrors = 1_016;
pub const xmlParserErrors_XML_RNGP_ELEMENT_EMPTY: xmlParserErrors = 1_017;
pub const xmlParserErrors_XML_RNGP_ELEMENT_CONTENT: xmlParserErrors = 1_018;
pub const xmlParserErrors_XML_RNGP_ELEMENT_NAME: xmlParserErrors = 1_019;
pub const xmlParserErrors_XML_RNGP_ELEMENT_NO_CONTENT: xmlParserErrors = 1_020;
pub const xmlParserErrors_XML_RNGP_ELEM_TEXT_CONFLICT: xmlParserErrors = 1_021;
pub const xmlParserErrors_XML_RNGP_EMPTY: xmlParserErrors = 1_022;
pub const xmlParserErrors_XML_RNGP_EMPTY_CONSTRUCT: xmlParserErrors = 1_023;
pub const xmlParserErrors_XML_RNGP_EMPTY_CONTENT: xmlParserErrors = 1_024;
pub const xmlParserErrors_XML_RNGP_EMPTY_NOT_EMPTY: xmlParserErrors = 1_025;
pub const xmlParserErrors_XML_RNGP_ERROR_TYPE_LIB: xmlParserErrors = 1_026;
pub const xmlParserErrors_XML_RNGP_EXCEPT_EMPTY: xmlParserErrors = 1_027;
pub const xmlParserErrors_XML_RNGP_EXCEPT_MISSING: xmlParserErrors = 1_028;
pub const xmlParserErrors_XML_RNGP_EXCEPT_MULTIPLE: xmlParserErrors = 1_029;
pub const xmlParserErrors_XML_RNGP_EXCEPT_NO_CONTENT: xmlParserErrors = 1_030;
pub const xmlParserErrors_XML_RNGP_EXTERNALREF_EMTPY: xmlParserErrors = 1_031;
pub const xmlParserErrors_XML_RNGP_EXTERNAL_REF_FAILURE: xmlParserErrors = 1_032;
pub const xmlParserErrors_XML_RNGP_EXTERNALREF_RECURSE: xmlParserErrors = 1_033;
pub const xmlParserErrors_XML_RNGP_FORBIDDEN_ATTRIBUTE: xmlParserErrors = 1_034;
pub const xmlParserErrors_XML_RNGP_FOREIGN_ELEMENT: xmlParserErrors = 1_035;
pub const xmlParserErrors_XML_RNGP_GRAMMAR_CONTENT: xmlParserErrors = 1_036;
pub const xmlParserErrors_XML_RNGP_GRAMMAR_EMPTY: xmlParserErrors = 1_037;
pub const xmlParserErrors_XML_RNGP_GRAMMAR_MISSING: xmlParserErrors = 1_038;
pub const xmlParserErrors_XML_RNGP_GRAMMAR_NO_START: xmlParserErrors = 1_039;
pub const xmlParserErrors_XML_RNGP_GROUP_ATTR_CONFLICT: xmlParserErrors = 1_040;
pub const xmlParserErrors_XML_RNGP_HREF_ERROR: xmlParserErrors = 1_041;
pub const xmlParserErrors_XML_RNGP_INCLUDE_EMPTY: xmlParserErrors = 1_042;
pub const xmlParserErrors_XML_RNGP_INCLUDE_FAILURE: xmlParserErrors = 1_043;
pub const xmlParserErrors_XML_RNGP_INCLUDE_RECURSE: xmlParserErrors = 1_044;
pub const xmlParserErrors_XML_RNGP_INTERLEAVE_ADD: xmlParserErrors = 1_045;
pub const xmlParserErrors_XML_RNGP_INTERLEAVE_CREATE_FAILED: xmlParserErrors = 1_046;
pub const xmlParserErrors_XML_RNGP_INTERLEAVE_EMPTY: xmlParserErrors = 1_047;
pub const xmlParserErrors_XML_RNGP_INTERLEAVE_NO_CONTENT: xmlParserErrors = 1_048;
pub const xmlParserErrors_XML_RNGP_INVALID_DEFINE_NAME: xmlParserErrors = 1_049;
pub const xmlParserErrors_XML_RNGP_INVALID_URI: xmlParserErrors = 1_050;
pub const xmlParserErrors_XML_RNGP_INVALID_VALUE: xmlParserErrors = 1_051;
pub const xmlParserErrors_XML_RNGP_MISSING_HREF: xmlParserErrors = 1_052;
pub const xmlParserErrors_XML_RNGP_NAME_MISSING: xmlParserErrors = 1_053;
pub const xmlParserErrors_XML_RNGP_NEED_COMBINE: xmlParserErrors = 1_054;
pub const xmlParserErrors_XML_RNGP_NOTALLOWED_NOT_EMPTY: xmlParserErrors = 1_055;
pub const xmlParserErrors_XML_RNGP_NSNAME_ATTR_ANCESTOR: xmlParserErrors = 1_056;
pub const xmlParserErrors_XML_RNGP_NSNAME_NO_NS: xmlParserErrors = 1_057;
pub const xmlParserErrors_XML_RNGP_PARAM_FORBIDDEN: xmlParserErrors = 1_058;
pub const xmlParserErrors_XML_RNGP_PARAM_NAME_MISSING: xmlParserErrors = 1_059;
pub const xmlParserErrors_XML_RNGP_PARENTREF_CREATE_FAILED: xmlParserErrors = 1_060;
pub const xmlParserErrors_XML_RNGP_PARENTREF_NAME_INVALID: xmlParserErrors = 1_061;
pub const xmlParserErrors_XML_RNGP_PARENTREF_NO_NAME: xmlParserErrors = 1_062;
pub const xmlParserErrors_XML_RNGP_PARENTREF_NO_PARENT: xmlParserErrors = 1_063;
pub const xmlParserErrors_XML_RNGP_PARENTREF_NOT_EMPTY: xmlParserErrors = 1_064;
pub const xmlParserErrors_XML_RNGP_PARSE_ERROR: xmlParserErrors = 1_065;
pub const xmlParserErrors_XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME: xmlParserErrors = 1_066;
pub const xmlParserErrors_XML_RNGP_PAT_ATTR_ATTR: xmlParserErrors = 1_067;
pub const xmlParserErrors_XML_RNGP_PAT_ATTR_ELEM: xmlParserErrors = 1_068;
pub const xmlParserErrors_XML_RNGP_PAT_DATA_EXCEPT_ATTR: xmlParserErrors = 1_069;
pub const xmlParserErrors_XML_RNGP_PAT_DATA_EXCEPT_ELEM: xmlParserErrors = 1_070;
pub const xmlParserErrors_XML_RNGP_PAT_DATA_EXCEPT_EMPTY: xmlParserErrors = 1_071;
pub const xmlParserErrors_XML_RNGP_PAT_DATA_EXCEPT_GROUP: xmlParserErrors = 1_072;
pub const xmlParserErrors_XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE: xmlParserErrors = 1_073;
pub const xmlParserErrors_XML_RNGP_PAT_DATA_EXCEPT_LIST: xmlParserErrors = 1_074;
pub const xmlParserErrors_XML_RNGP_PAT_DATA_EXCEPT_ONEMORE: xmlParserErrors = 1_075;
pub const xmlParserErrors_XML_RNGP_PAT_DATA_EXCEPT_REF: xmlParserErrors = 1_076;
pub const xmlParserErrors_XML_RNGP_PAT_DATA_EXCEPT_TEXT: xmlParserErrors = 1_077;
pub const xmlParserErrors_XML_RNGP_PAT_LIST_ATTR: xmlParserErrors = 1_078;
pub const xmlParserErrors_XML_RNGP_PAT_LIST_ELEM: xmlParserErrors = 1_079;
pub const xmlParserErrors_XML_RNGP_PAT_LIST_INTERLEAVE: xmlParserErrors = 1_080;
pub const xmlParserErrors_XML_RNGP_PAT_LIST_LIST: xmlParserErrors = 1_081;
pub const xmlParserErrors_XML_RNGP_PAT_LIST_REF: xmlParserErrors = 1_082;
pub const xmlParserErrors_XML_RNGP_PAT_LIST_TEXT: xmlParserErrors = 1_083;
pub const xmlParserErrors_XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME: xmlParserErrors = 1_084;
pub const xmlParserErrors_XML_RNGP_PAT_NSNAME_EXCEPT_NSNAME: xmlParserErrors = 1_085;
pub const xmlParserErrors_XML_RNGP_PAT_ONEMORE_GROUP_ATTR: xmlParserErrors = 1_086;
pub const xmlParserErrors_XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR: xmlParserErrors = 1_087;
pub const xmlParserErrors_XML_RNGP_PAT_START_ATTR: xmlParserErrors = 1_088;
pub const xmlParserErrors_XML_RNGP_PAT_START_DATA: xmlParserErrors = 1_089;
pub const xmlParserErrors_XML_RNGP_PAT_START_EMPTY: xmlParserErrors = 1_090;
pub const xmlParserErrors_XML_RNGP_PAT_START_GROUP: xmlParserErrors = 1_091;
pub const xmlParserErrors_XML_RNGP_PAT_START_INTERLEAVE: xmlParserErrors = 1_092;
pub const xmlParserErrors_XML_RNGP_PAT_START_LIST: xmlParserErrors = 1_093;
pub const xmlParserErrors_XML_RNGP_PAT_START_ONEMORE: xmlParserErrors = 1_094;
pub const xmlParserErrors_XML_RNGP_PAT_START_TEXT: xmlParserErrors = 1_095;
pub const xmlParserErrors_XML_RNGP_PAT_START_VALUE: xmlParserErrors = 1_096;
pub const xmlParserErrors_XML_RNGP_PREFIX_UNDEFINED: xmlParserErrors = 1_097;
pub const xmlParserErrors_XML_RNGP_REF_CREATE_FAILED: xmlParserErrors = 1_098;
pub const xmlParserErrors_XML_RNGP_REF_CYCLE: xmlParserErrors = 1_099;
pub const xmlParserErrors_XML_RNGP_REF_NAME_INVALID: xmlParserErrors = 1_100;
pub const xmlParserErrors_XML_RNGP_REF_NO_DEF: xmlParserErrors = 1_101;
pub const xmlParserErrors_XML_RNGP_REF_NO_NAME: xmlParserErrors = 1_102;
pub const xmlParserErrors_XML_RNGP_REF_NOT_EMPTY: xmlParserErrors = 1_103;
pub const xmlParserErrors_XML_RNGP_START_CHOICE_AND_INTERLEAVE: xmlParserErrors = 1_104;
pub const xmlParserErrors_XML_RNGP_START_CONTENT: xmlParserErrors = 1_105;
pub const xmlParserErrors_XML_RNGP_START_EMPTY: xmlParserErrors = 1_106;
pub const xmlParserErrors_XML_RNGP_START_MISSING: xmlParserErrors = 1_107;
pub const xmlParserErrors_XML_RNGP_TEXT_EXPECTED: xmlParserErrors = 1_108;
pub const xmlParserErrors_XML_RNGP_TEXT_HAS_CHILD: xmlParserErrors = 1_109;
pub const xmlParserErrors_XML_RNGP_TYPE_MISSING: xmlParserErrors = 1_110;
pub const xmlParserErrors_XML_RNGP_TYPE_NOT_FOUND: xmlParserErrors = 1_111;
pub const xmlParserErrors_XML_RNGP_TYPE_VALUE: xmlParserErrors = 1_112;
pub const xmlParserErrors_XML_RNGP_UNKNOWN_ATTRIBUTE: xmlParserErrors = 1_113;
pub const xmlParserErrors_XML_RNGP_UNKNOWN_COMBINE: xmlParserErrors = 1_114;
pub const xmlParserErrors_XML_RNGP_UNKNOWN_CONSTRUCT: xmlParserErrors = 1_115;
pub const xmlParserErrors_XML_RNGP_UNKNOWN_TYPE_LIB: xmlParserErrors = 1_116;
pub const xmlParserErrors_XML_RNGP_URI_FRAGMENT: xmlParserErrors = 1_117;
pub const xmlParserErrors_XML_RNGP_URI_NOT_ABSOLUTE: xmlParserErrors = 1_118;
pub const xmlParserErrors_XML_RNGP_VALUE_EMPTY: xmlParserErrors = 1_119;
pub const xmlParserErrors_XML_RNGP_VALUE_NO_CONTENT: xmlParserErrors = 1_120;
pub const xmlParserErrors_XML_RNGP_XMLNS_NAME: xmlParserErrors = 1_121;
pub const xmlParserErrors_XML_RNGP_XML_NS: xmlParserErrors = 1_122;
pub const xmlParserErrors_XML_XPATH_EXPRESSION_OK: xmlParserErrors = 1_200;
pub const xmlParserErrors_XML_XPATH_NUMBER_ERROR: xmlParserErrors = 1_201;
pub const xmlParserErrors_XML_XPATH_UNFINISHED_LITERAL_ERROR: xmlParserErrors = 1_202;
pub const xmlParserErrors_XML_XPATH_START_LITERAL_ERROR: xmlParserErrors = 1_203;
pub const xmlParserErrors_XML_XPATH_VARIABLE_REF_ERROR: xmlParserErrors = 1_204;
pub const xmlParserErrors_XML_XPATH_UNDEF_VARIABLE_ERROR: xmlParserErrors = 1_205;
pub const xmlParserErrors_XML_XPATH_INVALID_PREDICATE_ERROR: xmlParserErrors = 1_206;
pub const xmlParserErrors_XML_XPATH_EXPR_ERROR: xmlParserErrors = 1_207;
pub const xmlParserErrors_XML_XPATH_UNCLOSED_ERROR: xmlParserErrors = 1_208;
pub const xmlParserErrors_XML_XPATH_UNKNOWN_FUNC_ERROR: xmlParserErrors = 1_209;
pub const xmlParserErrors_XML_XPATH_INVALID_OPERAND: xmlParserErrors = 1_210;
pub const xmlParserErrors_XML_XPATH_INVALID_TYPE: xmlParserErrors = 1_211;
pub const xmlParserErrors_XML_XPATH_INVALID_ARITY: xmlParserErrors = 1_212;
pub const xmlParserErrors_XML_XPATH_INVALID_CTXT_SIZE: xmlParserErrors = 1_213;
pub const xmlParserErrors_XML_XPATH_INVALID_CTXT_POSITION: xmlParserErrors = 1_214;
pub const xmlParserErrors_XML_XPATH_MEMORY_ERROR: xmlParserErrors = 1_215;
pub const xmlParserErrors_XML_XPTR_SYNTAX_ERROR: xmlParserErrors = 1_216;
pub const xmlParserErrors_XML_XPTR_RESOURCE_ERROR: xmlParserErrors = 1_217;
pub const xmlParserErrors_XML_XPTR_SUB_RESOURCE_ERROR: xmlParserErrors = 1_218;
pub const xmlParserErrors_XML_XPATH_UNDEF_PREFIX_ERROR: xmlParserErrors = 1_219;
pub const xmlParserErrors_XML_XPATH_ENCODING_ERROR: xmlParserErrors = 1_220;
pub const xmlParserErrors_XML_XPATH_INVALID_CHAR_ERROR: xmlParserErrors = 1_221;
pub const xmlParserErrors_XML_TREE_INVALID_HEX: xmlParserErrors = 1_300;
pub const xmlParserErrors_XML_TREE_INVALID_DEC: xmlParserErrors = 1_301;
pub const xmlParserErrors_XML_TREE_UNTERMINATED_ENTITY: xmlParserErrors = 1_302;
pub const xmlParserErrors_XML_TREE_NOT_UTF8: xmlParserErrors = 1_303;
pub const xmlParserErrors_XML_SAVE_NOT_UTF8: xmlParserErrors = 1_400;
pub const xmlParserErrors_XML_SAVE_CHAR_INVALID: xmlParserErrors = 1_401;
pub const xmlParserErrors_XML_SAVE_NO_DOCTYPE: xmlParserErrors = 1_402;
pub const xmlParserErrors_XML_SAVE_UNKNOWN_ENCODING: xmlParserErrors = 1_403;
pub const xmlParserErrors_XML_REGEXP_COMPILE_ERROR: xmlParserErrors = 1_450;
pub const xmlParserErrors_XML_IO_UNKNOWN: xmlParserErrors = 1_500;
pub const xmlParserErrors_XML_IO_EACCES: xmlParserErrors = 1_501;
pub const xmlParserErrors_XML_IO_EAGAIN: xmlParserErrors = 1_502;
pub const xmlParserErrors_XML_IO_EBADF: xmlParserErrors = 1_503;
pub const xmlParserErrors_XML_IO_EBADMSG: xmlParserErrors = 1_504;
pub const xmlParserErrors_XML_IO_EBUSY: xmlParserErrors = 1_505;
pub const xmlParserErrors_XML_IO_ECANCELED: xmlParserErrors = 1_506;
pub const xmlParserErrors_XML_IO_ECHILD: xmlParserErrors = 1_507;
pub const xmlParserErrors_XML_IO_EDEADLK: xmlParserErrors = 1_508;
pub const xmlParserErrors_XML_IO_EDOM: xmlParserErrors = 1_509;
pub const xmlParserErrors_XML_IO_EEXIST: xmlParserErrors = 1_510;
pub const xmlParserErrors_XML_IO_EFAULT: xmlParserErrors = 1_511;
pub const xmlParserErrors_XML_IO_EFBIG: xmlParserErrors = 1_512;
pub const xmlParserErrors_XML_IO_EINPROGRESS: xmlParserErrors = 1_513;
pub const xmlParserErrors_XML_IO_EINTR: xmlParserErrors = 1_514;
pub const xmlParserErrors_XML_IO_EINVAL: xmlParserErrors = 1_515;
pub const xmlParserErrors_XML_IO_EIO: xmlParserErrors = 1_516;
pub const xmlParserErrors_XML_IO_EISDIR: xmlParserErrors = 1_517;
pub const xmlParserErrors_XML_IO_EMFILE: xmlParserErrors = 1_518;
pub const xmlParserErrors_XML_IO_EMLINK: xmlParserErrors = 1_519;
pub const xmlParserErrors_XML_IO_EMSGSIZE: xmlParserErrors = 1_520;
pub const xmlParserErrors_XML_IO_ENAMETOOLONG: xmlParserErrors = 1_521;
pub const xmlParserErrors_XML_IO_ENFILE: xmlParserErrors = 1_522;
pub const xmlParserErrors_XML_IO_ENODEV: xmlParserErrors = 1_523;
pub const xmlParserErrors_XML_IO_ENOENT: xmlParserErrors = 1_524;
pub const xmlParserErrors_XML_IO_ENOEXEC: xmlParserErrors = 1_525;
pub const xmlParserErrors_XML_IO_ENOLCK: xmlParserErrors = 1_526;
pub const xmlParserErrors_XML_IO_ENOMEM: xmlParserErrors = 1_527;
pub const xmlParserErrors_XML_IO_ENOSPC: xmlParserErrors = 1_528;
pub const xmlParserErrors_XML_IO_ENOSYS: xmlParserErrors = 1_529;
pub const xmlParserErrors_XML_IO_ENOTDIR: xmlParserErrors = 1_530;
pub const xmlParserErrors_XML_IO_ENOTEMPTY: xmlParserErrors = 1_531;
pub const xmlParserErrors_XML_IO_ENOTSUP: xmlParserErrors = 1_532;
pub const xmlParserErrors_XML_IO_ENOTTY: xmlParserErrors = 1_533;
pub const xmlParserErrors_XML_IO_ENXIO: xmlParserErrors = 1_534;
pub const xmlParserErrors_XML_IO_EPERM: xmlParserErrors = 1_535;
pub const xmlParserErrors_XML_IO_EPIPE: xmlParserErrors = 1_536;
pub const xmlParserErrors_XML_IO_ERANGE: xmlParserErrors = 1_537;
pub const xmlParserErrors_XML_IO_EROFS: xmlParserErrors = 1_538;
pub const xmlParserErrors_XML_IO_ESPIPE: xmlParserErrors = 1_539;
pub const xmlParserErrors_XML_IO_ESRCH: xmlParserErrors = 1_540;
pub const xmlParserErrors_XML_IO_ETIMEDOUT: xmlParserErrors = 1_541;
pub const xmlParserErrors_XML_IO_EXDEV: xmlParserErrors = 1_542;
pub const xmlParserErrors_XML_IO_NETWORK_ATTEMPT: xmlParserErrors = 1_543;
pub const xmlParserErrors_XML_IO_ENCODER: xmlParserErrors = 1_544;
pub const xmlParserErrors_XML_IO_FLUSH: xmlParserErrors = 1_545;
pub const xmlParserErrors_XML_IO_WRITE: xmlParserErrors = 1_546;
pub const xmlParserErrors_XML_IO_NO_INPUT: xmlParserErrors = 1_547;
pub const xmlParserErrors_XML_IO_BUFFER_FULL: xmlParserErrors = 1_548;
pub const xmlParserErrors_XML_IO_LOAD_ERROR: xmlParserErrors = 1_549;
pub const xmlParserErrors_XML_IO_ENOTSOCK: xmlParserErrors = 1_550;
pub const xmlParserErrors_XML_IO_EISCONN: xmlParserErrors = 1_551;
pub const xmlParserErrors_XML_IO_ECONNREFUSED: xmlParserErrors = 1_552;
pub const xmlParserErrors_XML_IO_ENETUNREACH: xmlParserErrors = 1_553;
pub const xmlParserErrors_XML_IO_EADDRINUSE: xmlParserErrors = 1_554;
pub const xmlParserErrors_XML_IO_EALREADY: xmlParserErrors = 1_555;
pub const xmlParserErrors_XML_IO_EAFNOSUPPORT: xmlParserErrors = 1_556;
pub const xmlParserErrors_XML_XINCLUDE_RECURSION: xmlParserErrors = 1_600;
pub const xmlParserErrors_XML_XINCLUDE_PARSE_VALUE: xmlParserErrors = 1_601;
pub const xmlParserErrors_XML_XINCLUDE_ENTITY_DEF_MISMATCH: xmlParserErrors = 1_602;
pub const xmlParserErrors_XML_XINCLUDE_NO_HREF: xmlParserErrors = 1_603;
pub const xmlParserErrors_XML_XINCLUDE_NO_FALLBACK: xmlParserErrors = 1_604;
pub const xmlParserErrors_XML_XINCLUDE_HREF_URI: xmlParserErrors = 1_605;
pub const xmlParserErrors_XML_XINCLUDE_TEXT_FRAGMENT: xmlParserErrors = 1_606;
pub const xmlParserErrors_XML_XINCLUDE_TEXT_DOCUMENT: xmlParserErrors = 1_607;
pub const xmlParserErrors_XML_XINCLUDE_INVALID_CHAR: xmlParserErrors = 1_608;
pub const xmlParserErrors_XML_XINCLUDE_BUILD_FAILED: xmlParserErrors = 1_609;
pub const xmlParserErrors_XML_XINCLUDE_UNKNOWN_ENCODING: xmlParserErrors = 1_610;
pub const xmlParserErrors_XML_XINCLUDE_MULTIPLE_ROOT: xmlParserErrors = 1_611;
pub const xmlParserErrors_XML_XINCLUDE_XPTR_FAILED: xmlParserErrors = 1_612;
pub const xmlParserErrors_XML_XINCLUDE_XPTR_RESULT: xmlParserErrors = 1_613;
pub const xmlParserErrors_XML_XINCLUDE_INCLUDE_IN_INCLUDE: xmlParserErrors = 1_614;
pub const xmlParserErrors_XML_XINCLUDE_FALLBACKS_IN_INCLUDE: xmlParserErrors = 1_615;
pub const xmlParserErrors_XML_XINCLUDE_FALLBACK_NOT_IN_INCLUDE: xmlParserErrors = 1_616;
pub const xmlParserErrors_XML_XINCLUDE_DEPRECATED_NS: xmlParserErrors = 1_617;
pub const xmlParserErrors_XML_XINCLUDE_FRAGMENT_ID: xmlParserErrors = 1_618;
pub const xmlParserErrors_XML_CATALOG_MISSING_ATTR: xmlParserErrors = 1_650;
pub const xmlParserErrors_XML_CATALOG_ENTRY_BROKEN: xmlParserErrors = 1_651;
pub const xmlParserErrors_XML_CATALOG_PREFER_VALUE: xmlParserErrors = 1_652;
pub const xmlParserErrors_XML_CATALOG_NOT_CATALOG: xmlParserErrors = 1_653;
pub const xmlParserErrors_XML_CATALOG_RECURSION: xmlParserErrors = 1_654;
pub const xmlParserErrors_XML_SCHEMAP_PREFIX_UNDEFINED: xmlParserErrors = 1_700;
pub const xmlParserErrors_XML_SCHEMAP_ATTRFORMDEFAULT_VALUE: xmlParserErrors = 1_701;
pub const xmlParserErrors_XML_SCHEMAP_ATTRGRP_NONAME_NOREF: xmlParserErrors = 1_702;
pub const xmlParserErrors_XML_SCHEMAP_ATTR_NONAME_NOREF: xmlParserErrors = 1_703;
pub const xmlParserErrors_XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF: xmlParserErrors = 1_704;
pub const xmlParserErrors_XML_SCHEMAP_ELEMFORMDEFAULT_VALUE: xmlParserErrors = 1_705;
pub const xmlParserErrors_XML_SCHEMAP_ELEM_NONAME_NOREF: xmlParserErrors = 1_706;
pub const xmlParserErrors_XML_SCHEMAP_EXTENSION_NO_BASE: xmlParserErrors = 1_707;
pub const xmlParserErrors_XML_SCHEMAP_FACET_NO_VALUE: xmlParserErrors = 1_708;
pub const xmlParserErrors_XML_SCHEMAP_FAILED_BUILD_IMPORT: xmlParserErrors = 1_709;
pub const xmlParserErrors_XML_SCHEMAP_GROUP_NONAME_NOREF: xmlParserErrors = 1_710;
pub const xmlParserErrors_XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URI: xmlParserErrors = 1_711;
pub const xmlParserErrors_XML_SCHEMAP_IMPORT_REDEFINE_NSNAME: xmlParserErrors = 1_712;
pub const xmlParserErrors_XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI: xmlParserErrors = 1_713;
pub const xmlParserErrors_XML_SCHEMAP_INVALID_BOOLEAN: xmlParserErrors = 1_714;
pub const xmlParserErrors_XML_SCHEMAP_INVALID_ENUM: xmlParserErrors = 1_715;
pub const xmlParserErrors_XML_SCHEMAP_INVALID_FACET: xmlParserErrors = 1_716;
pub const xmlParserErrors_XML_SCHEMAP_INVALID_FACET_VALUE: xmlParserErrors = 1_717;
pub const xmlParserErrors_XML_SCHEMAP_INVALID_MAXOCCURS: xmlParserErrors = 1_718;
pub const xmlParserErrors_XML_SCHEMAP_INVALID_MINOCCURS: xmlParserErrors = 1_719;
pub const xmlParserErrors_XML_SCHEMAP_INVALID_REF_AND_SUBTYPE: xmlParserErrors = 1_720;
pub const xmlParserErrors_XML_SCHEMAP_INVALID_WHITE_SPACE: xmlParserErrors = 1_721;
pub const xmlParserErrors_XML_SCHEMAP_NOATTR_NOREF: xmlParserErrors = 1_722;
pub const xmlParserErrors_XML_SCHEMAP_NOTATION_NO_NAME: xmlParserErrors = 1_723;
pub const xmlParserErrors_XML_SCHEMAP_NOTYPE_NOREF: xmlParserErrors = 1_724;
pub const xmlParserErrors_XML_SCHEMAP_REF_AND_SUBTYPE: xmlParserErrors = 1_725;
pub const xmlParserErrors_XML_SCHEMAP_RESTRICTION_NONAME_NOREF: xmlParserErrors = 1_726;
pub const xmlParserErrors_XML_SCHEMAP_SIMPLETYPE_NONAME: xmlParserErrors = 1_727;
pub const xmlParserErrors_XML_SCHEMAP_TYPE_AND_SUBTYPE: xmlParserErrors = 1_728;
pub const xmlParserErrors_XML_SCHEMAP_UNKNOWN_ALL_CHILD: xmlParserErrors = 1_729;
pub const xmlParserErrors_XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD: xmlParserErrors = 1_730;
pub const xmlParserErrors_XML_SCHEMAP_UNKNOWN_ATTR_CHILD: xmlParserErrors = 1_731;
pub const xmlParserErrors_XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILD: xmlParserErrors = 1_732;
pub const xmlParserErrors_XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP: xmlParserErrors = 1_733;
pub const xmlParserErrors_XML_SCHEMAP_UNKNOWN_BASE_TYPE: xmlParserErrors = 1_734;
pub const xmlParserErrors_XML_SCHEMAP_UNKNOWN_CHOICE_CHILD: xmlParserErrors = 1_735;
pub const xmlParserErrors_XML_SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD: xmlParserErrors = 1_736;
pub const xmlParserErrors_XML_SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD: xmlParserErrors = 1_737;
pub const xmlParserErrors_XML_SCHEMAP_UNKNOWN_ELEM_CHILD: xmlParserErrors = 1_738;
pub const xmlParserErrors_XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD: xmlParserErrors = 1_739;
pub const xmlParserErrors_XML_SCHEMAP_UNKNOWN_FACET_CHILD: xmlParserErrors = 1_740;
pub const xmlParserErrors_XML_SCHEMAP_UNKNOWN_FACET_TYPE: xmlParserErrors = 1_741;
pub const xmlParserErrors_XML_SCHEMAP_UNKNOWN_GROUP_CHILD: xmlParserErrors = 1_742;
pub const xmlParserErrors_XML_SCHEMAP_UNKNOWN_IMPORT_CHILD: xmlParserErrors = 1_743;
pub const xmlParserErrors_XML_SCHEMAP_UNKNOWN_LIST_CHILD: xmlParserErrors = 1_744;
pub const xmlParserErrors_XML_SCHEMAP_UNKNOWN_NOTATION_CHILD: xmlParserErrors = 1_745;
pub const xmlParserErrors_XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD: xmlParserErrors = 1_746;
pub const xmlParserErrors_XML_SCHEMAP_UNKNOWN_REF: xmlParserErrors = 1_747;
pub const xmlParserErrors_XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD: xmlParserErrors = 1_748;
pub const xmlParserErrors_XML_SCHEMAP_UNKNOWN_SCHEMAS_CHILD: xmlParserErrors = 1_749;
pub const xmlParserErrors_XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD: xmlParserErrors = 1_750;
pub const xmlParserErrors_XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD: xmlParserErrors = 1_751;
pub const xmlParserErrors_XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD: xmlParserErrors = 1_752;
pub const xmlParserErrors_XML_SCHEMAP_UNKNOWN_TYPE: xmlParserErrors = 1_753;
pub const xmlParserErrors_XML_SCHEMAP_UNKNOWN_UNION_CHILD: xmlParserErrors = 1_754;
pub const xmlParserErrors_XML_SCHEMAP_ELEM_DEFAULT_FIXED: xmlParserErrors = 1_755;
pub const xmlParserErrors_XML_SCHEMAP_REGEXP_INVALID: xmlParserErrors = 1_756;
pub const xmlParserErrors_XML_SCHEMAP_FAILED_LOAD: xmlParserErrors = 1_757;
pub const xmlParserErrors_XML_SCHEMAP_NOTHING_TO_PARSE: xmlParserErrors = 1_758;
pub const xmlParserErrors_XML_SCHEMAP_NOROOT: xmlParserErrors = 1_759;
pub const xmlParserErrors_XML_SCHEMAP_REDEFINED_GROUP: xmlParserErrors = 1_760;
pub const xmlParserErrors_XML_SCHEMAP_REDEFINED_TYPE: xmlParserErrors = 1_761;
pub const xmlParserErrors_XML_SCHEMAP_REDEFINED_ELEMENT: xmlParserErrors = 1_762;
pub const xmlParserErrors_XML_SCHEMAP_REDEFINED_ATTRGROUP: xmlParserErrors = 1_763;
pub const xmlParserErrors_XML_SCHEMAP_REDEFINED_ATTR: xmlParserErrors = 1_764;
pub const xmlParserErrors_XML_SCHEMAP_REDEFINED_NOTATION: xmlParserErrors = 1_765;
pub const xmlParserErrors_XML_SCHEMAP_FAILED_PARSE: xmlParserErrors = 1_766;
pub const xmlParserErrors_XML_SCHEMAP_UNKNOWN_PREFIX: xmlParserErrors = 1_767;
pub const xmlParserErrors_XML_SCHEMAP_DEF_AND_PREFIX: xmlParserErrors = 1_768;
pub const xmlParserErrors_XML_SCHEMAP_UNKNOWN_INCLUDE_CHILD: xmlParserErrors = 1_769;
pub const xmlParserErrors_XML_SCHEMAP_INCLUDE_SCHEMA_NOT_URI: xmlParserErrors = 1_770;
pub const xmlParserErrors_XML_SCHEMAP_INCLUDE_SCHEMA_NO_URI: xmlParserErrors = 1_771;
pub const xmlParserErrors_XML_SCHEMAP_NOT_SCHEMA: xmlParserErrors = 1_772;
pub const xmlParserErrors_XML_SCHEMAP_UNKNOWN_MEMBER_TYPE: xmlParserErrors = 1_773;
pub const xmlParserErrors_XML_SCHEMAP_INVALID_ATTR_USE: xmlParserErrors = 1_774;
pub const xmlParserErrors_XML_SCHEMAP_RECURSIVE: xmlParserErrors = 1_775;
pub const xmlParserErrors_XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE: xmlParserErrors = 1_776;
pub const xmlParserErrors_XML_SCHEMAP_INVALID_ATTR_COMBINATION: xmlParserErrors = 1_777;
pub const xmlParserErrors_XML_SCHEMAP_INVALID_ATTR_INLINE_COMBINATION: xmlParserErrors = 1_778;
pub const xmlParserErrors_XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD: xmlParserErrors = 1_779;
pub const xmlParserErrors_XML_SCHEMAP_INVALID_ATTR_NAME: xmlParserErrors = 1_780;
pub const xmlParserErrors_XML_SCHEMAP_REF_AND_CONTENT: xmlParserErrors = 1_781;
pub const xmlParserErrors_XML_SCHEMAP_CT_PROPS_CORRECT_1: xmlParserErrors = 1_782;
pub const xmlParserErrors_XML_SCHEMAP_CT_PROPS_CORRECT_2: xmlParserErrors = 1_783;
pub const xmlParserErrors_XML_SCHEMAP_CT_PROPS_CORRECT_3: xmlParserErrors = 1_784;
pub const xmlParserErrors_XML_SCHEMAP_CT_PROPS_CORRECT_4: xmlParserErrors = 1_785;
pub const xmlParserErrors_XML_SCHEMAP_CT_PROPS_CORRECT_5: xmlParserErrors = 1_786;
pub const xmlParserErrors_XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1: xmlParserErrors = 1_787;
pub const xmlParserErrors_XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1: xmlParserErrors = 1_788;
pub const xmlParserErrors_XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2: xmlParserErrors = 1_789;
pub const xmlParserErrors_XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2: xmlParserErrors = 1_790;
pub const xmlParserErrors_XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3: xmlParserErrors = 1_791;
pub const xmlParserErrors_XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER: xmlParserErrors = 1_792;
pub const xmlParserErrors_XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE: xmlParserErrors = 1_793;
pub const xmlParserErrors_XML_SCHEMAP_UNION_NOT_EXPRESSIBLE: xmlParserErrors = 1_794;
pub const xmlParserErrors_XML_SCHEMAP_SRC_IMPORT_3_1: xmlParserErrors = 1_795;
pub const xmlParserErrors_XML_SCHEMAP_SRC_IMPORT_3_2: xmlParserErrors = 1_796;
pub const xmlParserErrors_XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1: xmlParserErrors = 1_797;
pub const xmlParserErrors_XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2: xmlParserErrors = 1_798;
pub const xmlParserErrors_XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3: xmlParserErrors = 1_799;
pub const xmlParserErrors_XML_SCHEMAP_COS_CT_EXTENDS_1_3: xmlParserErrors = 1_800;
pub const xmlParserErrors_XML_SCHEMAV_NOROOT: xmlParserErrors = 1_801;
pub const xmlParserErrors_XML_SCHEMAV_UNDECLAREDELEM: xmlParserErrors = 1_802;
pub const xmlParserErrors_XML_SCHEMAV_NOTTOPLEVEL: xmlParserErrors = 1_803;
pub const xmlParserErrors_XML_SCHEMAV_MISSING: xmlParserErrors = 1_804;
pub const xmlParserErrors_XML_SCHEMAV_WRONGELEM: xmlParserErrors = 1_805;
pub const xmlParserErrors_XML_SCHEMAV_NOTYPE: xmlParserErrors = 1_806;
pub const xmlParserErrors_XML_SCHEMAV_NOROLLBACK: xmlParserErrors = 1_807;
pub const xmlParserErrors_XML_SCHEMAV_ISABSTRACT: xmlParserErrors = 1_808;
pub const xmlParserErrors_XML_SCHEMAV_NOTEMPTY: xmlParserErrors = 1_809;
pub const xmlParserErrors_XML_SCHEMAV_ELEMCONT: xmlParserErrors = 1_810;
pub const xmlParserErrors_XML_SCHEMAV_HAVEDEFAULT: xmlParserErrors = 1_811;
pub const xmlParserErrors_XML_SCHEMAV_NOTNILLABLE: xmlParserErrors = 1_812;
pub const xmlParserErrors_XML_SCHEMAV_EXTRACONTENT: xmlParserErrors = 1_813;
pub const xmlParserErrors_XML_SCHEMAV_INVALIDATTR: xmlParserErrors = 1_814;
pub const xmlParserErrors_XML_SCHEMAV_INVALIDELEM: xmlParserErrors = 1_815;
pub const xmlParserErrors_XML_SCHEMAV_NOTDETERMINIST: xmlParserErrors = 1_816;
pub const xmlParserErrors_XML_SCHEMAV_CONSTRUCT: xmlParserErrors = 1_817;
pub const xmlParserErrors_XML_SCHEMAV_INTERNAL: xmlParserErrors = 1_818;
pub const xmlParserErrors_XML_SCHEMAV_NOTSIMPLE: xmlParserErrors = 1_819;
pub const xmlParserErrors_XML_SCHEMAV_ATTRUNKNOWN: xmlParserErrors = 1_820;
pub const xmlParserErrors_XML_SCHEMAV_ATTRINVALID: xmlParserErrors = 1_821;
pub const xmlParserErrors_XML_SCHEMAV_VALUE: xmlParserErrors = 1_822;
pub const xmlParserErrors_XML_SCHEMAV_FACET: xmlParserErrors = 1_823;
pub const xmlParserErrors_XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1: xmlParserErrors = 1_824;
pub const xmlParserErrors_XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2: xmlParserErrors = 1_825;
pub const xmlParserErrors_XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3: xmlParserErrors = 1_826;
pub const xmlParserErrors_XML_SCHEMAV_CVC_TYPE_3_1_1: xmlParserErrors = 1_827;
pub const xmlParserErrors_XML_SCHEMAV_CVC_TYPE_3_1_2: xmlParserErrors = 1_828;
pub const xmlParserErrors_XML_SCHEMAV_CVC_FACET_VALID: xmlParserErrors = 1_829;
pub const xmlParserErrors_XML_SCHEMAV_CVC_LENGTH_VALID: xmlParserErrors = 1_830;
pub const xmlParserErrors_XML_SCHEMAV_CVC_MINLENGTH_VALID: xmlParserErrors = 1_831;
pub const xmlParserErrors_XML_SCHEMAV_CVC_MAXLENGTH_VALID: xmlParserErrors = 1_832;
pub const xmlParserErrors_XML_SCHEMAV_CVC_MININCLUSIVE_VALID: xmlParserErrors = 1_833;
pub const xmlParserErrors_XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID: xmlParserErrors = 1_834;
pub const xmlParserErrors_XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID: xmlParserErrors = 1_835;
pub const xmlParserErrors_XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID: xmlParserErrors = 1_836;
pub const xmlParserErrors_XML_SCHEMAV_CVC_TOTALDIGITS_VALID: xmlParserErrors = 1_837;
pub const xmlParserErrors_XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID: xmlParserErrors = 1_838;
pub const xmlParserErrors_XML_SCHEMAV_CVC_PATTERN_VALID: xmlParserErrors = 1_839;
pub const xmlParserErrors_XML_SCHEMAV_CVC_ENUMERATION_VALID: xmlParserErrors = 1_840;
pub const xmlParserErrors_XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1: xmlParserErrors = 1_841;
pub const xmlParserErrors_XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2: xmlParserErrors = 1_842;
pub const xmlParserErrors_XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3: xmlParserErrors = 1_843;
pub const xmlParserErrors_XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4: xmlParserErrors = 1_844;
pub const xmlParserErrors_XML_SCHEMAV_CVC_ELT_1: xmlParserErrors = 1_845;
pub const xmlParserErrors_XML_SCHEMAV_CVC_ELT_2: xmlParserErrors = 1_846;
pub const xmlParserErrors_XML_SCHEMAV_CVC_ELT_3_1: xmlParserErrors = 1_847;
pub const xmlParserErrors_XML_SCHEMAV_CVC_ELT_3_2_1: xmlParserErrors = 1_848;
pub const xmlParserErrors_XML_SCHEMAV_CVC_ELT_3_2_2: xmlParserErrors = 1_849;
pub const xmlParserErrors_XML_SCHEMAV_CVC_ELT_4_1: xmlParserErrors = 1_850;
pub const xmlParserErrors_XML_SCHEMAV_CVC_ELT_4_2: xmlParserErrors = 1_851;
pub const xmlParserErrors_XML_SCHEMAV_CVC_ELT_4_3: xmlParserErrors = 1_852;
pub const xmlParserErrors_XML_SCHEMAV_CVC_ELT_5_1_1: xmlParserErrors = 1_853;
pub const xmlParserErrors_XML_SCHEMAV_CVC_ELT_5_1_2: xmlParserErrors = 1_854;
pub const xmlParserErrors_XML_SCHEMAV_CVC_ELT_5_2_1: xmlParserErrors = 1_855;
pub const xmlParserErrors_XML_SCHEMAV_CVC_ELT_5_2_2_1: xmlParserErrors = 1_856;
pub const xmlParserErrors_XML_SCHEMAV_CVC_ELT_5_2_2_2_1: xmlParserErrors = 1_857;
pub const xmlParserErrors_XML_SCHEMAV_CVC_ELT_5_2_2_2_2: xmlParserErrors = 1_858;
pub const xmlParserErrors_XML_SCHEMAV_CVC_ELT_6: xmlParserErrors = 1_859;
pub const xmlParserErrors_XML_SCHEMAV_CVC_ELT_7: xmlParserErrors = 1_860;
pub const xmlParserErrors_XML_SCHEMAV_CVC_ATTRIBUTE_1: xmlParserErrors = 1_861;
pub const xmlParserErrors_XML_SCHEMAV_CVC_ATTRIBUTE_2: xmlParserErrors = 1_862;
pub const xmlParserErrors_XML_SCHEMAV_CVC_ATTRIBUTE_3: xmlParserErrors = 1_863;
pub const xmlParserErrors_XML_SCHEMAV_CVC_ATTRIBUTE_4: xmlParserErrors = 1_864;
pub const xmlParserErrors_XML_SCHEMAV_CVC_COMPLEX_TYPE_3_1: xmlParserErrors = 1_865;
pub const xmlParserErrors_XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_1: xmlParserErrors = 1_866;
pub const xmlParserErrors_XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_2: xmlParserErrors = 1_867;
pub const xmlParserErrors_XML_SCHEMAV_CVC_COMPLEX_TYPE_4: xmlParserErrors = 1_868;
pub const xmlParserErrors_XML_SCHEMAV_CVC_COMPLEX_TYPE_5_1: xmlParserErrors = 1_869;
pub const xmlParserErrors_XML_SCHEMAV_CVC_COMPLEX_TYPE_5_2: xmlParserErrors = 1_870;
pub const xmlParserErrors_XML_SCHEMAV_ELEMENT_CONTENT: xmlParserErrors = 1_871;
pub const xmlParserErrors_XML_SCHEMAV_DOCUMENT_ELEMENT_MISSING: xmlParserErrors = 1_872;
pub const xmlParserErrors_XML_SCHEMAV_CVC_COMPLEX_TYPE_1: xmlParserErrors = 1_873;
pub const xmlParserErrors_XML_SCHEMAV_CVC_AU: xmlParserErrors = 1_874;
pub const xmlParserErrors_XML_SCHEMAV_CVC_TYPE_1: xmlParserErrors = 1_875;
pub const xmlParserErrors_XML_SCHEMAV_CVC_TYPE_2: xmlParserErrors = 1_876;
pub const xmlParserErrors_XML_SCHEMAV_CVC_IDC: xmlParserErrors = 1_877;
pub const xmlParserErrors_XML_SCHEMAV_CVC_WILDCARD: xmlParserErrors = 1_878;
pub const xmlParserErrors_XML_SCHEMAV_MISC: xmlParserErrors = 1_879;
pub const xmlParserErrors_XML_XPTR_UNKNOWN_SCHEME: xmlParserErrors = 1_900;
pub const xmlParserErrors_XML_XPTR_CHILDSEQ_START: xmlParserErrors = 1_901;
pub const xmlParserErrors_XML_XPTR_EVAL_FAILED: xmlParserErrors = 1_902;
pub const xmlParserErrors_XML_XPTR_EXTRA_OBJECTS: xmlParserErrors = 1_903;
pub const xmlParserErrors_XML_C14N_CREATE_CTXT: xmlParserErrors = 1_950;
pub const xmlParserErrors_XML_C14N_REQUIRES_UTF8: xmlParserErrors = 1_951;
pub const xmlParserErrors_XML_C14N_CREATE_STACK: xmlParserErrors = 1_952;
pub const xmlParserErrors_XML_C14N_INVALID_NODE: xmlParserErrors = 1_953;
pub const xmlParserErrors_XML_C14N_UNKNOW_NODE: xmlParserErrors = 1_954;
pub const xmlParserErrors_XML_C14N_RELATIVE_NAMESPACE: xmlParserErrors = 1_955;
pub const xmlParserErrors_XML_FTP_PASV_ANSWER: xmlParserErrors = 2_000;
pub const xmlParserErrors_XML_FTP_EPSV_ANSWER: xmlParserErrors = 2_001;
pub const xmlParserErrors_XML_FTP_ACCNT: xmlParserErrors = 2_002;
pub const xmlParserErrors_XML_FTP_URL_SYNTAX: xmlParserErrors = 2_003;
pub const xmlParserErrors_XML_HTTP_URL_SYNTAX: xmlParserErrors = 2_020;
pub const xmlParserErrors_XML_HTTP_USE_IP: xmlParserErrors = 2_021;
pub const xmlParserErrors_XML_HTTP_UNKNOWN_HOST: xmlParserErrors = 2_022;
pub const xmlParserErrors_XML_SCHEMAP_SRC_SIMPLE_TYPE_1: xmlParserErrors = 3_000;
pub const xmlParserErrors_XML_SCHEMAP_SRC_SIMPLE_TYPE_2: xmlParserErrors = 3_001;
pub const xmlParserErrors_XML_SCHEMAP_SRC_SIMPLE_TYPE_3: xmlParserErrors = 3_002;
pub const xmlParserErrors_XML_SCHEMAP_SRC_SIMPLE_TYPE_4: xmlParserErrors = 3_003;
pub const xmlParserErrors_XML_SCHEMAP_SRC_RESOLVE: xmlParserErrors = 3_004;
pub const xmlParserErrors_XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE: xmlParserErrors = 3_005;
pub const xmlParserErrors_XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE: xmlParserErrors = 3_006;
pub const xmlParserErrors_XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES: xmlParserErrors = 3_007;
pub const xmlParserErrors_XML_SCHEMAP_ST_PROPS_CORRECT_1: xmlParserErrors = 3_008;
pub const xmlParserErrors_XML_SCHEMAP_ST_PROPS_CORRECT_2: xmlParserErrors = 3_009;
pub const xmlParserErrors_XML_SCHEMAP_ST_PROPS_CORRECT_3: xmlParserErrors = 3_010;
pub const xmlParserErrors_XML_SCHEMAP_COS_ST_RESTRICTS_1_1: xmlParserErrors = 3_011;
pub const xmlParserErrors_XML_SCHEMAP_COS_ST_RESTRICTS_1_2: xmlParserErrors = 3_012;
pub const xmlParserErrors_XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1: xmlParserErrors = 3_013;
pub const xmlParserErrors_XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2: xmlParserErrors = 3_014;
pub const xmlParserErrors_XML_SCHEMAP_COS_ST_RESTRICTS_2_1: xmlParserErrors = 3_015;
pub const xmlParserErrors_XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1: xmlParserErrors = 3_016;
pub const xmlParserErrors_XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2: xmlParserErrors = 3_017;
pub const xmlParserErrors_XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1: xmlParserErrors = 3_018;
pub const xmlParserErrors_XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2: xmlParserErrors = 3_019;
pub const xmlParserErrors_XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3: xmlParserErrors = 3_020;
pub const xmlParserErrors_XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4: xmlParserErrors = 3_021;
pub const xmlParserErrors_XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_5: xmlParserErrors = 3_022;
pub const xmlParserErrors_XML_SCHEMAP_COS_ST_RESTRICTS_3_1: xmlParserErrors = 3_023;
pub const xmlParserErrors_XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1: xmlParserErrors = 3_024;
pub const xmlParserErrors_XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2: xmlParserErrors = 3_025;
pub const xmlParserErrors_XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2: xmlParserErrors = 3_026;
pub const xmlParserErrors_XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1: xmlParserErrors = 3_027;
pub const xmlParserErrors_XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3: xmlParserErrors = 3_028;
pub const xmlParserErrors_XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4: xmlParserErrors = 3_029;
pub const xmlParserErrors_XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5: xmlParserErrors = 3_030;
pub const xmlParserErrors_XML_SCHEMAP_COS_ST_DERIVED_OK_2_1: xmlParserErrors = 3_031;
pub const xmlParserErrors_XML_SCHEMAP_COS_ST_DERIVED_OK_2_2: xmlParserErrors = 3_032;
pub const xmlParserErrors_XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED: xmlParserErrors = 3_033;
pub const xmlParserErrors_XML_SCHEMAP_S4S_ELEM_MISSING: xmlParserErrors = 3_034;
pub const xmlParserErrors_XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED: xmlParserErrors = 3_035;
pub const xmlParserErrors_XML_SCHEMAP_S4S_ATTR_MISSING: xmlParserErrors = 3_036;
pub const xmlParserErrors_XML_SCHEMAP_S4S_ATTR_INVALID_VALUE: xmlParserErrors = 3_037;
pub const xmlParserErrors_XML_SCHEMAP_SRC_ELEMENT_1: xmlParserErrors = 3_038;
pub const xmlParserErrors_XML_SCHEMAP_SRC_ELEMENT_2_1: xmlParserErrors = 3_039;
pub const xmlParserErrors_XML_SCHEMAP_SRC_ELEMENT_2_2: xmlParserErrors = 3_040;
pub const xmlParserErrors_XML_SCHEMAP_SRC_ELEMENT_3: xmlParserErrors = 3_041;
pub const xmlParserErrors_XML_SCHEMAP_P_PROPS_CORRECT_1: xmlParserErrors = 3_042;
pub const xmlParserErrors_XML_SCHEMAP_P_PROPS_CORRECT_2_1: xmlParserErrors = 3_043;
pub const xmlParserErrors_XML_SCHEMAP_P_PROPS_CORRECT_2_2: xmlParserErrors = 3_044;
pub const xmlParserErrors_XML_SCHEMAP_E_PROPS_CORRECT_2: xmlParserErrors = 3_045;
pub const xmlParserErrors_XML_SCHEMAP_E_PROPS_CORRECT_3: xmlParserErrors = 3_046;
pub const xmlParserErrors_XML_SCHEMAP_E_PROPS_CORRECT_4: xmlParserErrors = 3_047;
pub const xmlParserErrors_XML_SCHEMAP_E_PROPS_CORRECT_5: xmlParserErrors = 3_048;
pub const xmlParserErrors_XML_SCHEMAP_E_PROPS_CORRECT_6: xmlParserErrors = 3_049;
pub const xmlParserErrors_XML_SCHEMAP_SRC_INCLUDE: xmlParserErrors = 3_050;
pub const xmlParserErrors_XML_SCHEMAP_SRC_ATTRIBUTE_1: xmlParserErrors = 3_051;
pub const xmlParserErrors_XML_SCHEMAP_SRC_ATTRIBUTE_2: xmlParserErrors = 3_052;
pub const xmlParserErrors_XML_SCHEMAP_SRC_ATTRIBUTE_3_1: xmlParserErrors = 3_053;
pub const xmlParserErrors_XML_SCHEMAP_SRC_ATTRIBUTE_3_2: xmlParserErrors = 3_054;
pub const xmlParserErrors_XML_SCHEMAP_SRC_ATTRIBUTE_4: xmlParserErrors = 3_055;
pub const xmlParserErrors_XML_SCHEMAP_NO_XMLNS: xmlParserErrors = 3_056;
pub const xmlParserErrors_XML_SCHEMAP_NO_XSI: xmlParserErrors = 3_057;
pub const xmlParserErrors_XML_SCHEMAP_COS_VALID_DEFAULT_1: xmlParserErrors = 3_058;
pub const xmlParserErrors_XML_SCHEMAP_COS_VALID_DEFAULT_2_1: xmlParserErrors = 3_059;
pub const xmlParserErrors_XML_SCHEMAP_COS_VALID_DEFAULT_2_2_1: xmlParserErrors = 3_060;
pub const xmlParserErrors_XML_SCHEMAP_COS_VALID_DEFAULT_2_2_2: xmlParserErrors = 3_061;
pub const xmlParserErrors_XML_SCHEMAP_CVC_SIMPLE_TYPE: xmlParserErrors = 3_062;
pub const xmlParserErrors_XML_SCHEMAP_COS_CT_EXTENDS_1_1: xmlParserErrors = 3_063;
pub const xmlParserErrors_XML_SCHEMAP_SRC_IMPORT_1_1: xmlParserErrors = 3_064;
pub const xmlParserErrors_XML_SCHEMAP_SRC_IMPORT_1_2: xmlParserErrors = 3_065;
pub const xmlParserErrors_XML_SCHEMAP_SRC_IMPORT_2: xmlParserErrors = 3_066;
pub const xmlParserErrors_XML_SCHEMAP_SRC_IMPORT_2_1: xmlParserErrors = 3_067;
pub const xmlParserErrors_XML_SCHEMAP_SRC_IMPORT_2_2: xmlParserErrors = 3_068;
pub const xmlParserErrors_XML_SCHEMAP_INTERNAL: xmlParserErrors = 3_069;
pub const xmlParserErrors_XML_SCHEMAP_NOT_DETERMINISTIC: xmlParserErrors = 3_070;
pub const xmlParserErrors_XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_1: xmlParserErrors = 3_071;
pub const xmlParserErrors_XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_2: xmlParserErrors = 3_072;
pub const xmlParserErrors_XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_3: xmlParserErrors = 3_073;
pub const xmlParserErrors_XML_SCHEMAP_MG_PROPS_CORRECT_1: xmlParserErrors = 3_074;
pub const xmlParserErrors_XML_SCHEMAP_MG_PROPS_CORRECT_2: xmlParserErrors = 3_075;
pub const xmlParserErrors_XML_SCHEMAP_SRC_CT_1: xmlParserErrors = 3_076;
pub const xmlParserErrors_XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3: xmlParserErrors = 3_077;
pub const xmlParserErrors_XML_SCHEMAP_AU_PROPS_CORRECT_2: xmlParserErrors = 3_078;
pub const xmlParserErrors_XML_SCHEMAP_A_PROPS_CORRECT_2: xmlParserErrors = 3_079;
pub const xmlParserErrors_XML_SCHEMAP_C_PROPS_CORRECT: xmlParserErrors = 3_080;
pub const xmlParserErrors_XML_SCHEMAP_SRC_REDEFINE: xmlParserErrors = 3_081;
pub const xmlParserErrors_XML_SCHEMAP_SRC_IMPORT: xmlParserErrors = 3_082;
pub const xmlParserErrors_XML_SCHEMAP_WARN_SKIP_SCHEMA: xmlParserErrors = 3_083;
pub const xmlParserErrors_XML_SCHEMAP_WARN_UNLOCATED_SCHEMA: xmlParserErrors = 3_084;
pub const xmlParserErrors_XML_SCHEMAP_WARN_ATTR_REDECL_PROH: xmlParserErrors = 3_085;
pub const xmlParserErrors_XML_SCHEMAP_WARN_ATTR_POINTLESS_PROH: xmlParserErrors = 3_086;
pub const xmlParserErrors_XML_SCHEMAP_AG_PROPS_CORRECT: xmlParserErrors = 3_087;
pub const xmlParserErrors_XML_SCHEMAP_COS_CT_EXTENDS_1_2: xmlParserErrors = 3_088;
pub const xmlParserErrors_XML_SCHEMAP_AU_PROPS_CORRECT: xmlParserErrors = 3_089;
pub const xmlParserErrors_XML_SCHEMAP_A_PROPS_CORRECT_3: xmlParserErrors = 3_090;
pub const xmlParserErrors_XML_SCHEMAP_COS_ALL_LIMITED: xmlParserErrors = 3_091;
pub const xmlParserErrors_XML_SCHEMATRONV_ASSERT: xmlParserErrors = 4_000;
pub const xmlParserErrors_XML_SCHEMATRONV_REPORT: xmlParserErrors = 4_001;
pub const xmlParserErrors_XML_MODULE_OPEN: xmlParserErrors = 4_900;
pub const xmlParserErrors_XML_MODULE_CLOSE: xmlParserErrors = 4_901;
pub const xmlParserErrors_XML_CHECK_FOUND_ELEMENT: xmlParserErrors = 5_000;
pub const xmlParserErrors_XML_CHECK_FOUND_ATTRIBUTE: xmlParserErrors = 5_001;
pub const xmlParserErrors_XML_CHECK_FOUND_TEXT: xmlParserErrors = 5_002;
pub const xmlParserErrors_XML_CHECK_FOUND_CDATA: xmlParserErrors = 5_003;
pub const xmlParserErrors_XML_CHECK_FOUND_ENTITYREF: xmlParserErrors = 5_004;
pub const xmlParserErrors_XML_CHECK_FOUND_ENTITY: xmlParserErrors = 5_005;
pub const xmlParserErrors_XML_CHECK_FOUND_PI: xmlParserErrors = 5_006;
pub const xmlParserErrors_XML_CHECK_FOUND_COMMENT: xmlParserErrors = 5_007;
pub const xmlParserErrors_XML_CHECK_FOUND_DOCTYPE: xmlParserErrors = 5_008;
pub const xmlParserErrors_XML_CHECK_FOUND_FRAGMENT: xmlParserErrors = 5_009;
pub const xmlParserErrors_XML_CHECK_FOUND_NOTATION: xmlParserErrors = 5_010;
pub const xmlParserErrors_XML_CHECK_UNKNOWN_NODE: xmlParserErrors = 5_011;
pub const xmlParserErrors_XML_CHECK_ENTITY_TYPE: xmlParserErrors = 5_012;
pub const xmlParserErrors_XML_CHECK_NO_PARENT: xmlParserErrors = 5_013;
pub const xmlParserErrors_XML_CHECK_NO_DOC: xmlParserErrors = 5_014;
pub const xmlParserErrors_XML_CHECK_NO_NAME: xmlParserErrors = 5_015;
pub const xmlParserErrors_XML_CHECK_NO_ELEM: xmlParserErrors = 5_016;
pub const xmlParserErrors_XML_CHECK_WRONG_DOC: xmlParserErrors = 5_017;
pub const xmlParserErrors_XML_CHECK_NO_PREV: xmlParserErrors = 5_018;
pub const xmlParserErrors_XML_CHECK_WRONG_PREV: xmlParserErrors = 5_019;
pub const xmlParserErrors_XML_CHECK_NO_NEXT: xmlParserErrors = 5_020;
pub const xmlParserErrors_XML_CHECK_WRONG_NEXT: xmlParserErrors = 5_021;
pub const xmlParserErrors_XML_CHECK_NOT_DTD: xmlParserErrors = 5_022;
pub const xmlParserErrors_XML_CHECK_NOT_ATTR: xmlParserErrors = 5_023;
pub const xmlParserErrors_XML_CHECK_NOT_ATTR_DECL: xmlParserErrors = 5_024;
pub const xmlParserErrors_XML_CHECK_NOT_ELEM_DECL: xmlParserErrors = 5_025;
pub const xmlParserErrors_XML_CHECK_NOT_ENTITY_DECL: xmlParserErrors = 5_026;
pub const xmlParserErrors_XML_CHECK_NOT_NS_DECL: xmlParserErrors = 5_027;
pub const xmlParserErrors_XML_CHECK_NO_HREF: xmlParserErrors = 5_028;
pub const xmlParserErrors_XML_CHECK_WRONG_PARENT: xmlParserErrors = 5_029;
pub const xmlParserErrors_XML_CHECK_NS_SCOPE: xmlParserErrors = 5_030;
pub const xmlParserErrors_XML_CHECK_NS_ANCESTOR: xmlParserErrors = 5_031;
pub const xmlParserErrors_XML_CHECK_NOT_UTF8: xmlParserErrors = 5_032;
pub const xmlParserErrors_XML_CHECK_NO_DICT: xmlParserErrors = 5_033;
pub const xmlParserErrors_XML_CHECK_NOT_NCNAME: xmlParserErrors = 5_034;
pub const xmlParserErrors_XML_CHECK_OUTSIDE_DICT: xmlParserErrors = 5_035;
pub const xmlParserErrors_XML_CHECK_WRONG_NAME: xmlParserErrors = 5_036;
pub const xmlParserErrors_XML_CHECK_NAME_NOT_NULL: xmlParserErrors = 5_037;
pub const xmlParserErrors_XML_I18N_NO_NAME: xmlParserErrors = 6_000;
pub const xmlParserErrors_XML_I18N_NO_HANDLER: xmlParserErrors = 6_001;
pub const xmlParserErrors_XML_I18N_EXCESS_HANDLER: xmlParserErrors = 6_002;
pub const xmlParserErrors_XML_I18N_CONV_FAILED: xmlParserErrors = 6_003;
pub const xmlParserErrors_XML_I18N_NO_OUTPUT: xmlParserErrors = 6_004;
pub const xmlParserErrors_XML_BUF_OVERFLOW: xmlParserErrors = 7_000;
/// xmlParserError:
///
/// This is an error that the XML (or HTML) parser can generate
pub type xmlParserErrors = u32;
/// xmlGenericErrorFunc:
/// @ctx:  a parsing context
/// @msg:  the message
/// @...:  the extra arguments of the varags to format the message
///
/// Signature of the function to use when there is an error and
/// no parsing or validity context available .
pub type xmlGenericErrorFunc = ::std::option::Option<
  unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, msg: *const ::std::os::raw::c_char, ...),
>;
/// xmlStructuredErrorFunc:
/// @userData:  user provided data for the error callback
/// @error:  the error being raised.
///
/// Signature of the function to use when there is an error and
/// the module handles the new error reporting mechanism.
pub type xmlStructuredErrorFunc =
  ::std::option::Option<unsafe fn(userData: *mut ::std::os::raw::c_void, error: xmlErrorPtr)>;
extern "C" {
  pub fn xmlSetGenericErrorFunc(ctx: *mut ::std::os::raw::c_void, handler: xmlGenericErrorFunc);
}
extern "C" {
  pub fn initGenericErrorDefaultFunc(handler: *mut xmlGenericErrorFunc);
}
extern "C" {
  pub fn xmlSetStructuredErrorFunc(
    ctx: *mut ::std::os::raw::c_void,
    handler: xmlStructuredErrorFunc,
  );
}
extern "C" {
  pub fn xmlParserError(ctx: *mut ::std::os::raw::c_void, msg: *const ::std::os::raw::c_char, ...);
}
extern "C" {
  pub fn xmlParserWarning(
    ctx: *mut ::std::os::raw::c_void,
    msg: *const ::std::os::raw::c_char,
    ...
  );
}
extern "C" {
  pub fn xmlParserValidityError(
    ctx: *mut ::std::os::raw::c_void,
    msg: *const ::std::os::raw::c_char,
    ...
  );
}
extern "C" {
  pub fn xmlParserValidityWarning(
    ctx: *mut ::std::os::raw::c_void,
    msg: *const ::std::os::raw::c_char,
    ...
  );
}
extern "C" {
  pub fn xmlParserPrintFileInfo(input: xmlParserInputPtr);
}
extern "C" {
  pub fn xmlParserPrintFileContext(input: xmlParserInputPtr);
}
extern "C" {
  pub fn xmlGetLastError() -> xmlErrorPtr;
}
extern "C" {
  pub fn xmlResetLastError();
}
extern "C" {
  pub fn xmlCtxtGetLastError(ctx: *mut ::std::os::raw::c_void) -> xmlErrorPtr;
}
extern "C" {
  pub fn xmlCtxtResetLastError(ctx: *mut ::std::os::raw::c_void);
}
extern "C" {
  pub fn xmlResetError(err: xmlErrorPtr);
}
extern "C" {
  pub fn xmlCopyError(from: xmlErrorPtr, to: xmlErrorPtr) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlLink {
  _unused: [u8; 0],
}
pub type xmlLink = _xmlLink;
pub type xmlLinkPtr = *mut xmlLink;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlList {
  _unused: [u8; 0],
}
pub type xmlList = _xmlList;
pub type xmlListPtr = *mut xmlList;
/// xmlListDeallocator:
/// @lk:  the data to deallocate
///
/// Callback function used to free data from a list.
pub type xmlListDeallocator = ::std::option::Option<unsafe extern "C" fn(lk: xmlLinkPtr)>;
/// xmlListDataCompare:
/// @data0: the first data
/// @data1: the second data
///
/// Callback function used to compare 2 data.
///
/// Returns 0 is equality, -1 or 1 otherwise depending on the ordering.
pub type xmlListDataCompare = ::std::option::Option<
  unsafe extern "C" fn(
    data0: *const ::std::os::raw::c_void,
    data1: *const ::std::os::raw::c_void,
  ) -> ::std::os::raw::c_int,
>;
/// xmlListWalker:
/// @data: the data found in the list
/// @user: extra user provided data to the walker
///
/// Callback function used when walking a list with xmlListWalk().
///
/// Returns 0 to stop walking the list, 1 otherwise.
pub type xmlListWalker = ::std::option::Option<
  unsafe extern "C" fn(
    data: *const ::std::os::raw::c_void,
    user: *const ::std::os::raw::c_void,
  ) -> ::std::os::raw::c_int,
>;
extern "C" {
  pub fn xmlListCreate(deallocator: xmlListDeallocator, compare: xmlListDataCompare) -> xmlListPtr;
}
extern "C" {
  pub fn xmlListDelete(l: xmlListPtr);
}
extern "C" {
  pub fn xmlListSearch(
    l: xmlListPtr,
    data: *mut ::std::os::raw::c_void,
  ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn xmlListReverseSearch(
    l: xmlListPtr,
    data: *mut ::std::os::raw::c_void,
  ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn xmlListInsert(l: xmlListPtr, data: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlListAppend(l: xmlListPtr, data: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlListRemoveFirst(
    l: xmlListPtr,
    data: *mut ::std::os::raw::c_void,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlListRemoveLast(
    l: xmlListPtr,
    data: *mut ::std::os::raw::c_void,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlListRemoveAll(
    l: xmlListPtr,
    data: *mut ::std::os::raw::c_void,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlListClear(l: xmlListPtr);
}
extern "C" {
  pub fn xmlListEmpty(l: xmlListPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlListFront(l: xmlListPtr) -> xmlLinkPtr;
}
extern "C" {
  pub fn xmlListEnd(l: xmlListPtr) -> xmlLinkPtr;
}
extern "C" {
  pub fn xmlListSize(l: xmlListPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlListPopFront(l: xmlListPtr);
}
extern "C" {
  pub fn xmlListPopBack(l: xmlListPtr);
}
extern "C" {
  pub fn xmlListPushFront(
    l: xmlListPtr,
    data: *mut ::std::os::raw::c_void,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlListPushBack(l: xmlListPtr, data: *mut ::std::os::raw::c_void)
    -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlListReverse(l: xmlListPtr);
}
extern "C" {
  pub fn xmlListSort(l: xmlListPtr);
}
extern "C" {
  pub fn xmlListWalk(l: xmlListPtr, walker: xmlListWalker, user: *const ::std::os::raw::c_void);
}
extern "C" {
  pub fn xmlListReverseWalk(
    l: xmlListPtr,
    walker: xmlListWalker,
    user: *const ::std::os::raw::c_void,
  );
}
extern "C" {
  pub fn xmlListMerge(l1: xmlListPtr, l2: xmlListPtr);
}
extern "C" {
  pub fn xmlListDup(old: xmlListPtr) -> xmlListPtr;
}
extern "C" {
  pub fn xmlListCopy(cur: xmlListPtr, old: xmlListPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlLinkGetData(lk: xmlLinkPtr) -> *mut ::std::os::raw::c_void;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlAutomata {
  _unused: [u8; 0],
}
/// xmlAutomataPtr:
///
/// A libxml automata description, It can be compiled into a regexp
pub type xmlAutomata = _xmlAutomata;
pub type xmlAutomataPtr = *mut xmlAutomata;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlAutomataState {
  _unused: [u8; 0],
}
/// xmlAutomataStatePtr:
///
/// A state int the automata description,
pub type xmlAutomataState = _xmlAutomataState;
pub type xmlAutomataStatePtr = *mut xmlAutomataState;
extern "C" {
  pub fn xmlNewAutomata() -> xmlAutomataPtr;
}
extern "C" {
  pub fn xmlFreeAutomata(am: xmlAutomataPtr);
}
extern "C" {
  pub fn xmlAutomataGetInitState(am: xmlAutomataPtr) -> xmlAutomataStatePtr;
}
extern "C" {
  pub fn xmlAutomataSetFinalState(
    am: xmlAutomataPtr,
    state: xmlAutomataStatePtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlAutomataNewState(am: xmlAutomataPtr) -> xmlAutomataStatePtr;
}
extern "C" {
  pub fn xmlAutomataNewTransition(
    am: xmlAutomataPtr,
    from: xmlAutomataStatePtr,
    to: xmlAutomataStatePtr,
    token: *const xmlChar,
    data: *mut ::std::os::raw::c_void,
  ) -> xmlAutomataStatePtr;
}
extern "C" {
  pub fn xmlAutomataNewTransition2(
    am: xmlAutomataPtr,
    from: xmlAutomataStatePtr,
    to: xmlAutomataStatePtr,
    token: *const xmlChar,
    token2: *const xmlChar,
    data: *mut ::std::os::raw::c_void,
  ) -> xmlAutomataStatePtr;
}
extern "C" {
  pub fn xmlAutomataNewNegTrans(
    am: xmlAutomataPtr,
    from: xmlAutomataStatePtr,
    to: xmlAutomataStatePtr,
    token: *const xmlChar,
    token2: *const xmlChar,
    data: *mut ::std::os::raw::c_void,
  ) -> xmlAutomataStatePtr;
}
extern "C" {
  pub fn xmlAutomataNewCountTrans(
    am: xmlAutomataPtr,
    from: xmlAutomataStatePtr,
    to: xmlAutomataStatePtr,
    token: *const xmlChar,
    min: ::std::os::raw::c_int,
    max: ::std::os::raw::c_int,
    data: *mut ::std::os::raw::c_void,
  ) -> xmlAutomataStatePtr;
}
extern "C" {
  pub fn xmlAutomataNewCountTrans2(
    am: xmlAutomataPtr,
    from: xmlAutomataStatePtr,
    to: xmlAutomataStatePtr,
    token: *const xmlChar,
    token2: *const xmlChar,
    min: ::std::os::raw::c_int,
    max: ::std::os::raw::c_int,
    data: *mut ::std::os::raw::c_void,
  ) -> xmlAutomataStatePtr;
}
extern "C" {
  pub fn xmlAutomataNewOnceTrans(
    am: xmlAutomataPtr,
    from: xmlAutomataStatePtr,
    to: xmlAutomataStatePtr,
    token: *const xmlChar,
    min: ::std::os::raw::c_int,
    max: ::std::os::raw::c_int,
    data: *mut ::std::os::raw::c_void,
  ) -> xmlAutomataStatePtr;
}
extern "C" {
  pub fn xmlAutomataNewOnceTrans2(
    am: xmlAutomataPtr,
    from: xmlAutomataStatePtr,
    to: xmlAutomataStatePtr,
    token: *const xmlChar,
    token2: *const xmlChar,
    min: ::std::os::raw::c_int,
    max: ::std::os::raw::c_int,
    data: *mut ::std::os::raw::c_void,
  ) -> xmlAutomataStatePtr;
}
extern "C" {
  pub fn xmlAutomataNewAllTrans(
    am: xmlAutomataPtr,
    from: xmlAutomataStatePtr,
    to: xmlAutomataStatePtr,
    lax: ::std::os::raw::c_int,
  ) -> xmlAutomataStatePtr;
}
extern "C" {
  pub fn xmlAutomataNewEpsilon(
    am: xmlAutomataPtr,
    from: xmlAutomataStatePtr,
    to: xmlAutomataStatePtr,
  ) -> xmlAutomataStatePtr;
}
extern "C" {
  pub fn xmlAutomataNewCountedTrans(
    am: xmlAutomataPtr,
    from: xmlAutomataStatePtr,
    to: xmlAutomataStatePtr,
    counter: ::std::os::raw::c_int,
  ) -> xmlAutomataStatePtr;
}
extern "C" {
  pub fn xmlAutomataNewCounterTrans(
    am: xmlAutomataPtr,
    from: xmlAutomataStatePtr,
    to: xmlAutomataStatePtr,
    counter: ::std::os::raw::c_int,
  ) -> xmlAutomataStatePtr;
}
extern "C" {
  pub fn xmlAutomataNewCounter(
    am: xmlAutomataPtr,
    min: ::std::os::raw::c_int,
    max: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlAutomataCompile(am: xmlAutomataPtr) -> xmlRegexpPtr;
}
extern "C" {
  pub fn xmlAutomataIsDeterminist(am: xmlAutomataPtr) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlValidState {
  _unused: [u8; 0],
}
pub type xmlValidState = _xmlValidState;
pub type xmlValidStatePtr = *mut xmlValidState;
/// xmlValidityErrorFunc:
/// @ctx:  usually an xmlValidCtxtPtr to a validity error context,
/// but comes from ctxt->userData (which normally contains such
/// a pointer); ctxt->userData can be changed by the user.
/// @msg:  the string to format *printf like vararg
/// @...:  remaining arguments to the format
///
/// Callback called when a validity error is found. This is a message
/// oriented function similar to an *printf function.
pub type xmlValidityErrorFunc = ::std::option::Option<
  unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, msg: *const ::std::os::raw::c_char, ...),
>;
/// xmlValidityWarningFunc:
/// @ctx:  usually an xmlValidCtxtPtr to a validity error context,
/// but comes from ctxt->userData (which normally contains such
/// a pointer); ctxt->userData can be changed by the user.
/// @msg:  the string to format *printf like vararg
/// @...:  remaining arguments to the format
///
/// Callback called when a validity warning is found. This is a message
/// oriented function similar to an *printf function.
pub type xmlValidityWarningFunc = ::std::option::Option<
  unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, msg: *const ::std::os::raw::c_char, ...),
>;
pub type xmlValidCtxt = _xmlValidCtxt;
pub type xmlValidCtxtPtr = *mut xmlValidCtxt;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlValidCtxt {
  pub userData: *mut ::std::os::raw::c_void,
  pub error: xmlValidityErrorFunc,
  pub warning: xmlValidityWarningFunc,
  pub node: xmlNodePtr,
  pub nodeNr: ::std::os::raw::c_int,
  pub nodeMax: ::std::os::raw::c_int,
  pub nodeTab: *mut xmlNodePtr,
  pub finishDtd: ::std::os::raw::c_uint,
  pub doc: xmlDocPtr,
  pub valid: ::std::os::raw::c_int,
  pub vstate: *mut xmlValidState,
  pub vstateNr: ::std::os::raw::c_int,
  pub vstateMax: ::std::os::raw::c_int,
  pub vstateTab: *mut xmlValidState,
  pub am: xmlAutomataPtr,
  pub state: xmlAutomataStatePtr,
}
#[test]
fn bindgen_test_layout__xmlValidCtxt() {
  assert_eq!(
    ::std::mem::size_of::<_xmlValidCtxt>(),
    112usize,
    concat!("Size of: ", stringify!(_xmlValidCtxt))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlValidCtxt>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlValidCtxt))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlValidCtxt>())).userData as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlValidCtxt),
  //     "::",
  //     stringify!(userData)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlValidCtxt>())).error as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlValidCtxt),
  //     "::",
  //     stringify!(error)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlValidCtxt>())).warning as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlValidCtxt),
  //     "::",
  //     stringify!(warning)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlValidCtxt>())).node as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlValidCtxt),
  //     "::",
  //     stringify!(node)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlValidCtxt>())).nodeNr as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlValidCtxt),
  //     "::",
  //     stringify!(nodeNr)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlValidCtxt>())).nodeMax as *const _ as usize },
  //   36usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlValidCtxt),
  //     "::",
  //     stringify!(nodeMax)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlValidCtxt>())).nodeTab as *const _ as usize },
  //   40usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlValidCtxt),
  //     "::",
  //     stringify!(nodeTab)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlValidCtxt>())).finishDtd as *const _ as usize },
  //   48usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlValidCtxt),
  //     "::",
  //     stringify!(finishDtd)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlValidCtxt>())).doc as *const _ as usize },
  //   56usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlValidCtxt),
  //     "::",
  //     stringify!(doc)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlValidCtxt>())).valid as *const _ as usize },
  //   64usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlValidCtxt),
  //     "::",
  //     stringify!(valid)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlValidCtxt>())).vstate as *const _ as usize },
  //   72usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlValidCtxt),
  //     "::",
  //     stringify!(vstate)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlValidCtxt>())).vstateNr as *const _ as usize },
  //   80usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlValidCtxt),
  //     "::",
  //     stringify!(vstateNr)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlValidCtxt>())).vstateMax as *const _ as usize },
  //   84usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlValidCtxt),
  //     "::",
  //     stringify!(vstateMax)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlValidCtxt>())).vstateTab as *const _ as usize },
  //   88usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlValidCtxt),
  //     "::",
  //     stringify!(vstateTab)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlValidCtxt>())).am as *const _ as usize },
  //   96usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlValidCtxt),
  //     "::",
  //     stringify!(am)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlValidCtxt>())).state as *const _ as usize },
  //   104usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlValidCtxt),
  //     "::",
  //     stringify!(state)
  //   )
  // );
}
pub type xmlNotationTable = _xmlHashTable;
pub type xmlNotationTablePtr = *mut xmlNotationTable;
pub type xmlElementTable = _xmlHashTable;
pub type xmlElementTablePtr = *mut xmlElementTable;
pub type xmlAttributeTable = _xmlHashTable;
pub type xmlAttributeTablePtr = *mut xmlAttributeTable;
pub type xmlIDTable = _xmlHashTable;
pub type xmlIDTablePtr = *mut xmlIDTable;
pub type xmlRefTable = _xmlHashTable;
pub type xmlRefTablePtr = *mut xmlRefTable;
extern "C" {
  pub fn xmlAddNotationDecl(
    ctxt: xmlValidCtxtPtr,
    dtd: xmlDtdPtr,
    name: *const xmlChar,
    PublicID: *const xmlChar,
    SystemID: *const xmlChar,
  ) -> xmlNotationPtr;
}
extern "C" {
  pub fn xmlCopyNotationTable(table: xmlNotationTablePtr) -> xmlNotationTablePtr;
}
extern "C" {
  pub fn xmlFreeNotationTable(table: xmlNotationTablePtr);
}
extern "C" {
  pub fn xmlDumpNotationDecl(buf: xmlBufferPtr, nota: xmlNotationPtr);
}
extern "C" {
  pub fn xmlDumpNotationTable(buf: xmlBufferPtr, table: xmlNotationTablePtr);
}
extern "C" {
  pub fn xmlNewElementContent(
    name: *const xmlChar,
    type_: xmlElementContentType,
  ) -> xmlElementContentPtr;
}
extern "C" {
  pub fn xmlCopyElementContent(content: xmlElementContentPtr) -> xmlElementContentPtr;
}
extern "C" {
  pub fn xmlFreeElementContent(cur: xmlElementContentPtr);
}
extern "C" {
  pub fn xmlNewDocElementContent(
    doc: xmlDocPtr,
    name: *const xmlChar,
    type_: xmlElementContentType,
  ) -> xmlElementContentPtr;
}
extern "C" {
  pub fn xmlCopyDocElementContent(
    doc: xmlDocPtr,
    content: xmlElementContentPtr,
  ) -> xmlElementContentPtr;
}
extern "C" {
  pub fn xmlFreeDocElementContent(doc: xmlDocPtr, cur: xmlElementContentPtr);
}
extern "C" {
  pub fn xmlSnprintfElementContent(
    buf: *mut ::std::os::raw::c_char,
    size: ::std::os::raw::c_int,
    content: xmlElementContentPtr,
    englob: ::std::os::raw::c_int,
  );
}
extern "C" {
  pub fn xmlSprintfElementContent(
    buf: *mut ::std::os::raw::c_char,
    content: xmlElementContentPtr,
    englob: ::std::os::raw::c_int,
  );
}
extern "C" {
  pub fn xmlAddElementDecl(
    ctxt: xmlValidCtxtPtr,
    dtd: xmlDtdPtr,
    name: *const xmlChar,
    type_: xmlElementTypeVal,
    content: xmlElementContentPtr,
  ) -> xmlElementPtr;
}
extern "C" {
  pub fn xmlCopyElementTable(table: xmlElementTablePtr) -> xmlElementTablePtr;
}
extern "C" {
  pub fn xmlFreeElementTable(table: xmlElementTablePtr);
}
extern "C" {
  pub fn xmlDumpElementTable(buf: xmlBufferPtr, table: xmlElementTablePtr);
}
extern "C" {
  pub fn xmlDumpElementDecl(buf: xmlBufferPtr, elem: xmlElementPtr);
}
extern "C" {
  pub fn xmlCreateEnumeration(name: *const xmlChar) -> xmlEnumerationPtr;
}
extern "C" {
  pub fn xmlFreeEnumeration(cur: xmlEnumerationPtr);
}
extern "C" {
  pub fn xmlCopyEnumeration(cur: xmlEnumerationPtr) -> xmlEnumerationPtr;
}
extern "C" {
  pub fn xmlAddAttributeDecl(
    ctxt: xmlValidCtxtPtr,
    dtd: xmlDtdPtr,
    elem: *const xmlChar,
    name: *const xmlChar,
    ns: *const xmlChar,
    type_: xmlAttributeType,
    def: xmlAttributeDefault,
    defaultValue: *const xmlChar,
    tree: xmlEnumerationPtr,
  ) -> xmlAttributePtr;
}
extern "C" {
  pub fn xmlCopyAttributeTable(table: xmlAttributeTablePtr) -> xmlAttributeTablePtr;
}
extern "C" {
  pub fn xmlFreeAttributeTable(table: xmlAttributeTablePtr);
}
extern "C" {
  pub fn xmlDumpAttributeTable(buf: xmlBufferPtr, table: xmlAttributeTablePtr);
}
extern "C" {
  pub fn xmlDumpAttributeDecl(buf: xmlBufferPtr, attr: xmlAttributePtr);
}
extern "C" {
  pub fn xmlAddID(
    ctxt: xmlValidCtxtPtr,
    doc: xmlDocPtr,
    value: *const xmlChar,
    attr: xmlAttrPtr,
  ) -> xmlIDPtr;
}
extern "C" {
  pub fn xmlFreeIDTable(table: xmlIDTablePtr);
}
extern "C" {
  pub fn xmlGetID(doc: xmlDocPtr, ID: *const xmlChar) -> xmlAttrPtr;
}
extern "C" {
  pub fn xmlIsID(doc: xmlDocPtr, elem: xmlNodePtr, attr: xmlAttrPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlRemoveID(doc: xmlDocPtr, attr: xmlAttrPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlAddRef(
    ctxt: xmlValidCtxtPtr,
    doc: xmlDocPtr,
    value: *const xmlChar,
    attr: xmlAttrPtr,
  ) -> xmlRefPtr;
}
extern "C" {
  pub fn xmlFreeRefTable(table: xmlRefTablePtr);
}
extern "C" {
  pub fn xmlIsRef(doc: xmlDocPtr, elem: xmlNodePtr, attr: xmlAttrPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlRemoveRef(doc: xmlDocPtr, attr: xmlAttrPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlGetRefs(doc: xmlDocPtr, ID: *const xmlChar) -> xmlListPtr;
}
extern "C" {
  pub fn xmlNewValidCtxt() -> xmlValidCtxtPtr;
}
extern "C" {
  pub fn xmlFreeValidCtxt(arg1: xmlValidCtxtPtr);
}
extern "C" {
  pub fn xmlValidateRoot(ctxt: xmlValidCtxtPtr, doc: xmlDocPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlValidateElementDecl(
    ctxt: xmlValidCtxtPtr,
    doc: xmlDocPtr,
    elem: xmlElementPtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlValidNormalizeAttributeValue(
    doc: xmlDocPtr,
    elem: xmlNodePtr,
    name: *const xmlChar,
    value: *const xmlChar,
  ) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlValidCtxtNormalizeAttributeValue(
    ctxt: xmlValidCtxtPtr,
    doc: xmlDocPtr,
    elem: xmlNodePtr,
    name: *const xmlChar,
    value: *const xmlChar,
  ) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlValidateAttributeDecl(
    ctxt: xmlValidCtxtPtr,
    doc: xmlDocPtr,
    attr: xmlAttributePtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlValidateAttributeValue(
    type_: xmlAttributeType,
    value: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlValidateNotationDecl(
    ctxt: xmlValidCtxtPtr,
    doc: xmlDocPtr,
    nota: xmlNotationPtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlValidateDtd(
    ctxt: xmlValidCtxtPtr,
    doc: xmlDocPtr,
    dtd: xmlDtdPtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlValidateDtdFinal(ctxt: xmlValidCtxtPtr, doc: xmlDocPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlValidateDocument(ctxt: xmlValidCtxtPtr, doc: xmlDocPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlValidateElement(
    ctxt: xmlValidCtxtPtr,
    doc: xmlDocPtr,
    elem: xmlNodePtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlValidateOneElement(
    ctxt: xmlValidCtxtPtr,
    doc: xmlDocPtr,
    elem: xmlNodePtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlValidateOneAttribute(
    ctxt: xmlValidCtxtPtr,
    doc: xmlDocPtr,
    elem: xmlNodePtr,
    attr: xmlAttrPtr,
    value: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlValidateOneNamespace(
    ctxt: xmlValidCtxtPtr,
    doc: xmlDocPtr,
    elem: xmlNodePtr,
    prefix: *const xmlChar,
    ns: xmlNsPtr,
    value: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlValidateDocumentFinal(ctxt: xmlValidCtxtPtr, doc: xmlDocPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlValidateNotationUse(
    ctxt: xmlValidCtxtPtr,
    doc: xmlDocPtr,
    notationName: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlIsMixedElement(doc: xmlDocPtr, name: *const xmlChar) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlGetDtdAttrDesc(
    dtd: xmlDtdPtr,
    elem: *const xmlChar,
    name: *const xmlChar,
  ) -> xmlAttributePtr;
}
extern "C" {
  pub fn xmlGetDtdQAttrDesc(
    dtd: xmlDtdPtr,
    elem: *const xmlChar,
    name: *const xmlChar,
    prefix: *const xmlChar,
  ) -> xmlAttributePtr;
}
extern "C" {
  pub fn xmlGetDtdNotationDesc(dtd: xmlDtdPtr, name: *const xmlChar) -> xmlNotationPtr;
}
extern "C" {
  pub fn xmlGetDtdQElementDesc(
    dtd: xmlDtdPtr,
    name: *const xmlChar,
    prefix: *const xmlChar,
  ) -> xmlElementPtr;
}
extern "C" {
  pub fn xmlGetDtdElementDesc(dtd: xmlDtdPtr, name: *const xmlChar) -> xmlElementPtr;
}
extern "C" {
  pub fn xmlValidGetPotentialChildren(
    ctree: *mut xmlElementContent,
    names: *mut *const xmlChar,
    len: *mut ::std::os::raw::c_int,
    max: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlValidGetValidElements(
    prev: *mut xmlNode,
    next: *mut xmlNode,
    names: *mut *const xmlChar,
    max: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlValidateNameValue(value: *const xmlChar) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlValidateNamesValue(value: *const xmlChar) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlValidateNmtokenValue(value: *const xmlChar) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlValidateNmtokensValue(value: *const xmlChar) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlValidBuildContentModel(
    ctxt: xmlValidCtxtPtr,
    elem: xmlElementPtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlValidatePushElement(
    ctxt: xmlValidCtxtPtr,
    doc: xmlDocPtr,
    elem: xmlNodePtr,
    qname: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlValidatePushCData(
    ctxt: xmlValidCtxtPtr,
    data: *const xmlChar,
    len: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlValidatePopElement(
    ctxt: xmlValidCtxtPtr,
    doc: xmlDocPtr,
    elem: xmlNodePtr,
    qname: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
pub const xmlEntityType_XML_INTERNAL_GENERAL_ENTITY: xmlEntityType = 1;
pub const xmlEntityType_XML_EXTERNAL_GENERAL_PARSED_ENTITY: xmlEntityType = 2;
pub const xmlEntityType_XML_EXTERNAL_GENERAL_UNPARSED_ENTITY: xmlEntityType = 3;
pub const xmlEntityType_XML_INTERNAL_PARAMETER_ENTITY: xmlEntityType = 4;
pub const xmlEntityType_XML_EXTERNAL_PARAMETER_ENTITY: xmlEntityType = 5;
pub const xmlEntityType_XML_INTERNAL_PREDEFINED_ENTITY: xmlEntityType = 6;
pub type xmlEntityType = u32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlEntity {
  pub _private: *mut ::std::os::raw::c_void,
  pub type_: xmlElementType,
  pub name: *const xmlChar,
  pub children: *mut _xmlNode,
  pub last: *mut _xmlNode,
  pub parent: *mut _xmlDtd,
  pub next: *mut _xmlNode,
  pub prev: *mut _xmlNode,
  pub doc: *mut _xmlDoc,
  pub orig: *mut xmlChar,
  pub content: *mut xmlChar,
  pub length: ::std::os::raw::c_int,
  pub etype: xmlEntityType,
  pub ExternalID: *const xmlChar,
  pub SystemID: *const xmlChar,
  pub nexte: *mut _xmlEntity,
  pub URI: *const xmlChar,
  pub owner: ::std::os::raw::c_int,
  pub checked: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout__xmlEntity() {
  assert_eq!(
    ::std::mem::size_of::<_xmlEntity>(),
    136usize,
    concat!("Size of: ", stringify!(_xmlEntity))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlEntity>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlEntity))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlEntity>()))._private as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlEntity),
  //     "::",
  //     stringify!(_private)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlEntity>())).type_ as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlEntity),
  //     "::",
  //     stringify!(type_)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlEntity>())).name as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlEntity),
  //     "::",
  //     stringify!(name)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlEntity>())).children as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlEntity),
  //     "::",
  //     stringify!(children)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlEntity>())).last as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlEntity),
  //     "::",
  //     stringify!(last)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlEntity>())).parent as *const _ as usize },
  //   40usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlEntity),
  //     "::",
  //     stringify!(parent)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlEntity>())).next as *const _ as usize },
  //   48usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlEntity),
  //     "::",
  //     stringify!(next)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlEntity>())).prev as *const _ as usize },
  //   56usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlEntity),
  //     "::",
  //     stringify!(prev)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlEntity>())).doc as *const _ as usize },
  //   64usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlEntity),
  //     "::",
  //     stringify!(doc)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlEntity>())).orig as *const _ as usize },
  //   72usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlEntity),
  //     "::",
  //     stringify!(orig)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlEntity>())).content as *const _ as usize },
  //   80usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlEntity),
  //     "::",
  //     stringify!(content)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlEntity>())).length as *const _ as usize },
  //   88usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlEntity),
  //     "::",
  //     stringify!(length)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlEntity>())).etype as *const _ as usize },
  //   92usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlEntity),
  //     "::",
  //     stringify!(etype)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlEntity>())).ExternalID as *const _ as usize },
  //   96usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlEntity),
  //     "::",
  //     stringify!(ExternalID)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlEntity>())).SystemID as *const _ as usize },
  //   104usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlEntity),
  //     "::",
  //     stringify!(SystemID)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlEntity>())).nexte as *const _ as usize },
  //   112usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlEntity),
  //     "::",
  //     stringify!(nexte)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlEntity>())).URI as *const _ as usize },
  //   120usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlEntity),
  //     "::",
  //     stringify!(URI)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlEntity>())).owner as *const _ as usize },
  //   128usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlEntity),
  //     "::",
  //     stringify!(owner)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlEntity>())).checked as *const _ as usize },
  //   132usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlEntity),
  //     "::",
  //     stringify!(checked)
  //   )
  // );
}
pub type xmlEntitiesTable = _xmlHashTable;
pub type xmlEntitiesTablePtr = *mut xmlEntitiesTable;
extern "C" {
  pub fn xmlInitializePredefinedEntities();
}
extern "C" {
  pub fn xmlNewEntity(
    doc: xmlDocPtr,
    name: *const xmlChar,
    type_: ::std::os::raw::c_int,
    ExternalID: *const xmlChar,
    SystemID: *const xmlChar,
    content: *const xmlChar,
  ) -> xmlEntityPtr;
}
extern "C" {
  pub fn xmlAddDocEntity(
    doc: xmlDocPtr,
    name: *const xmlChar,
    type_: ::std::os::raw::c_int,
    ExternalID: *const xmlChar,
    SystemID: *const xmlChar,
    content: *const xmlChar,
  ) -> xmlEntityPtr;
}
extern "C" {
  pub fn xmlAddDtdEntity(
    doc: xmlDocPtr,
    name: *const xmlChar,
    type_: ::std::os::raw::c_int,
    ExternalID: *const xmlChar,
    SystemID: *const xmlChar,
    content: *const xmlChar,
  ) -> xmlEntityPtr;
}
extern "C" {
  pub fn xmlGetPredefinedEntity(name: *const xmlChar) -> xmlEntityPtr;
}
extern "C" {
  pub fn xmlGetDocEntity(doc: *const xmlDoc, name: *const xmlChar) -> xmlEntityPtr;
}
extern "C" {
  pub fn xmlGetDtdEntity(doc: xmlDocPtr, name: *const xmlChar) -> xmlEntityPtr;
}
extern "C" {
  pub fn xmlGetParameterEntity(doc: xmlDocPtr, name: *const xmlChar) -> xmlEntityPtr;
}
extern "C" {
  pub fn xmlEncodeEntities(doc: xmlDocPtr, input: *const xmlChar) -> *const xmlChar;
}
extern "C" {
  pub fn xmlEncodeEntitiesReentrant(doc: xmlDocPtr, input: *const xmlChar) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlEncodeSpecialChars(doc: *const xmlDoc, input: *const xmlChar) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlCreateEntitiesTable() -> xmlEntitiesTablePtr;
}
extern "C" {
  pub fn xmlCopyEntitiesTable(table: xmlEntitiesTablePtr) -> xmlEntitiesTablePtr;
}
extern "C" {
  pub fn xmlFreeEntitiesTable(table: xmlEntitiesTablePtr);
}
extern "C" {
  pub fn xmlDumpEntitiesTable(buf: xmlBufferPtr, table: xmlEntitiesTablePtr);
}
extern "C" {
  pub fn xmlDumpEntityDecl(buf: xmlBufferPtr, ent: xmlEntityPtr);
}
extern "C" {
  pub fn xmlCleanupPredefinedEntities();
}
/// xmlParserInputDeallocate:
/// @str:  the string to deallocate
///
/// Callback for freeing some parser input allocations.
pub type xmlParserInputDeallocate = ::std::option::Option<unsafe extern "C" fn(str: *mut xmlChar)>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlParserInput {
  pub buf: xmlParserInputBufferPtr,
  pub filename: *const ::std::os::raw::c_char,
  pub directory: *const ::std::os::raw::c_char,
  pub base: *const xmlChar,
  pub cur: *const xmlChar,
  pub end: *const xmlChar,
  pub length: ::std::os::raw::c_int,
  pub line: ::std::os::raw::c_int,
  pub col: ::std::os::raw::c_int,
  pub consumed: ::std::os::raw::c_ulong,
  pub free: xmlParserInputDeallocate,
  pub encoding: *const xmlChar,
  pub version: *const xmlChar,
  pub standalone: ::std::os::raw::c_int,
  pub id: ::std::os::raw::c_int,
}

/// xmlParserNodeInfo:
///
/// The parser can be asked to collect Node informations, i.e. at what
/// place in the file they were detected.
/// NOTE: This is off by default and not very well tested.
pub type xmlParserNodeInfo = _xmlParserNodeInfo;
pub type xmlParserNodeInfoPtr = *mut xmlParserNodeInfo;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlParserNodeInfo {
  pub node: *const _xmlNode,
  pub begin_pos: ::std::os::raw::c_ulong,
  pub begin_line: ::std::os::raw::c_ulong,
  pub end_pos: ::std::os::raw::c_ulong,
  pub end_line: ::std::os::raw::c_ulong,
}

pub type xmlParserNodeInfoSeq = _xmlParserNodeInfoSeq;
pub type xmlParserNodeInfoSeqPtr = *mut xmlParserNodeInfoSeq;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlParserNodeInfoSeq {
  pub maximum: ::std::os::raw::c_ulong,
  pub length: ::std::os::raw::c_ulong,
  pub buffer: *mut xmlParserNodeInfo,
}

pub const xmlParserInputState_XML_PARSER_EOF: xmlParserInputState = -1;
pub const xmlParserInputState_XML_PARSER_START: xmlParserInputState = 0;
pub const xmlParserInputState_XML_PARSER_MISC: xmlParserInputState = 1;
pub const xmlParserInputState_XML_PARSER_PI: xmlParserInputState = 2;
pub const xmlParserInputState_XML_PARSER_DTD: xmlParserInputState = 3;
pub const xmlParserInputState_XML_PARSER_PROLOG: xmlParserInputState = 4;
pub const xmlParserInputState_XML_PARSER_COMMENT: xmlParserInputState = 5;
pub const xmlParserInputState_XML_PARSER_START_TAG: xmlParserInputState = 6;
pub const xmlParserInputState_XML_PARSER_CONTENT: xmlParserInputState = 7;
pub const xmlParserInputState_XML_PARSER_CDATA_SECTION: xmlParserInputState = 8;
pub const xmlParserInputState_XML_PARSER_END_TAG: xmlParserInputState = 9;
pub const xmlParserInputState_XML_PARSER_ENTITY_DECL: xmlParserInputState = 10;
pub const xmlParserInputState_XML_PARSER_ENTITY_VALUE: xmlParserInputState = 11;
pub const xmlParserInputState_XML_PARSER_ATTRIBUTE_VALUE: xmlParserInputState = 12;
pub const xmlParserInputState_XML_PARSER_SYSTEM_LITERAL: xmlParserInputState = 13;
pub const xmlParserInputState_XML_PARSER_EPILOG: xmlParserInputState = 14;
pub const xmlParserInputState_XML_PARSER_IGNORE: xmlParserInputState = 15;
pub const xmlParserInputState_XML_PARSER_PUBLIC_LITERAL: xmlParserInputState = 16;
/// xmlParserInputState:
///
/// The parser is now working also as a state based parser.
/// The recursive one use the state info for entities processing.
pub type xmlParserInputState = i32;
pub const xmlParserMode_XML_PARSE_UNKNOWN: xmlParserMode = 0;
pub const xmlParserMode_XML_PARSE_DOM: xmlParserMode = 1;
pub const xmlParserMode_XML_PARSE_SAX: xmlParserMode = 2;
pub const xmlParserMode_XML_PARSE_PUSH_DOM: xmlParserMode = 3;
pub const xmlParserMode_XML_PARSE_PUSH_SAX: xmlParserMode = 4;
pub const xmlParserMode_XML_PARSE_READER: xmlParserMode = 5;
/// xmlParserMode:
///
/// A parser can operate in various modes
pub type xmlParserMode = u32;
/// xmlParserCtxt:
///
/// The parser context.
/// NOTE This doesn't completely define the parser state, the (current ?)
/// design of the parser uses recursive function calls since this allow
/// and easy mapping from the production rules of the specification
/// to the actual code. The drawback is that the actual function call
/// also reflect the parser state. However most of the parsing routines
/// takes as the only argument the parser context pointer, so migrating
/// to a state based parser for progressive parsing shouldn't be too hard.
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlParserCtxt {
  pub sax: *mut _xmlSAXHandler,
  pub userData: *mut ::std::os::raw::c_void,
  pub myDoc: xmlDocPtr,
  pub wellFormed: ::std::os::raw::c_int,
  pub replaceEntities: ::std::os::raw::c_int,
  pub version: *const xmlChar,
  pub encoding: *const xmlChar,
  pub standalone: ::std::os::raw::c_int,
  pub html: ::std::os::raw::c_int,
  pub input: xmlParserInputPtr,
  pub inputNr: ::std::os::raw::c_int,
  pub inputMax: ::std::os::raw::c_int,
  pub inputTab: *mut xmlParserInputPtr,
  pub node: xmlNodePtr,
  pub nodeNr: ::std::os::raw::c_int,
  pub nodeMax: ::std::os::raw::c_int,
  pub nodeTab: *mut xmlNodePtr,
  pub record_info: ::std::os::raw::c_int,
  pub node_seq: xmlParserNodeInfoSeq,
  pub errNo: ::std::os::raw::c_int,
  pub hasExternalSubset: ::std::os::raw::c_int,
  pub hasPErefs: ::std::os::raw::c_int,
  pub external: ::std::os::raw::c_int,
  pub valid: ::std::os::raw::c_int,
  pub validate: ::std::os::raw::c_int,
  pub vctxt: xmlValidCtxt,
  pub instate: xmlParserInputState,
  pub token: ::std::os::raw::c_int,
  pub directory: *mut ::std::os::raw::c_char,
  pub name: *const xmlChar,
  pub nameNr: ::std::os::raw::c_int,
  pub nameMax: ::std::os::raw::c_int,
  pub nameTab: *mut *const xmlChar,
  pub nbChars: ::std::os::raw::c_long,
  pub checkIndex: ::std::os::raw::c_long,
  pub keepBlanks: ::std::os::raw::c_int,
  pub disableSAX: ::std::os::raw::c_int,
  pub inSubset: ::std::os::raw::c_int,
  pub intSubName: *const xmlChar,
  pub extSubURI: *mut xmlChar,
  pub extSubSystem: *mut xmlChar,
  pub space: *mut ::std::os::raw::c_int,
  pub spaceNr: ::std::os::raw::c_int,
  pub spaceMax: ::std::os::raw::c_int,
  pub spaceTab: *mut ::std::os::raw::c_int,
  pub depth: ::std::os::raw::c_int,
  pub entity: xmlParserInputPtr,
  pub charset: ::std::os::raw::c_int,
  pub nodelen: ::std::os::raw::c_int,
  pub nodemem: ::std::os::raw::c_int,
  pub pedantic: ::std::os::raw::c_int,
  pub _private: *mut ::std::os::raw::c_void,
  pub loadsubset: ::std::os::raw::c_int,
  pub linenumbers: ::std::os::raw::c_int,
  pub catalogs: *mut ::std::os::raw::c_void,
  pub recovery: ::std::os::raw::c_int,
  pub progressive: ::std::os::raw::c_int,
  pub dict: xmlDictPtr,
  pub atts: *mut *const xmlChar,
  pub maxatts: ::std::os::raw::c_int,
  pub docdict: ::std::os::raw::c_int,
  pub str_xml: *const xmlChar,
  pub str_xmlns: *const xmlChar,
  pub str_xml_ns: *const xmlChar,
  pub sax2: ::std::os::raw::c_int,
  pub nsNr: ::std::os::raw::c_int,
  pub nsMax: ::std::os::raw::c_int,
  pub nsTab: *mut *const xmlChar,
  pub attallocs: *mut ::std::os::raw::c_int,
  pub pushTab: *mut *mut ::std::os::raw::c_void,
  pub attsDefault: xmlHashTablePtr,
  pub attsSpecial: xmlHashTablePtr,
  pub nsWellFormed: ::std::os::raw::c_int,
  pub options: ::std::os::raw::c_int,
  pub dictNames: ::std::os::raw::c_int,
  pub freeElemsNr: ::std::os::raw::c_int,
  pub freeElems: xmlNodePtr,
  pub freeAttrsNr: ::std::os::raw::c_int,
  pub freeAttrs: xmlAttrPtr,
  pub lastError: xmlError,
  pub parseMode: xmlParserMode,
  pub nbentities: ::std::os::raw::c_ulong,
  pub sizeentities: ::std::os::raw::c_ulong,
  pub nodeInfo: *mut xmlParserNodeInfo,
  pub nodeInfoNr: ::std::os::raw::c_int,
  pub nodeInfoMax: ::std::os::raw::c_int,
  pub nodeInfoTab: *mut xmlParserNodeInfo,
  pub input_id: ::std::os::raw::c_int,
  pub sizeentcopy: ::std::os::raw::c_ulong,
}

/// xmlSAXLocator:
///
/// A SAX Locator.
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlSAXLocator {
  pub getPublicId:
    ::std::option::Option<unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void) -> *const xmlChar>,
  pub getSystemId:
    ::std::option::Option<unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void) -> *const xmlChar>,
  pub getLineNumber: ::std::option::Option<
    unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
  >,
  pub getColumnNumber: ::std::option::Option<
    unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
  >,
}

/// resolveEntitySAXFunc:
/// @ctx:  the user data (XML parser context)
/// @publicId: The public ID of the entity
/// @systemId: The system ID of the entity
///
/// Callback:
/// The entity loader, to control the loading of external entities,
/// the application can either:
/// - override this resolveEntity() callback in the SAX block
/// - or better use the xmlSetExternalEntityLoader() function to
/// set up it's own entity resolution routine
///
/// Returns the xmlParserInputPtr if inlined or NULL for DOM behaviour.
pub type resolveEntitySAXFunc = ::std::option::Option<
  unsafe extern "C" fn(
    ctx: *mut ::std::os::raw::c_void,
    publicId: *const xmlChar,
    systemId: *const xmlChar,
  ) -> xmlParserInputPtr,
>;
/// internalSubsetSAXFunc:
/// @ctx:  the user data (XML parser context)
/// @name:  the root element name
/// @ExternalID:  the external ID
/// @SystemID:  the SYSTEM ID (e.g. filename or URL)
///
/// Callback on internal subset declaration.
pub type internalSubsetSAXFunc = ::std::option::Option<
  unsafe extern "C" fn(
    ctx: *mut ::std::os::raw::c_void,
    name: *const xmlChar,
    ExternalID: *const xmlChar,
    SystemID: *const xmlChar,
  ),
>;
/// externalSubsetSAXFunc:
/// @ctx:  the user data (XML parser context)
/// @name:  the root element name
/// @ExternalID:  the external ID
/// @SystemID:  the SYSTEM ID (e.g. filename or URL)
///
/// Callback on external subset declaration.
pub type externalSubsetSAXFunc = ::std::option::Option<
  unsafe extern "C" fn(
    ctx: *mut ::std::os::raw::c_void,
    name: *const xmlChar,
    ExternalID: *const xmlChar,
    SystemID: *const xmlChar,
  ),
>;
/// getEntitySAXFunc:
/// @ctx:  the user data (XML parser context)
/// @name: The entity name
///
/// Get an entity by name.
///
/// Returns the xmlEntityPtr if found.
pub type getEntitySAXFunc = ::std::option::Option<
  unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, name: *const xmlChar) -> xmlEntityPtr,
>;
/// getParameterEntitySAXFunc:
/// @ctx:  the user data (XML parser context)
/// @name: The entity name
///
/// Get a parameter entity by name.
///
/// Returns the xmlEntityPtr if found.
pub type getParameterEntitySAXFunc = ::std::option::Option<
  unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, name: *const xmlChar) -> xmlEntityPtr,
>;
/// entityDeclSAXFunc:
/// @ctx:  the user data (XML parser context)
/// @name:  the entity name
/// @type:  the entity type
/// @publicId: The public ID of the entity
/// @systemId: The system ID of the entity
/// @content: the entity value (without processing).
///
/// An entity definition has been parsed.
pub type entityDeclSAXFunc = ::std::option::Option<
  unsafe extern "C" fn(
    ctx: *mut ::std::os::raw::c_void,
    name: *const xmlChar,
    type_: ::std::os::raw::c_int,
    publicId: *const xmlChar,
    systemId: *const xmlChar,
    content: *mut xmlChar,
  ),
>;
/// notationDeclSAXFunc:
/// @ctx:  the user data (XML parser context)
/// @name: The name of the notation
/// @publicId: The public ID of the entity
/// @systemId: The system ID of the entity
///
/// What to do when a notation declaration has been parsed.
pub type notationDeclSAXFunc = ::std::option::Option<
  unsafe extern "C" fn(
    ctx: *mut ::std::os::raw::c_void,
    name: *const xmlChar,
    publicId: *const xmlChar,
    systemId: *const xmlChar,
  ),
>;
/// attributeDeclSAXFunc:
/// @ctx:  the user data (XML parser context)
/// @elem:  the name of the element
/// @fullname:  the attribute name
/// @type:  the attribute type
/// @def:  the type of default value
/// @defaultValue: the attribute default value
/// @tree:  the tree of enumerated value set
///
/// An attribute definition has been parsed.
pub type attributeDeclSAXFunc = ::std::option::Option<
  unsafe extern "C" fn(
    ctx: *mut ::std::os::raw::c_void,
    elem: *const xmlChar,
    fullname: *const xmlChar,
    type_: ::std::os::raw::c_int,
    def: ::std::os::raw::c_int,
    defaultValue: *const xmlChar,
    tree: xmlEnumerationPtr,
  ),
>;
/// elementDeclSAXFunc:
/// @ctx:  the user data (XML parser context)
/// @name:  the element name
/// @type:  the element type
/// @content: the element value tree
///
/// An element definition has been parsed.
pub type elementDeclSAXFunc = ::std::option::Option<
  unsafe extern "C" fn(
    ctx: *mut ::std::os::raw::c_void,
    name: *const xmlChar,
    type_: ::std::os::raw::c_int,
    content: xmlElementContentPtr,
  ),
>;
/// unparsedEntityDeclSAXFunc:
/// @ctx:  the user data (XML parser context)
/// @name: The name of the entity
/// @publicId: The public ID of the entity
/// @systemId: The system ID of the entity
/// @notationName: the name of the notation
///
/// What to do when an unparsed entity declaration is parsed.
pub type unparsedEntityDeclSAXFunc = ::std::option::Option<
  unsafe extern "C" fn(
    ctx: *mut ::std::os::raw::c_void,
    name: *const xmlChar,
    publicId: *const xmlChar,
    systemId: *const xmlChar,
    notationName: *const xmlChar,
  ),
>;
/// setDocumentLocatorSAXFunc:
/// @ctx:  the user data (XML parser context)
/// @loc: A SAX Locator
///
/// Receive the document locator at startup, actually xmlDefaultSAXLocator.
/// Everything is available on the context, so this is useless in our case.
pub type setDocumentLocatorSAXFunc = ::std::option::Option<
  unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, loc: xmlSAXLocatorPtr),
>;
/// startDocumentSAXFunc:
/// @ctx:  the user data (XML parser context)
///
/// Called when the document start being processed.
pub type startDocumentSAXFunc =
  ::std::option::Option<unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void)>;
/// endDocumentSAXFunc:
/// @ctx:  the user data (XML parser context)
///
/// Called when the document end has been detected.
pub type endDocumentSAXFunc =
  ::std::option::Option<unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void)>;
/// startElementSAXFunc:
/// @ctx:  the user data (XML parser context)
/// @name:  The element name, including namespace prefix
/// @atts:  An array of name/value attributes pairs, NULL terminated
///
/// Called when an opening tag has been processed.
pub type startElementSAXFunc = ::std::option::Option<
  unsafe extern "C" fn(
    ctx: *mut ::std::os::raw::c_void,
    name: *const xmlChar,
    atts: *mut *const xmlChar,
  ),
>;
/// endElementSAXFunc:
/// @ctx:  the user data (XML parser context)
/// @name:  The element name
///
/// Called when the end of an element has been detected.
pub type endElementSAXFunc = ::std::option::Option<
  unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, name: *const xmlChar),
>;
/// attributeSAXFunc:
/// @ctx:  the user data (XML parser context)
/// @name:  The attribute name, including namespace prefix
/// @value:  The attribute value
///
/// Handle an attribute that has been read by the parser.
/// The default handling is to convert the attribute into an
/// DOM subtree and past it in a new xmlAttr element added to
/// the element.
pub type attributeSAXFunc = ::std::option::Option<
  unsafe extern "C" fn(
    ctx: *mut ::std::os::raw::c_void,
    name: *const xmlChar,
    value: *const xmlChar,
  ),
>;
/// referenceSAXFunc:
/// @ctx:  the user data (XML parser context)
/// @name:  The entity name
///
/// Called when an entity reference is detected.
pub type referenceSAXFunc = ::std::option::Option<
  unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, name: *const xmlChar),
>;
/// charactersSAXFunc:
/// @ctx:  the user data (XML parser context)
/// @ch:  a xmlChar string
/// @len: the number of xmlChar
///
/// Receiving some chars from the parser.
pub type charactersSAXFunc = ::std::option::Option<
  unsafe extern "C" fn(
    ctx: *mut ::std::os::raw::c_void,
    ch: *const xmlChar,
    len: ::std::os::raw::c_int,
  ),
>;
/// ignorableWhitespaceSAXFunc:
/// @ctx:  the user data (XML parser context)
/// @ch:  a xmlChar string
/// @len: the number of xmlChar
///
/// Receiving some ignorable whitespaces from the parser.
/// UNUSED: by default the DOM building will use characters.
pub type ignorableWhitespaceSAXFunc = ::std::option::Option<
  unsafe extern "C" fn(
    ctx: *mut ::std::os::raw::c_void,
    ch: *const xmlChar,
    len: ::std::os::raw::c_int,
  ),
>;
/// processingInstructionSAXFunc:
/// @ctx:  the user data (XML parser context)
/// @target:  the target name
/// @data: the PI data's
///
/// A processing instruction has been parsed.
pub type processingInstructionSAXFunc = ::std::option::Option<
  unsafe extern "C" fn(
    ctx: *mut ::std::os::raw::c_void,
    target: *const xmlChar,
    data: *const xmlChar,
  ),
>;
/// commentSAXFunc:
/// @ctx:  the user data (XML parser context)
/// @value:  the comment content
///
/// A comment has been parsed.
pub type commentSAXFunc = ::std::option::Option<
  unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, value: *const xmlChar),
>;
/// cdataBlockSAXFunc:
/// @ctx:  the user data (XML parser context)
/// @value:  The pcdata content
/// @len:  the block length
///
/// Called when a pcdata block has been parsed.
pub type cdataBlockSAXFunc = ::std::option::Option<
  unsafe extern "C" fn(
    ctx: *mut ::std::os::raw::c_void,
    value: *const xmlChar,
    len: ::std::os::raw::c_int,
  ),
>;
/// warningSAXFunc:
/// @ctx:  an XML parser context
/// @msg:  the message to display/transmit
/// @...:  extra parameters for the message display
///
/// Display and format a warning messages, callback.
pub type warningSAXFunc = ::std::option::Option<
  unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, msg: *const ::std::os::raw::c_char, ...),
>;
/// errorSAXFunc:
/// @ctx:  an XML parser context
/// @msg:  the message to display/transmit
/// @...:  extra parameters for the message display
///
/// Display and format an error messages, callback.
pub type errorSAXFunc = ::std::option::Option<
  unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, msg: *const ::std::os::raw::c_char, ...),
>;
/// fatalErrorSAXFunc:
/// @ctx:  an XML parser context
/// @msg:  the message to display/transmit
/// @...:  extra parameters for the message display
///
/// Display and format fatal error messages, callback.
/// Note: so far fatalError() SAX callbacks are not used, error()
/// get all the callbacks for errors.
pub type fatalErrorSAXFunc = ::std::option::Option<
  unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, msg: *const ::std::os::raw::c_char, ...),
>;
/// isStandaloneSAXFunc:
/// @ctx:  the user data (XML parser context)
///
/// Is this document tagged standalone?
///
/// Returns 1 if true
pub type isStandaloneSAXFunc = ::std::option::Option<
  unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
>;
/// hasInternalSubsetSAXFunc:
/// @ctx:  the user data (XML parser context)
///
/// Does this document has an internal subset.
///
/// Returns 1 if true
pub type hasInternalSubsetSAXFunc = ::std::option::Option<
  unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
>;
/// hasExternalSubsetSAXFunc:
/// @ctx:  the user data (XML parser context)
///
/// Does this document has an external subset?
///
/// Returns 1 if true
pub type hasExternalSubsetSAXFunc = ::std::option::Option<
  unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
>;
/// startElementNsSAX2Func:
/// @ctx:  the user data (XML parser context)
/// @localname:  the local name of the element
/// @prefix:  the element namespace prefix if available
/// @URI:  the element namespace name if available
/// @nb_namespaces:  number of namespace definitions on that node
/// @namespaces:  pointer to the array of prefix/URI pairs namespace definitions
/// @nb_attributes:  the number of attributes on that node
/// @nb_defaulted:  the number of defaulted attributes. The defaulted
/// ones are at the end of the array
/// @attributes:  pointer to the array of (localname/prefix/URI/value/end)
/// attribute values.
///
/// SAX2 callback when an element start has been detected by the parser.
/// It provides the namespace informations for the element, as well as
/// the new namespace declarations on the element.
pub type startElementNsSAX2Func = ::std::option::Option<
  unsafe extern "C" fn(
    ctx: *mut ::std::os::raw::c_void,
    localname: *const xmlChar,
    prefix: *const xmlChar,
    URI: *const xmlChar,
    nb_namespaces: ::std::os::raw::c_int,
    namespaces: *mut *const xmlChar,
    nb_attributes: ::std::os::raw::c_int,
    nb_defaulted: ::std::os::raw::c_int,
    attributes: *mut *const xmlChar,
  ),
>;
/// endElementNsSAX2Func:
/// @ctx:  the user data (XML parser context)
/// @localname:  the local name of the element
/// @prefix:  the element namespace prefix if available
/// @URI:  the element namespace name if available
///
/// SAX2 callback when an element end has been detected by the parser.
/// It provides the namespace informations for the element.
pub type endElementNsSAX2Func = ::std::option::Option<
  unsafe extern "C" fn(
    ctx: *mut ::std::os::raw::c_void,
    localname: *const xmlChar,
    prefix: *const xmlChar,
    URI: *const xmlChar,
  ),
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlSAXHandler {
  pub internalSubset: internalSubsetSAXFunc,
  pub isStandalone: isStandaloneSAXFunc,
  pub hasInternalSubset: hasInternalSubsetSAXFunc,
  pub hasExternalSubset: hasExternalSubsetSAXFunc,
  pub resolveEntity: resolveEntitySAXFunc,
  pub getEntity: getEntitySAXFunc,
  pub entityDecl: entityDeclSAXFunc,
  pub notationDecl: notationDeclSAXFunc,
  pub attributeDecl: attributeDeclSAXFunc,
  pub elementDecl: elementDeclSAXFunc,
  pub unparsedEntityDecl: unparsedEntityDeclSAXFunc,
  pub setDocumentLocator: setDocumentLocatorSAXFunc,
  pub startDocument: startDocumentSAXFunc,
  pub endDocument: endDocumentSAXFunc,
  pub startElement: startElementSAXFunc,
  pub endElement: endElementSAXFunc,
  pub reference: referenceSAXFunc,
  pub characters: charactersSAXFunc,
  pub ignorableWhitespace: ignorableWhitespaceSAXFunc,
  pub processingInstruction: processingInstructionSAXFunc,
  pub comment: commentSAXFunc,
  pub warning: warningSAXFunc,
  pub error: errorSAXFunc,
  pub fatalError: fatalErrorSAXFunc,
  pub getParameterEntity: getParameterEntitySAXFunc,
  pub cdataBlock: cdataBlockSAXFunc,
  pub externalSubset: externalSubsetSAXFunc,
  pub initialized: ::std::os::raw::c_uint,
  pub _private: *mut ::std::os::raw::c_void,
  pub startElementNs: startElementNsSAX2Func,
  pub endElementNs: endElementNsSAX2Func,
  pub serror: xmlStructuredErrorFunc,
}

pub type xmlSAXHandlerV1 = _xmlSAXHandlerV1;
pub type xmlSAXHandlerV1Ptr = *mut xmlSAXHandlerV1;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlSAXHandlerV1 {
  pub internalSubset: internalSubsetSAXFunc,
  pub isStandalone: isStandaloneSAXFunc,
  pub hasInternalSubset: hasInternalSubsetSAXFunc,
  pub hasExternalSubset: hasExternalSubsetSAXFunc,
  pub resolveEntity: resolveEntitySAXFunc,
  pub getEntity: getEntitySAXFunc,
  pub entityDecl: entityDeclSAXFunc,
  pub notationDecl: notationDeclSAXFunc,
  pub attributeDecl: attributeDeclSAXFunc,
  pub elementDecl: elementDeclSAXFunc,
  pub unparsedEntityDecl: unparsedEntityDeclSAXFunc,
  pub setDocumentLocator: setDocumentLocatorSAXFunc,
  pub startDocument: startDocumentSAXFunc,
  pub endDocument: endDocumentSAXFunc,
  pub startElement: startElementSAXFunc,
  pub endElement: endElementSAXFunc,
  pub reference: referenceSAXFunc,
  pub characters: charactersSAXFunc,
  pub ignorableWhitespace: ignorableWhitespaceSAXFunc,
  pub processingInstruction: processingInstructionSAXFunc,
  pub comment: commentSAXFunc,
  pub warning: warningSAXFunc,
  pub error: errorSAXFunc,
  pub fatalError: fatalErrorSAXFunc,
  pub getParameterEntity: getParameterEntitySAXFunc,
  pub cdataBlock: cdataBlockSAXFunc,
  pub externalSubset: externalSubsetSAXFunc,
  pub initialized: ::std::os::raw::c_uint,
}

/// xmlExternalEntityLoader:
/// @URL: The System ID of the resource requested
/// @ID: The Public ID of the resource requested
/// @context: the XML parser context
///
/// External entity loaders types.
///
/// Returns the entity input parser.
pub type xmlExternalEntityLoader = ::std::option::Option<
  unsafe extern "C" fn(
    URL: *const ::std::os::raw::c_char,
    ID: *const ::std::os::raw::c_char,
    context: xmlParserCtxtPtr,
  ) -> xmlParserInputPtr,
>;
pub type iconv_t = *mut ::std::os::raw::c_void;
extern "C" {
  pub fn iconv_open(
    __tocode: *const ::std::os::raw::c_char,
    __fromcode: *const ::std::os::raw::c_char,
  ) -> iconv_t;
}
extern "C" {
  pub fn iconv(
    __cd: iconv_t,
    __inbuf: *mut *mut ::std::os::raw::c_char,
    __inbytesleft: *mut usize,
    __outbuf: *mut *mut ::std::os::raw::c_char,
    __outbytesleft: *mut usize,
  ) -> usize;
}
extern "C" {
  pub fn iconv_close(__cd: iconv_t) -> ::std::os::raw::c_int;
}
pub type wchar_t = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct max_align_t {
  pub __clang_max_align_nonce1: ::std::os::raw::c_longlong,
  pub __bindgen_padding_0: u64,
  pub __clang_max_align_nonce2: f64,
}
#[test]
fn bindgen_test_layout_max_align_t() {
  // assert_eq!(
  //   ::std::mem::size_of::<max_align_t>(),
  //   32usize,
  //   concat!("Size of: ", stringify!(max_align_t))
  // );
  // assert_eq!(
  //   unsafe {
  //     &(*(::std::ptr::null::<max_align_t>())).__clang_max_align_nonce1 as *const _ as usize
  //   },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(max_align_t),
  //     "::",
  //     stringify!(__clang_max_align_nonce1)
  //   )
  // );
  // assert_eq!(
  //   unsafe {
  //     &(*(::std::ptr::null::<max_align_t>())).__clang_max_align_nonce2 as *const _ as usize
  //   },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(max_align_t),
  //     "::",
  //     stringify!(__clang_max_align_nonce2)
  //   )
  // );
}
pub type int_least8_t = ::std::os::raw::c_schar;
pub type int_least16_t = ::std::os::raw::c_short;
pub type int_least32_t = ::std::os::raw::c_int;
pub type int_least64_t = ::std::os::raw::c_long;
pub type uint_least8_t = ::std::os::raw::c_uchar;
pub type uint_least16_t = ::std::os::raw::c_ushort;
pub type uint_least32_t = ::std::os::raw::c_uint;
pub type uint_least64_t = ::std::os::raw::c_ulong;
pub type int_fast8_t = ::std::os::raw::c_schar;
pub type int_fast16_t = ::std::os::raw::c_long;
pub type int_fast32_t = ::std::os::raw::c_long;
pub type int_fast64_t = ::std::os::raw::c_long;
pub type uint_fast8_t = ::std::os::raw::c_uchar;
pub type uint_fast16_t = ::std::os::raw::c_ulong;
pub type uint_fast32_t = ::std::os::raw::c_ulong;
pub type uint_fast64_t = ::std::os::raw::c_ulong;
pub type intmax_t = __intmax_t;
pub type uintmax_t = __uintmax_t;
pub type UBool = i8;
pub type UChar = u16;
pub type OldUChar = ::std::os::raw::c_ushort;
pub type UChar32 = i32;
pub type UVersionInfo = [u8; 4usize];
extern "C" {
  pub fn u_versionFromString_60(
    versionArray: *mut u8,
    versionString: *const ::std::os::raw::c_char,
  );
}
extern "C" {
  pub fn u_versionFromUString_60(versionArray: *mut u8, versionString: *const UChar);
}
extern "C" {
  pub fn u_versionToString_60(versionArray: *mut u8, versionString: *mut ::std::os::raw::c_char);
}
extern "C" {
  pub fn u_getVersion_60(versionArray: *mut u8);
}
extern "C" {
  pub fn utf8_nextCharSafeBody_60(
    s: *const u8,
    pi: *mut i32,
    length: i32,
    c: UChar32,
    strict: UBool,
  ) -> UChar32;
}
extern "C" {
  pub fn utf8_appendCharSafeBody_60(
    s: *mut u8,
    i: i32,
    length: i32,
    c: UChar32,
    pIsError: *mut UBool,
  ) -> i32;
}
extern "C" {
  pub fn utf8_prevCharSafeBody_60(
    s: *const u8,
    start: i32,
    pi: *mut i32,
    c: UChar32,
    strict: UBool,
  ) -> UChar32;
}
extern "C" {
  pub fn utf8_back1SafeBody_60(s: *const u8, start: i32, i: i32) -> i32;
}
extern "C" {
  #[link_name = "\u{1}utf8_countTrailBytes_60"]
  pub static mut utf8_countTrailBytes_60: [u8; 0usize];
}
pub type UDate = f64;
pub const UErrorCode_U_USING_FALLBACK_WARNING: UErrorCode = -128;
pub const UErrorCode_U_ERROR_WARNING_START: UErrorCode = -128;
pub const UErrorCode_U_USING_DEFAULT_WARNING: UErrorCode = -127;
pub const UErrorCode_U_SAFECLONE_ALLOCATED_WARNING: UErrorCode = -126;
pub const UErrorCode_U_STATE_OLD_WARNING: UErrorCode = -125;
pub const UErrorCode_U_STRING_NOT_TERMINATED_WARNING: UErrorCode = -124;
pub const UErrorCode_U_SORT_KEY_TOO_SHORT_WARNING: UErrorCode = -123;
pub const UErrorCode_U_AMBIGUOUS_ALIAS_WARNING: UErrorCode = -122;
pub const UErrorCode_U_DIFFERENT_UCA_VERSION: UErrorCode = -121;
pub const UErrorCode_U_PLUGIN_CHANGED_LEVEL_WARNING: UErrorCode = -120;
pub const UErrorCode_U_ERROR_WARNING_LIMIT: UErrorCode = -119;
pub const UErrorCode_U_ZERO_ERROR: UErrorCode = 0;
pub const UErrorCode_U_ILLEGAL_ARGUMENT_ERROR: UErrorCode = 1;
pub const UErrorCode_U_MISSING_RESOURCE_ERROR: UErrorCode = 2;
pub const UErrorCode_U_INVALID_FORMAT_ERROR: UErrorCode = 3;
pub const UErrorCode_U_FILE_ACCESS_ERROR: UErrorCode = 4;
pub const UErrorCode_U_INTERNAL_PROGRAM_ERROR: UErrorCode = 5;
pub const UErrorCode_U_MESSAGE_PARSE_ERROR: UErrorCode = 6;
pub const UErrorCode_U_MEMORY_ALLOCATION_ERROR: UErrorCode = 7;
pub const UErrorCode_U_INDEX_OUTOFBOUNDS_ERROR: UErrorCode = 8;
pub const UErrorCode_U_PARSE_ERROR: UErrorCode = 9;
pub const UErrorCode_U_INVALID_CHAR_FOUND: UErrorCode = 10;
pub const UErrorCode_U_TRUNCATED_CHAR_FOUND: UErrorCode = 11;
pub const UErrorCode_U_ILLEGAL_CHAR_FOUND: UErrorCode = 12;
pub const UErrorCode_U_INVALID_TABLE_FORMAT: UErrorCode = 13;
pub const UErrorCode_U_INVALID_TABLE_FILE: UErrorCode = 14;
pub const UErrorCode_U_BUFFER_OVERFLOW_ERROR: UErrorCode = 15;
pub const UErrorCode_U_UNSUPPORTED_ERROR: UErrorCode = 16;
pub const UErrorCode_U_RESOURCE_TYPE_MISMATCH: UErrorCode = 17;
pub const UErrorCode_U_ILLEGAL_ESCAPE_SEQUENCE: UErrorCode = 18;
pub const UErrorCode_U_UNSUPPORTED_ESCAPE_SEQUENCE: UErrorCode = 19;
pub const UErrorCode_U_NO_SPACE_AVAILABLE: UErrorCode = 20;
pub const UErrorCode_U_CE_NOT_FOUND_ERROR: UErrorCode = 21;
pub const UErrorCode_U_PRIMARY_TOO_LONG_ERROR: UErrorCode = 22;
pub const UErrorCode_U_STATE_TOO_OLD_ERROR: UErrorCode = 23;
pub const UErrorCode_U_TOO_MANY_ALIASES_ERROR: UErrorCode = 24;
pub const UErrorCode_U_ENUM_OUT_OF_SYNC_ERROR: UErrorCode = 25;
pub const UErrorCode_U_INVARIANT_CONVERSION_ERROR: UErrorCode = 26;
pub const UErrorCode_U_INVALID_STATE_ERROR: UErrorCode = 27;
pub const UErrorCode_U_COLLATOR_VERSION_MISMATCH: UErrorCode = 28;
pub const UErrorCode_U_USELESS_COLLATOR_ERROR: UErrorCode = 29;
pub const UErrorCode_U_NO_WRITE_PERMISSION: UErrorCode = 30;
pub const UErrorCode_U_STANDARD_ERROR_LIMIT: UErrorCode = 31;
pub const UErrorCode_U_BAD_VARIABLE_DEFINITION: UErrorCode = 65_536;
pub const UErrorCode_U_PARSE_ERROR_START: UErrorCode = 65_536;
pub const UErrorCode_U_MALFORMED_RULE: UErrorCode = 65_537;
pub const UErrorCode_U_MALFORMED_SET: UErrorCode = 65_538;
pub const UErrorCode_U_MALFORMED_SYMBOL_REFERENCE: UErrorCode = 65_539;
pub const UErrorCode_U_MALFORMED_UNICODE_ESCAPE: UErrorCode = 65_540;
pub const UErrorCode_U_MALFORMED_VARIABLE_DEFINITION: UErrorCode = 65_541;
pub const UErrorCode_U_MALFORMED_VARIABLE_REFERENCE: UErrorCode = 65_542;
pub const UErrorCode_U_MISMATCHED_SEGMENT_DELIMITERS: UErrorCode = 65_543;
pub const UErrorCode_U_MISPLACED_ANCHOR_START: UErrorCode = 65_544;
pub const UErrorCode_U_MISPLACED_CURSOR_OFFSET: UErrorCode = 65_545;
pub const UErrorCode_U_MISPLACED_QUANTIFIER: UErrorCode = 65_546;
pub const UErrorCode_U_MISSING_OPERATOR: UErrorCode = 65_547;
pub const UErrorCode_U_MISSING_SEGMENT_CLOSE: UErrorCode = 65_548;
pub const UErrorCode_U_MULTIPLE_ANTE_CONTEXTS: UErrorCode = 65_549;
pub const UErrorCode_U_MULTIPLE_CURSORS: UErrorCode = 65_550;
pub const UErrorCode_U_MULTIPLE_POST_CONTEXTS: UErrorCode = 65_551;
pub const UErrorCode_U_TRAILING_BACKSLASH: UErrorCode = 65_552;
pub const UErrorCode_U_UNDEFINED_SEGMENT_REFERENCE: UErrorCode = 65_553;
pub const UErrorCode_U_UNDEFINED_VARIABLE: UErrorCode = 65_554;
pub const UErrorCode_U_UNQUOTED_SPECIAL: UErrorCode = 65_555;
pub const UErrorCode_U_UNTERMINATED_QUOTE: UErrorCode = 65_556;
pub const UErrorCode_U_RULE_MASK_ERROR: UErrorCode = 65_557;
pub const UErrorCode_U_MISPLACED_COMPOUND_FILTER: UErrorCode = 65_558;
pub const UErrorCode_U_MULTIPLE_COMPOUND_FILTERS: UErrorCode = 65_559;
pub const UErrorCode_U_INVALID_RBT_SYNTAX: UErrorCode = 65_560;
pub const UErrorCode_U_INVALID_PROPERTY_PATTERN: UErrorCode = 65_561;
pub const UErrorCode_U_MALFORMED_PRAGMA: UErrorCode = 65_562;
pub const UErrorCode_U_UNCLOSED_SEGMENT: UErrorCode = 65_563;
pub const UErrorCode_U_ILLEGAL_CHAR_IN_SEGMENT: UErrorCode = 65_564;
pub const UErrorCode_U_VARIABLE_RANGE_EXHAUSTED: UErrorCode = 65_565;
pub const UErrorCode_U_VARIABLE_RANGE_OVERLAP: UErrorCode = 65_566;
pub const UErrorCode_U_ILLEGAL_CHARACTER: UErrorCode = 65_567;
pub const UErrorCode_U_INTERNAL_TRANSLITERATOR_ERROR: UErrorCode = 65_568;
pub const UErrorCode_U_INVALID_ID: UErrorCode = 65_569;
pub const UErrorCode_U_INVALID_FUNCTION: UErrorCode = 65_570;
pub const UErrorCode_U_PARSE_ERROR_LIMIT: UErrorCode = 65_571;
pub const UErrorCode_U_UNEXPECTED_TOKEN: UErrorCode = 65_792;
pub const UErrorCode_U_FMT_PARSE_ERROR_START: UErrorCode = 65_792;
pub const UErrorCode_U_MULTIPLE_DECIMAL_SEPARATORS: UErrorCode = 65_793;
pub const UErrorCode_U_MULTIPLE_DECIMAL_SEPERATORS: UErrorCode = 65_793;
pub const UErrorCode_U_MULTIPLE_EXPONENTIAL_SYMBOLS: UErrorCode = 65_794;
pub const UErrorCode_U_MALFORMED_EXPONENTIAL_PATTERN: UErrorCode = 65_795;
pub const UErrorCode_U_MULTIPLE_PERCENT_SYMBOLS: UErrorCode = 65_796;
pub const UErrorCode_U_MULTIPLE_PERMILL_SYMBOLS: UErrorCode = 65_797;
pub const UErrorCode_U_MULTIPLE_PAD_SPECIFIERS: UErrorCode = 65_798;
pub const UErrorCode_U_PATTERN_SYNTAX_ERROR: UErrorCode = 65_799;
pub const UErrorCode_U_ILLEGAL_PAD_POSITION: UErrorCode = 65_800;
pub const UErrorCode_U_UNMATCHED_BRACES: UErrorCode = 65_801;
pub const UErrorCode_U_UNSUPPORTED_PROPERTY: UErrorCode = 65_802;
pub const UErrorCode_U_UNSUPPORTED_ATTRIBUTE: UErrorCode = 65_803;
pub const UErrorCode_U_ARGUMENT_TYPE_MISMATCH: UErrorCode = 65_804;
pub const UErrorCode_U_DUPLICATE_KEYWORD: UErrorCode = 65_805;
pub const UErrorCode_U_UNDEFINED_KEYWORD: UErrorCode = 65_806;
pub const UErrorCode_U_DEFAULT_KEYWORD_MISSING: UErrorCode = 65_807;
pub const UErrorCode_U_DECIMAL_NUMBER_SYNTAX_ERROR: UErrorCode = 65_808;
pub const UErrorCode_U_FORMAT_INEXACT_ERROR: UErrorCode = 65_809;
pub const UErrorCode_U_FMT_PARSE_ERROR_LIMIT: UErrorCode = 65_810;
pub const UErrorCode_U_BRK_INTERNAL_ERROR: UErrorCode = 66_048;
pub const UErrorCode_U_BRK_ERROR_START: UErrorCode = 66_048;
pub const UErrorCode_U_BRK_HEX_DIGITS_EXPECTED: UErrorCode = 66_049;
pub const UErrorCode_U_BRK_SEMICOLON_EXPECTED: UErrorCode = 66_050;
pub const UErrorCode_U_BRK_RULE_SYNTAX: UErrorCode = 66_051;
pub const UErrorCode_U_BRK_UNCLOSED_SET: UErrorCode = 66_052;
pub const UErrorCode_U_BRK_ASSIGN_ERROR: UErrorCode = 66_053;
pub const UErrorCode_U_BRK_VARIABLE_REDFINITION: UErrorCode = 66_054;
pub const UErrorCode_U_BRK_MISMATCHED_PAREN: UErrorCode = 66_055;
pub const UErrorCode_U_BRK_NEW_LINE_IN_QUOTED_STRING: UErrorCode = 66_056;
pub const UErrorCode_U_BRK_UNDEFINED_VARIABLE: UErrorCode = 66_057;
pub const UErrorCode_U_BRK_INIT_ERROR: UErrorCode = 66_058;
pub const UErrorCode_U_BRK_RULE_EMPTY_SET: UErrorCode = 66_059;
pub const UErrorCode_U_BRK_UNRECOGNIZED_OPTION: UErrorCode = 66_060;
pub const UErrorCode_U_BRK_MALFORMED_RULE_TAG: UErrorCode = 66_061;
pub const UErrorCode_U_BRK_ERROR_LIMIT: UErrorCode = 66_062;
pub const UErrorCode_U_REGEX_INTERNAL_ERROR: UErrorCode = 66_304;
pub const UErrorCode_U_REGEX_ERROR_START: UErrorCode = 66_304;
pub const UErrorCode_U_REGEX_RULE_SYNTAX: UErrorCode = 66_305;
pub const UErrorCode_U_REGEX_INVALID_STATE: UErrorCode = 66_306;
pub const UErrorCode_U_REGEX_BAD_ESCAPE_SEQUENCE: UErrorCode = 66_307;
pub const UErrorCode_U_REGEX_PROPERTY_SYNTAX: UErrorCode = 66_308;
pub const UErrorCode_U_REGEX_UNIMPLEMENTED: UErrorCode = 66_309;
pub const UErrorCode_U_REGEX_MISMATCHED_PAREN: UErrorCode = 66_310;
pub const UErrorCode_U_REGEX_NUMBER_TOO_BIG: UErrorCode = 66_311;
pub const UErrorCode_U_REGEX_BAD_INTERVAL: UErrorCode = 66_312;
pub const UErrorCode_U_REGEX_MAX_LT_MIN: UErrorCode = 66_313;
pub const UErrorCode_U_REGEX_INVALID_BACK_REF: UErrorCode = 66_314;
pub const UErrorCode_U_REGEX_INVALID_FLAG: UErrorCode = 66_315;
pub const UErrorCode_U_REGEX_LOOK_BEHIND_LIMIT: UErrorCode = 66_316;
pub const UErrorCode_U_REGEX_SET_CONTAINS_STRING: UErrorCode = 66_317;
pub const UErrorCode_U_REGEX_OCTAL_TOO_BIG: UErrorCode = 66_318;
pub const UErrorCode_U_REGEX_MISSING_CLOSE_BRACKET: UErrorCode = 66_319;
pub const UErrorCode_U_REGEX_INVALID_RANGE: UErrorCode = 66_320;
pub const UErrorCode_U_REGEX_STACK_OVERFLOW: UErrorCode = 66_321;
pub const UErrorCode_U_REGEX_TIME_OUT: UErrorCode = 66_322;
pub const UErrorCode_U_REGEX_STOPPED_BY_CALLER: UErrorCode = 66_323;
pub const UErrorCode_U_REGEX_PATTERN_TOO_BIG: UErrorCode = 66_324;
pub const UErrorCode_U_REGEX_INVALID_CAPTURE_GROUP_NAME: UErrorCode = 66_325;
pub const UErrorCode_U_REGEX_ERROR_LIMIT: UErrorCode = 66_326;
pub const UErrorCode_U_IDNA_PROHIBITED_ERROR: UErrorCode = 66_560;
pub const UErrorCode_U_IDNA_ERROR_START: UErrorCode = 66_560;
pub const UErrorCode_U_IDNA_UNASSIGNED_ERROR: UErrorCode = 66_561;
pub const UErrorCode_U_IDNA_CHECK_BIDI_ERROR: UErrorCode = 66_562;
pub const UErrorCode_U_IDNA_STD3_ASCII_RULES_ERROR: UErrorCode = 66_563;
pub const UErrorCode_U_IDNA_ACE_PREFIX_ERROR: UErrorCode = 66_564;
pub const UErrorCode_U_IDNA_VERIFICATION_ERROR: UErrorCode = 66_565;
pub const UErrorCode_U_IDNA_LABEL_TOO_LONG_ERROR: UErrorCode = 66_566;
pub const UErrorCode_U_IDNA_ZERO_LENGTH_LABEL_ERROR: UErrorCode = 66_567;
pub const UErrorCode_U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR: UErrorCode = 66_568;
pub const UErrorCode_U_IDNA_ERROR_LIMIT: UErrorCode = 66_569;
pub const UErrorCode_U_STRINGPREP_PROHIBITED_ERROR: UErrorCode = 66_560;
pub const UErrorCode_U_STRINGPREP_UNASSIGNED_ERROR: UErrorCode = 66_561;
pub const UErrorCode_U_STRINGPREP_CHECK_BIDI_ERROR: UErrorCode = 66_562;
pub const UErrorCode_U_PLUGIN_ERROR_START: UErrorCode = 66_816;
pub const UErrorCode_U_PLUGIN_TOO_HIGH: UErrorCode = 66_816;
pub const UErrorCode_U_PLUGIN_DIDNT_SET_LEVEL: UErrorCode = 66_817;
pub const UErrorCode_U_PLUGIN_ERROR_LIMIT: UErrorCode = 66_818;
pub const UErrorCode_U_ERROR_LIMIT: UErrorCode = 66_818;
pub type UErrorCode = i32;
extern "C" {
  pub fn u_errorName_60(code: UErrorCode) -> *const ::std::os::raw::c_char;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct UConverter {
  _unused: [u8; 0],
}
pub const UConverterCallbackReason_UCNV_UNASSIGNED: UConverterCallbackReason = 0;
pub const UConverterCallbackReason_UCNV_ILLEGAL: UConverterCallbackReason = 1;
pub const UConverterCallbackReason_UCNV_IRREGULAR: UConverterCallbackReason = 2;
pub const UConverterCallbackReason_UCNV_RESET: UConverterCallbackReason = 3;
pub const UConverterCallbackReason_UCNV_CLOSE: UConverterCallbackReason = 4;
pub const UConverterCallbackReason_UCNV_CLONE: UConverterCallbackReason = 5;
pub type UConverterCallbackReason = u32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct UConverterFromUnicodeArgs {
  pub size: u16,
  pub flush: UBool,
  pub converter: *mut UConverter,
  pub source: *const UChar,
  pub sourceLimit: *const UChar,
  pub target: *mut ::std::os::raw::c_char,
  pub targetLimit: *const ::std::os::raw::c_char,
  pub offsets: *mut i32,
}
#[test]
fn bindgen_test_layout_UConverterFromUnicodeArgs() {
  assert_eq!(
    ::std::mem::size_of::<UConverterFromUnicodeArgs>(),
    56usize,
    concat!("Size of: ", stringify!(UConverterFromUnicodeArgs))
  );
  assert_eq!(
    ::std::mem::align_of::<UConverterFromUnicodeArgs>(),
    8usize,
    concat!("Alignment of ", stringify!(UConverterFromUnicodeArgs))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<UConverterFromUnicodeArgs>())).size as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(UConverterFromUnicodeArgs),
  //     "::",
  //     stringify!(size)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<UConverterFromUnicodeArgs>())).flush as *const _ as usize },
  //   2usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(UConverterFromUnicodeArgs),
  //     "::",
  //     stringify!(flush)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<UConverterFromUnicodeArgs>())).converter as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(UConverterFromUnicodeArgs),
  //     "::",
  //     stringify!(converter)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<UConverterFromUnicodeArgs>())).source as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(UConverterFromUnicodeArgs),
  //     "::",
  //     stringify!(source)
  //   )
  // );
  // assert_eq!(
  //   unsafe {
  //     &(*(::std::ptr::null::<UConverterFromUnicodeArgs>())).sourceLimit as *const _ as usize
  //   },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(UConverterFromUnicodeArgs),
  //     "::",
  //     stringify!(sourceLimit)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<UConverterFromUnicodeArgs>())).target as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(UConverterFromUnicodeArgs),
  //     "::",
  //     stringify!(target)
  //   )
  // );
  // assert_eq!(
  //   unsafe {
  //     &(*(::std::ptr::null::<UConverterFromUnicodeArgs>())).targetLimit as *const _ as usize
  //   },
  //   40usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(UConverterFromUnicodeArgs),
  //     "::",
  //     stringify!(targetLimit)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<UConverterFromUnicodeArgs>())).offsets as *const _ as usize },
  //   48usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(UConverterFromUnicodeArgs),
  //     "::",
  //     stringify!(offsets)
  //   )
  // );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct UConverterToUnicodeArgs {
  pub size: u16,
  pub flush: UBool,
  pub converter: *mut UConverter,
  pub source: *const ::std::os::raw::c_char,
  pub sourceLimit: *const ::std::os::raw::c_char,
  pub target: *mut UChar,
  pub targetLimit: *const UChar,
  pub offsets: *mut i32,
}
#[test]
fn bindgen_test_layout_UConverterToUnicodeArgs() {
  assert_eq!(
    ::std::mem::size_of::<UConverterToUnicodeArgs>(),
    56usize,
    concat!("Size of: ", stringify!(UConverterToUnicodeArgs))
  );
  assert_eq!(
    ::std::mem::align_of::<UConverterToUnicodeArgs>(),
    8usize,
    concat!("Alignment of ", stringify!(UConverterToUnicodeArgs))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<UConverterToUnicodeArgs>())).size as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(UConverterToUnicodeArgs),
  //     "::",
  //     stringify!(size)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<UConverterToUnicodeArgs>())).flush as *const _ as usize },
  //   2usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(UConverterToUnicodeArgs),
  //     "::",
  //     stringify!(flush)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<UConverterToUnicodeArgs>())).converter as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(UConverterToUnicodeArgs),
  //     "::",
  //     stringify!(converter)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<UConverterToUnicodeArgs>())).source as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(UConverterToUnicodeArgs),
  //     "::",
  //     stringify!(source)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<UConverterToUnicodeArgs>())).sourceLimit as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(UConverterToUnicodeArgs),
  //     "::",
  //     stringify!(sourceLimit)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<UConverterToUnicodeArgs>())).target as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(UConverterToUnicodeArgs),
  //     "::",
  //     stringify!(target)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<UConverterToUnicodeArgs>())).targetLimit as *const _ as usize },
  //   40usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(UConverterToUnicodeArgs),
  //     "::",
  //     stringify!(targetLimit)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<UConverterToUnicodeArgs>())).offsets as *const _ as usize },
  //   48usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(UConverterToUnicodeArgs),
  //     "::",
  //     stringify!(offsets)
  //   )
  // );
}
extern "C" {
  pub fn UCNV_FROM_U_CALLBACK_STOP_60(
    context: *const ::std::os::raw::c_void,
    fromUArgs: *mut UConverterFromUnicodeArgs,
    codeUnits: *const UChar,
    length: i32,
    codePoint: UChar32,
    reason: UConverterCallbackReason,
    err: *mut UErrorCode,
  );
}
extern "C" {
  pub fn UCNV_TO_U_CALLBACK_STOP_60(
    context: *const ::std::os::raw::c_void,
    toUArgs: *mut UConverterToUnicodeArgs,
    codeUnits: *const ::std::os::raw::c_char,
    length: i32,
    reason: UConverterCallbackReason,
    err: *mut UErrorCode,
  );
}
extern "C" {
  pub fn UCNV_FROM_U_CALLBACK_SKIP_60(
    context: *const ::std::os::raw::c_void,
    fromUArgs: *mut UConverterFromUnicodeArgs,
    codeUnits: *const UChar,
    length: i32,
    codePoint: UChar32,
    reason: UConverterCallbackReason,
    err: *mut UErrorCode,
  );
}
extern "C" {
  pub fn UCNV_FROM_U_CALLBACK_SUBSTITUTE_60(
    context: *const ::std::os::raw::c_void,
    fromUArgs: *mut UConverterFromUnicodeArgs,
    codeUnits: *const UChar,
    length: i32,
    codePoint: UChar32,
    reason: UConverterCallbackReason,
    err: *mut UErrorCode,
  );
}
extern "C" {
  pub fn UCNV_FROM_U_CALLBACK_ESCAPE_60(
    context: *const ::std::os::raw::c_void,
    fromUArgs: *mut UConverterFromUnicodeArgs,
    codeUnits: *const UChar,
    length: i32,
    codePoint: UChar32,
    reason: UConverterCallbackReason,
    err: *mut UErrorCode,
  );
}
extern "C" {
  pub fn UCNV_TO_U_CALLBACK_SKIP_60(
    context: *const ::std::os::raw::c_void,
    toUArgs: *mut UConverterToUnicodeArgs,
    codeUnits: *const ::std::os::raw::c_char,
    length: i32,
    reason: UConverterCallbackReason,
    err: *mut UErrorCode,
  );
}
extern "C" {
  pub fn UCNV_TO_U_CALLBACK_SUBSTITUTE_60(
    context: *const ::std::os::raw::c_void,
    toUArgs: *mut UConverterToUnicodeArgs,
    codeUnits: *const ::std::os::raw::c_char,
    length: i32,
    reason: UConverterCallbackReason,
    err: *mut UErrorCode,
  );
}
extern "C" {
  pub fn UCNV_TO_U_CALLBACK_ESCAPE_60(
    context: *const ::std::os::raw::c_void,
    toUArgs: *mut UConverterToUnicodeArgs,
    codeUnits: *const ::std::os::raw::c_char,
    length: i32,
    reason: UConverterCallbackReason,
    err: *mut UErrorCode,
  );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct UEnumeration {
  _unused: [u8; 0],
}
extern "C" {
  pub fn uenum_close_60(en: *mut UEnumeration);
}
extern "C" {
  pub fn uenum_count_60(en: *mut UEnumeration, status: *mut UErrorCode) -> i32;
}
extern "C" {
  pub fn uenum_unext_60(
    en: *mut UEnumeration,
    resultLength: *mut i32,
    status: *mut UErrorCode,
  ) -> *const UChar;
}
extern "C" {
  pub fn uenum_next_60(
    en: *mut UEnumeration,
    resultLength: *mut i32,
    status: *mut UErrorCode,
  ) -> *const ::std::os::raw::c_char;
}
extern "C" {
  pub fn uenum_reset_60(en: *mut UEnumeration, status: *mut UErrorCode);
}
extern "C" {
  pub fn uenum_openUCharStringsEnumeration_60(
    strings: *const *const UChar,
    count: i32,
    ec: *mut UErrorCode,
  ) -> *mut UEnumeration;
}
extern "C" {
  pub fn uenum_openCharStringsEnumeration_60(
    strings: *const *const ::std::os::raw::c_char,
    count: i32,
    ec: *mut UErrorCode,
  ) -> *mut UEnumeration;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct USet {
  _unused: [u8; 0],
}
pub const UConverterType_UCNV_UNSUPPORTED_CONVERTER: UConverterType = -1;
pub const UConverterType_UCNV_SBCS: UConverterType = 0;
pub const UConverterType_UCNV_DBCS: UConverterType = 1;
pub const UConverterType_UCNV_MBCS: UConverterType = 2;
pub const UConverterType_UCNV_LATIN_1: UConverterType = 3;
pub const UConverterType_UCNV_UTF8: UConverterType = 4;
pub const UConverterType_UCNV_UTF16_BigEndian: UConverterType = 5;
pub const UConverterType_UCNV_UTF16_LittleEndian: UConverterType = 6;
pub const UConverterType_UCNV_UTF32_BigEndian: UConverterType = 7;
pub const UConverterType_UCNV_UTF32_LittleEndian: UConverterType = 8;
pub const UConverterType_UCNV_EBCDIC_STATEFUL: UConverterType = 9;
pub const UConverterType_UCNV_ISO_2022: UConverterType = 10;
pub const UConverterType_UCNV_LMBCS_1: UConverterType = 11;
pub const UConverterType_UCNV_LMBCS_2: UConverterType = 12;
pub const UConverterType_UCNV_LMBCS_3: UConverterType = 13;
pub const UConverterType_UCNV_LMBCS_4: UConverterType = 14;
pub const UConverterType_UCNV_LMBCS_5: UConverterType = 15;
pub const UConverterType_UCNV_LMBCS_6: UConverterType = 16;
pub const UConverterType_UCNV_LMBCS_8: UConverterType = 17;
pub const UConverterType_UCNV_LMBCS_11: UConverterType = 18;
pub const UConverterType_UCNV_LMBCS_16: UConverterType = 19;
pub const UConverterType_UCNV_LMBCS_17: UConverterType = 20;
pub const UConverterType_UCNV_LMBCS_18: UConverterType = 21;
pub const UConverterType_UCNV_LMBCS_19: UConverterType = 22;
pub const UConverterType_UCNV_LMBCS_LAST: UConverterType = 22;
pub const UConverterType_UCNV_HZ: UConverterType = 23;
pub const UConverterType_UCNV_SCSU: UConverterType = 24;
pub const UConverterType_UCNV_ISCII: UConverterType = 25;
pub const UConverterType_UCNV_US_ASCII: UConverterType = 26;
pub const UConverterType_UCNV_UTF7: UConverterType = 27;
pub const UConverterType_UCNV_BOCU1: UConverterType = 28;
pub const UConverterType_UCNV_UTF16: UConverterType = 29;
pub const UConverterType_UCNV_UTF32: UConverterType = 30;
pub const UConverterType_UCNV_CESU8: UConverterType = 31;
pub const UConverterType_UCNV_IMAP_MAILBOX: UConverterType = 32;
pub const UConverterType_UCNV_COMPOUND_TEXT: UConverterType = 33;
pub const UConverterType_UCNV_NUMBER_OF_SUPPORTED_CONVERTER_TYPES: UConverterType = 34;
pub type UConverterType = i32;
pub const UConverterPlatform_UCNV_UNKNOWN: UConverterPlatform = -1;
pub const UConverterPlatform_UCNV_IBM: UConverterPlatform = 0;
pub type UConverterPlatform = i32;
pub type UConverterToUCallback = ::std::option::Option<
  unsafe extern "C" fn(
    context: *const ::std::os::raw::c_void,
    args: *mut UConverterToUnicodeArgs,
    codeUnits: *const ::std::os::raw::c_char,
    length: i32,
    reason: UConverterCallbackReason,
    pErrorCode: *mut UErrorCode,
  ),
>;
pub type UConverterFromUCallback = ::std::option::Option<
  unsafe extern "C" fn(
    context: *const ::std::os::raw::c_void,
    args: *mut UConverterFromUnicodeArgs,
    codeUnits: *const UChar,
    length: i32,
    codePoint: UChar32,
    reason: UConverterCallbackReason,
    pErrorCode: *mut UErrorCode,
  ),
>;
extern "C" {
  pub fn ucnv_compareNames_60(
    name1: *const ::std::os::raw::c_char,
    name2: *const ::std::os::raw::c_char,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn ucnv_open_60(
    converterName: *const ::std::os::raw::c_char,
    err: *mut UErrorCode,
  ) -> *mut UConverter;
}
extern "C" {
  pub fn ucnv_openU_60(name: *const UChar, err: *mut UErrorCode) -> *mut UConverter;
}
extern "C" {
  pub fn ucnv_openCCSID_60(
    codepage: i32,
    platform: UConverterPlatform,
    err: *mut UErrorCode,
  ) -> *mut UConverter;
}
extern "C" {
  pub fn ucnv_openPackage_60(
    packageName: *const ::std::os::raw::c_char,
    converterName: *const ::std::os::raw::c_char,
    err: *mut UErrorCode,
  ) -> *mut UConverter;
}
extern "C" {
  pub fn ucnv_safeClone_60(
    cnv: *const UConverter,
    stackBuffer: *mut ::std::os::raw::c_void,
    pBufferSize: *mut i32,
    status: *mut UErrorCode,
  ) -> *mut UConverter;
}
extern "C" {
  pub fn ucnv_close_60(converter: *mut UConverter);
}
extern "C" {
  pub fn ucnv_getSubstChars_60(
    converter: *const UConverter,
    subChars: *mut ::std::os::raw::c_char,
    len: *mut i8,
    err: *mut UErrorCode,
  );
}
extern "C" {
  pub fn ucnv_setSubstChars_60(
    converter: *mut UConverter,
    subChars: *const ::std::os::raw::c_char,
    len: i8,
    err: *mut UErrorCode,
  );
}
extern "C" {
  pub fn ucnv_setSubstString_60(
    cnv: *mut UConverter,
    s: *const UChar,
    length: i32,
    err: *mut UErrorCode,
  );
}
extern "C" {
  pub fn ucnv_getInvalidChars_60(
    converter: *const UConverter,
    errBytes: *mut ::std::os::raw::c_char,
    len: *mut i8,
    err: *mut UErrorCode,
  );
}
extern "C" {
  pub fn ucnv_getInvalidUChars_60(
    converter: *const UConverter,
    errUChars: *mut UChar,
    len: *mut i8,
    err: *mut UErrorCode,
  );
}
extern "C" {
  pub fn ucnv_reset_60(converter: *mut UConverter);
}
extern "C" {
  pub fn ucnv_resetToUnicode_60(converter: *mut UConverter);
}
extern "C" {
  pub fn ucnv_resetFromUnicode_60(converter: *mut UConverter);
}
extern "C" {
  pub fn ucnv_getMaxCharSize_60(converter: *const UConverter) -> i8;
}
extern "C" {
  pub fn ucnv_getMinCharSize_60(converter: *const UConverter) -> i8;
}
extern "C" {
  pub fn ucnv_getDisplayName_60(
    converter: *const UConverter,
    displayLocale: *const ::std::os::raw::c_char,
    displayName: *mut UChar,
    displayNameCapacity: i32,
    err: *mut UErrorCode,
  ) -> i32;
}
extern "C" {
  pub fn ucnv_getName_60(
    converter: *const UConverter,
    err: *mut UErrorCode,
  ) -> *const ::std::os::raw::c_char;
}
extern "C" {
  pub fn ucnv_getCCSID_60(converter: *const UConverter, err: *mut UErrorCode) -> i32;
}
extern "C" {
  pub fn ucnv_getPlatform_60(
    converter: *const UConverter,
    err: *mut UErrorCode,
  ) -> UConverterPlatform;
}
extern "C" {
  pub fn ucnv_getType_60(converter: *const UConverter) -> UConverterType;
}
extern "C" {
  pub fn ucnv_getStarters_60(
    converter: *const UConverter,
    starters: *mut UBool,
    err: *mut UErrorCode,
  );
}
pub const UConverterUnicodeSet_UCNV_ROUNDTRIP_SET: UConverterUnicodeSet = 0;
pub const UConverterUnicodeSet_UCNV_ROUNDTRIP_AND_FALLBACK_SET: UConverterUnicodeSet = 1;
pub const UConverterUnicodeSet_UCNV_SET_COUNT: UConverterUnicodeSet = 2;
pub type UConverterUnicodeSet = u32;
extern "C" {
  pub fn ucnv_getUnicodeSet_60(
    cnv: *const UConverter,
    setFillIn: *mut USet,
    whichSet: UConverterUnicodeSet,
    pErrorCode: *mut UErrorCode,
  );
}
extern "C" {
  pub fn ucnv_getToUCallBack_60(
    converter: *const UConverter,
    action: *mut UConverterToUCallback,
    context: *mut *const ::std::os::raw::c_void,
  );
}
extern "C" {
  pub fn ucnv_getFromUCallBack_60(
    converter: *const UConverter,
    action: *mut UConverterFromUCallback,
    context: *mut *const ::std::os::raw::c_void,
  );
}
extern "C" {
  pub fn ucnv_setToUCallBack_60(
    converter: *mut UConverter,
    newAction: UConverterToUCallback,
    newContext: *const ::std::os::raw::c_void,
    oldAction: *mut UConverterToUCallback,
    oldContext: *mut *const ::std::os::raw::c_void,
    err: *mut UErrorCode,
  );
}
extern "C" {
  pub fn ucnv_setFromUCallBack_60(
    converter: *mut UConverter,
    newAction: UConverterFromUCallback,
    newContext: *const ::std::os::raw::c_void,
    oldAction: *mut UConverterFromUCallback,
    oldContext: *mut *const ::std::os::raw::c_void,
    err: *mut UErrorCode,
  );
}
extern "C" {
  pub fn ucnv_fromUnicode_60(
    converter: *mut UConverter,
    target: *mut *mut ::std::os::raw::c_char,
    targetLimit: *const ::std::os::raw::c_char,
    source: *mut *const UChar,
    sourceLimit: *const UChar,
    offsets: *mut i32,
    flush: UBool,
    err: *mut UErrorCode,
  );
}
extern "C" {
  pub fn ucnv_toUnicode_60(
    converter: *mut UConverter,
    target: *mut *mut UChar,
    targetLimit: *const UChar,
    source: *mut *const ::std::os::raw::c_char,
    sourceLimit: *const ::std::os::raw::c_char,
    offsets: *mut i32,
    flush: UBool,
    err: *mut UErrorCode,
  );
}
extern "C" {
  pub fn ucnv_fromUChars_60(
    cnv: *mut UConverter,
    dest: *mut ::std::os::raw::c_char,
    destCapacity: i32,
    src: *const UChar,
    srcLength: i32,
    pErrorCode: *mut UErrorCode,
  ) -> i32;
}
extern "C" {
  pub fn ucnv_toUChars_60(
    cnv: *mut UConverter,
    dest: *mut UChar,
    destCapacity: i32,
    src: *const ::std::os::raw::c_char,
    srcLength: i32,
    pErrorCode: *mut UErrorCode,
  ) -> i32;
}
extern "C" {
  pub fn ucnv_getNextUChar_60(
    converter: *mut UConverter,
    source: *mut *const ::std::os::raw::c_char,
    sourceLimit: *const ::std::os::raw::c_char,
    err: *mut UErrorCode,
  ) -> UChar32;
}
extern "C" {
  pub fn ucnv_convertEx_60(
    targetCnv: *mut UConverter,
    sourceCnv: *mut UConverter,
    target: *mut *mut ::std::os::raw::c_char,
    targetLimit: *const ::std::os::raw::c_char,
    source: *mut *const ::std::os::raw::c_char,
    sourceLimit: *const ::std::os::raw::c_char,
    pivotStart: *mut UChar,
    pivotSource: *mut *mut UChar,
    pivotTarget: *mut *mut UChar,
    pivotLimit: *const UChar,
    reset: UBool,
    flush: UBool,
    pErrorCode: *mut UErrorCode,
  );
}
extern "C" {
  pub fn ucnv_convert_60(
    toConverterName: *const ::std::os::raw::c_char,
    fromConverterName: *const ::std::os::raw::c_char,
    target: *mut ::std::os::raw::c_char,
    targetCapacity: i32,
    source: *const ::std::os::raw::c_char,
    sourceLength: i32,
    pErrorCode: *mut UErrorCode,
  ) -> i32;
}
extern "C" {
  pub fn ucnv_toAlgorithmic_60(
    algorithmicType: UConverterType,
    cnv: *mut UConverter,
    target: *mut ::std::os::raw::c_char,
    targetCapacity: i32,
    source: *const ::std::os::raw::c_char,
    sourceLength: i32,
    pErrorCode: *mut UErrorCode,
  ) -> i32;
}
extern "C" {
  pub fn ucnv_fromAlgorithmic_60(
    cnv: *mut UConverter,
    algorithmicType: UConverterType,
    target: *mut ::std::os::raw::c_char,
    targetCapacity: i32,
    source: *const ::std::os::raw::c_char,
    sourceLength: i32,
    pErrorCode: *mut UErrorCode,
  ) -> i32;
}
extern "C" {
  pub fn ucnv_flushCache_60() -> i32;
}
extern "C" {
  pub fn ucnv_countAvailable_60() -> i32;
}
extern "C" {
  pub fn ucnv_getAvailableName_60(n: i32) -> *const ::std::os::raw::c_char;
}
extern "C" {
  pub fn ucnv_openAllNames_60(pErrorCode: *mut UErrorCode) -> *mut UEnumeration;
}
extern "C" {
  pub fn ucnv_countAliases_60(
    alias: *const ::std::os::raw::c_char,
    pErrorCode: *mut UErrorCode,
  ) -> u16;
}
extern "C" {
  pub fn ucnv_getAlias_60(
    alias: *const ::std::os::raw::c_char,
    n: u16,
    pErrorCode: *mut UErrorCode,
  ) -> *const ::std::os::raw::c_char;
}
extern "C" {
  pub fn ucnv_getAliases_60(
    alias: *const ::std::os::raw::c_char,
    aliases: *mut *const ::std::os::raw::c_char,
    pErrorCode: *mut UErrorCode,
  );
}
extern "C" {
  pub fn ucnv_openStandardNames_60(
    convName: *const ::std::os::raw::c_char,
    standard: *const ::std::os::raw::c_char,
    pErrorCode: *mut UErrorCode,
  ) -> *mut UEnumeration;
}
extern "C" {
  pub fn ucnv_countStandards_60() -> u16;
}
extern "C" {
  pub fn ucnv_getStandard_60(n: u16, pErrorCode: *mut UErrorCode) -> *const ::std::os::raw::c_char;
}
extern "C" {
  pub fn ucnv_getStandardName_60(
    name: *const ::std::os::raw::c_char,
    standard: *const ::std::os::raw::c_char,
    pErrorCode: *mut UErrorCode,
  ) -> *const ::std::os::raw::c_char;
}
extern "C" {
  pub fn ucnv_getCanonicalName_60(
    alias: *const ::std::os::raw::c_char,
    standard: *const ::std::os::raw::c_char,
    pErrorCode: *mut UErrorCode,
  ) -> *const ::std::os::raw::c_char;
}
extern "C" {
  pub fn ucnv_getDefaultName_60() -> *const ::std::os::raw::c_char;
}
extern "C" {
  pub fn ucnv_setDefaultName_60(name: *const ::std::os::raw::c_char);
}
extern "C" {
  pub fn ucnv_fixFileSeparator_60(cnv: *const UConverter, source: *mut UChar, sourceLen: i32);
}
extern "C" {
  pub fn ucnv_isAmbiguous_60(cnv: *const UConverter) -> UBool;
}
extern "C" {
  pub fn ucnv_setFallback_60(cnv: *mut UConverter, usesFallback: UBool);
}
extern "C" {
  pub fn ucnv_usesFallback_60(cnv: *const UConverter) -> UBool;
}
extern "C" {
  pub fn ucnv_detectUnicodeSignature_60(
    source: *const ::std::os::raw::c_char,
    sourceLength: i32,
    signatureLength: *mut i32,
    pErrorCode: *mut UErrorCode,
  ) -> *const ::std::os::raw::c_char;
}
extern "C" {
  pub fn ucnv_fromUCountPending_60(cnv: *const UConverter, status: *mut UErrorCode) -> i32;
}
extern "C" {
  pub fn ucnv_toUCountPending_60(cnv: *const UConverter, status: *mut UErrorCode) -> i32;
}
extern "C" {
  pub fn ucnv_isFixedWidth_60(cnv: *mut UConverter, status: *mut UErrorCode) -> UBool;
}
pub const xmlCharEncoding_XML_CHAR_ENCODING_ERROR: xmlCharEncoding = -1;
pub const xmlCharEncoding_XML_CHAR_ENCODING_NONE: xmlCharEncoding = 0;
pub const xmlCharEncoding_XML_CHAR_ENCODING_UTF8: xmlCharEncoding = 1;
pub const xmlCharEncoding_XML_CHAR_ENCODING_UTF16LE: xmlCharEncoding = 2;
pub const xmlCharEncoding_XML_CHAR_ENCODING_UTF16BE: xmlCharEncoding = 3;
pub const xmlCharEncoding_XML_CHAR_ENCODING_UCS4LE: xmlCharEncoding = 4;
pub const xmlCharEncoding_XML_CHAR_ENCODING_UCS4BE: xmlCharEncoding = 5;
pub const xmlCharEncoding_XML_CHAR_ENCODING_EBCDIC: xmlCharEncoding = 6;
pub const xmlCharEncoding_XML_CHAR_ENCODING_UCS4_2143: xmlCharEncoding = 7;
pub const xmlCharEncoding_XML_CHAR_ENCODING_UCS4_3412: xmlCharEncoding = 8;
pub const xmlCharEncoding_XML_CHAR_ENCODING_UCS2: xmlCharEncoding = 9;
pub const xmlCharEncoding_XML_CHAR_ENCODING_8_859_1: xmlCharEncoding = 10;
pub const xmlCharEncoding_XML_CHAR_ENCODING_8_859_2: xmlCharEncoding = 11;
pub const xmlCharEncoding_XML_CHAR_ENCODING_8_859_3: xmlCharEncoding = 12;
pub const xmlCharEncoding_XML_CHAR_ENCODING_8_859_4: xmlCharEncoding = 13;
pub const xmlCharEncoding_XML_CHAR_ENCODING_8_859_5: xmlCharEncoding = 14;
pub const xmlCharEncoding_XML_CHAR_ENCODING_8_859_6: xmlCharEncoding = 15;
pub const xmlCharEncoding_XML_CHAR_ENCODING_8_859_7: xmlCharEncoding = 16;
pub const xmlCharEncoding_XML_CHAR_ENCODING_8_859_8: xmlCharEncoding = 17;
pub const xmlCharEncoding_XML_CHAR_ENCODING_8_859_9: xmlCharEncoding = 18;
pub const xmlCharEncoding_XML_CHAR_ENCODING_2_022_JP: xmlCharEncoding = 19;
pub const xmlCharEncoding_XML_CHAR_ENCODING_SHIFT_JIS: xmlCharEncoding = 20;
pub const xmlCharEncoding_XML_CHAR_ENCODING_EUC_JP: xmlCharEncoding = 21;
pub const xmlCharEncoding_XML_CHAR_ENCODING_ASCII: xmlCharEncoding = 22;
pub type xmlCharEncoding = i32;
/// xmlCharEncodingInputFunc:
/// @out:  a pointer to an array of bytes to store the UTF-8 result
/// @outlen:  the length of @out
/// @in:  a pointer to an array of chars in the original encoding
/// @inlen:  the length of @in
///
/// Take a block of chars in the original encoding and try to convert
/// it to an UTF-8 block of chars out.
///
/// Returns the number of bytes written, -1 if lack of space, or -2
/// if the transcoding failed.
/// The value of @inlen after return is the number of octets consumed
/// if the return value is positive, else unpredictiable.
/// The value of @outlen after return is the number of octets consumed.
pub type xmlCharEncodingInputFunc = ::std::option::Option<
  unsafe extern "C" fn(
    out: *mut ::std::os::raw::c_uchar,
    outlen: *mut ::std::os::raw::c_int,
    in_: *const ::std::os::raw::c_uchar,
    inlen: *mut ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int,
>;
/// xmlCharEncodingOutputFunc:
/// @out:  a pointer to an array of bytes to store the result
/// @outlen:  the length of @out
/// @in:  a pointer to an array of UTF-8 chars
/// @inlen:  the length of @in
///
/// Take a block of UTF-8 chars in and try to convert it to another
/// encoding.
/// Note: a first call designed to produce heading info is called with
/// in = NULL. If stateful this should also initialize the encoder state.
///
/// Returns the number of bytes written, -1 if lack of space, or -2
/// if the transcoding failed.
/// The value of @inlen after return is the number of octets consumed
/// if the return value is positive, else unpredictiable.
/// The value of @outlen after return is the number of octets produced.
pub type xmlCharEncodingOutputFunc = ::std::option::Option<
  unsafe extern "C" fn(
    out: *mut ::std::os::raw::c_uchar,
    outlen: *mut ::std::os::raw::c_int,
    in_: *const ::std::os::raw::c_uchar,
    inlen: *mut ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _uconv_t {
  pub uconv: *mut UConverter,
  pub utf8: *mut UConverter,
}
#[test]
fn bindgen_test_layout__uconv_t() {
  assert_eq!(
    ::std::mem::size_of::<_uconv_t>(),
    16usize,
    concat!("Size of: ", stringify!(_uconv_t))
  );
  assert_eq!(
    ::std::mem::align_of::<_uconv_t>(),
    8usize,
    concat!("Alignment of ", stringify!(_uconv_t))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_uconv_t>())).uconv as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_uconv_t),
  //     "::",
  //     stringify!(uconv)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_uconv_t>())).utf8 as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_uconv_t),
  //     "::",
  //     stringify!(utf8)
  //   )
  // );
}
pub type uconv_t = _uconv_t;
pub type xmlCharEncodingHandler = _xmlCharEncodingHandler;
pub type xmlCharEncodingHandlerPtr = *mut xmlCharEncodingHandler;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlCharEncodingHandler {
  pub name: *mut ::std::os::raw::c_char,
  pub input: xmlCharEncodingInputFunc,
  pub output: xmlCharEncodingOutputFunc,
  pub iconv_in: iconv_t,
  pub iconv_out: iconv_t,
  pub uconv_in: *mut uconv_t,
  pub uconv_out: *mut uconv_t,
}
#[test]
fn bindgen_test_layout__xmlCharEncodingHandler() {
  assert_eq!(
    ::std::mem::size_of::<_xmlCharEncodingHandler>(),
    56usize,
    concat!("Size of: ", stringify!(_xmlCharEncodingHandler))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlCharEncodingHandler>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlCharEncodingHandler))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlCharEncodingHandler>())).name as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlCharEncodingHandler),
  //     "::",
  //     stringify!(name)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlCharEncodingHandler>())).input as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlCharEncodingHandler),
  //     "::",
  //     stringify!(input)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlCharEncodingHandler>())).output as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlCharEncodingHandler),
  //     "::",
  //     stringify!(output)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlCharEncodingHandler>())).iconv_in as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlCharEncodingHandler),
  //     "::",
  //     stringify!(iconv_in)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlCharEncodingHandler>())).iconv_out as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlCharEncodingHandler),
  //     "::",
  //     stringify!(iconv_out)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlCharEncodingHandler>())).uconv_in as *const _ as usize },
  //   40usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlCharEncodingHandler),
  //     "::",
  //     stringify!(uconv_in)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlCharEncodingHandler>())).uconv_out as *const _ as usize },
  //   48usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlCharEncodingHandler),
  //     "::",
  //     stringify!(uconv_out)
  //   )
  // );
}
extern "C" {
  pub fn xmlInitCharEncodingHandlers();
}
extern "C" {
  pub fn xmlCleanupCharEncodingHandlers();
}
extern "C" {
  pub fn xmlRegisterCharEncodingHandler(handler: xmlCharEncodingHandlerPtr);
}
extern "C" {
  pub fn xmlGetCharEncodingHandler(enc: xmlCharEncoding) -> xmlCharEncodingHandlerPtr;
}
extern "C" {
  pub fn xmlFindCharEncodingHandler(
    name: *const ::std::os::raw::c_char,
  ) -> xmlCharEncodingHandlerPtr;
}
extern "C" {
  pub fn xmlNewCharEncodingHandler(
    name: *const ::std::os::raw::c_char,
    input: xmlCharEncodingInputFunc,
    output: xmlCharEncodingOutputFunc,
  ) -> xmlCharEncodingHandlerPtr;
}
extern "C" {
  pub fn xmlAddEncodingAlias(
    name: *const ::std::os::raw::c_char,
    alias: *const ::std::os::raw::c_char,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlDelEncodingAlias(alias: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlGetEncodingAlias(alias: *const ::std::os::raw::c_char)
    -> *const ::std::os::raw::c_char;
}
extern "C" {
  pub fn xmlCleanupEncodingAliases();
}
extern "C" {
  pub fn xmlParseCharEncoding(name: *const ::std::os::raw::c_char) -> xmlCharEncoding;
}
extern "C" {
  pub fn xmlGetCharEncodingName(enc: xmlCharEncoding) -> *const ::std::os::raw::c_char;
}
extern "C" {
  pub fn xmlDetectCharEncoding(
    in_: *const ::std::os::raw::c_uchar,
    len: ::std::os::raw::c_int,
  ) -> xmlCharEncoding;
}
extern "C" {
  pub fn xmlCharEncOutFunc(
    handler: *mut xmlCharEncodingHandler,
    out: xmlBufferPtr,
    in_: xmlBufferPtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlCharEncInFunc(
    handler: *mut xmlCharEncodingHandler,
    out: xmlBufferPtr,
    in_: xmlBufferPtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlCharEncFirstLine(
    handler: *mut xmlCharEncodingHandler,
    out: xmlBufferPtr,
    in_: xmlBufferPtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlCharEncCloseFunc(handler: *mut xmlCharEncodingHandler) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn UTF8Toisolat1(
    out: *mut ::std::os::raw::c_uchar,
    outlen: *mut ::std::os::raw::c_int,
    in_: *const ::std::os::raw::c_uchar,
    inlen: *mut ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn isolat1ToUTF8(
    out: *mut ::std::os::raw::c_uchar,
    outlen: *mut ::std::os::raw::c_int,
    in_: *const ::std::os::raw::c_uchar,
    inlen: *mut ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
/// xmlInputMatchCallback:
/// @filename: the filename or URI
///
/// Callback used in the I/O Input API to detect if the current handler
/// can provide input fonctionnalities for this resource.
///
/// Returns 1 if yes and 0 if another Input module should be used
pub type xmlInputMatchCallback = ::std::option::Option<
  unsafe extern "C" fn(filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int,
>;
/// xmlInputOpenCallback:
/// @filename: the filename or URI
///
/// Callback used in the I/O Input API to open the resource
///
/// Returns an Input context or NULL in case or error
pub type xmlInputOpenCallback = ::std::option::Option<
  unsafe extern "C" fn(filename: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_void,
>;
/// xmlInputReadCallback:
/// @context:  an Input context
/// @buffer:  the buffer to store data read
/// @len:  the length of the buffer in bytes
///
/// Callback used in the I/O Input API to read the resource
///
/// Returns the number of bytes read or -1 in case of error
pub type xmlInputReadCallback = ::std::option::Option<
  unsafe extern "C" fn(
    context: *mut ::std::os::raw::c_void,
    buffer: *mut ::std::os::raw::c_char,
    len: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int,
>;
/// xmlInputCloseCallback:
/// @context:  an Input context
///
/// Callback used in the I/O Input API to close the resource
///
/// Returns 0 or -1 in case of error
pub type xmlInputCloseCallback = ::std::option::Option<
  unsafe extern "C" fn(context: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
>;
/// xmlOutputMatchCallback:
/// @filename: the filename or URI
///
/// Callback used in the I/O Output API to detect if the current handler
/// can provide output fonctionnalities for this resource.
///
/// Returns 1 if yes and 0 if another Output module should be used
pub type xmlOutputMatchCallback = ::std::option::Option<
  unsafe extern "C" fn(filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int,
>;
/// xmlOutputOpenCallback:
/// @filename: the filename or URI
///
/// Callback used in the I/O Output API to open the resource
///
/// Returns an Output context or NULL in case or error
pub type xmlOutputOpenCallback = ::std::option::Option<
  unsafe extern "C" fn(filename: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_void,
>;
/// xmlOutputWriteCallback:
/// @context:  an Output context
/// @buffer:  the buffer of data to write
/// @len:  the length of the buffer in bytes
///
/// Callback used in the I/O Output API to write to the resource
///
/// Returns the number of bytes written or -1 in case of error
pub type xmlOutputWriteCallback = ::std::option::Option<
  unsafe extern "C" fn(
    context: *mut ::std::os::raw::c_void,
    buffer: *const ::std::os::raw::c_char,
    len: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int,
>;
/// xmlOutputCloseCallback:
/// @context:  an Output context
///
/// Callback used in the I/O Output API to close the resource
///
/// Returns 0 or -1 in case of error
pub type xmlOutputCloseCallback = ::std::option::Option<
  unsafe extern "C" fn(context: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
>;
pub const idtype_t_P_ALL: idtype_t = 0;
pub const idtype_t_P_PID: idtype_t = 1;
pub const idtype_t_P_PGID: idtype_t = 2;
pub type idtype_t = u32;
pub type _Float32 = f32;
pub type _Float64 = f64;
pub type _Float32x = f64;
pub type _Float64x = f64;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct div_t {
  pub quot: ::std::os::raw::c_int,
  pub rem: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_div_t() {
  assert_eq!(
    ::std::mem::size_of::<div_t>(),
    8usize,
    concat!("Size of: ", stringify!(div_t))
  );
  assert_eq!(
    ::std::mem::align_of::<div_t>(),
    4usize,
    concat!("Alignment of ", stringify!(div_t))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<div_t>())).quot as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(div_t),
  //     "::",
  //     stringify!(quot)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<div_t>())).rem as *const _ as usize },
  //   4usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(div_t),
  //     "::",
  //     stringify!(rem)
  //   )
  // );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ldiv_t {
  pub quot: ::std::os::raw::c_long,
  pub rem: ::std::os::raw::c_long,
}

#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct lldiv_t {
  pub quot: ::std::os::raw::c_longlong,
  pub rem: ::std::os::raw::c_longlong,
}
#[test]
fn bindgen_test_layout_lldiv_t() {
  assert_eq!(
    ::std::mem::size_of::<lldiv_t>(),
    16usize,
    concat!("Size of: ", stringify!(lldiv_t))
  );
  assert_eq!(
    ::std::mem::align_of::<lldiv_t>(),
    8usize,
    concat!("Alignment of ", stringify!(lldiv_t))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<lldiv_t>())).quot as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(lldiv_t),
  //     "::",
  //     stringify!(quot)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<lldiv_t>())).rem as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(lldiv_t),
  //     "::",
  //     stringify!(rem)
  //   )
  // );
}
extern "C" {
  pub fn __ctype_get_mb_cur_max() -> usize;
}
extern "C" {
  pub fn atof(__nptr: *const ::std::os::raw::c_char) -> f64;
}
extern "C" {
  pub fn atoi(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn atol(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long;
}
extern "C" {
  pub fn atoll(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_longlong;
}
extern "C" {
  pub fn strtod(
    __nptr: *const ::std::os::raw::c_char,
    __endptr: *mut *mut ::std::os::raw::c_char,
  ) -> f64;
}
extern "C" {
  pub fn strtof(
    __nptr: *const ::std::os::raw::c_char,
    __endptr: *mut *mut ::std::os::raw::c_char,
  ) -> f32;
}
extern "C" {
  pub fn strtold(
    __nptr: *const ::std::os::raw::c_char,
    __endptr: *mut *mut ::std::os::raw::c_char,
  ) -> f64;
}
extern "C" {
  pub fn strtol(
    __nptr: *const ::std::os::raw::c_char,
    __endptr: *mut *mut ::std::os::raw::c_char,
    __base: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_long;
}
extern "C" {
  pub fn strtoul(
    __nptr: *const ::std::os::raw::c_char,
    __endptr: *mut *mut ::std::os::raw::c_char,
    __base: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_ulong;
}
extern "C" {
  pub fn strtoq(
    __nptr: *const ::std::os::raw::c_char,
    __endptr: *mut *mut ::std::os::raw::c_char,
    __base: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_longlong;
}
extern "C" {
  pub fn strtouq(
    __nptr: *const ::std::os::raw::c_char,
    __endptr: *mut *mut ::std::os::raw::c_char,
    __base: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
  pub fn strtoll(
    __nptr: *const ::std::os::raw::c_char,
    __endptr: *mut *mut ::std::os::raw::c_char,
    __base: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_longlong;
}
extern "C" {
  pub fn strtoull(
    __nptr: *const ::std::os::raw::c_char,
    __endptr: *mut *mut ::std::os::raw::c_char,
    __base: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
  pub fn l64a(__n: ::std::os::raw::c_long) -> *mut ::std::os::raw::c_char;
}
extern "C" {
  pub fn a64l(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long;
}
pub type u_char = __u_char;
pub type u_short = __u_short;
pub type u_int = __u_int;
pub type u_long = __u_long;
pub type quad_t = __quad_t;
pub type u_quad_t = __u_quad_t;
pub type fsid_t = __fsid_t;
pub type loff_t = __loff_t;
pub type ino_t = __ino_t;
pub type dev_t = __dev_t;
pub type gid_t = __gid_t;
pub type mode_t = __mode_t;
pub type nlink_t = __nlink_t;
pub type uid_t = __uid_t;
pub type pid_t = __pid_t;
pub type id_t = __id_t;
pub type daddr_t = __daddr_t;
pub type caddr_t = __caddr_t;
pub type key_t = __key_t;
pub type clock_t = __clock_t;
pub type clockid_t = __clockid_t;
pub type time_t = __time_t;
pub type timer_t = __timer_t;
pub type ulong = ::std::os::raw::c_ulong;
pub type ushort = ::std::os::raw::c_ushort;
pub type uint = ::std::os::raw::c_uint;
pub type u_int8_t = ::std::os::raw::c_uchar;
pub type u_int16_t = ::std::os::raw::c_ushort;
pub type u_int32_t = ::std::os::raw::c_uint;
pub type u_int64_t = ::std::os::raw::c_ulong;
pub type register_t = ::std::os::raw::c_long;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __sigset_t {
  pub __val: [::std::os::raw::c_ulong; 16usize],
}

pub type sigset_t = __sigset_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct timeval {
  pub tv_sec: __time_t,
  pub tv_usec: __suseconds_t,
}

#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct timespec {
  pub tv_sec: __time_t,
  pub tv_nsec: __syscall_slong_t,
}

pub type suseconds_t = __suseconds_t;
pub type __fd_mask = ::std::os::raw::c_long;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct fd_set {
  pub __fds_bits: [__fd_mask; 16usize],
}

pub type fd_mask = __fd_mask;
extern "C" {
  pub fn select(
    __nfds: ::std::os::raw::c_int,
    __readfds: *mut fd_set,
    __writefds: *mut fd_set,
    __exceptfds: *mut fd_set,
    __timeout: *mut timeval,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn pselect(
    __nfds: ::std::os::raw::c_int,
    __readfds: *mut fd_set,
    __writefds: *mut fd_set,
    __exceptfds: *mut fd_set,
    __timeout: *const timespec,
    __sigmask: *const __sigset_t,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn gnu_dev_major(__dev: __dev_t) -> ::std::os::raw::c_uint;
}
extern "C" {
  pub fn gnu_dev_minor(__dev: __dev_t) -> ::std::os::raw::c_uint;
}
extern "C" {
  pub fn gnu_dev_makedev(
    __major: ::std::os::raw::c_uint,
    __minor: ::std::os::raw::c_uint,
  ) -> __dev_t;
}
pub type blksize_t = __blksize_t;
pub type blkcnt_t = __blkcnt_t;
pub type fsblkcnt_t = __fsblkcnt_t;
pub type fsfilcnt_t = __fsfilcnt_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __pthread_rwlock_arch_t {
  pub __readers: ::std::os::raw::c_uint,
  pub __writers: ::std::os::raw::c_uint,
  pub __wrphase_futex: ::std::os::raw::c_uint,
  pub __writers_futex: ::std::os::raw::c_uint,
  pub __pad3: ::std::os::raw::c_uint,
  pub __pad4: ::std::os::raw::c_uint,
  pub __cur_writer: ::std::os::raw::c_int,
  pub __shared: ::std::os::raw::c_int,
  pub __rwelision: ::std::os::raw::c_schar,
  pub __pad1: [::std::os::raw::c_uchar; 7usize],
  pub __pad2: ::std::os::raw::c_ulong,
  pub __flags: ::std::os::raw::c_uint,
}

#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __pthread_internal_list {
  pub __prev: *mut __pthread_internal_list,
  pub __next: *mut __pthread_internal_list,
}
#[test]
fn bindgen_test_layout___pthread_internal_list() {
  assert_eq!(
    ::std::mem::size_of::<__pthread_internal_list>(),
    16usize,
    concat!("Size of: ", stringify!(__pthread_internal_list))
  );
  assert_eq!(
    ::std::mem::align_of::<__pthread_internal_list>(),
    8usize,
    concat!("Alignment of ", stringify!(__pthread_internal_list))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<__pthread_internal_list>())).__prev as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(__pthread_internal_list),
  //     "::",
  //     stringify!(__prev)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<__pthread_internal_list>())).__next as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(__pthread_internal_list),
  //     "::",
  //     stringify!(__next)
  //   )
  // );
}
pub type __pthread_list_t = __pthread_internal_list;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __pthread_mutex_s {
  pub __lock: ::std::os::raw::c_int,
  pub __count: ::std::os::raw::c_uint,
  pub __owner: ::std::os::raw::c_int,
  pub __nusers: ::std::os::raw::c_uint,
  pub __kind: ::std::os::raw::c_int,
  pub __spins: ::std::os::raw::c_short,
  pub __elision: ::std::os::raw::c_short,
  pub __list: __pthread_list_t,
}

#[repr(C)]
#[derive(Copy, Clone)]
pub struct __pthread_cond_s {
  pub __bindgen_anon_1: __pthread_cond_s__bindgen_ty_1,
  pub __bindgen_anon_2: __pthread_cond_s__bindgen_ty_2,
  pub __g_refs: [::std::os::raw::c_uint; 2usize],
  pub __g_size: [::std::os::raw::c_uint; 2usize],
  pub __g1_orig_size: ::std::os::raw::c_uint,
  pub __wrefs: ::std::os::raw::c_uint,
  pub __g_signals: [::std::os::raw::c_uint; 2usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union __pthread_cond_s__bindgen_ty_1 {
  pub __wseq: ::std::os::raw::c_ulonglong,
  pub __wseq32: __pthread_cond_s__bindgen_ty_1__bindgen_ty_1,
  _bindgen_union_align: u64,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 {
  pub __low: ::std::os::raw::c_uint,
  pub __high: ::std::os::raw::c_uint,
}

#[repr(C)]
#[derive(Copy, Clone)]
pub union __pthread_cond_s__bindgen_ty_2 {
  pub __g1_start: ::std::os::raw::c_ulonglong,
  pub __g1_start32: __pthread_cond_s__bindgen_ty_2__bindgen_ty_1,
  _bindgen_union_align: u64,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 {
  pub __low: ::std::os::raw::c_uint,
  pub __high: ::std::os::raw::c_uint,
}

pub type pthread_t = ::std::os::raw::c_ulong;
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_mutexattr_t {
  pub __size: [::std::os::raw::c_char; 4usize],
  pub __align: ::std::os::raw::c_int,
  _bindgen_union_align: u32,
}

#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_condattr_t {
  pub __size: [::std::os::raw::c_char; 4usize],
  pub __align: ::std::os::raw::c_int,
  _bindgen_union_align: u32,
}

pub type pthread_key_t = ::std::os::raw::c_uint;
pub type pthread_once_t = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_attr_t {
  pub __size: [::std::os::raw::c_char; 56usize],
  pub __align: ::std::os::raw::c_long,
  _bindgen_union_align: [u64; 7usize],
}

#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_mutex_t {
  pub __data: __pthread_mutex_s,
  pub __size: [::std::os::raw::c_char; 40usize],
  pub __align: ::std::os::raw::c_long,
  _bindgen_union_align: [u64; 5usize],
}

#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_cond_t {
  pub __data: __pthread_cond_s,
  pub __size: [::std::os::raw::c_char; 48usize],
  pub __align: ::std::os::raw::c_longlong,
  _bindgen_union_align: [u64; 6usize],
}

#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_rwlock_t {
  pub __data: __pthread_rwlock_arch_t,
  pub __size: [::std::os::raw::c_char; 56usize],
  pub __align: ::std::os::raw::c_long,
  _bindgen_union_align: [u64; 7usize],
}

#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_rwlockattr_t {
  pub __size: [::std::os::raw::c_char; 8usize],
  pub __align: ::std::os::raw::c_long,
  _bindgen_union_align: u64,
}

pub type pthread_spinlock_t = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_barrier_t {
  pub __size: [::std::os::raw::c_char; 32usize],
  pub __align: ::std::os::raw::c_long,
  _bindgen_union_align: [u64; 4usize],
}

#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_barrierattr_t {
  pub __size: [::std::os::raw::c_char; 4usize],
  pub __align: ::std::os::raw::c_int,
  _bindgen_union_align: u32,
}

extern "C" {
  pub fn random() -> ::std::os::raw::c_long;
}
extern "C" {
  pub fn srandom(__seed: ::std::os::raw::c_uint);
}
extern "C" {
  pub fn initstate(
    __seed: ::std::os::raw::c_uint,
    __statebuf: *mut ::std::os::raw::c_char,
    __statelen: usize,
  ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
  pub fn setstate(__statebuf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct random_data {
  pub fptr: *mut i32,
  pub rptr: *mut i32,
  pub state: *mut i32,
  pub rand_type: ::std::os::raw::c_int,
  pub rand_deg: ::std::os::raw::c_int,
  pub rand_sep: ::std::os::raw::c_int,
  pub end_ptr: *mut i32,
}
#[test]
fn bindgen_test_layout_random_data() {
  assert_eq!(
    ::std::mem::size_of::<random_data>(),
    48usize,
    concat!("Size of: ", stringify!(random_data))
  );
  assert_eq!(
    ::std::mem::align_of::<random_data>(),
    8usize,
    concat!("Alignment of ", stringify!(random_data))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<random_data>())).fptr as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(random_data),
  //     "::",
  //     stringify!(fptr)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<random_data>())).rptr as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(random_data),
  //     "::",
  //     stringify!(rptr)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<random_data>())).state as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(random_data),
  //     "::",
  //     stringify!(state)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<random_data>())).rand_type as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(random_data),
  //     "::",
  //     stringify!(rand_type)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<random_data>())).rand_deg as *const _ as usize },
  //   28usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(random_data),
  //     "::",
  //     stringify!(rand_deg)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<random_data>())).rand_sep as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(random_data),
  //     "::",
  //     stringify!(rand_sep)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<random_data>())).end_ptr as *const _ as usize },
  //   40usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(random_data),
  //     "::",
  //     stringify!(end_ptr)
  //   )
  // );
}
extern "C" {
  pub fn random_r(__buf: *mut random_data, __result: *mut i32) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn srandom_r(
    __seed: ::std::os::raw::c_uint,
    __buf: *mut random_data,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn initstate_r(
    __seed: ::std::os::raw::c_uint,
    __statebuf: *mut ::std::os::raw::c_char,
    __statelen: usize,
    __buf: *mut random_data,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn setstate_r(
    __statebuf: *mut ::std::os::raw::c_char,
    __buf: *mut random_data,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn rand() -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn srand(__seed: ::std::os::raw::c_uint);
}
extern "C" {
  pub fn rand_r(__seed: *mut ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn drand48() -> f64;
}
extern "C" {
  pub fn erand48(__xsubi: *mut ::std::os::raw::c_ushort) -> f64;
}
extern "C" {
  pub fn lrand48() -> ::std::os::raw::c_long;
}
extern "C" {
  pub fn nrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long;
}
extern "C" {
  pub fn mrand48() -> ::std::os::raw::c_long;
}
extern "C" {
  pub fn jrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long;
}
extern "C" {
  pub fn srand48(__seedval: ::std::os::raw::c_long);
}
extern "C" {
  pub fn seed48(__seed16v: *mut ::std::os::raw::c_ushort) -> *mut ::std::os::raw::c_ushort;
}
extern "C" {
  pub fn lcong48(__param: *mut ::std::os::raw::c_ushort);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drand48_data {
  pub __x: [::std::os::raw::c_ushort; 3usize],
  pub __old_x: [::std::os::raw::c_ushort; 3usize],
  pub __c: ::std::os::raw::c_ushort,
  pub __init: ::std::os::raw::c_ushort,
  pub __a: ::std::os::raw::c_ulonglong,
}
#[test]
fn bindgen_test_layout_drand48_data() {
  assert_eq!(
    ::std::mem::size_of::<drand48_data>(),
    24usize,
    concat!("Size of: ", stringify!(drand48_data))
  );
  assert_eq!(
    ::std::mem::align_of::<drand48_data>(),
    8usize,
    concat!("Alignment of ", stringify!(drand48_data))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<drand48_data>())).__x as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(drand48_data),
  //     "::",
  //     stringify!(__x)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<drand48_data>())).__old_x as *const _ as usize },
  //   6usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(drand48_data),
  //     "::",
  //     stringify!(__old_x)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<drand48_data>())).__c as *const _ as usize },
  //   12usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(drand48_data),
  //     "::",
  //     stringify!(__c)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<drand48_data>())).__init as *const _ as usize },
  //   14usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(drand48_data),
  //     "::",
  //     stringify!(__init)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<drand48_data>())).__a as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(drand48_data),
  //     "::",
  //     stringify!(__a)
  //   )
  // );
}
extern "C" {
  pub fn drand48_r(__buffer: *mut drand48_data, __result: *mut f64) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn erand48_r(
    __xsubi: *mut ::std::os::raw::c_ushort,
    __buffer: *mut drand48_data,
    __result: *mut f64,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn lrand48_r(
    __buffer: *mut drand48_data,
    __result: *mut ::std::os::raw::c_long,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn nrand48_r(
    __xsubi: *mut ::std::os::raw::c_ushort,
    __buffer: *mut drand48_data,
    __result: *mut ::std::os::raw::c_long,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn mrand48_r(
    __buffer: *mut drand48_data,
    __result: *mut ::std::os::raw::c_long,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn jrand48_r(
    __xsubi: *mut ::std::os::raw::c_ushort,
    __buffer: *mut drand48_data,
    __result: *mut ::std::os::raw::c_long,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn srand48_r(
    __seedval: ::std::os::raw::c_long,
    __buffer: *mut drand48_data,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn seed48_r(
    __seed16v: *mut ::std::os::raw::c_ushort,
    __buffer: *mut drand48_data,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn lcong48_r(
    __param: *mut ::std::os::raw::c_ushort,
    __buffer: *mut drand48_data,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn malloc(__size: usize) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn calloc(__nmemb: usize, __size: usize) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn realloc(__ptr: *mut ::std::os::raw::c_void, __size: usize) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn free(__ptr: *mut ::std::os::raw::c_void);
}
extern "C" {
  pub fn alloca(__size: usize) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn valloc(__size: usize) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn posix_memalign(
    __memptr: *mut *mut ::std::os::raw::c_void,
    __alignment: usize,
    __size: usize,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn aligned_alloc(__alignment: usize, __size: usize) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn abort();
}
extern "C" {
  pub fn atexit(__func: ::std::option::Option<unsafe extern "C" fn()>) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn at_quick_exit(
    __func: ::std::option::Option<unsafe extern "C" fn()>,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn on_exit(
    __func: ::std::option::Option<
      unsafe extern "C" fn(__status: ::std::os::raw::c_int, __arg: *mut ::std::os::raw::c_void),
    >,
    __arg: *mut ::std::os::raw::c_void,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn exit(__status: ::std::os::raw::c_int);
}
extern "C" {
  pub fn quick_exit(__status: ::std::os::raw::c_int);
}
extern "C" {
  pub fn _Exit(__status: ::std::os::raw::c_int);
}
extern "C" {
  pub fn getenv(__name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
  pub fn putenv(__string: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn setenv(
    __name: *const ::std::os::raw::c_char,
    __value: *const ::std::os::raw::c_char,
    __replace: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn unsetenv(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn clearenv() -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn mktemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
  pub fn mkstemp(__template: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn mkstemps(
    __template: *mut ::std::os::raw::c_char,
    __suffixlen: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn mkdtemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
  pub fn system(__command: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn realpath(
    __name: *const ::std::os::raw::c_char,
    __resolved: *mut ::std::os::raw::c_char,
  ) -> *mut ::std::os::raw::c_char;
}
pub type __compar_fn_t = ::std::option::Option<
  unsafe extern "C" fn(
    arg1: *const ::std::os::raw::c_void,
    arg2: *const ::std::os::raw::c_void,
  ) -> ::std::os::raw::c_int,
>;
extern "C" {
  pub fn bsearch(
    __key: *const ::std::os::raw::c_void,
    __base: *const ::std::os::raw::c_void,
    __nmemb: usize,
    __size: usize,
    __compar: __compar_fn_t,
  ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn qsort(
    __base: *mut ::std::os::raw::c_void,
    __nmemb: usize,
    __size: usize,
    __compar: __compar_fn_t,
  );
}
extern "C" {
  pub fn abs(__x: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn labs(__x: ::std::os::raw::c_long) -> ::std::os::raw::c_long;
}
extern "C" {
  pub fn llabs(__x: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong;
}
extern "C" {
  pub fn div(__numer: ::std::os::raw::c_int, __denom: ::std::os::raw::c_int) -> div_t;
}
extern "C" {
  pub fn ldiv(__numer: ::std::os::raw::c_long, __denom: ::std::os::raw::c_long) -> ldiv_t;
}
extern "C" {
  pub fn lldiv(__numer: ::std::os::raw::c_longlong, __denom: ::std::os::raw::c_longlong)
    -> lldiv_t;
}
extern "C" {
  pub fn ecvt(
    __value: f64,
    __ndigit: ::std::os::raw::c_int,
    __decpt: *mut ::std::os::raw::c_int,
    __sign: *mut ::std::os::raw::c_int,
  ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
  pub fn fcvt(
    __value: f64,
    __ndigit: ::std::os::raw::c_int,
    __decpt: *mut ::std::os::raw::c_int,
    __sign: *mut ::std::os::raw::c_int,
  ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
  pub fn gcvt(
    __value: f64,
    __ndigit: ::std::os::raw::c_int,
    __buf: *mut ::std::os::raw::c_char,
  ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
  pub fn qecvt(
    __value: f64,
    __ndigit: ::std::os::raw::c_int,
    __decpt: *mut ::std::os::raw::c_int,
    __sign: *mut ::std::os::raw::c_int,
  ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
  pub fn qfcvt(
    __value: f64,
    __ndigit: ::std::os::raw::c_int,
    __decpt: *mut ::std::os::raw::c_int,
    __sign: *mut ::std::os::raw::c_int,
  ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
  pub fn qgcvt(
    __value: f64,
    __ndigit: ::std::os::raw::c_int,
    __buf: *mut ::std::os::raw::c_char,
  ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
  pub fn ecvt_r(
    __value: f64,
    __ndigit: ::std::os::raw::c_int,
    __decpt: *mut ::std::os::raw::c_int,
    __sign: *mut ::std::os::raw::c_int,
    __buf: *mut ::std::os::raw::c_char,
    __len: usize,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn fcvt_r(
    __value: f64,
    __ndigit: ::std::os::raw::c_int,
    __decpt: *mut ::std::os::raw::c_int,
    __sign: *mut ::std::os::raw::c_int,
    __buf: *mut ::std::os::raw::c_char,
    __len: usize,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn qecvt_r(
    __value: f64,
    __ndigit: ::std::os::raw::c_int,
    __decpt: *mut ::std::os::raw::c_int,
    __sign: *mut ::std::os::raw::c_int,
    __buf: *mut ::std::os::raw::c_char,
    __len: usize,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn qfcvt_r(
    __value: f64,
    __ndigit: ::std::os::raw::c_int,
    __decpt: *mut ::std::os::raw::c_int,
    __sign: *mut ::std::os::raw::c_int,
    __buf: *mut ::std::os::raw::c_char,
    __len: usize,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn mblen(__s: *const ::std::os::raw::c_char, __n: usize) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn mbtowc(
    __pwc: *mut wchar_t,
    __s: *const ::std::os::raw::c_char,
    __n: usize,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn wctomb(__s: *mut ::std::os::raw::c_char, __wchar: wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn mbstowcs(__pwcs: *mut wchar_t, __s: *const ::std::os::raw::c_char, __n: usize) -> usize;
}
extern "C" {
  pub fn wcstombs(__s: *mut ::std::os::raw::c_char, __pwcs: *const wchar_t, __n: usize) -> usize;
}
extern "C" {
  pub fn rpmatch(__response: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn getsubopt(
    __optionp: *mut *mut ::std::os::raw::c_char,
    __tokens: *const *const ::std::os::raw::c_char,
    __valuep: *mut *mut ::std::os::raw::c_char,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn getloadavg(__loadavg: *mut f64, __nelem: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
/// Various defines for the various Link properties.
///
/// NOTE: the link detection layer will try to resolve QName expansion
/// of namespaces. If "foo" is the prefix for "http://foo.com/"
/// then the link detection layer will expand role="foo:myrole"
/// to "http://foo.com/:myrole".
/// NOTE: the link detection layer will expand URI-Refences found on
/// href attributes by using the base mechanism if found.
pub type xlinkHRef = *mut xmlChar;
pub type xlinkRole = *mut xmlChar;
pub type xlinkTitle = *mut xmlChar;
pub const xlinkType_XLINK_TYPE_NONE: xlinkType = 0;
pub const xlinkType_XLINK_TYPE_SIMPLE: xlinkType = 1;
pub const xlinkType_XLINK_TYPE_EXTENDED: xlinkType = 2;
pub const xlinkType_XLINK_TYPE_EXTENDED_SET: xlinkType = 3;
pub type xlinkType = u32;
pub const xlinkShow_XLINK_SHOW_NONE: xlinkShow = 0;
pub const xlinkShow_XLINK_SHOW_NEW: xlinkShow = 1;
pub const xlinkShow_XLINK_SHOW_EMBED: xlinkShow = 2;
pub const xlinkShow_XLINK_SHOW_REPLACE: xlinkShow = 3;
pub type xlinkShow = u32;
pub const xlinkActuate_XLINK_ACTUATE_NONE: xlinkActuate = 0;
pub const xlinkActuate_XLINK_ACTUATE_AUTO: xlinkActuate = 1;
pub const xlinkActuate_XLINK_ACTUATE_ONREQUEST: xlinkActuate = 2;
pub type xlinkActuate = u32;
/// xlinkNodeDetectFunc:
/// @ctx:  user data pointer
/// @node:  the node to check
///
/// This is the prototype for the link detection routine.
/// It calls the default link detection callbacks upon link detection.
pub type xlinkNodeDetectFunc =
  ::std::option::Option<unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, node: xmlNodePtr)>;
/// xlinkSimpleLinkFunk:
/// @ctx:  user data pointer
/// @node:  the node carrying the link
/// @href:  the target of the link
/// @role:  the role string
/// @title:  the link title
///
/// This is the prototype for a simple link detection callback.
pub type xlinkSimpleLinkFunk = ::std::option::Option<
  unsafe extern "C" fn(
    ctx: *mut ::std::os::raw::c_void,
    node: xmlNodePtr,
    href: xlinkHRef,
    role: xlinkRole,
    title: xlinkTitle,
  ),
>;
/// xlinkExtendedLinkFunk:
/// @ctx:  user data pointer
/// @node:  the node carrying the link
/// @nbLocators: the number of locators detected on the link
/// @hrefs:  pointer to the array of locator hrefs
/// @roles:  pointer to the array of locator roles
/// @nbArcs: the number of arcs detected on the link
/// @from:  pointer to the array of source roles found on the arcs
/// @to:  pointer to the array of target roles found on the arcs
/// @show:  array of values for the show attributes found on the arcs
/// @actuate:  array of values for the actuate attributes found on the arcs
/// @nbTitles: the number of titles detected on the link
/// @title:  array of titles detected on the link
/// @langs:  array of xml:lang values for the titles
///
/// This is the prototype for a extended link detection callback.
pub type xlinkExtendedLinkFunk = ::std::option::Option<
  unsafe extern "C" fn(
    ctx: *mut ::std::os::raw::c_void,
    node: xmlNodePtr,
    nbLocators: ::std::os::raw::c_int,
    hrefs: *const xlinkHRef,
    roles: *const xlinkRole,
    nbArcs: ::std::os::raw::c_int,
    from: *const xlinkRole,
    to: *const xlinkRole,
    show: *mut xlinkShow,
    actuate: *mut xlinkActuate,
    nbTitles: ::std::os::raw::c_int,
    titles: *const xlinkTitle,
    langs: *mut *const xmlChar,
  ),
>;
/// xlinkExtendedLinkSetFunk:
/// @ctx:  user data pointer
/// @node:  the node carrying the link
/// @nbLocators: the number of locators detected on the link
/// @hrefs:  pointer to the array of locator hrefs
/// @roles:  pointer to the array of locator roles
/// @nbTitles: the number of titles detected on the link
/// @title:  array of titles detected on the link
/// @langs:  array of xml:lang values for the titles
///
/// This is the prototype for a extended link set detection callback.
pub type xlinkExtendedLinkSetFunk = ::std::option::Option<
  unsafe extern "C" fn(
    ctx: *mut ::std::os::raw::c_void,
    node: xmlNodePtr,
    nbLocators: ::std::os::raw::c_int,
    hrefs: *const xlinkHRef,
    roles: *const xlinkRole,
    nbTitles: ::std::os::raw::c_int,
    titles: *const xlinkTitle,
    langs: *mut *const xmlChar,
  ),
>;
/// This is the structure containing a set of Links detection callbacks.
///
/// There is no default xlink callbacks, if one want to get link
/// recognition activated, those call backs must be provided before parsing.
pub type xlinkHandler = _xlinkHandler;
pub type xlinkHandlerPtr = *mut xlinkHandler;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _xlinkHandler {
  pub simple: xlinkSimpleLinkFunk,
  pub extended: xlinkExtendedLinkFunk,
  pub set: xlinkExtendedLinkSetFunk,
}
#[test]
fn bindgen_test_layout__xlinkHandler() {
  assert_eq!(
    ::std::mem::size_of::<_xlinkHandler>(),
    24usize,
    concat!("Size of: ", stringify!(_xlinkHandler))
  );
  assert_eq!(
    ::std::mem::align_of::<_xlinkHandler>(),
    8usize,
    concat!("Alignment of ", stringify!(_xlinkHandler))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xlinkHandler>())).simple as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xlinkHandler),
  //     "::",
  //     stringify!(simple)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xlinkHandler>())).extended as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xlinkHandler),
  //     "::",
  //     stringify!(extended)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xlinkHandler>())).set as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xlinkHandler),
  //     "::",
  //     stringify!(set)
  //   )
  // );
}
extern "C" {
  pub fn xlinkGetDefaultDetect() -> xlinkNodeDetectFunc;
}
extern "C" {
  pub fn xlinkSetDefaultDetect(func: xlinkNodeDetectFunc);
}
extern "C" {
  pub fn xlinkGetDefaultHandler() -> xlinkHandlerPtr;
}
extern "C" {
  pub fn xlinkSetDefaultHandler(handler: xlinkHandlerPtr);
}
extern "C" {
  pub fn xlinkIsLink(doc: xmlDocPtr, node: xmlNodePtr) -> xlinkType;
}
extern "C" {
  pub fn getPublicId(ctx: *mut ::std::os::raw::c_void) -> *const xmlChar;
}
extern "C" {
  pub fn getSystemId(ctx: *mut ::std::os::raw::c_void) -> *const xmlChar;
}
extern "C" {
  pub fn setDocumentLocator(ctx: *mut ::std::os::raw::c_void, loc: xmlSAXLocatorPtr);
}
extern "C" {
  pub fn getLineNumber(ctx: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn getColumnNumber(ctx: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn isStandalone(ctx: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn hasInternalSubset(ctx: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn hasExternalSubset(ctx: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn internalSubset(
    ctx: *mut ::std::os::raw::c_void,
    name: *const xmlChar,
    ExternalID: *const xmlChar,
    SystemID: *const xmlChar,
  );
}
extern "C" {
  pub fn externalSubset(
    ctx: *mut ::std::os::raw::c_void,
    name: *const xmlChar,
    ExternalID: *const xmlChar,
    SystemID: *const xmlChar,
  );
}
extern "C" {
  pub fn getEntity(ctx: *mut ::std::os::raw::c_void, name: *const xmlChar) -> xmlEntityPtr;
}
extern "C" {
  pub fn getParameterEntity(ctx: *mut ::std::os::raw::c_void, name: *const xmlChar)
    -> xmlEntityPtr;
}
extern "C" {
  pub fn resolveEntity(
    ctx: *mut ::std::os::raw::c_void,
    publicId: *const xmlChar,
    systemId: *const xmlChar,
  ) -> xmlParserInputPtr;
}
extern "C" {
  pub fn entityDecl(
    ctx: *mut ::std::os::raw::c_void,
    name: *const xmlChar,
    type_: ::std::os::raw::c_int,
    publicId: *const xmlChar,
    systemId: *const xmlChar,
    content: *mut xmlChar,
  );
}
extern "C" {
  pub fn attributeDecl(
    ctx: *mut ::std::os::raw::c_void,
    elem: *const xmlChar,
    fullname: *const xmlChar,
    type_: ::std::os::raw::c_int,
    def: ::std::os::raw::c_int,
    defaultValue: *const xmlChar,
    tree: xmlEnumerationPtr,
  );
}
extern "C" {
  pub fn elementDecl(
    ctx: *mut ::std::os::raw::c_void,
    name: *const xmlChar,
    type_: ::std::os::raw::c_int,
    content: xmlElementContentPtr,
  );
}
extern "C" {
  pub fn notationDecl(
    ctx: *mut ::std::os::raw::c_void,
    name: *const xmlChar,
    publicId: *const xmlChar,
    systemId: *const xmlChar,
  );
}
extern "C" {
  pub fn unparsedEntityDecl(
    ctx: *mut ::std::os::raw::c_void,
    name: *const xmlChar,
    publicId: *const xmlChar,
    systemId: *const xmlChar,
    notationName: *const xmlChar,
  );
}
extern "C" {
  pub fn startDocument(ctx: *mut ::std::os::raw::c_void);
}
extern "C" {
  pub fn endDocument(ctx: *mut ::std::os::raw::c_void);
}
extern "C" {
  pub fn attribute(
    ctx: *mut ::std::os::raw::c_void,
    fullname: *const xmlChar,
    value: *const xmlChar,
  );
}
extern "C" {
  pub fn startElement(
    ctx: *mut ::std::os::raw::c_void,
    fullname: *const xmlChar,
    atts: *mut *const xmlChar,
  );
}
extern "C" {
  pub fn endElement(ctx: *mut ::std::os::raw::c_void, name: *const xmlChar);
}
extern "C" {
  pub fn reference(ctx: *mut ::std::os::raw::c_void, name: *const xmlChar);
}
extern "C" {
  pub fn characters(
    ctx: *mut ::std::os::raw::c_void,
    ch: *const xmlChar,
    len: ::std::os::raw::c_int,
  );
}
extern "C" {
  pub fn ignorableWhitespace(
    ctx: *mut ::std::os::raw::c_void,
    ch: *const xmlChar,
    len: ::std::os::raw::c_int,
  );
}
extern "C" {
  pub fn processingInstruction(
    ctx: *mut ::std::os::raw::c_void,
    target: *const xmlChar,
    data: *const xmlChar,
  );
}
extern "C" {
  pub fn globalNamespace(
    ctx: *mut ::std::os::raw::c_void,
    href: *const xmlChar,
    prefix: *const xmlChar,
  );
}
extern "C" {
  pub fn setNamespace(ctx: *mut ::std::os::raw::c_void, name: *const xmlChar);
}
extern "C" {
  pub fn getNamespace(ctx: *mut ::std::os::raw::c_void) -> xmlNsPtr;
}
extern "C" {
  pub fn checkNamespace(
    ctx: *mut ::std::os::raw::c_void,
    nameSpace: *mut xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn namespaceDecl(
    ctx: *mut ::std::os::raw::c_void,
    href: *const xmlChar,
    prefix: *const xmlChar,
  );
}
extern "C" {
  pub fn comment(ctx: *mut ::std::os::raw::c_void, value: *const xmlChar);
}
extern "C" {
  pub fn cdataBlock(
    ctx: *mut ::std::os::raw::c_void,
    value: *const xmlChar,
    len: ::std::os::raw::c_int,
  );
}
extern "C" {
  pub fn initxmlDefaultSAXHandler(hdlr: *mut xmlSAXHandlerV1, warning: ::std::os::raw::c_int);
}
extern "C" {
  pub fn inithtmlDefaultSAXHandler(hdlr: *mut xmlSAXHandlerV1);
}
extern "C" {
  pub fn initdocbDefaultSAXHandler(hdlr: *mut xmlSAXHandlerV1);
}
extern "C" {
  pub fn xmlSAX2GetPublicId(ctx: *mut ::std::os::raw::c_void) -> *const xmlChar;
}
extern "C" {
  pub fn xmlSAX2GetSystemId(ctx: *mut ::std::os::raw::c_void) -> *const xmlChar;
}
extern "C" {
  pub fn xmlSAX2SetDocumentLocator(ctx: *mut ::std::os::raw::c_void, loc: xmlSAXLocatorPtr);
}
extern "C" {
  pub fn xmlSAX2GetLineNumber(ctx: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSAX2GetColumnNumber(ctx: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSAX2IsStandalone(ctx: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSAX2HasInternalSubset(ctx: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSAX2HasExternalSubset(ctx: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSAX2InternalSubset(
    ctx: *mut ::std::os::raw::c_void,
    name: *const xmlChar,
    ExternalID: *const xmlChar,
    SystemID: *const xmlChar,
  );
}
extern "C" {
  pub fn xmlSAX2ExternalSubset(
    ctx: *mut ::std::os::raw::c_void,
    name: *const xmlChar,
    ExternalID: *const xmlChar,
    SystemID: *const xmlChar,
  );
}
extern "C" {
  pub fn xmlSAX2GetEntity(ctx: *mut ::std::os::raw::c_void, name: *const xmlChar) -> xmlEntityPtr;
}
extern "C" {
  pub fn xmlSAX2GetParameterEntity(
    ctx: *mut ::std::os::raw::c_void,
    name: *const xmlChar,
  ) -> xmlEntityPtr;
}
extern "C" {
  pub fn xmlSAX2ResolveEntity(
    ctx: *mut ::std::os::raw::c_void,
    publicId: *const xmlChar,
    systemId: *const xmlChar,
  ) -> xmlParserInputPtr;
}
extern "C" {
  pub fn xmlSAX2EntityDecl(
    ctx: *mut ::std::os::raw::c_void,
    name: *const xmlChar,
    type_: ::std::os::raw::c_int,
    publicId: *const xmlChar,
    systemId: *const xmlChar,
    content: *mut xmlChar,
  );
}
extern "C" {
  pub fn xmlSAX2AttributeDecl(
    ctx: *mut ::std::os::raw::c_void,
    elem: *const xmlChar,
    fullname: *const xmlChar,
    type_: ::std::os::raw::c_int,
    def: ::std::os::raw::c_int,
    defaultValue: *const xmlChar,
    tree: xmlEnumerationPtr,
  );
}
extern "C" {
  pub fn xmlSAX2ElementDecl(
    ctx: *mut ::std::os::raw::c_void,
    name: *const xmlChar,
    type_: ::std::os::raw::c_int,
    content: xmlElementContentPtr,
  );
}
extern "C" {
  pub fn xmlSAX2NotationDecl(
    ctx: *mut ::std::os::raw::c_void,
    name: *const xmlChar,
    publicId: *const xmlChar,
    systemId: *const xmlChar,
  );
}
extern "C" {
  pub fn xmlSAX2UnparsedEntityDecl(
    ctx: *mut ::std::os::raw::c_void,
    name: *const xmlChar,
    publicId: *const xmlChar,
    systemId: *const xmlChar,
    notationName: *const xmlChar,
  );
}
extern "C" {
  pub fn xmlSAX2StartDocument(ctx: *mut ::std::os::raw::c_void);
}
extern "C" {
  pub fn xmlSAX2EndDocument(ctx: *mut ::std::os::raw::c_void);
}
extern "C" {
  pub fn xmlSAX2StartElement(
    ctx: *mut ::std::os::raw::c_void,
    fullname: *const xmlChar,
    atts: *mut *const xmlChar,
  );
}
extern "C" {
  pub fn xmlSAX2EndElement(ctx: *mut ::std::os::raw::c_void, name: *const xmlChar);
}
extern "C" {
  pub fn xmlSAX2StartElementNs(
    ctx: *mut ::std::os::raw::c_void,
    localname: *const xmlChar,
    prefix: *const xmlChar,
    URI: *const xmlChar,
    nb_namespaces: ::std::os::raw::c_int,
    namespaces: *mut *const xmlChar,
    nb_attributes: ::std::os::raw::c_int,
    nb_defaulted: ::std::os::raw::c_int,
    attributes: *mut *const xmlChar,
  );
}
extern "C" {
  pub fn xmlSAX2EndElementNs(
    ctx: *mut ::std::os::raw::c_void,
    localname: *const xmlChar,
    prefix: *const xmlChar,
    URI: *const xmlChar,
  );
}
extern "C" {
  pub fn xmlSAX2Reference(ctx: *mut ::std::os::raw::c_void, name: *const xmlChar);
}
extern "C" {
  pub fn xmlSAX2Characters(
    ctx: *mut ::std::os::raw::c_void,
    ch: *const xmlChar,
    len: ::std::os::raw::c_int,
  );
}
extern "C" {
  pub fn xmlSAX2IgnorableWhitespace(
    ctx: *mut ::std::os::raw::c_void,
    ch: *const xmlChar,
    len: ::std::os::raw::c_int,
  );
}
extern "C" {
  pub fn xmlSAX2ProcessingInstruction(
    ctx: *mut ::std::os::raw::c_void,
    target: *const xmlChar,
    data: *const xmlChar,
  );
}
extern "C" {
  pub fn xmlSAX2Comment(ctx: *mut ::std::os::raw::c_void, value: *const xmlChar);
}
extern "C" {
  pub fn xmlSAX2CDataBlock(
    ctx: *mut ::std::os::raw::c_void,
    value: *const xmlChar,
    len: ::std::os::raw::c_int,
  );
}
extern "C" {
  pub fn xmlSAXDefaultVersion(version: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSAXVersion(
    hdlr: *mut xmlSAXHandler,
    version: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSAX2InitDefaultSAXHandler(hdlr: *mut xmlSAXHandler, warning: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlSAX2InitHtmlDefaultSAXHandler(hdlr: *mut xmlSAXHandler);
}
extern "C" {
  pub fn htmlDefaultSAXHandlerInit();
}
extern "C" {
  pub fn xmlSAX2InitDocbDefaultSAXHandler(hdlr: *mut xmlSAXHandler);
}
extern "C" {
  pub fn docbDefaultSAXHandlerInit();
}
extern "C" {
  pub fn xmlDefaultSAXHandlerInit();
}
/// xmlFreeFunc:
/// @mem: an already allocated block of memory
///
/// Signature for a free() implementation.
pub type xmlFreeFunc =
  ::std::option::Option<unsafe extern "C" fn(mem: *mut ::std::os::raw::c_void)>;
/// xmlMallocFunc:
/// @size:  the size requested in bytes
///
/// Signature for a malloc() implementation.
///
/// Returns a pointer to the newly allocated block or NULL in case of error.
pub type xmlMallocFunc =
  ::std::option::Option<unsafe extern "C" fn(size: usize) -> *mut ::std::os::raw::c_void>;
/// xmlReallocFunc:
/// @mem: an already allocated block of memory
/// @size:  the new size requested in bytes
///
/// Signature for a realloc() implementation.
///
/// Returns a pointer to the newly reallocated block or NULL in case of error.
pub type xmlReallocFunc = ::std::option::Option<
  unsafe extern "C" fn(
    mem: *mut ::std::os::raw::c_void,
    size: usize,
  ) -> *mut ::std::os::raw::c_void,
>;
/// xmlStrdupFunc:
/// @str: a zero terminated string
///
/// Signature for an strdup() implementation.
///
/// Returns the copy of the string or NULL in case of error.
pub type xmlStrdupFunc = ::std::option::Option<
  unsafe extern "C" fn(str: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char,
>;
extern "C" {
  pub fn xmlMemSetup(
    freeFunc: xmlFreeFunc,
    mallocFunc: xmlMallocFunc,
    reallocFunc: xmlReallocFunc,
    strdupFunc: xmlStrdupFunc,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlMemGet(
    freeFunc: *mut xmlFreeFunc,
    mallocFunc: *mut xmlMallocFunc,
    reallocFunc: *mut xmlReallocFunc,
    strdupFunc: *mut xmlStrdupFunc,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlGcMemSetup(
    freeFunc: xmlFreeFunc,
    mallocFunc: xmlMallocFunc,
    mallocAtomicFunc: xmlMallocFunc,
    reallocFunc: xmlReallocFunc,
    strdupFunc: xmlStrdupFunc,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlGcMemGet(
    freeFunc: *mut xmlFreeFunc,
    mallocFunc: *mut xmlMallocFunc,
    mallocAtomicFunc: *mut xmlMallocFunc,
    reallocFunc: *mut xmlReallocFunc,
    strdupFunc: *mut xmlStrdupFunc,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlInitMemory() -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlCleanupMemory();
}
extern "C" {
  pub fn xmlMemUsed() -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlMemBlocks() -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlMemDisplay(fp: *mut FILE);
}
extern "C" {
  pub fn xmlMemDisplayLast(fp: *mut FILE, nbBytes: ::std::os::raw::c_long);
}
extern "C" {
  pub fn xmlMemShow(fp: *mut FILE, nr: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlMemoryDump();
}
extern "C" {
  pub fn xmlMemMalloc(size: usize) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn xmlMemRealloc(
    ptr: *mut ::std::os::raw::c_void,
    size: usize,
  ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn xmlMemFree(ptr: *mut ::std::os::raw::c_void);
}
extern "C" {
  pub fn xmlMemoryStrdup(str: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
  pub fn xmlMallocLoc(
    size: usize,
    file: *const ::std::os::raw::c_char,
    line: ::std::os::raw::c_int,
  ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn xmlReallocLoc(
    ptr: *mut ::std::os::raw::c_void,
    size: usize,
    file: *const ::std::os::raw::c_char,
    line: ::std::os::raw::c_int,
  ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn xmlMallocAtomicLoc(
    size: usize,
    file: *const ::std::os::raw::c_char,
    line: ::std::os::raw::c_int,
  ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn xmlMemStrdupLoc(
    str: *const ::std::os::raw::c_char,
    file: *const ::std::os::raw::c_char,
    line: ::std::os::raw::c_int,
  ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
  pub fn xmlInitGlobals();
}
extern "C" {
  pub fn xmlCleanupGlobals();
}
/// xmlParserInputBufferCreateFilenameFunc:
/// @URI: the URI to read from
/// @enc: the requested source encoding
///
/// Signature for the function doing the lookup for a suitable input method
/// corresponding to an URI.
///
/// Returns the new xmlParserInputBufferPtr in case of success or NULL if no
/// method was found.
pub type xmlParserInputBufferCreateFilenameFunc = ::std::option::Option<
  unsafe extern "C" fn(
    URI: *const ::std::os::raw::c_char,
    enc: xmlCharEncoding,
  ) -> xmlParserInputBufferPtr,
>;
/// xmlOutputBufferCreateFilenameFunc:
/// @URI: the URI to write to
/// @enc: the requested target encoding
///
/// Signature for the function doing the lookup for a suitable output method
/// corresponding to an URI.
///
/// Returns the new xmlOutputBufferPtr in case of success or NULL if no
/// method was found.
pub type xmlOutputBufferCreateFilenameFunc = ::std::option::Option<
  unsafe extern "C" fn(
    URI: *const ::std::os::raw::c_char,
    encoder: xmlCharEncodingHandlerPtr,
    compression: ::std::os::raw::c_int,
  ) -> xmlOutputBufferPtr,
>;
extern "C" {
  pub fn xmlParserInputBufferCreateFilenameDefault(
    func: xmlParserInputBufferCreateFilenameFunc,
  ) -> xmlParserInputBufferCreateFilenameFunc;
}
extern "C" {
  pub fn xmlOutputBufferCreateFilenameDefault(
    func: xmlOutputBufferCreateFilenameFunc,
  ) -> xmlOutputBufferCreateFilenameFunc;
}
/// xmlRegisterNodeFunc:
/// @node: the current node
///
/// Signature for the registration callback of a created node
pub type xmlRegisterNodeFunc = ::std::option::Option<unsafe extern "C" fn(node: xmlNodePtr)>;
/// xmlDeregisterNodeFunc:
/// @node: the current node
///
/// Signature for the deregistration callback of a discarded node
pub type xmlDeregisterNodeFunc = ::std::option::Option<unsafe extern "C" fn(node: xmlNodePtr)>;
pub type xmlGlobalState = _xmlGlobalState;
pub type xmlGlobalStatePtr = *mut xmlGlobalState;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlGlobalState {
  pub xmlParserVersion: *const ::std::os::raw::c_char,
  pub xmlDefaultSAXLocator: xmlSAXLocator,
  pub xmlDefaultSAXHandler: xmlSAXHandlerV1,
  pub docbDefaultSAXHandler: xmlSAXHandlerV1,
  pub htmlDefaultSAXHandler: xmlSAXHandlerV1,
  pub xmlFree: xmlFreeFunc,
  pub xmlMalloc: xmlMallocFunc,
  pub xmlMemStrdup: xmlStrdupFunc,
  pub xmlRealloc: xmlReallocFunc,
  pub xmlGenericError: xmlGenericErrorFunc,
  pub xmlStructuredError: xmlStructuredErrorFunc,
  pub xmlGenericErrorContext: *mut ::std::os::raw::c_void,
  pub oldXMLWDcompatibility: ::std::os::raw::c_int,
  pub xmlBufferAllocScheme: xmlBufferAllocationScheme,
  pub xmlDefaultBufferSize: ::std::os::raw::c_int,
  pub xmlSubstituteEntitiesDefaultValue: ::std::os::raw::c_int,
  pub xmlDoValidityCheckingDefaultValue: ::std::os::raw::c_int,
  pub xmlGetWarningsDefaultValue: ::std::os::raw::c_int,
  pub xmlKeepBlanksDefaultValue: ::std::os::raw::c_int,
  pub xmlLineNumbersDefaultValue: ::std::os::raw::c_int,
  pub xmlLoadExtDtdDefaultValue: ::std::os::raw::c_int,
  pub xmlParserDebugEntities: ::std::os::raw::c_int,
  pub xmlPedanticParserDefaultValue: ::std::os::raw::c_int,
  pub xmlSaveNoEmptyTags: ::std::os::raw::c_int,
  pub xmlIndentTreeOutput: ::std::os::raw::c_int,
  pub xmlTreeIndentString: *const ::std::os::raw::c_char,
  pub xmlRegisterNodeDefaultValue: xmlRegisterNodeFunc,
  pub xmlDeregisterNodeDefaultValue: xmlDeregisterNodeFunc,
  pub xmlMallocAtomic: xmlMallocFunc,
  pub xmlLastError: xmlError,
  pub xmlParserInputBufferCreateFilenameValue: xmlParserInputBufferCreateFilenameFunc,
  pub xmlOutputBufferCreateFilenameValue: xmlOutputBufferCreateFilenameFunc,
  pub xmlStructuredErrorContext: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout__xmlGlobalState() {
  assert_eq!(
    ::std::mem::size_of::<_xmlGlobalState>(),
    968usize,
    concat!("Size of: ", stringify!(_xmlGlobalState))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlGlobalState>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlGlobalState))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlGlobalState>())).xmlParserVersion as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(xmlParserVersion)
  //   )
  // );
  // assert_eq!(
  //   unsafe {
  //     &(*(::std::ptr::null::<_xmlGlobalState>())).xmlDefaultSAXLocator as *const _ as usize
  //   },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(xmlDefaultSAXLocator)
  //   )
  // );
  // assert_eq!(
  //   unsafe {
  //     &(*(::std::ptr::null::<_xmlGlobalState>())).xmlDefaultSAXHandler as *const _ as usize
  //   },
  //   40usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(xmlDefaultSAXHandler)
  //   )
  // );
  // assert_eq!(
  //   unsafe {
  //     &(*(::std::ptr::null::<_xmlGlobalState>())).docbDefaultSAXHandler as *const _ as usize
  //   },
  //   264usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(docbDefaultSAXHandler)
  //   )
  // );
  // assert_eq!(
  //   unsafe {
  //     &(*(::std::ptr::null::<_xmlGlobalState>())).htmlDefaultSAXHandler as *const _ as usize
  //   },
  //   488usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(htmlDefaultSAXHandler)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlGlobalState>())).xmlFree as *const _ as usize },
  //   712usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(xmlFree)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlGlobalState>())).xmlMalloc as *const _ as usize },
  //   720usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(xmlMalloc)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlGlobalState>())).xmlMemStrdup as *const _ as usize },
  //   728usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(xmlMemStrdup)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlGlobalState>())).xmlRealloc as *const _ as usize },
  //   736usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(xmlRealloc)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlGlobalState>())).xmlGenericError as *const _ as usize },
  //   744usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(xmlGenericError)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlGlobalState>())).xmlStructuredError as *const _ as usize },
  //   752usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(xmlStructuredError)
  //   )
  // );
  // assert_eq!(
  //   unsafe {
  //     &(*(::std::ptr::null::<_xmlGlobalState>())).xmlGenericErrorContext as *const _ as usize
  //   },
  //   760usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(xmlGenericErrorContext)
  //   )
  // );
  // assert_eq!(
  //   unsafe {
  //     &(*(::std::ptr::null::<_xmlGlobalState>())).oldXMLWDcompatibility as *const _ as usize
  //   },
  //   768usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(oldXMLWDcompatibility)
  //   )
  // );
  // assert_eq!(
  //   unsafe {
  //     &(*(::std::ptr::null::<_xmlGlobalState>())).xmlBufferAllocScheme as *const _ as usize
  //   },
  //   772usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(xmlBufferAllocScheme)
  //   )
  // );
  // assert_eq!(
  //   unsafe {
  //     &(*(::std::ptr::null::<_xmlGlobalState>())).xmlDefaultBufferSize as *const _ as usize
  //   },
  //   776usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(xmlDefaultBufferSize)
  //   )
  // );
  // assert_eq!(
  //   unsafe {
  //     &(*(::std::ptr::null::<_xmlGlobalState>())).xmlSubstituteEntitiesDefaultValue as *const _
  //       as usize
  //   },
  //   780usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(xmlSubstituteEntitiesDefaultValue)
  //   )
  // );
  // assert_eq!(
  //   unsafe {
  //     &(*(::std::ptr::null::<_xmlGlobalState>())).xmlDoValidityCheckingDefaultValue as *const _
  //       as usize
  //   },
  //   784usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(xmlDoValidityCheckingDefaultValue)
  //   )
  // );
  // assert_eq!(
  //   unsafe {
  //     &(*(::std::ptr::null::<_xmlGlobalState>())).xmlGetWarningsDefaultValue as *const _ as usize
  //   },
  //   788usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(xmlGetWarningsDefaultValue)
  //   )
  // );
  // assert_eq!(
  //   unsafe {
  //     &(*(::std::ptr::null::<_xmlGlobalState>())).xmlKeepBlanksDefaultValue as *const _ as usize
  //   },
  //   792usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(xmlKeepBlanksDefaultValue)
  //   )
  // );
  // assert_eq!(
  //   unsafe {
  //     &(*(::std::ptr::null::<_xmlGlobalState>())).xmlLineNumbersDefaultValue as *const _ as usize
  //   },
  //   796usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(xmlLineNumbersDefaultValue)
  //   )
  // );
  // assert_eq!(
  //   unsafe {
  //     &(*(::std::ptr::null::<_xmlGlobalState>())).xmlLoadExtDtdDefaultValue as *const _ as usize
  //   },
  //   800usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(xmlLoadExtDtdDefaultValue)
  //   )
  // );
  // assert_eq!(
  //   unsafe {
  //     &(*(::std::ptr::null::<_xmlGlobalState>())).xmlParserDebugEntities as *const _ as usize
  //   },
  //   804usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(xmlParserDebugEntities)
  //   )
  // );
  // assert_eq!(
  //   unsafe {
  //     &(*(::std::ptr::null::<_xmlGlobalState>())).xmlPedanticParserDefaultValue as *const _ as usize
  //   },
  //   808usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(xmlPedanticParserDefaultValue)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlGlobalState>())).xmlSaveNoEmptyTags as *const _ as usize },
  //   812usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(xmlSaveNoEmptyTags)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlGlobalState>())).xmlIndentTreeOutput as *const _ as usize },
  //   816usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(xmlIndentTreeOutput)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlGlobalState>())).xmlTreeIndentString as *const _ as usize },
  //   824usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(xmlTreeIndentString)
  //   )
  // );
  // assert_eq!(
  //   unsafe {
  //     &(*(::std::ptr::null::<_xmlGlobalState>())).xmlRegisterNodeDefaultValue as *const _ as usize
  //   },
  //   832usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(xmlRegisterNodeDefaultValue)
  //   )
  // );
  // assert_eq!(
  //   unsafe {
  //     &(*(::std::ptr::null::<_xmlGlobalState>())).xmlDeregisterNodeDefaultValue as *const _ as usize
  //   },
  //   840usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(xmlDeregisterNodeDefaultValue)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlGlobalState>())).xmlMallocAtomic as *const _ as usize },
  //   848usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(xmlMallocAtomic)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlGlobalState>())).xmlLastError as *const _ as usize },
  //   856usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(xmlLastError)
  //   )
  // );
  // assert_eq!(
  //   unsafe {
  //     &(*(::std::ptr::null::<_xmlGlobalState>())).xmlParserInputBufferCreateFilenameValue
  //       as *const _ as usize
  //   },
  //   944usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(xmlParserInputBufferCreateFilenameValue)
  //   )
  // );
  // assert_eq!(
  //   unsafe {
  //     &(*(::std::ptr::null::<_xmlGlobalState>())).xmlOutputBufferCreateFilenameValue as *const _
  //       as usize
  //   },
  //   952usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(xmlOutputBufferCreateFilenameValue)
  //   )
  // );
  // assert_eq!(
  //   unsafe {
  //     &(*(::std::ptr::null::<_xmlGlobalState>())).xmlStructuredErrorContext as *const _ as usize
  //   },
  //   960usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlGlobalState),
  //     "::",
  //     stringify!(xmlStructuredErrorContext)
  //   )
  // );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlMutex {
  _unused: [u8; 0],
}
pub type xmlMutex = _xmlMutex;
pub type xmlMutexPtr = *mut xmlMutex;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlRMutex {
  _unused: [u8; 0],
}
pub type xmlRMutex = _xmlRMutex;
pub type xmlRMutexPtr = *mut xmlRMutex;
extern "C" {
  pub fn xmlNewMutex() -> xmlMutexPtr;
}
extern "C" {
  pub fn xmlMutexLock(tok: xmlMutexPtr);
}
extern "C" {
  pub fn xmlMutexUnlock(tok: xmlMutexPtr);
}
extern "C" {
  pub fn xmlFreeMutex(tok: xmlMutexPtr);
}
extern "C" {
  pub fn xmlNewRMutex() -> xmlRMutexPtr;
}
extern "C" {
  pub fn xmlRMutexLock(tok: xmlRMutexPtr);
}
extern "C" {
  pub fn xmlRMutexUnlock(tok: xmlRMutexPtr);
}
extern "C" {
  pub fn xmlFreeRMutex(tok: xmlRMutexPtr);
}
extern "C" {
  pub fn xmlInitThreads();
}
extern "C" {
  pub fn xmlLockLibrary();
}
extern "C" {
  pub fn xmlUnlockLibrary();
}
extern "C" {
  pub fn xmlGetThreadId() -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlIsMainThread() -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlCleanupThreads();
}
extern "C" {
  pub fn xmlGetGlobalState() -> xmlGlobalStatePtr;
}
extern "C" {
  pub fn xmlInitializeGlobalState(gs: xmlGlobalStatePtr);
}
extern "C" {
  pub fn xmlThrDefSetGenericErrorFunc(
    ctx: *mut ::std::os::raw::c_void,
    handler: xmlGenericErrorFunc,
  );
}
extern "C" {
  pub fn xmlThrDefSetStructuredErrorFunc(
    ctx: *mut ::std::os::raw::c_void,
    handler: xmlStructuredErrorFunc,
  );
}
extern "C" {
  pub fn xmlRegisterNodeDefault(func: xmlRegisterNodeFunc) -> xmlRegisterNodeFunc;
}
extern "C" {
  pub fn xmlThrDefRegisterNodeDefault(func: xmlRegisterNodeFunc) -> xmlRegisterNodeFunc;
}
extern "C" {
  pub fn xmlDeregisterNodeDefault(func: xmlDeregisterNodeFunc) -> xmlDeregisterNodeFunc;
}
extern "C" {
  pub fn xmlThrDefDeregisterNodeDefault(func: xmlDeregisterNodeFunc) -> xmlDeregisterNodeFunc;
}
extern "C" {
  pub fn xmlThrDefOutputBufferCreateFilenameDefault(
    func: xmlOutputBufferCreateFilenameFunc,
  ) -> xmlOutputBufferCreateFilenameFunc;
}
extern "C" {
  pub fn xmlThrDefParserInputBufferCreateFilenameDefault(
    func: xmlParserInputBufferCreateFilenameFunc,
  ) -> xmlParserInputBufferCreateFilenameFunc;
}
extern "C" {
  #[link_name = "\u{1}xmlMalloc"]
  pub static mut xmlMalloc: xmlMallocFunc;
}
extern "C" {
  #[link_name = "\u{1}xmlMallocAtomic"]
  pub static mut xmlMallocAtomic: xmlMallocFunc;
}
extern "C" {
  #[link_name = "\u{1}xmlRealloc"]
  pub static mut xmlRealloc: xmlReallocFunc;
}
extern "C" {
  #[link_name = "\u{1}xmlFree"]
  pub static mut xmlFree: xmlFreeFunc;
}
extern "C" {
  #[link_name = "\u{1}xmlMemStrdup"]
  pub static mut xmlMemStrdup: xmlStrdupFunc;
}
extern "C" {
  pub fn __docbDefaultSAXHandler() -> *mut xmlSAXHandlerV1;
}
extern "C" {
  #[link_name = "\u{1}docbDefaultSAXHandler"]
  pub static mut docbDefaultSAXHandler: xmlSAXHandlerV1;
}
extern "C" {
  pub fn __htmlDefaultSAXHandler() -> *mut xmlSAXHandlerV1;
}
extern "C" {
  #[link_name = "\u{1}htmlDefaultSAXHandler"]
  pub static mut htmlDefaultSAXHandler: xmlSAXHandlerV1;
}
extern "C" {
  pub fn __xmlLastError() -> *mut xmlError;
}
extern "C" {
  #[link_name = "\u{1}xmlLastError"]
  pub static mut xmlLastError: xmlError;
}
extern "C" {
  pub fn __oldXMLWDcompatibility() -> *mut ::std::os::raw::c_int;
}
extern "C" {
  #[link_name = "\u{1}oldXMLWDcompatibility"]
  pub static mut oldXMLWDcompatibility: ::std::os::raw::c_int;
}
extern "C" {
  pub fn __xmlBufferAllocScheme() -> *mut xmlBufferAllocationScheme;
}
extern "C" {
  #[link_name = "\u{1}xmlBufferAllocScheme"]
  pub static mut xmlBufferAllocScheme: xmlBufferAllocationScheme;
}
extern "C" {
  pub fn xmlThrDefBufferAllocScheme(v: xmlBufferAllocationScheme) -> xmlBufferAllocationScheme;
}
extern "C" {
  pub fn __xmlDefaultBufferSize() -> *mut ::std::os::raw::c_int;
}
extern "C" {
  #[link_name = "\u{1}xmlDefaultBufferSize"]
  pub static mut xmlDefaultBufferSize: ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlThrDefDefaultBufferSize(v: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn __xmlDefaultSAXHandler() -> *mut xmlSAXHandlerV1;
}
extern "C" {
  #[link_name = "\u{1}xmlDefaultSAXHandler"]
  pub static mut xmlDefaultSAXHandler: xmlSAXHandlerV1;
}
extern "C" {
  pub fn __xmlDefaultSAXLocator() -> *mut xmlSAXLocator;
}
extern "C" {
  #[link_name = "\u{1}xmlDefaultSAXLocator"]
  pub static mut xmlDefaultSAXLocator: xmlSAXLocator;
}
extern "C" {
  pub fn __xmlDoValidityCheckingDefaultValue() -> *mut ::std::os::raw::c_int;
}
extern "C" {
  #[link_name = "\u{1}xmlDoValidityCheckingDefaultValue"]
  pub static mut xmlDoValidityCheckingDefaultValue: ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlThrDefDoValidityCheckingDefaultValue(v: ::std::os::raw::c_int)
    -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn __xmlGenericError() -> *mut xmlGenericErrorFunc;
}
extern "C" {
  #[link_name = "\u{1}xmlGenericError"]
  pub static mut xmlGenericError: xmlGenericErrorFunc;
}
extern "C" {
  pub fn __xmlStructuredError() -> *mut xmlStructuredErrorFunc;
}
extern "C" {
  #[link_name = "\u{1}xmlStructuredError"]
  pub static mut xmlStructuredError: xmlStructuredErrorFunc;
}
extern "C" {
  pub fn __xmlGenericErrorContext() -> *mut *mut ::std::os::raw::c_void;
}
extern "C" {
  #[link_name = "\u{1}xmlGenericErrorContext"]
  pub static mut xmlGenericErrorContext: *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn __xmlStructuredErrorContext() -> *mut *mut ::std::os::raw::c_void;
}
extern "C" {
  #[link_name = "\u{1}xmlStructuredErrorContext"]
  pub static mut xmlStructuredErrorContext: *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn __xmlGetWarningsDefaultValue() -> *mut ::std::os::raw::c_int;
}
extern "C" {
  #[link_name = "\u{1}xmlGetWarningsDefaultValue"]
  pub static mut xmlGetWarningsDefaultValue: ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlThrDefGetWarningsDefaultValue(v: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn __xmlIndentTreeOutput() -> *mut ::std::os::raw::c_int;
}
extern "C" {
  #[link_name = "\u{1}xmlIndentTreeOutput"]
  pub static mut xmlIndentTreeOutput: ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlThrDefIndentTreeOutput(v: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn __xmlTreeIndentString() -> *mut *const ::std::os::raw::c_char;
}
extern "C" {
  #[link_name = "\u{1}xmlTreeIndentString"]
  pub static mut xmlTreeIndentString: *const ::std::os::raw::c_char;
}
extern "C" {
  pub fn xmlThrDefTreeIndentString(
    v: *const ::std::os::raw::c_char,
  ) -> *const ::std::os::raw::c_char;
}
extern "C" {
  pub fn __xmlKeepBlanksDefaultValue() -> *mut ::std::os::raw::c_int;
}
extern "C" {
  #[link_name = "\u{1}xmlKeepBlanksDefaultValue"]
  pub static mut xmlKeepBlanksDefaultValue: ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlThrDefKeepBlanksDefaultValue(v: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn __xmlLineNumbersDefaultValue() -> *mut ::std::os::raw::c_int;
}
extern "C" {
  #[link_name = "\u{1}xmlLineNumbersDefaultValue"]
  pub static mut xmlLineNumbersDefaultValue: ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlThrDefLineNumbersDefaultValue(v: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn __xmlLoadExtDtdDefaultValue() -> *mut ::std::os::raw::c_int;
}
extern "C" {
  #[link_name = "\u{1}xmlLoadExtDtdDefaultValue"]
  pub static mut xmlLoadExtDtdDefaultValue: ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlThrDefLoadExtDtdDefaultValue(v: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn __xmlParserDebugEntities() -> *mut ::std::os::raw::c_int;
}
extern "C" {
  #[link_name = "\u{1}xmlParserDebugEntities"]
  pub static mut xmlParserDebugEntities: ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlThrDefParserDebugEntities(v: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn __xmlParserVersion() -> *mut *const ::std::os::raw::c_char;
}
extern "C" {
  #[link_name = "\u{1}xmlParserVersion"]
  pub static mut xmlParserVersion: *const ::std::os::raw::c_char;
}
extern "C" {
  pub fn __xmlPedanticParserDefaultValue() -> *mut ::std::os::raw::c_int;
}
extern "C" {
  #[link_name = "\u{1}xmlPedanticParserDefaultValue"]
  pub static mut xmlPedanticParserDefaultValue: ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlThrDefPedanticParserDefaultValue(v: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn __xmlSaveNoEmptyTags() -> *mut ::std::os::raw::c_int;
}
extern "C" {
  #[link_name = "\u{1}xmlSaveNoEmptyTags"]
  pub static mut xmlSaveNoEmptyTags: ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlThrDefSaveNoEmptyTags(v: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn __xmlSubstituteEntitiesDefaultValue() -> *mut ::std::os::raw::c_int;
}
extern "C" {
  #[link_name = "\u{1}xmlSubstituteEntitiesDefaultValue"]
  pub static mut xmlSubstituteEntitiesDefaultValue: ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlThrDefSubstituteEntitiesDefaultValue(v: ::std::os::raw::c_int)
    -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn __xmlRegisterNodeDefaultValue() -> *mut xmlRegisterNodeFunc;
}
extern "C" {
  #[link_name = "\u{1}xmlRegisterNodeDefaultValue"]
  pub static mut xmlRegisterNodeDefaultValue: xmlRegisterNodeFunc;
}
extern "C" {
  pub fn __xmlDeregisterNodeDefaultValue() -> *mut xmlDeregisterNodeFunc;
}
extern "C" {
  #[link_name = "\u{1}xmlDeregisterNodeDefaultValue"]
  pub static mut xmlDeregisterNodeDefaultValue: xmlDeregisterNodeFunc;
}
extern "C" {
  pub fn __xmlParserInputBufferCreateFilenameValue() -> *mut xmlParserInputBufferCreateFilenameFunc;
}
extern "C" {
  #[link_name = "\u{1}xmlParserInputBufferCreateFilenameValue"]
  pub static mut xmlParserInputBufferCreateFilenameValue: xmlParserInputBufferCreateFilenameFunc;
}
extern "C" {
  pub fn __xmlOutputBufferCreateFilenameValue() -> *mut xmlOutputBufferCreateFilenameFunc;
}
extern "C" {
  #[link_name = "\u{1}xmlOutputBufferCreateFilenameValue"]
  pub static mut xmlOutputBufferCreateFilenameValue: xmlOutputBufferCreateFilenameFunc;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlParserInputBuffer {
  pub context: *mut ::std::os::raw::c_void,
  pub readcallback: xmlInputReadCallback,
  pub closecallback: xmlInputCloseCallback,
  pub encoder: xmlCharEncodingHandlerPtr,
  pub buffer: xmlBufPtr,
  pub raw: xmlBufPtr,
  pub compressed: ::std::os::raw::c_int,
  pub error: ::std::os::raw::c_int,
  pub rawconsumed: ::std::os::raw::c_ulong,
}

#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlOutputBuffer {
  pub context: *mut ::std::os::raw::c_void,
  pub writecallback: xmlOutputWriteCallback,
  pub closecallback: xmlOutputCloseCallback,
  pub encoder: xmlCharEncodingHandlerPtr,
  pub buffer: xmlBufPtr,
  pub conv: xmlBufPtr,
  pub written: ::std::os::raw::c_int,
  pub error: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout__xmlOutputBuffer() {
  assert_eq!(
    ::std::mem::size_of::<_xmlOutputBuffer>(),
    56usize,
    concat!("Size of: ", stringify!(_xmlOutputBuffer))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlOutputBuffer>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlOutputBuffer))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlOutputBuffer>())).context as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlOutputBuffer),
  //     "::",
  //     stringify!(context)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlOutputBuffer>())).writecallback as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlOutputBuffer),
  //     "::",
  //     stringify!(writecallback)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlOutputBuffer>())).closecallback as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlOutputBuffer),
  //     "::",
  //     stringify!(closecallback)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlOutputBuffer>())).encoder as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlOutputBuffer),
  //     "::",
  //     stringify!(encoder)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlOutputBuffer>())).buffer as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlOutputBuffer),
  //     "::",
  //     stringify!(buffer)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlOutputBuffer>())).conv as *const _ as usize },
  //   40usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlOutputBuffer),
  //     "::",
  //     stringify!(conv)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlOutputBuffer>())).written as *const _ as usize },
  //   48usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlOutputBuffer),
  //     "::",
  //     stringify!(written)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlOutputBuffer>())).error as *const _ as usize },
  //   52usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlOutputBuffer),
  //     "::",
  //     stringify!(error)
  //   )
  // );
}
extern "C" {
  pub fn xmlCleanupInputCallbacks();
}
extern "C" {
  pub fn xmlPopInputCallbacks() -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlRegisterDefaultInputCallbacks();
}
extern "C" {
  pub fn xmlAllocParserInputBuffer(enc: xmlCharEncoding) -> xmlParserInputBufferPtr;
}
extern "C" {
  pub fn xmlParserInputBufferCreateFilename(
    URI: *const ::std::os::raw::c_char,
    enc: xmlCharEncoding,
  ) -> xmlParserInputBufferPtr;
}
extern "C" {
  pub fn xmlParserInputBufferCreateFile(
    file: *mut FILE,
    enc: xmlCharEncoding,
  ) -> xmlParserInputBufferPtr;
}
extern "C" {
  pub fn xmlParserInputBufferCreateFd(
    fd: ::std::os::raw::c_int,
    enc: xmlCharEncoding,
  ) -> xmlParserInputBufferPtr;
}
extern "C" {
  pub fn xmlParserInputBufferCreateMem(
    mem: *const ::std::os::raw::c_char,
    size: ::std::os::raw::c_int,
    enc: xmlCharEncoding,
  ) -> xmlParserInputBufferPtr;
}
extern "C" {
  pub fn xmlParserInputBufferCreateStatic(
    mem: *const ::std::os::raw::c_char,
    size: ::std::os::raw::c_int,
    enc: xmlCharEncoding,
  ) -> xmlParserInputBufferPtr;
}
extern "C" {
  pub fn xmlParserInputBufferCreateIO(
    ioread: xmlInputReadCallback,
    ioclose: xmlInputCloseCallback,
    ioctx: *mut ::std::os::raw::c_void,
    enc: xmlCharEncoding,
  ) -> xmlParserInputBufferPtr;
}
extern "C" {
  pub fn xmlParserInputBufferRead(
    in_: xmlParserInputBufferPtr,
    len: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlParserInputBufferGrow(
    in_: xmlParserInputBufferPtr,
    len: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlParserInputBufferPush(
    in_: xmlParserInputBufferPtr,
    len: ::std::os::raw::c_int,
    buf: *const ::std::os::raw::c_char,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlFreeParserInputBuffer(in_: xmlParserInputBufferPtr);
}
extern "C" {
  pub fn xmlParserGetDirectory(
    filename: *const ::std::os::raw::c_char,
  ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
  pub fn xmlRegisterInputCallbacks(
    matchFunc: xmlInputMatchCallback,
    openFunc: xmlInputOpenCallback,
    readFunc: xmlInputReadCallback,
    closeFunc: xmlInputCloseCallback,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn __xmlParserInputBufferCreateFilename(
    URI: *const ::std::os::raw::c_char,
    enc: xmlCharEncoding,
  ) -> xmlParserInputBufferPtr;
}
extern "C" {
  pub fn xmlCleanupOutputCallbacks();
}
extern "C" {
  pub fn xmlRegisterDefaultOutputCallbacks();
}
extern "C" {
  pub fn xmlAllocOutputBuffer(encoder: xmlCharEncodingHandlerPtr) -> xmlOutputBufferPtr;
}
extern "C" {
  pub fn xmlOutputBufferCreateFilename(
    URI: *const ::std::os::raw::c_char,
    encoder: xmlCharEncodingHandlerPtr,
    compression: ::std::os::raw::c_int,
  ) -> xmlOutputBufferPtr;
}
extern "C" {
  pub fn xmlOutputBufferCreateFile(
    file: *mut FILE,
    encoder: xmlCharEncodingHandlerPtr,
  ) -> xmlOutputBufferPtr;
}
extern "C" {
  pub fn xmlOutputBufferCreateBuffer(
    buffer: xmlBufferPtr,
    encoder: xmlCharEncodingHandlerPtr,
  ) -> xmlOutputBufferPtr;
}
extern "C" {
  pub fn xmlOutputBufferCreateFd(
    fd: ::std::os::raw::c_int,
    encoder: xmlCharEncodingHandlerPtr,
  ) -> xmlOutputBufferPtr;
}
extern "C" {
  pub fn xmlOutputBufferCreateIO(
    iowrite: xmlOutputWriteCallback,
    ioclose: xmlOutputCloseCallback,
    ioctx: *mut ::std::os::raw::c_void,
    encoder: xmlCharEncodingHandlerPtr,
  ) -> xmlOutputBufferPtr;
}
extern "C" {
  pub fn xmlOutputBufferGetContent(out: xmlOutputBufferPtr) -> *const xmlChar;
}
extern "C" {
  pub fn xmlOutputBufferGetSize(out: xmlOutputBufferPtr) -> usize;
}
extern "C" {
  pub fn xmlOutputBufferWrite(
    out: xmlOutputBufferPtr,
    len: ::std::os::raw::c_int,
    buf: *const ::std::os::raw::c_char,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlOutputBufferWriteString(
    out: xmlOutputBufferPtr,
    str: *const ::std::os::raw::c_char,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlOutputBufferWriteEscape(
    out: xmlOutputBufferPtr,
    str: *const xmlChar,
    escaping: xmlCharEncodingOutputFunc,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlOutputBufferFlush(out: xmlOutputBufferPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlOutputBufferClose(out: xmlOutputBufferPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlRegisterOutputCallbacks(
    matchFunc: xmlOutputMatchCallback,
    openFunc: xmlOutputOpenCallback,
    writeFunc: xmlOutputWriteCallback,
    closeFunc: xmlOutputCloseCallback,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn __xmlOutputBufferCreateFilename(
    URI: *const ::std::os::raw::c_char,
    encoder: xmlCharEncodingHandlerPtr,
    compression: ::std::os::raw::c_int,
  ) -> xmlOutputBufferPtr;
}
extern "C" {
  pub fn xmlRegisterHTTPPostCallbacks();
}
extern "C" {
  pub fn xmlCheckHTTPInput(ctxt: xmlParserCtxtPtr, ret: xmlParserInputPtr) -> xmlParserInputPtr;
}
extern "C" {
  pub fn xmlNoNetExternalEntityLoader(
    URL: *const ::std::os::raw::c_char,
    ID: *const ::std::os::raw::c_char,
    ctxt: xmlParserCtxtPtr,
  ) -> xmlParserInputPtr;
}
extern "C" {
  pub fn xmlNormalizeWindowsPath(path: *const xmlChar) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlCheckFilename(path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
  /// Default 'file://' protocol callbacks
  pub fn xmlFileMatch(filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlFileOpen(filename: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn xmlFileRead(
    context: *mut ::std::os::raw::c_void,
    buffer: *mut ::std::os::raw::c_char,
    len: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlFileClose(context: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlIOHTTPMatch(filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlIOHTTPOpen(filename: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn xmlIOHTTPOpenW(
    post_uri: *const ::std::os::raw::c_char,
    compression: ::std::os::raw::c_int,
  ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn xmlIOHTTPRead(
    context: *mut ::std::os::raw::c_void,
    buffer: *mut ::std::os::raw::c_char,
    len: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlIOHTTPClose(context: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlIOFTPMatch(filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlIOFTPOpen(filename: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn xmlIOFTPRead(
    context: *mut ::std::os::raw::c_void,
    buffer: *mut ::std::os::raw::c_char,
    len: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlIOFTPClose(context: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlInitParser();
}
extern "C" {
  pub fn xmlCleanupParser();
}
extern "C" {
  pub fn xmlParserInputRead(
    in_: xmlParserInputPtr,
    len: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlParserInputGrow(
    in_: xmlParserInputPtr,
    len: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlParseDoc(cur: *const xmlChar) -> xmlDocPtr;
}
extern "C" {
  pub fn xmlParseFile(filename: *const ::std::os::raw::c_char) -> xmlDocPtr;
}
extern "C" {
  pub fn xmlParseMemory(
    buffer: *const ::std::os::raw::c_char,
    size: ::std::os::raw::c_int,
  ) -> xmlDocPtr;
}
extern "C" {
  pub fn xmlSubstituteEntitiesDefault(val: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlKeepBlanksDefault(val: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlStopParser(ctxt: xmlParserCtxtPtr);
}
extern "C" {
  pub fn xmlPedanticParserDefault(val: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlLineNumbersDefault(val: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlRecoverDoc(cur: *const xmlChar) -> xmlDocPtr;
}
extern "C" {
  pub fn xmlRecoverMemory(
    buffer: *const ::std::os::raw::c_char,
    size: ::std::os::raw::c_int,
  ) -> xmlDocPtr;
}
extern "C" {
  pub fn xmlRecoverFile(filename: *const ::std::os::raw::c_char) -> xmlDocPtr;
}
extern "C" {
  pub fn xmlParseDocument(ctxt: xmlParserCtxtPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlParseExtParsedEnt(ctxt: xmlParserCtxtPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSAXUserParseFile(
    sax: xmlSAXHandlerPtr,
    user_data: *mut ::std::os::raw::c_void,
    filename: *const ::std::os::raw::c_char,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSAXUserParseMemory(
    sax: xmlSAXHandlerPtr,
    user_data: *mut ::std::os::raw::c_void,
    buffer: *const ::std::os::raw::c_char,
    size: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSAXParseDoc(
    sax: xmlSAXHandlerPtr,
    cur: *const xmlChar,
    recovery: ::std::os::raw::c_int,
  ) -> xmlDocPtr;
}
extern "C" {
  pub fn xmlSAXParseMemory(
    sax: xmlSAXHandlerPtr,
    buffer: *const ::std::os::raw::c_char,
    size: ::std::os::raw::c_int,
    recovery: ::std::os::raw::c_int,
  ) -> xmlDocPtr;
}
extern "C" {
  pub fn xmlSAXParseMemoryWithData(
    sax: xmlSAXHandlerPtr,
    buffer: *const ::std::os::raw::c_char,
    size: ::std::os::raw::c_int,
    recovery: ::std::os::raw::c_int,
    data: *mut ::std::os::raw::c_void,
  ) -> xmlDocPtr;
}
extern "C" {
  pub fn xmlSAXParseFile(
    sax: xmlSAXHandlerPtr,
    filename: *const ::std::os::raw::c_char,
    recovery: ::std::os::raw::c_int,
  ) -> xmlDocPtr;
}
extern "C" {
  pub fn xmlSAXParseFileWithData(
    sax: xmlSAXHandlerPtr,
    filename: *const ::std::os::raw::c_char,
    recovery: ::std::os::raw::c_int,
    data: *mut ::std::os::raw::c_void,
  ) -> xmlDocPtr;
}
extern "C" {
  pub fn xmlSAXParseEntity(
    sax: xmlSAXHandlerPtr,
    filename: *const ::std::os::raw::c_char,
  ) -> xmlDocPtr;
}
extern "C" {
  pub fn xmlParseEntity(filename: *const ::std::os::raw::c_char) -> xmlDocPtr;
}
extern "C" {
  pub fn xmlSAXParseDTD(
    sax: xmlSAXHandlerPtr,
    ExternalID: *const xmlChar,
    SystemID: *const xmlChar,
  ) -> xmlDtdPtr;
}
extern "C" {
  pub fn xmlParseDTD(ExternalID: *const xmlChar, SystemID: *const xmlChar) -> xmlDtdPtr;
}
extern "C" {
  pub fn xmlIOParseDTD(
    sax: xmlSAXHandlerPtr,
    input: xmlParserInputBufferPtr,
    enc: xmlCharEncoding,
  ) -> xmlDtdPtr;
}
extern "C" {
  pub fn xmlParseBalancedChunkMemory(
    doc: xmlDocPtr,
    sax: xmlSAXHandlerPtr,
    user_data: *mut ::std::os::raw::c_void,
    depth: ::std::os::raw::c_int,
    string: *const xmlChar,
    lst: *mut xmlNodePtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlParseInNodeContext(
    node: xmlNodePtr,
    data: *const ::std::os::raw::c_char,
    datalen: ::std::os::raw::c_int,
    options: ::std::os::raw::c_int,
    lst: *mut xmlNodePtr,
  ) -> xmlParserErrors;
}
extern "C" {
  pub fn xmlParseBalancedChunkMemoryRecover(
    doc: xmlDocPtr,
    sax: xmlSAXHandlerPtr,
    user_data: *mut ::std::os::raw::c_void,
    depth: ::std::os::raw::c_int,
    string: *const xmlChar,
    lst: *mut xmlNodePtr,
    recover: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlParseExternalEntity(
    doc: xmlDocPtr,
    sax: xmlSAXHandlerPtr,
    user_data: *mut ::std::os::raw::c_void,
    depth: ::std::os::raw::c_int,
    URL: *const xmlChar,
    ID: *const xmlChar,
    lst: *mut xmlNodePtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlParseCtxtExternalEntity(
    ctx: xmlParserCtxtPtr,
    URL: *const xmlChar,
    ID: *const xmlChar,
    lst: *mut xmlNodePtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlNewParserCtxt() -> xmlParserCtxtPtr;
}
extern "C" {
  pub fn xmlInitParserCtxt(ctxt: xmlParserCtxtPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlClearParserCtxt(ctxt: xmlParserCtxtPtr);
}
extern "C" {
  pub fn xmlFreeParserCtxt(ctxt: xmlParserCtxtPtr);
}
extern "C" {
  pub fn xmlSetupParserForBuffer(
    ctxt: xmlParserCtxtPtr,
    buffer: *const xmlChar,
    filename: *const ::std::os::raw::c_char,
  );
}
extern "C" {
  pub fn xmlCreateDocParserCtxt(cur: *const xmlChar) -> xmlParserCtxtPtr;
}
extern "C" {
  pub fn xmlGetFeaturesList(
    len: *mut ::std::os::raw::c_int,
    result: *mut *const ::std::os::raw::c_char,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlGetFeature(
    ctxt: xmlParserCtxtPtr,
    name: *const ::std::os::raw::c_char,
    result: *mut ::std::os::raw::c_void,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSetFeature(
    ctxt: xmlParserCtxtPtr,
    name: *const ::std::os::raw::c_char,
    value: *mut ::std::os::raw::c_void,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlCreatePushParserCtxt(
    sax: xmlSAXHandlerPtr,
    user_data: *mut ::std::os::raw::c_void,
    chunk: *const ::std::os::raw::c_char,
    size: ::std::os::raw::c_int,
    filename: *const ::std::os::raw::c_char,
  ) -> xmlParserCtxtPtr;
}
extern "C" {
  pub fn xmlParseChunk(
    ctxt: xmlParserCtxtPtr,
    chunk: *const ::std::os::raw::c_char,
    size: ::std::os::raw::c_int,
    terminate: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlCreateIOParserCtxt(
    sax: xmlSAXHandlerPtr,
    user_data: *mut ::std::os::raw::c_void,
    ioread: xmlInputReadCallback,
    ioclose: xmlInputCloseCallback,
    ioctx: *mut ::std::os::raw::c_void,
    enc: xmlCharEncoding,
  ) -> xmlParserCtxtPtr;
}
extern "C" {
  pub fn xmlNewIOInputStream(
    ctxt: xmlParserCtxtPtr,
    input: xmlParserInputBufferPtr,
    enc: xmlCharEncoding,
  ) -> xmlParserInputPtr;
}
extern "C" {
  pub fn xmlParserFindNodeInfo(
    ctxt: xmlParserCtxtPtr,
    node: xmlNodePtr,
  ) -> *const xmlParserNodeInfo;
}
extern "C" {
  pub fn xmlInitNodeInfoSeq(seq: xmlParserNodeInfoSeqPtr);
}
extern "C" {
  pub fn xmlClearNodeInfoSeq(seq: xmlParserNodeInfoSeqPtr);
}
extern "C" {
  pub fn xmlParserFindNodeInfoIndex(
    seq: xmlParserNodeInfoSeqPtr,
    node: xmlNodePtr,
  ) -> ::std::os::raw::c_ulong;
}
extern "C" {
  pub fn xmlParserAddNodeInfo(ctxt: xmlParserCtxtPtr, info: xmlParserNodeInfoPtr);
}
extern "C" {
  pub fn xmlSetExternalEntityLoader(f: xmlExternalEntityLoader);
}
extern "C" {
  pub fn xmlGetExternalEntityLoader() -> xmlExternalEntityLoader;
}
extern "C" {
  pub fn xmlLoadExternalEntity(
    URL: *const ::std::os::raw::c_char,
    ID: *const ::std::os::raw::c_char,
    ctxt: xmlParserCtxtPtr,
  ) -> xmlParserInputPtr;
}
extern "C" {
  pub fn xmlByteConsumed(ctxt: xmlParserCtxtPtr) -> ::std::os::raw::c_long;
}
pub const xmlParserOption_XML_PARSE_RECOVER: xmlParserOption = 1;
pub const xmlParserOption_XML_PARSE_NOENT: xmlParserOption = 2;
pub const xmlParserOption_XML_PARSE_DTDLOAD: xmlParserOption = 4;
pub const xmlParserOption_XML_PARSE_DTDATTR: xmlParserOption = 8;
pub const xmlParserOption_XML_PARSE_DTDVALID: xmlParserOption = 16;
pub const xmlParserOption_XML_PARSE_NOERROR: xmlParserOption = 32;
pub const xmlParserOption_XML_PARSE_NOWARNING: xmlParserOption = 64;
pub const xmlParserOption_XML_PARSE_PEDANTIC: xmlParserOption = 128;
pub const xmlParserOption_XML_PARSE_NOBLANKS: xmlParserOption = 256;
pub const xmlParserOption_XML_PARSE_SAX1: xmlParserOption = 512;
pub const xmlParserOption_XML_PARSE_XINCLUDE: xmlParserOption = 1_024;
pub const xmlParserOption_XML_PARSE_NONET: xmlParserOption = 2_048;
pub const xmlParserOption_XML_PARSE_NODICT: xmlParserOption = 4_096;
pub const xmlParserOption_XML_PARSE_NSCLEAN: xmlParserOption = 8_192;
pub const xmlParserOption_XML_PARSE_NOCDATA: xmlParserOption = 16_384;
pub const xmlParserOption_XML_PARSE_NOXINCNODE: xmlParserOption = 32_768;
pub const xmlParserOption_XML_PARSE_COMPACT: xmlParserOption = 65_536;
pub const xmlParserOption_XML_PARSE_OLD10: xmlParserOption = 131_072;
pub const xmlParserOption_XML_PARSE_NOBASEFIX: xmlParserOption = 262_144;
pub const xmlParserOption_XML_PARSE_HUGE: xmlParserOption = 524_288;
pub const xmlParserOption_XML_PARSE_OLDSAX: xmlParserOption = 1_048_576;
pub const xmlParserOption_XML_PARSE_IGNORE_ENC: xmlParserOption = 2_097_152;
pub const xmlParserOption_XML_PARSE_BIG_LINES: xmlParserOption = 4_194_304;
/// xmlParserOption:
///
/// This is the set of XML parser options that can be passed down
/// to the xmlReadDoc() and similar calls.
pub type xmlParserOption = u32;
extern "C" {
  pub fn xmlCtxtReset(ctxt: xmlParserCtxtPtr);
}
extern "C" {
  pub fn xmlCtxtResetPush(
    ctxt: xmlParserCtxtPtr,
    chunk: *const ::std::os::raw::c_char,
    size: ::std::os::raw::c_int,
    filename: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlCtxtUseOptions(
    ctxt: xmlParserCtxtPtr,
    options: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlReadDoc(
    cur: *const xmlChar,
    URL: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> xmlDocPtr;
}
extern "C" {
  pub fn xmlReadFile(
    URL: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> xmlDocPtr;
}
extern "C" {
  pub fn xmlReadMemory(
    buffer: *const ::std::os::raw::c_char,
    size: ::std::os::raw::c_int,
    URL: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> xmlDocPtr;
}
extern "C" {
  pub fn xmlReadFd(
    fd: ::std::os::raw::c_int,
    URL: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> xmlDocPtr;
}
extern "C" {
  pub fn xmlReadIO(
    ioread: xmlInputReadCallback,
    ioclose: xmlInputCloseCallback,
    ioctx: *mut ::std::os::raw::c_void,
    URL: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> xmlDocPtr;
}
extern "C" {
  pub fn xmlCtxtReadDoc(
    ctxt: xmlParserCtxtPtr,
    cur: *const xmlChar,
    URL: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> xmlDocPtr;
}
extern "C" {
  pub fn xmlCtxtReadFile(
    ctxt: xmlParserCtxtPtr,
    filename: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> xmlDocPtr;
}
extern "C" {
  pub fn xmlCtxtReadMemory(
    ctxt: xmlParserCtxtPtr,
    buffer: *const ::std::os::raw::c_char,
    size: ::std::os::raw::c_int,
    URL: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> xmlDocPtr;
}
extern "C" {
  pub fn xmlCtxtReadFd(
    ctxt: xmlParserCtxtPtr,
    fd: ::std::os::raw::c_int,
    URL: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> xmlDocPtr;
}
extern "C" {
  pub fn xmlCtxtReadIO(
    ctxt: xmlParserCtxtPtr,
    ioread: xmlInputReadCallback,
    ioclose: xmlInputCloseCallback,
    ioctx: *mut ::std::os::raw::c_void,
    URL: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> xmlDocPtr;
}
pub const xmlFeature_XML_WITH_THREAD: xmlFeature = 1;
pub const xmlFeature_XML_WITH_TREE: xmlFeature = 2;
pub const xmlFeature_XML_WITH_OUTPUT: xmlFeature = 3;
pub const xmlFeature_XML_WITH_PUSH: xmlFeature = 4;
pub const xmlFeature_XML_WITH_READER: xmlFeature = 5;
pub const xmlFeature_XML_WITH_PATTERN: xmlFeature = 6;
pub const xmlFeature_XML_WITH_WRITER: xmlFeature = 7;
pub const xmlFeature_XML_WITH_SAX1: xmlFeature = 8;
pub const xmlFeature_XML_WITH_FTP: xmlFeature = 9;
pub const xmlFeature_XML_WITH_HTTP: xmlFeature = 10;
pub const xmlFeature_XML_WITH_VALID: xmlFeature = 11;
pub const xmlFeature_XML_WITH_HTML: xmlFeature = 12;
pub const xmlFeature_XML_WITH_LEGACY: xmlFeature = 13;
pub const xmlFeature_XML_WITH_C14N: xmlFeature = 14;
pub const xmlFeature_XML_WITH_CATALOG: xmlFeature = 15;
pub const xmlFeature_XML_WITH_XPATH: xmlFeature = 16;
pub const xmlFeature_XML_WITH_XPTR: xmlFeature = 17;
pub const xmlFeature_XML_WITH_XINCLUDE: xmlFeature = 18;
pub const xmlFeature_XML_WITH_ICONV: xmlFeature = 19;
pub const xmlFeature_XML_WITH_ISO8859X: xmlFeature = 20;
pub const xmlFeature_XML_WITH_UNICODE: xmlFeature = 21;
pub const xmlFeature_XML_WITH_REGEXP: xmlFeature = 22;
pub const xmlFeature_XML_WITH_AUTOMATA: xmlFeature = 23;
pub const xmlFeature_XML_WITH_EXPR: xmlFeature = 24;
pub const xmlFeature_XML_WITH_SCHEMAS: xmlFeature = 25;
pub const xmlFeature_XML_WITH_SCHEMATRON: xmlFeature = 26;
pub const xmlFeature_XML_WITH_MODULES: xmlFeature = 27;
pub const xmlFeature_XML_WITH_DEBUG: xmlFeature = 28;
pub const xmlFeature_XML_WITH_DEBUG_MEM: xmlFeature = 29;
pub const xmlFeature_XML_WITH_DEBUG_RUN: xmlFeature = 30;
pub const xmlFeature_XML_WITH_ZLIB: xmlFeature = 31;
pub const xmlFeature_XML_WITH_ICU: xmlFeature = 32;
pub const xmlFeature_XML_WITH_LZMA: xmlFeature = 33;
pub const xmlFeature_XML_WITH_NONE: xmlFeature = 99_999;
/// xmlFeature:
///
/// Used to examine the existance of features that can be enabled
/// or disabled at compile-time.
/// They used to be called XML_FEATURE_xxx but this clashed with Expat
pub type xmlFeature = u32;
extern "C" {
  pub fn xmlHasFeature(feature: xmlFeature) -> ::std::os::raw::c_int;
}
pub type htmlParserCtxt = xmlParserCtxt;
pub type htmlParserCtxtPtr = xmlParserCtxtPtr;
pub type htmlParserNodeInfo = xmlParserNodeInfo;
pub type htmlSAXHandler = xmlSAXHandler;
pub type htmlSAXHandlerPtr = xmlSAXHandlerPtr;
pub type htmlParserInput = xmlParserInput;
pub type htmlParserInputPtr = xmlParserInputPtr;
pub type htmlDocPtr = xmlDocPtr;
pub type htmlNodePtr = xmlNodePtr;
pub type htmlElemDesc = _htmlElemDesc;
pub type htmlElemDescPtr = *mut htmlElemDesc;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _htmlElemDesc {
  pub name: *const ::std::os::raw::c_char,
  pub startTag: ::std::os::raw::c_char,
  pub endTag: ::std::os::raw::c_char,
  pub saveEndTag: ::std::os::raw::c_char,
  pub empty: ::std::os::raw::c_char,
  pub depr: ::std::os::raw::c_char,
  pub dtd: ::std::os::raw::c_char,
  pub isinline: ::std::os::raw::c_char,
  pub desc: *const ::std::os::raw::c_char,
  pub subelts: *mut *const ::std::os::raw::c_char,
  pub defaultsubelt: *const ::std::os::raw::c_char,
  pub attrs_opt: *mut *const ::std::os::raw::c_char,
  pub attrs_depr: *mut *const ::std::os::raw::c_char,
  pub attrs_req: *mut *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout__htmlElemDesc() {
  assert_eq!(
    ::std::mem::size_of::<_htmlElemDesc>(),
    64usize,
    concat!("Size of: ", stringify!(_htmlElemDesc))
  );
  assert_eq!(
    ::std::mem::align_of::<_htmlElemDesc>(),
    8usize,
    concat!("Alignment of ", stringify!(_htmlElemDesc))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_htmlElemDesc>())).name as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_htmlElemDesc),
  //     "::",
  //     stringify!(name)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_htmlElemDesc>())).startTag as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_htmlElemDesc),
  //     "::",
  //     stringify!(startTag)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_htmlElemDesc>())).endTag as *const _ as usize },
  //   9usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_htmlElemDesc),
  //     "::",
  //     stringify!(endTag)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_htmlElemDesc>())).saveEndTag as *const _ as usize },
  //   10usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_htmlElemDesc),
  //     "::",
  //     stringify!(saveEndTag)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_htmlElemDesc>())).empty as *const _ as usize },
  //   11usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_htmlElemDesc),
  //     "::",
  //     stringify!(empty)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_htmlElemDesc>())).depr as *const _ as usize },
  //   12usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_htmlElemDesc),
  //     "::",
  //     stringify!(depr)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_htmlElemDesc>())).dtd as *const _ as usize },
  //   13usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_htmlElemDesc),
  //     "::",
  //     stringify!(dtd)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_htmlElemDesc>())).isinline as *const _ as usize },
  //   14usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_htmlElemDesc),
  //     "::",
  //     stringify!(isinline)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_htmlElemDesc>())).desc as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_htmlElemDesc),
  //     "::",
  //     stringify!(desc)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_htmlElemDesc>())).subelts as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_htmlElemDesc),
  //     "::",
  //     stringify!(subelts)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_htmlElemDesc>())).defaultsubelt as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_htmlElemDesc),
  //     "::",
  //     stringify!(defaultsubelt)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_htmlElemDesc>())).attrs_opt as *const _ as usize },
  //   40usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_htmlElemDesc),
  //     "::",
  //     stringify!(attrs_opt)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_htmlElemDesc>())).attrs_depr as *const _ as usize },
  //   48usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_htmlElemDesc),
  //     "::",
  //     stringify!(attrs_depr)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_htmlElemDesc>())).attrs_req as *const _ as usize },
  //   56usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_htmlElemDesc),
  //     "::",
  //     stringify!(attrs_req)
  //   )
  // );
}
pub type htmlEntityDesc = _htmlEntityDesc;
pub type htmlEntityDescPtr = *mut htmlEntityDesc;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _htmlEntityDesc {
  pub value: ::std::os::raw::c_uint,
  pub name: *const ::std::os::raw::c_char,
  pub desc: *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout__htmlEntityDesc() {
  assert_eq!(
    ::std::mem::size_of::<_htmlEntityDesc>(),
    24usize,
    concat!("Size of: ", stringify!(_htmlEntityDesc))
  );
  assert_eq!(
    ::std::mem::align_of::<_htmlEntityDesc>(),
    8usize,
    concat!("Alignment of ", stringify!(_htmlEntityDesc))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_htmlEntityDesc>())).value as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_htmlEntityDesc),
  //     "::",
  //     stringify!(value)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_htmlEntityDesc>())).name as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_htmlEntityDesc),
  //     "::",
  //     stringify!(name)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_htmlEntityDesc>())).desc as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_htmlEntityDesc),
  //     "::",
  //     stringify!(desc)
  //   )
  // );
}
extern "C" {
  pub fn htmlTagLookup(tag: *const xmlChar) -> *const htmlElemDesc;
}
extern "C" {
  pub fn htmlEntityLookup(name: *const xmlChar) -> *const htmlEntityDesc;
}
extern "C" {
  pub fn htmlEntityValueLookup(value: ::std::os::raw::c_uint) -> *const htmlEntityDesc;
}
extern "C" {
  pub fn htmlIsAutoClosed(doc: htmlDocPtr, elem: htmlNodePtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn htmlAutoCloseTag(
    doc: htmlDocPtr,
    name: *const xmlChar,
    elem: htmlNodePtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn htmlParseEntityRef(
    ctxt: htmlParserCtxtPtr,
    str: *mut *const xmlChar,
  ) -> *const htmlEntityDesc;
}
extern "C" {
  pub fn htmlParseCharRef(ctxt: htmlParserCtxtPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn htmlParseElement(ctxt: htmlParserCtxtPtr);
}
extern "C" {
  pub fn htmlNewParserCtxt() -> htmlParserCtxtPtr;
}
extern "C" {
  pub fn htmlCreateMemoryParserCtxt(
    buffer: *const ::std::os::raw::c_char,
    size: ::std::os::raw::c_int,
  ) -> htmlParserCtxtPtr;
}
extern "C" {
  pub fn htmlParseDocument(ctxt: htmlParserCtxtPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn htmlSAXParseDoc(
    cur: *mut xmlChar,
    encoding: *const ::std::os::raw::c_char,
    sax: htmlSAXHandlerPtr,
    userData: *mut ::std::os::raw::c_void,
  ) -> htmlDocPtr;
}
extern "C" {
  pub fn htmlParseDoc(cur: *mut xmlChar, encoding: *const ::std::os::raw::c_char) -> htmlDocPtr;
}
extern "C" {
  pub fn htmlSAXParseFile(
    filename: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    sax: htmlSAXHandlerPtr,
    userData: *mut ::std::os::raw::c_void,
  ) -> htmlDocPtr;
}
extern "C" {
  pub fn htmlParseFile(
    filename: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
  ) -> htmlDocPtr;
}
extern "C" {
  pub fn UTF8ToHtml(
    out: *mut ::std::os::raw::c_uchar,
    outlen: *mut ::std::os::raw::c_int,
    in_: *const ::std::os::raw::c_uchar,
    inlen: *mut ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn htmlEncodeEntities(
    out: *mut ::std::os::raw::c_uchar,
    outlen: *mut ::std::os::raw::c_int,
    in_: *const ::std::os::raw::c_uchar,
    inlen: *mut ::std::os::raw::c_int,
    quoteChar: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn htmlIsScriptAttribute(name: *const xmlChar) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn htmlHandleOmittedElem(val: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  /// Interfaces for the Push mode.
  pub fn htmlCreatePushParserCtxt(
    sax: htmlSAXHandlerPtr,
    user_data: *mut ::std::os::raw::c_void,
    chunk: *const ::std::os::raw::c_char,
    size: ::std::os::raw::c_int,
    filename: *const ::std::os::raw::c_char,
    enc: xmlCharEncoding,
  ) -> htmlParserCtxtPtr;
}
extern "C" {
  pub fn htmlParseChunk(
    ctxt: htmlParserCtxtPtr,
    chunk: *const ::std::os::raw::c_char,
    size: ::std::os::raw::c_int,
    terminate: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn htmlFreeParserCtxt(ctxt: htmlParserCtxtPtr);
}
pub const htmlParserOption_HTML_PARSE_RECOVER: htmlParserOption = 1;
pub const htmlParserOption_HTML_PARSE_NODEFDTD: htmlParserOption = 4;
pub const htmlParserOption_HTML_PARSE_NOERROR: htmlParserOption = 32;
pub const htmlParserOption_HTML_PARSE_NOWARNING: htmlParserOption = 64;
pub const htmlParserOption_HTML_PARSE_PEDANTIC: htmlParserOption = 128;
pub const htmlParserOption_HTML_PARSE_NOBLANKS: htmlParserOption = 256;
pub const htmlParserOption_HTML_PARSE_NONET: htmlParserOption = 2_048;
pub const htmlParserOption_HTML_PARSE_NOIMPLIED: htmlParserOption = 8_192;
pub const htmlParserOption_HTML_PARSE_COMPACT: htmlParserOption = 65_536;
pub const htmlParserOption_HTML_PARSE_IGNORE_ENC: htmlParserOption = 2_097_152;
/// xmlParserOption:
///
/// This is the set of XML parser options that can be passed down
/// to the xmlReadDoc() and similar calls.
pub type htmlParserOption = u32;
extern "C" {
  pub fn htmlCtxtReset(ctxt: htmlParserCtxtPtr);
}
extern "C" {
  pub fn htmlCtxtUseOptions(
    ctxt: htmlParserCtxtPtr,
    options: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn htmlReadDoc(
    cur: *const xmlChar,
    URL: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> htmlDocPtr;
}
extern "C" {
  pub fn htmlReadFile(
    URL: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> htmlDocPtr;
}
extern "C" {
  pub fn htmlReadMemory(
    buffer: *const ::std::os::raw::c_char,
    size: ::std::os::raw::c_int,
    URL: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> htmlDocPtr;
}
extern "C" {
  pub fn htmlReadFd(
    fd: ::std::os::raw::c_int,
    URL: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> htmlDocPtr;
}
extern "C" {
  pub fn htmlReadIO(
    ioread: xmlInputReadCallback,
    ioclose: xmlInputCloseCallback,
    ioctx: *mut ::std::os::raw::c_void,
    URL: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> htmlDocPtr;
}
extern "C" {
  pub fn htmlCtxtReadDoc(
    ctxt: xmlParserCtxtPtr,
    cur: *const xmlChar,
    URL: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> htmlDocPtr;
}
extern "C" {
  pub fn htmlCtxtReadFile(
    ctxt: xmlParserCtxtPtr,
    filename: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> htmlDocPtr;
}
extern "C" {
  pub fn htmlCtxtReadMemory(
    ctxt: xmlParserCtxtPtr,
    buffer: *const ::std::os::raw::c_char,
    size: ::std::os::raw::c_int,
    URL: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> htmlDocPtr;
}
extern "C" {
  pub fn htmlCtxtReadFd(
    ctxt: xmlParserCtxtPtr,
    fd: ::std::os::raw::c_int,
    URL: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> htmlDocPtr;
}
extern "C" {
  pub fn htmlCtxtReadIO(
    ctxt: xmlParserCtxtPtr,
    ioread: xmlInputReadCallback,
    ioclose: xmlInputCloseCallback,
    ioctx: *mut ::std::os::raw::c_void,
    URL: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> htmlDocPtr;
}
pub const htmlStatus_HTML_NA: htmlStatus = 0;
pub const htmlStatus_HTML_INVALID: htmlStatus = 1;
pub const htmlStatus_HTML_DEPRECATED: htmlStatus = 2;
pub const htmlStatus_HTML_VALID: htmlStatus = 4;
pub const htmlStatus_HTML_REQUIRED: htmlStatus = 12;
pub type htmlStatus = u32;
extern "C" {
  pub fn htmlAttrAllowed(
    arg1: *const htmlElemDesc,
    arg2: *const xmlChar,
    arg3: ::std::os::raw::c_int,
  ) -> htmlStatus;
}
extern "C" {
  pub fn htmlElementAllowedHere(
    arg1: *const htmlElemDesc,
    arg2: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn htmlElementStatusHere(arg1: *const htmlElemDesc, arg2: *const htmlElemDesc) -> htmlStatus;
}
extern "C" {
  pub fn htmlNodeStatus(arg1: htmlNodePtr, arg2: ::std::os::raw::c_int) -> htmlStatus;
}
pub type xmlChSRange = _xmlChSRange;
pub type xmlChSRangePtr = *mut xmlChSRange;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlChSRange {
  pub low: ::std::os::raw::c_ushort,
  pub high: ::std::os::raw::c_ushort,
}
#[test]
fn bindgen_test_layout__xmlChSRange() {
  assert_eq!(
    ::std::mem::size_of::<_xmlChSRange>(),
    4usize,
    concat!("Size of: ", stringify!(_xmlChSRange))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlChSRange>(),
    2usize,
    concat!("Alignment of ", stringify!(_xmlChSRange))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlChSRange>())).low as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlChSRange),
  //     "::",
  //     stringify!(low)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlChSRange>())).high as *const _ as usize },
  //   2usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlChSRange),
  //     "::",
  //     stringify!(high)
  //   )
  // );
}
pub type xmlChLRange = _xmlChLRange;
pub type xmlChLRangePtr = *mut xmlChLRange;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlChLRange {
  pub low: ::std::os::raw::c_uint,
  pub high: ::std::os::raw::c_uint,
}
#[test]
fn bindgen_test_layout__xmlChLRange() {
  assert_eq!(
    ::std::mem::size_of::<_xmlChLRange>(),
    8usize,
    concat!("Size of: ", stringify!(_xmlChLRange))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlChLRange>(),
    4usize,
    concat!("Alignment of ", stringify!(_xmlChLRange))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlChLRange>())).low as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlChLRange),
  //     "::",
  //     stringify!(low)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlChLRange>())).high as *const _ as usize },
  //   4usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlChLRange),
  //     "::",
  //     stringify!(high)
  //   )
  // );
}
pub type xmlChRangeGroup = _xmlChRangeGroup;
pub type xmlChRangeGroupPtr = *mut xmlChRangeGroup;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlChRangeGroup {
  pub nbShortRange: ::std::os::raw::c_int,
  pub nbLongRange: ::std::os::raw::c_int,
  pub shortRange: *const xmlChSRange,
  pub longRange: *const xmlChLRange,
}
#[test]
fn bindgen_test_layout__xmlChRangeGroup() {
  assert_eq!(
    ::std::mem::size_of::<_xmlChRangeGroup>(),
    24usize,
    concat!("Size of: ", stringify!(_xmlChRangeGroup))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlChRangeGroup>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlChRangeGroup))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlChRangeGroup>())).nbShortRange as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlChRangeGroup),
  //     "::",
  //     stringify!(nbShortRange)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlChRangeGroup>())).nbLongRange as *const _ as usize },
  //   4usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlChRangeGroup),
  //     "::",
  //     stringify!(nbLongRange)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlChRangeGroup>())).shortRange as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlChRangeGroup),
  //     "::",
  //     stringify!(shortRange)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlChRangeGroup>())).longRange as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlChRangeGroup),
  //     "::",
  //     stringify!(longRange)
  //   )
  // );
}
extern "C" {
  /// Range checking routine
  pub fn xmlCharInRange(
    val: ::std::os::raw::c_uint,
    group: *const xmlChRangeGroup,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  #[link_name = "\u{1}xmlIsBaseCharGroup"]
  pub static mut xmlIsBaseCharGroup: xmlChRangeGroup;
}
extern "C" {
  #[link_name = "\u{1}xmlIsCharGroup"]
  pub static mut xmlIsCharGroup: xmlChRangeGroup;
}
extern "C" {
  #[link_name = "\u{1}xmlIsCombiningGroup"]
  pub static mut xmlIsCombiningGroup: xmlChRangeGroup;
}
extern "C" {
  #[link_name = "\u{1}xmlIsDigitGroup"]
  pub static mut xmlIsDigitGroup: xmlChRangeGroup;
}
extern "C" {
  #[link_name = "\u{1}xmlIsExtenderGroup"]
  pub static mut xmlIsExtenderGroup: xmlChRangeGroup;
}
extern "C" {
  #[link_name = "\u{1}xmlIsIdeographicGroup"]
  pub static mut xmlIsIdeographicGroup: xmlChRangeGroup;
}
extern "C" {
  #[link_name = "\u{1}xmlIsPubidChar_tab"]
  pub static mut xmlIsPubidChar_tab: [::std::os::raw::c_uchar; 256usize];
}
extern "C" {
  pub fn xmlIsBaseChar(ch: ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlIsBlank(ch: ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlIsChar(ch: ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlIsCombining(ch: ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlIsDigit(ch: ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlIsExtender(ch: ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlIsIdeographic(ch: ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlIsPubidChar(ch: ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
}
extern "C" {
  #[link_name = "\u{1}xmlParserMaxDepth"]
  pub static mut xmlParserMaxDepth: ::std::os::raw::c_uint;
}
extern "C" {
  #[link_name = "\u{1}xmlStringText"]
  pub static mut xmlStringText: [xmlChar; 0usize];
}
extern "C" {
  #[link_name = "\u{1}xmlStringTextNoenc"]
  pub static mut xmlStringTextNoenc: [xmlChar; 0usize];
}
extern "C" {
  #[link_name = "\u{1}xmlStringComment"]
  pub static mut xmlStringComment: [xmlChar; 0usize];
}
extern "C" {
  pub fn xmlIsLetter(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  /// Parser context.
  pub fn xmlCreateFileParserCtxt(filename: *const ::std::os::raw::c_char) -> xmlParserCtxtPtr;
}
extern "C" {
  pub fn xmlCreateURLParserCtxt(
    filename: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> xmlParserCtxtPtr;
}
extern "C" {
  pub fn xmlCreateMemoryParserCtxt(
    buffer: *const ::std::os::raw::c_char,
    size: ::std::os::raw::c_int,
  ) -> xmlParserCtxtPtr;
}
extern "C" {
  pub fn xmlCreateEntityParserCtxt(
    URL: *const xmlChar,
    ID: *const xmlChar,
    base: *const xmlChar,
  ) -> xmlParserCtxtPtr;
}
extern "C" {
  pub fn xmlSwitchEncoding(ctxt: xmlParserCtxtPtr, enc: xmlCharEncoding) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSwitchToEncoding(
    ctxt: xmlParserCtxtPtr,
    handler: xmlCharEncodingHandlerPtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSwitchInputEncoding(
    ctxt: xmlParserCtxtPtr,
    input: xmlParserInputPtr,
    handler: xmlCharEncodingHandlerPtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  /// Input Streams.
  pub fn xmlNewStringInputStream(
    ctxt: xmlParserCtxtPtr,
    buffer: *const xmlChar,
  ) -> xmlParserInputPtr;
}
extern "C" {
  pub fn xmlNewEntityInputStream(ctxt: xmlParserCtxtPtr, entity: xmlEntityPtr)
    -> xmlParserInputPtr;
}
extern "C" {
  pub fn xmlPushInput(ctxt: xmlParserCtxtPtr, input: xmlParserInputPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlPopInput(ctxt: xmlParserCtxtPtr) -> xmlChar;
}
extern "C" {
  pub fn xmlFreeInputStream(input: xmlParserInputPtr);
}
extern "C" {
  pub fn xmlNewInputFromFile(
    ctxt: xmlParserCtxtPtr,
    filename: *const ::std::os::raw::c_char,
  ) -> xmlParserInputPtr;
}
extern "C" {
  pub fn xmlNewInputStream(ctxt: xmlParserCtxtPtr) -> xmlParserInputPtr;
}
extern "C" {
  /// Namespaces.
  pub fn xmlSplitQName(
    ctxt: xmlParserCtxtPtr,
    name: *const xmlChar,
    prefix: *mut *mut xmlChar,
  ) -> *mut xmlChar;
}
extern "C" {
  /// Generic production rules.
  pub fn xmlParseName(ctxt: xmlParserCtxtPtr) -> *const xmlChar;
}
extern "C" {
  pub fn xmlParseNmtoken(ctxt: xmlParserCtxtPtr) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlParseEntityValue(ctxt: xmlParserCtxtPtr, orig: *mut *mut xmlChar) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlParseAttValue(ctxt: xmlParserCtxtPtr) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlParseSystemLiteral(ctxt: xmlParserCtxtPtr) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlParsePubidLiteral(ctxt: xmlParserCtxtPtr) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlParseCharData(ctxt: xmlParserCtxtPtr, cdata: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlParseExternalID(
    ctxt: xmlParserCtxtPtr,
    publicID: *mut *mut xmlChar,
    strict: ::std::os::raw::c_int,
  ) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlParseComment(ctxt: xmlParserCtxtPtr);
}
extern "C" {
  pub fn xmlParsePITarget(ctxt: xmlParserCtxtPtr) -> *const xmlChar;
}
extern "C" {
  pub fn xmlParsePI(ctxt: xmlParserCtxtPtr);
}
extern "C" {
  pub fn xmlParseNotationDecl(ctxt: xmlParserCtxtPtr);
}
extern "C" {
  pub fn xmlParseEntityDecl(ctxt: xmlParserCtxtPtr);
}
extern "C" {
  pub fn xmlParseDefaultDecl(
    ctxt: xmlParserCtxtPtr,
    value: *mut *mut xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlParseNotationType(ctxt: xmlParserCtxtPtr) -> xmlEnumerationPtr;
}
extern "C" {
  pub fn xmlParseEnumerationType(ctxt: xmlParserCtxtPtr) -> xmlEnumerationPtr;
}
extern "C" {
  pub fn xmlParseEnumeratedType(
    ctxt: xmlParserCtxtPtr,
    tree: *mut xmlEnumerationPtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlParseAttributeType(
    ctxt: xmlParserCtxtPtr,
    tree: *mut xmlEnumerationPtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlParseAttributeListDecl(ctxt: xmlParserCtxtPtr);
}
extern "C" {
  pub fn xmlParseElementMixedContentDecl(
    ctxt: xmlParserCtxtPtr,
    inputchk: ::std::os::raw::c_int,
  ) -> xmlElementContentPtr;
}
extern "C" {
  pub fn xmlParseElementChildrenContentDecl(
    ctxt: xmlParserCtxtPtr,
    inputchk: ::std::os::raw::c_int,
  ) -> xmlElementContentPtr;
}
extern "C" {
  pub fn xmlParseElementContentDecl(
    ctxt: xmlParserCtxtPtr,
    name: *const xmlChar,
    result: *mut xmlElementContentPtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlParseElementDecl(ctxt: xmlParserCtxtPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlParseMarkupDecl(ctxt: xmlParserCtxtPtr);
}
extern "C" {
  pub fn xmlParseCharRef(ctxt: xmlParserCtxtPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlParseEntityRef(ctxt: xmlParserCtxtPtr) -> xmlEntityPtr;
}
extern "C" {
  pub fn xmlParseReference(ctxt: xmlParserCtxtPtr);
}
extern "C" {
  pub fn xmlParsePEReference(ctxt: xmlParserCtxtPtr);
}
extern "C" {
  pub fn xmlParseDocTypeDecl(ctxt: xmlParserCtxtPtr);
}
extern "C" {
  pub fn xmlParseAttribute(ctxt: xmlParserCtxtPtr, value: *mut *mut xmlChar) -> *const xmlChar;
}
extern "C" {
  pub fn xmlParseStartTag(ctxt: xmlParserCtxtPtr) -> *const xmlChar;
}
extern "C" {
  pub fn xmlParseEndTag(ctxt: xmlParserCtxtPtr);
}
extern "C" {
  pub fn xmlParseCDSect(ctxt: xmlParserCtxtPtr);
}
extern "C" {
  pub fn xmlParseContent(ctxt: xmlParserCtxtPtr);
}
extern "C" {
  pub fn xmlParseElement(ctxt: xmlParserCtxtPtr);
}
extern "C" {
  pub fn xmlParseVersionNum(ctxt: xmlParserCtxtPtr) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlParseVersionInfo(ctxt: xmlParserCtxtPtr) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlParseEncName(ctxt: xmlParserCtxtPtr) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlParseEncodingDecl(ctxt: xmlParserCtxtPtr) -> *const xmlChar;
}
extern "C" {
  pub fn xmlParseSDDecl(ctxt: xmlParserCtxtPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlParseXMLDecl(ctxt: xmlParserCtxtPtr);
}
extern "C" {
  pub fn xmlParseTextDecl(ctxt: xmlParserCtxtPtr);
}
extern "C" {
  pub fn xmlParseMisc(ctxt: xmlParserCtxtPtr);
}
extern "C" {
  pub fn xmlParseExternalSubset(
    ctxt: xmlParserCtxtPtr,
    ExternalID: *const xmlChar,
    SystemID: *const xmlChar,
  );
}
extern "C" {
  pub fn xmlStringDecodeEntities(
    ctxt: xmlParserCtxtPtr,
    str: *const xmlChar,
    what: ::std::os::raw::c_int,
    end: xmlChar,
    end2: xmlChar,
    end3: xmlChar,
  ) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlStringLenDecodeEntities(
    ctxt: xmlParserCtxtPtr,
    str: *const xmlChar,
    len: ::std::os::raw::c_int,
    what: ::std::os::raw::c_int,
    end: xmlChar,
    end2: xmlChar,
    end3: xmlChar,
  ) -> *mut xmlChar;
}
extern "C" {
  pub fn nodePush(ctxt: xmlParserCtxtPtr, value: xmlNodePtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn nodePop(ctxt: xmlParserCtxtPtr) -> xmlNodePtr;
}
extern "C" {
  pub fn inputPush(ctxt: xmlParserCtxtPtr, value: xmlParserInputPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn inputPop(ctxt: xmlParserCtxtPtr) -> xmlParserInputPtr;
}
extern "C" {
  pub fn namePop(ctxt: xmlParserCtxtPtr) -> *const xmlChar;
}
extern "C" {
  pub fn namePush(ctxt: xmlParserCtxtPtr, value: *const xmlChar) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSkipBlankChars(ctxt: xmlParserCtxtPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlStringCurrentChar(
    ctxt: xmlParserCtxtPtr,
    cur: *const xmlChar,
    len: *mut ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlParserHandlePEReference(ctxt: xmlParserCtxtPtr);
}
extern "C" {
  pub fn xmlCheckLanguageID(lang: *const xmlChar) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlCurrentChar(
    ctxt: xmlParserCtxtPtr,
    len: *mut ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlCopyCharMultiByte(
    out: *mut xmlChar,
    val: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlCopyChar(
    len: ::std::os::raw::c_int,
    out: *mut xmlChar,
    val: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlNextChar(ctxt: xmlParserCtxtPtr);
}
extern "C" {
  pub fn xmlParserInputShrink(in_: xmlParserInputPtr);
}
extern "C" {
  pub fn htmlInitAutoClose();
}
extern "C" {
  pub fn htmlCreateFileParserCtxt(
    filename: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
  ) -> htmlParserCtxtPtr;
}
/// xmlEntityReferenceFunc:
/// @ent: the entity
/// @firstNode:  the fist node in the chunk
/// @lastNode:  the last nod in the chunk
///
/// Callback function used when one needs to be able to track back the
/// provenance of a chunk of nodes inherited from an entity replacement.
pub type xmlEntityReferenceFunc = ::std::option::Option<
  unsafe extern "C" fn(ent: xmlEntityPtr, firstNode: xmlNodePtr, lastNode: xmlNodePtr),
>;
extern "C" {
  pub fn xmlSetEntityReferenceFunc(func: xmlEntityReferenceFunc);
}
extern "C" {
  pub fn xmlParseQuotedString(ctxt: xmlParserCtxtPtr) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlParseNamespace(ctxt: xmlParserCtxtPtr);
}
extern "C" {
  pub fn xmlNamespaceParseNSDef(ctxt: xmlParserCtxtPtr) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlScanName(ctxt: xmlParserCtxtPtr) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlNamespaceParseNCName(ctxt: xmlParserCtxtPtr) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlParserHandleReference(ctxt: xmlParserCtxtPtr);
}
extern "C" {
  pub fn xmlNamespaceParseQName(ctxt: xmlParserCtxtPtr, prefix: *mut *mut xmlChar) -> *mut xmlChar;
}
extern "C" {
  /// Entities
  pub fn xmlDecodeEntities(
    ctxt: xmlParserCtxtPtr,
    len: ::std::os::raw::c_int,
    what: ::std::os::raw::c_int,
    end: xmlChar,
    end2: xmlChar,
    end3: xmlChar,
  ) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlHandleEntity(ctxt: xmlParserCtxtPtr, entity: xmlEntityPtr);
}
pub type docbParserCtxt = xmlParserCtxt;
pub type docbParserCtxtPtr = xmlParserCtxtPtr;
pub type docbSAXHandler = xmlSAXHandler;
pub type docbSAXHandlerPtr = xmlSAXHandlerPtr;
pub type docbParserInput = xmlParserInput;
pub type docbParserInputPtr = xmlParserInputPtr;
pub type docbDocPtr = xmlDocPtr;
extern "C" {
  pub fn docbEncodeEntities(
    out: *mut ::std::os::raw::c_uchar,
    outlen: *mut ::std::os::raw::c_int,
    in_: *const ::std::os::raw::c_uchar,
    inlen: *mut ::std::os::raw::c_int,
    quoteChar: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn docbSAXParseDoc(
    cur: *mut xmlChar,
    encoding: *const ::std::os::raw::c_char,
    sax: docbSAXHandlerPtr,
    userData: *mut ::std::os::raw::c_void,
  ) -> docbDocPtr;
}
extern "C" {
  pub fn docbParseDoc(cur: *mut xmlChar, encoding: *const ::std::os::raw::c_char) -> docbDocPtr;
}
extern "C" {
  pub fn docbSAXParseFile(
    filename: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    sax: docbSAXHandlerPtr,
    userData: *mut ::std::os::raw::c_void,
  ) -> docbDocPtr;
}
extern "C" {
  pub fn docbParseFile(
    filename: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
  ) -> docbDocPtr;
}
extern "C" {
  /// Interfaces for the Push mode.
  pub fn docbFreeParserCtxt(ctxt: docbParserCtxtPtr);
}
extern "C" {
  pub fn docbCreatePushParserCtxt(
    sax: docbSAXHandlerPtr,
    user_data: *mut ::std::os::raw::c_void,
    chunk: *const ::std::os::raw::c_char,
    size: ::std::os::raw::c_int,
    filename: *const ::std::os::raw::c_char,
    enc: xmlCharEncoding,
  ) -> docbParserCtxtPtr;
}
extern "C" {
  pub fn docbParseChunk(
    ctxt: docbParserCtxtPtr,
    chunk: *const ::std::os::raw::c_char,
    size: ::std::os::raw::c_int,
    terminate: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn docbCreateFileParserCtxt(
    filename: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
  ) -> docbParserCtxtPtr;
}
extern "C" {
  pub fn docbParseDocument(ctxt: docbParserCtxtPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn htmlNewDoc(URI: *const xmlChar, ExternalID: *const xmlChar) -> htmlDocPtr;
}
extern "C" {
  pub fn htmlNewDocNoDtD(URI: *const xmlChar, ExternalID: *const xmlChar) -> htmlDocPtr;
}
extern "C" {
  pub fn htmlGetMetaEncoding(doc: htmlDocPtr) -> *const xmlChar;
}
extern "C" {
  pub fn htmlSetMetaEncoding(doc: htmlDocPtr, encoding: *const xmlChar) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn htmlDocDumpMemory(
    cur: xmlDocPtr,
    mem: *mut *mut xmlChar,
    size: *mut ::std::os::raw::c_int,
  );
}
extern "C" {
  pub fn htmlDocDumpMemoryFormat(
    cur: xmlDocPtr,
    mem: *mut *mut xmlChar,
    size: *mut ::std::os::raw::c_int,
    format: ::std::os::raw::c_int,
  );
}
extern "C" {
  pub fn htmlDocDump(f: *mut FILE, cur: xmlDocPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn htmlSaveFile(
    filename: *const ::std::os::raw::c_char,
    cur: xmlDocPtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn htmlNodeDump(buf: xmlBufferPtr, doc: xmlDocPtr, cur: xmlNodePtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn htmlNodeDumpFile(out: *mut FILE, doc: xmlDocPtr, cur: xmlNodePtr);
}
extern "C" {
  pub fn htmlNodeDumpFileFormat(
    out: *mut FILE,
    doc: xmlDocPtr,
    cur: xmlNodePtr,
    encoding: *const ::std::os::raw::c_char,
    format: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn htmlSaveFileEnc(
    filename: *const ::std::os::raw::c_char,
    cur: xmlDocPtr,
    encoding: *const ::std::os::raw::c_char,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn htmlSaveFileFormat(
    filename: *const ::std::os::raw::c_char,
    cur: xmlDocPtr,
    encoding: *const ::std::os::raw::c_char,
    format: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn htmlNodeDumpFormatOutput(
    buf: xmlOutputBufferPtr,
    doc: xmlDocPtr,
    cur: xmlNodePtr,
    encoding: *const ::std::os::raw::c_char,
    format: ::std::os::raw::c_int,
  );
}
extern "C" {
  pub fn htmlDocContentDumpOutput(
    buf: xmlOutputBufferPtr,
    cur: xmlDocPtr,
    encoding: *const ::std::os::raw::c_char,
  );
}
extern "C" {
  pub fn htmlDocContentDumpFormatOutput(
    buf: xmlOutputBufferPtr,
    cur: xmlDocPtr,
    encoding: *const ::std::os::raw::c_char,
    format: ::std::os::raw::c_int,
  );
}
extern "C" {
  pub fn htmlNodeDumpOutput(
    buf: xmlOutputBufferPtr,
    doc: xmlDocPtr,
    cur: xmlNodePtr,
    encoding: *const ::std::os::raw::c_char,
  );
}
extern "C" {
  pub fn htmlIsBooleanAttr(name: *const xmlChar) -> ::std::os::raw::c_int;
}
pub type xmlXPathContext = _xmlXPathContext;
pub type xmlXPathContextPtr = *mut xmlXPathContext;
pub type xmlXPathParserContext = _xmlXPathParserContext;
pub type xmlXPathParserContextPtr = *mut xmlXPathParserContext;
pub const xmlXPathError_XPATH_EXPRESSION_OK: xmlXPathError = 0;
pub const xmlXPathError_XPATH_NUMBER_ERROR: xmlXPathError = 1;
pub const xmlXPathError_XPATH_UNFINISHED_LITERAL_ERROR: xmlXPathError = 2;
pub const xmlXPathError_XPATH_START_LITERAL_ERROR: xmlXPathError = 3;
pub const xmlXPathError_XPATH_VARIABLE_REF_ERROR: xmlXPathError = 4;
pub const xmlXPathError_XPATH_UNDEF_VARIABLE_ERROR: xmlXPathError = 5;
pub const xmlXPathError_XPATH_INVALID_PREDICATE_ERROR: xmlXPathError = 6;
pub const xmlXPathError_XPATH_EXPR_ERROR: xmlXPathError = 7;
pub const xmlXPathError_XPATH_UNCLOSED_ERROR: xmlXPathError = 8;
pub const xmlXPathError_XPATH_UNKNOWN_FUNC_ERROR: xmlXPathError = 9;
pub const xmlXPathError_XPATH_INVALID_OPERAND: xmlXPathError = 10;
pub const xmlXPathError_XPATH_INVALID_TYPE: xmlXPathError = 11;
pub const xmlXPathError_XPATH_INVALID_ARITY: xmlXPathError = 12;
pub const xmlXPathError_XPATH_INVALID_CTXT_SIZE: xmlXPathError = 13;
pub const xmlXPathError_XPATH_INVALID_CTXT_POSITION: xmlXPathError = 14;
pub const xmlXPathError_XPATH_MEMORY_ERROR: xmlXPathError = 15;
pub const xmlXPathError_XPTR_SYNTAX_ERROR: xmlXPathError = 16;
pub const xmlXPathError_XPTR_RESOURCE_ERROR: xmlXPathError = 17;
pub const xmlXPathError_XPTR_SUB_RESOURCE_ERROR: xmlXPathError = 18;
pub const xmlXPathError_XPATH_UNDEF_PREFIX_ERROR: xmlXPathError = 19;
pub const xmlXPathError_XPATH_ENCODING_ERROR: xmlXPathError = 20;
pub const xmlXPathError_XPATH_INVALID_CHAR_ERROR: xmlXPathError = 21;
pub const xmlXPathError_XPATH_INVALID_CTXT: xmlXPathError = 22;
pub const xmlXPathError_XPATH_STACK_ERROR: xmlXPathError = 23;
pub const xmlXPathError_XPATH_FORBID_VARIABLE_ERROR: xmlXPathError = 24;
/// The set of XPath error codes.
pub type xmlXPathError = u32;
pub type xmlNodeSet = _xmlNodeSet;
pub type xmlNodeSetPtr = *mut xmlNodeSet;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlNodeSet {
  pub nodeNr: ::std::os::raw::c_int,
  pub nodeMax: ::std::os::raw::c_int,
  pub nodeTab: *mut xmlNodePtr,
}
#[test]
fn bindgen_test_layout__xmlNodeSet() {
  assert_eq!(
    ::std::mem::size_of::<_xmlNodeSet>(),
    16usize,
    concat!("Size of: ", stringify!(_xmlNodeSet))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlNodeSet>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlNodeSet))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlNodeSet>())).nodeNr as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlNodeSet),
  //     "::",
  //     stringify!(nodeNr)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlNodeSet>())).nodeMax as *const _ as usize },
  //   4usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlNodeSet),
  //     "::",
  //     stringify!(nodeMax)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlNodeSet>())).nodeTab as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlNodeSet),
  //     "::",
  //     stringify!(nodeTab)
  //   )
  // );
}
pub const xmlXPathObjectType_XPATH_UNDEFINED: xmlXPathObjectType = 0;
pub const xmlXPathObjectType_XPATH_NODESET: xmlXPathObjectType = 1;
pub const xmlXPathObjectType_XPATH_BOOLEAN: xmlXPathObjectType = 2;
pub const xmlXPathObjectType_XPATH_NUMBER: xmlXPathObjectType = 3;
pub const xmlXPathObjectType_XPATH_STRING: xmlXPathObjectType = 4;
pub const xmlXPathObjectType_XPATH_POINT: xmlXPathObjectType = 5;
pub const xmlXPathObjectType_XPATH_RANGE: xmlXPathObjectType = 6;
pub const xmlXPathObjectType_XPATH_LOCATIONSET: xmlXPathObjectType = 7;
pub const xmlXPathObjectType_XPATH_USERS: xmlXPathObjectType = 8;
pub const xmlXPathObjectType_XPATH_XSLT_TREE: xmlXPathObjectType = 9;
pub type xmlXPathObjectType = u32;
pub type xmlXPathObject = _xmlXPathObject;
pub type xmlXPathObjectPtr = *mut xmlXPathObject;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlXPathObject {
  pub type_: xmlXPathObjectType,
  pub nodesetval: xmlNodeSetPtr,
  pub boolval: ::std::os::raw::c_int,
  pub floatval: f64,
  pub stringval: *mut xmlChar,
  pub user: *mut ::std::os::raw::c_void,
  pub index: ::std::os::raw::c_int,
  pub user2: *mut ::std::os::raw::c_void,
  pub index2: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout__xmlXPathObject() {
  assert_eq!(
    ::std::mem::size_of::<_xmlXPathObject>(),
    72usize,
    concat!("Size of: ", stringify!(_xmlXPathObject))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlXPathObject>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlXPathObject))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathObject>())).type_ as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathObject),
  //     "::",
  //     stringify!(type_)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathObject>())).nodesetval as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathObject),
  //     "::",
  //     stringify!(nodesetval)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathObject>())).boolval as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathObject),
  //     "::",
  //     stringify!(boolval)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathObject>())).floatval as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathObject),
  //     "::",
  //     stringify!(floatval)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathObject>())).stringval as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathObject),
  //     "::",
  //     stringify!(stringval)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathObject>())).user as *const _ as usize },
  //   40usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathObject),
  //     "::",
  //     stringify!(user)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathObject>())).index as *const _ as usize },
  //   48usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathObject),
  //     "::",
  //     stringify!(index)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathObject>())).user2 as *const _ as usize },
  //   56usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathObject),
  //     "::",
  //     stringify!(user2)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathObject>())).index2 as *const _ as usize },
  //   64usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathObject),
  //     "::",
  //     stringify!(index2)
  //   )
  // );
}
/// xmlXPathConvertFunc:
/// @obj:  an XPath object
/// @type:  the number of the target type
///
/// A conversion function is associated to a type and used to cast
/// the new type to primitive values.
///
/// Returns -1 in case of error, 0 otherwise
pub type xmlXPathConvertFunc = ::std::option::Option<
  unsafe extern "C" fn(
    obj: xmlXPathObjectPtr,
    type_: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int,
>;
pub type xmlXPathType = _xmlXPathType;
pub type xmlXPathTypePtr = *mut xmlXPathType;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlXPathType {
  pub name: *const xmlChar,
  pub func: xmlXPathConvertFunc,
}
#[test]
fn bindgen_test_layout__xmlXPathType() {
  assert_eq!(
    ::std::mem::size_of::<_xmlXPathType>(),
    16usize,
    concat!("Size of: ", stringify!(_xmlXPathType))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlXPathType>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlXPathType))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathType>())).name as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathType),
  //     "::",
  //     stringify!(name)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathType>())).func as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathType),
  //     "::",
  //     stringify!(func)
  //   )
  // );
}
pub type xmlXPathVariable = _xmlXPathVariable;
pub type xmlXPathVariablePtr = *mut xmlXPathVariable;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlXPathVariable {
  pub name: *const xmlChar,
  pub value: xmlXPathObjectPtr,
}
#[test]
fn bindgen_test_layout__xmlXPathVariable() {
  assert_eq!(
    ::std::mem::size_of::<_xmlXPathVariable>(),
    16usize,
    concat!("Size of: ", stringify!(_xmlXPathVariable))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlXPathVariable>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlXPathVariable))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathVariable>())).name as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathVariable),
  //     "::",
  //     stringify!(name)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathVariable>())).value as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathVariable),
  //     "::",
  //     stringify!(value)
  //   )
  // );
}
/// xmlXPathEvalFunc:
/// @ctxt: an XPath parser context
/// @nargs: the number of arguments passed to the function
///
/// An XPath evaluation function, the parameters are on the XPath context stack.
pub type xmlXPathEvalFunc = ::std::option::Option<
  unsafe extern "C" fn(ctxt: xmlXPathParserContextPtr, nargs: ::std::os::raw::c_int),
>;
pub type xmlXPathFunct = _xmlXPathFunct;
pub type xmlXPathFuncPtr = *mut xmlXPathFunct;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlXPathFunct {
  pub name: *const xmlChar,
  pub func: xmlXPathEvalFunc,
}
#[test]
fn bindgen_test_layout__xmlXPathFunct() {
  assert_eq!(
    ::std::mem::size_of::<_xmlXPathFunct>(),
    16usize,
    concat!("Size of: ", stringify!(_xmlXPathFunct))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlXPathFunct>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlXPathFunct))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathFunct>())).name as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathFunct),
  //     "::",
  //     stringify!(name)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathFunct>())).func as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathFunct),
  //     "::",
  //     stringify!(func)
  //   )
  // );
}
/// xmlXPathAxisFunc:
/// @ctxt:  the XPath interpreter context
/// @cur:  the previous node being explored on that axis
///
/// An axis traversal function. To traverse an axis, the engine calls
/// the first time with cur == NULL and repeat until the function returns
/// NULL indicating the end of the axis traversal.
///
/// Returns the next node in that axis or NULL if at the end of the axis.
pub type xmlXPathAxisFunc = ::std::option::Option<
  unsafe extern "C" fn(ctxt: xmlXPathParserContextPtr, cur: xmlXPathObjectPtr) -> xmlXPathObjectPtr,
>;
pub type xmlXPathAxis = _xmlXPathAxis;
pub type xmlXPathAxisPtr = *mut xmlXPathAxis;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlXPathAxis {
  pub name: *const xmlChar,
  pub func: xmlXPathAxisFunc,
}
#[test]
fn bindgen_test_layout__xmlXPathAxis() {
  assert_eq!(
    ::std::mem::size_of::<_xmlXPathAxis>(),
    16usize,
    concat!("Size of: ", stringify!(_xmlXPathAxis))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlXPathAxis>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlXPathAxis))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathAxis>())).name as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathAxis),
  //     "::",
  //     stringify!(name)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathAxis>())).func as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathAxis),
  //     "::",
  //     stringify!(func)
  //   )
  // );
}
/// xmlXPathFunction:
/// @ctxt:  the XPath interprestation context
/// @nargs:  the number of arguments
///
/// An XPath function.
/// The arguments (if any) are popped out from the context stack
/// and the result is pushed on the stack.
pub type xmlXPathFunction = ::std::option::Option<
  unsafe extern "C" fn(ctxt: xmlXPathParserContextPtr, nargs: ::std::os::raw::c_int),
>;
/// xmlXPathVariableLookupFunc:
/// @ctxt:  an XPath context
/// @name:  name of the variable
/// @ns_uri:  the namespace name hosting this variable
///
/// Prototype for callbacks used to plug variable lookup in the XPath
/// engine.
///
/// Returns the XPath object value or NULL if not found.
pub type xmlXPathVariableLookupFunc = ::std::option::Option<
  unsafe extern "C" fn(
    ctxt: *mut ::std::os::raw::c_void,
    name: *const xmlChar,
    ns_uri: *const xmlChar,
  ) -> xmlXPathObjectPtr,
>;
/// xmlXPathFuncLookupFunc:
/// @ctxt:  an XPath context
/// @name:  name of the function
/// @ns_uri:  the namespace name hosting this function
///
/// Prototype for callbacks used to plug function lookup in the XPath
/// engine.
///
/// Returns the XPath function or NULL if not found.
pub type xmlXPathFuncLookupFunc = ::std::option::Option<
  unsafe extern "C" fn(
    ctxt: *mut ::std::os::raw::c_void,
    name: *const xmlChar,
    ns_uri: *const xmlChar,
  ) -> xmlXPathFunction,
>;
/// xmlXPathContext:
///
/// Expression evaluation occurs with respect to a context.
/// he context consists of:
/// - a node (the context node)
/// - a node list (the context node list)
/// - a set of variable bindings
/// - a function library
/// - the set of namespace declarations in scope for the expression
/// Following the switch to hash tables, this need to be trimmed up at
/// the next binary incompatible release.
/// The node may be modified when the context is passed to libxml2
/// for an XPath evaluation so you may need to initialize it again
/// before the next call.
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlXPathContext {
  pub doc: xmlDocPtr,
  pub node: xmlNodePtr,
  pub nb_variables_unused: ::std::os::raw::c_int,
  pub max_variables_unused: ::std::os::raw::c_int,
  pub varHash: xmlHashTablePtr,
  pub nb_types: ::std::os::raw::c_int,
  pub max_types: ::std::os::raw::c_int,
  pub types: xmlXPathTypePtr,
  pub nb_funcs_unused: ::std::os::raw::c_int,
  pub max_funcs_unused: ::std::os::raw::c_int,
  pub funcHash: xmlHashTablePtr,
  pub nb_axis: ::std::os::raw::c_int,
  pub max_axis: ::std::os::raw::c_int,
  pub axis: xmlXPathAxisPtr,
  pub namespaces: *mut xmlNsPtr,
  pub nsNr: ::std::os::raw::c_int,
  pub user: *mut ::std::os::raw::c_void,
  pub contextSize: ::std::os::raw::c_int,
  pub proximityPosition: ::std::os::raw::c_int,
  pub xptr: ::std::os::raw::c_int,
  pub here: xmlNodePtr,
  pub origin: xmlNodePtr,
  pub nsHash: xmlHashTablePtr,
  pub varLookupFunc: xmlXPathVariableLookupFunc,
  pub varLookupData: *mut ::std::os::raw::c_void,
  pub extra: *mut ::std::os::raw::c_void,
  pub function: *const xmlChar,
  pub functionURI: *const xmlChar,
  pub funcLookupFunc: xmlXPathFuncLookupFunc,
  pub funcLookupData: *mut ::std::os::raw::c_void,
  pub tmpNsList: *mut xmlNsPtr,
  pub tmpNsNr: ::std::os::raw::c_int,
  pub userData: *mut ::std::os::raw::c_void,
  pub error: xmlStructuredErrorFunc,
  pub lastError: xmlError,
  pub debugNode: xmlNodePtr,
  pub dict: xmlDictPtr,
  pub flags: ::std::os::raw::c_int,
  pub cache: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout__xmlXPathContext() {
  assert_eq!(
    ::std::mem::size_of::<_xmlXPathContext>(),
    352usize,
    concat!("Size of: ", stringify!(_xmlXPathContext))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlXPathContext>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlXPathContext))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).doc as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(doc)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).node as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(node)
  //   )
  // );
  // assert_eq!(
  //   unsafe {
  //     &(*(::std::ptr::null::<_xmlXPathContext>())).nb_variables_unused as *const _ as usize
  //   },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(nb_variables_unused)
  //   )
  // );
  // assert_eq!(
  //   unsafe {
  //     &(*(::std::ptr::null::<_xmlXPathContext>())).max_variables_unused as *const _ as usize
  //   },
  //   20usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(max_variables_unused)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).varHash as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(varHash)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).nb_types as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(nb_types)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).max_types as *const _ as usize },
  //   36usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(max_types)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).types as *const _ as usize },
  //   40usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(types)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).nb_funcs_unused as *const _ as usize },
  //   48usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(nb_funcs_unused)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).max_funcs_unused as *const _ as usize },
  //   52usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(max_funcs_unused)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).funcHash as *const _ as usize },
  //   56usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(funcHash)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).nb_axis as *const _ as usize },
  //   64usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(nb_axis)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).max_axis as *const _ as usize },
  //   68usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(max_axis)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).axis as *const _ as usize },
  //   72usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(axis)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).namespaces as *const _ as usize },
  //   80usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(namespaces)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).nsNr as *const _ as usize },
  //   88usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(nsNr)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).user as *const _ as usize },
  //   96usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(user)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).contextSize as *const _ as usize },
  //   104usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(contextSize)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).proximityPosition as *const _ as usize },
  //   108usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(proximityPosition)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).xptr as *const _ as usize },
  //   112usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(xptr)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).here as *const _ as usize },
  //   120usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(here)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).origin as *const _ as usize },
  //   128usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(origin)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).nsHash as *const _ as usize },
  //   136usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(nsHash)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).varLookupFunc as *const _ as usize },
  //   144usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(varLookupFunc)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).varLookupData as *const _ as usize },
  //   152usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(varLookupData)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).extra as *const _ as usize },
  //   160usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(extra)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).function as *const _ as usize },
  //   168usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(function)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).functionURI as *const _ as usize },
  //   176usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(functionURI)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).funcLookupFunc as *const _ as usize },
  //   184usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(funcLookupFunc)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).funcLookupData as *const _ as usize },
  //   192usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(funcLookupData)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).tmpNsList as *const _ as usize },
  //   200usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(tmpNsList)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).tmpNsNr as *const _ as usize },
  //   208usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(tmpNsNr)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).userData as *const _ as usize },
  //   216usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(userData)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).error as *const _ as usize },
  //   224usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(error)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).lastError as *const _ as usize },
  //   232usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(lastError)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).debugNode as *const _ as usize },
  //   320usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(debugNode)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).dict as *const _ as usize },
  //   328usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(dict)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).flags as *const _ as usize },
  //   336usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(flags)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathContext>())).cache as *const _ as usize },
  //   344usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathContext),
  //     "::",
  //     stringify!(cache)
  //   )
  // );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlXPathCompExpr {
  _unused: [u8; 0],
}
pub type xmlXPathCompExpr = _xmlXPathCompExpr;
pub type xmlXPathCompExprPtr = *mut xmlXPathCompExpr;
/// xmlXPathParserContext:
///
/// An XPath parser context. It contains pure parsing informations,
/// an xmlXPathContext, and the stack of objects.
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlXPathParserContext {
  pub cur: *const xmlChar,
  pub base: *const xmlChar,
  pub error: ::std::os::raw::c_int,
  pub context: xmlXPathContextPtr,
  pub value: xmlXPathObjectPtr,
  pub valueNr: ::std::os::raw::c_int,
  pub valueMax: ::std::os::raw::c_int,
  pub valueTab: *mut xmlXPathObjectPtr,
  pub comp: xmlXPathCompExprPtr,
  pub xptr: ::std::os::raw::c_int,
  pub ancestor: xmlNodePtr,
  pub valueFrame: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout__xmlXPathParserContext() {
  assert_eq!(
    ::std::mem::size_of::<_xmlXPathParserContext>(),
    88usize,
    concat!("Size of: ", stringify!(_xmlXPathParserContext))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlXPathParserContext>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlXPathParserContext))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathParserContext>())).cur as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathParserContext),
  //     "::",
  //     stringify!(cur)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathParserContext>())).base as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathParserContext),
  //     "::",
  //     stringify!(base)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathParserContext>())).error as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathParserContext),
  //     "::",
  //     stringify!(error)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathParserContext>())).context as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathParserContext),
  //     "::",
  //     stringify!(context)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathParserContext>())).value as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathParserContext),
  //     "::",
  //     stringify!(value)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathParserContext>())).valueNr as *const _ as usize },
  //   40usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathParserContext),
  //     "::",
  //     stringify!(valueNr)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathParserContext>())).valueMax as *const _ as usize },
  //   44usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathParserContext),
  //     "::",
  //     stringify!(valueMax)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathParserContext>())).valueTab as *const _ as usize },
  //   48usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathParserContext),
  //     "::",
  //     stringify!(valueTab)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathParserContext>())).comp as *const _ as usize },
  //   56usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathParserContext),
  //     "::",
  //     stringify!(comp)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathParserContext>())).xptr as *const _ as usize },
  //   64usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathParserContext),
  //     "::",
  //     stringify!(xptr)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathParserContext>())).ancestor as *const _ as usize },
  //   72usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathParserContext),
  //     "::",
  //     stringify!(ancestor)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlXPathParserContext>())).valueFrame as *const _ as usize },
  //   80usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlXPathParserContext),
  //     "::",
  //     stringify!(valueFrame)
  //   )
  // );
}
extern "C" {
  #[link_name = "\u{1}xmlXPathNAN"]
  pub static mut xmlXPathNAN: f64;
}
extern "C" {
  #[link_name = "\u{1}xmlXPathPINF"]
  pub static mut xmlXPathPINF: f64;
}
extern "C" {
  #[link_name = "\u{1}xmlXPathNINF"]
  pub static mut xmlXPathNINF: f64;
}
extern "C" {
  pub fn xmlXPathFreeObject(obj: xmlXPathObjectPtr);
}
extern "C" {
  pub fn xmlXPathNodeSetCreate(val: xmlNodePtr) -> xmlNodeSetPtr;
}
extern "C" {
  pub fn xmlXPathFreeNodeSetList(obj: xmlXPathObjectPtr);
}
extern "C" {
  pub fn xmlXPathFreeNodeSet(obj: xmlNodeSetPtr);
}
extern "C" {
  pub fn xmlXPathObjectCopy(val: xmlXPathObjectPtr) -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn xmlXPathCmpNodes(node1: xmlNodePtr, node2: xmlNodePtr) -> ::std::os::raw::c_int;
}
extern "C" {
  /// Conversion functions to basic types.
  pub fn xmlXPathCastNumberToBoolean(val: f64) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXPathCastStringToBoolean(val: *const xmlChar) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXPathCastNodeSetToBoolean(ns: xmlNodeSetPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXPathCastToBoolean(val: xmlXPathObjectPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXPathCastBooleanToNumber(val: ::std::os::raw::c_int) -> f64;
}
extern "C" {
  pub fn xmlXPathCastStringToNumber(val: *const xmlChar) -> f64;
}
extern "C" {
  pub fn xmlXPathCastNodeToNumber(node: xmlNodePtr) -> f64;
}
extern "C" {
  pub fn xmlXPathCastNodeSetToNumber(ns: xmlNodeSetPtr) -> f64;
}
extern "C" {
  pub fn xmlXPathCastToNumber(val: xmlXPathObjectPtr) -> f64;
}
extern "C" {
  pub fn xmlXPathCastBooleanToString(val: ::std::os::raw::c_int) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlXPathCastNumberToString(val: f64) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlXPathCastNodeToString(node: xmlNodePtr) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlXPathCastNodeSetToString(ns: xmlNodeSetPtr) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlXPathCastToString(val: xmlXPathObjectPtr) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlXPathConvertBoolean(val: xmlXPathObjectPtr) -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn xmlXPathConvertNumber(val: xmlXPathObjectPtr) -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn xmlXPathConvertString(val: xmlXPathObjectPtr) -> xmlXPathObjectPtr;
}
extern "C" {
  /// Context handling.
  pub fn xmlXPathNewContext(doc: xmlDocPtr) -> xmlXPathContextPtr;
}
extern "C" {
  pub fn xmlXPathFreeContext(ctxt: xmlXPathContextPtr);
}
extern "C" {
  pub fn xmlXPathContextSetCache(
    ctxt: xmlXPathContextPtr,
    active: ::std::os::raw::c_int,
    value: ::std::os::raw::c_int,
    options: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  /// Evaluation functions.
  pub fn xmlXPathOrderDocElems(doc: xmlDocPtr) -> ::std::os::raw::c_long;
}
extern "C" {
  pub fn xmlXPathSetContextNode(node: xmlNodePtr, ctx: xmlXPathContextPtr)
    -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXPathNodeEval(
    node: xmlNodePtr,
    str: *const xmlChar,
    ctx: xmlXPathContextPtr,
  ) -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn xmlXPathEval(str: *const xmlChar, ctx: xmlXPathContextPtr) -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn xmlXPathEvalExpression(str: *const xmlChar, ctxt: xmlXPathContextPtr)
    -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn xmlXPathEvalPredicate(
    ctxt: xmlXPathContextPtr,
    res: xmlXPathObjectPtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  /// Separate compilation/evaluation entry points.
  pub fn xmlXPathCompile(str: *const xmlChar) -> xmlXPathCompExprPtr;
}
extern "C" {
  pub fn xmlXPathCtxtCompile(ctxt: xmlXPathContextPtr, str: *const xmlChar) -> xmlXPathCompExprPtr;
}
extern "C" {
  pub fn xmlXPathCompiledEval(
    comp: xmlXPathCompExprPtr,
    ctx: xmlXPathContextPtr,
  ) -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn xmlXPathCompiledEvalToBoolean(
    comp: xmlXPathCompExprPtr,
    ctxt: xmlXPathContextPtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXPathFreeCompExpr(comp: xmlXPathCompExprPtr);
}
extern "C" {
  pub fn xmlXPathInit();
}
extern "C" {
  pub fn xmlXPathIsNaN(val: f64) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXPathIsInf(val: f64) -> ::std::os::raw::c_int;
}
pub const xmlC14NMode_XML_C14N_1_0: xmlC14NMode = 0;
pub const xmlC14NMode_XML_C14N_EXCLUSIVE_1_0: xmlC14NMode = 1;
pub const xmlC14NMode_XML_C14N_1_1: xmlC14NMode = 2;
pub type xmlC14NMode = u32;
extern "C" {
  pub fn xmlC14NDocSaveTo(
    doc: xmlDocPtr,
    nodes: xmlNodeSetPtr,
    mode: ::std::os::raw::c_int,
    inclusive_ns_prefixes: *mut *mut xmlChar,
    with_comments: ::std::os::raw::c_int,
    buf: xmlOutputBufferPtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlC14NDocDumpMemory(
    doc: xmlDocPtr,
    nodes: xmlNodeSetPtr,
    mode: ::std::os::raw::c_int,
    inclusive_ns_prefixes: *mut *mut xmlChar,
    with_comments: ::std::os::raw::c_int,
    doc_txt_ptr: *mut *mut xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlC14NDocSave(
    doc: xmlDocPtr,
    nodes: xmlNodeSetPtr,
    mode: ::std::os::raw::c_int,
    inclusive_ns_prefixes: *mut *mut xmlChar,
    with_comments: ::std::os::raw::c_int,
    filename: *const ::std::os::raw::c_char,
    compression: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
/// This is the core C14N function
/// /
/// /**
/// xmlC14NIsVisibleCallback:
/// @user_data: user data
/// @node: the curent node
/// @parent: the parent node
///
/// Signature for a C14N callback on visible nodes
///
/// Returns 1 if the node should be included
pub type xmlC14NIsVisibleCallback = ::std::option::Option<
  unsafe extern "C" fn(
    user_data: *mut ::std::os::raw::c_void,
    node: xmlNodePtr,
    parent: xmlNodePtr,
  ) -> ::std::os::raw::c_int,
>;
extern "C" {
  pub fn xmlC14NExecute(
    doc: xmlDocPtr,
    is_visible_callback: xmlC14NIsVisibleCallback,
    user_data: *mut ::std::os::raw::c_void,
    mode: ::std::os::raw::c_int,
    inclusive_ns_prefixes: *mut *mut xmlChar,
    with_comments: ::std::os::raw::c_int,
    buf: xmlOutputBufferPtr,
  ) -> ::std::os::raw::c_int;
}
pub const xmlCatalogPrefer_XML_CATA_PREFER_NONE: xmlCatalogPrefer = 0;
pub const xmlCatalogPrefer_XML_CATA_PREFER_PUBLIC: xmlCatalogPrefer = 1;
pub const xmlCatalogPrefer_XML_CATA_PREFER_SYSTEM: xmlCatalogPrefer = 2;
pub type xmlCatalogPrefer = u32;
pub const xmlCatalogAllow_XML_CATA_ALLOW_NONE: xmlCatalogAllow = 0;
pub const xmlCatalogAllow_XML_CATA_ALLOW_GLOBAL: xmlCatalogAllow = 1;
pub const xmlCatalogAllow_XML_CATA_ALLOW_DOCUMENT: xmlCatalogAllow = 2;
pub const xmlCatalogAllow_XML_CATA_ALLOW_ALL: xmlCatalogAllow = 3;
pub type xmlCatalogAllow = u32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlCatalog {
  _unused: [u8; 0],
}
pub type xmlCatalog = _xmlCatalog;
pub type xmlCatalogPtr = *mut xmlCatalog;
extern "C" {
  pub fn xmlNewCatalog(sgml: ::std::os::raw::c_int) -> xmlCatalogPtr;
}
extern "C" {
  pub fn xmlLoadACatalog(filename: *const ::std::os::raw::c_char) -> xmlCatalogPtr;
}
extern "C" {
  pub fn xmlLoadSGMLSuperCatalog(filename: *const ::std::os::raw::c_char) -> xmlCatalogPtr;
}
extern "C" {
  pub fn xmlConvertSGMLCatalog(catal: xmlCatalogPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlACatalogAdd(
    catal: xmlCatalogPtr,
    type_: *const xmlChar,
    orig: *const xmlChar,
    replace: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlACatalogRemove(catal: xmlCatalogPtr, value: *const xmlChar) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlACatalogResolve(
    catal: xmlCatalogPtr,
    pubID: *const xmlChar,
    sysID: *const xmlChar,
  ) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlACatalogResolveSystem(catal: xmlCatalogPtr, sysID: *const xmlChar) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlACatalogResolvePublic(catal: xmlCatalogPtr, pubID: *const xmlChar) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlACatalogResolveURI(catal: xmlCatalogPtr, URI: *const xmlChar) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlACatalogDump(catal: xmlCatalogPtr, out: *mut FILE);
}
extern "C" {
  pub fn xmlFreeCatalog(catal: xmlCatalogPtr);
}
extern "C" {
  pub fn xmlCatalogIsEmpty(catal: xmlCatalogPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlInitializeCatalog();
}
extern "C" {
  pub fn xmlLoadCatalog(filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlLoadCatalogs(paths: *const ::std::os::raw::c_char);
}
extern "C" {
  pub fn xmlCatalogCleanup();
}
extern "C" {
  pub fn xmlCatalogDump(out: *mut FILE);
}
extern "C" {
  pub fn xmlCatalogResolve(pubID: *const xmlChar, sysID: *const xmlChar) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlCatalogResolveSystem(sysID: *const xmlChar) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlCatalogResolvePublic(pubID: *const xmlChar) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlCatalogResolveURI(URI: *const xmlChar) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlCatalogAdd(
    type_: *const xmlChar,
    orig: *const xmlChar,
    replace: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlCatalogRemove(value: *const xmlChar) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlParseCatalogFile(filename: *const ::std::os::raw::c_char) -> xmlDocPtr;
}
extern "C" {
  pub fn xmlCatalogConvert() -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlCatalogFreeLocal(catalogs: *mut ::std::os::raw::c_void);
}
extern "C" {
  pub fn xmlCatalogAddLocal(
    catalogs: *mut ::std::os::raw::c_void,
    URL: *const xmlChar,
  ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn xmlCatalogLocalResolve(
    catalogs: *mut ::std::os::raw::c_void,
    pubID: *const xmlChar,
    sysID: *const xmlChar,
  ) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlCatalogLocalResolveURI(
    catalogs: *mut ::std::os::raw::c_void,
    URI: *const xmlChar,
  ) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlCatalogSetDebug(level: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlCatalogSetDefaultPrefer(prefer: xmlCatalogPrefer) -> xmlCatalogPrefer;
}
extern "C" {
  pub fn xmlCatalogSetDefaults(allow: xmlCatalogAllow);
}
extern "C" {
  pub fn xmlCatalogGetDefaults() -> xmlCatalogAllow;
}
extern "C" {
  pub fn xmlCatalogGetSystem(sysID: *const xmlChar) -> *const xmlChar;
}
extern "C" {
  pub fn xmlCatalogGetPublic(pubID: *const xmlChar) -> *const xmlChar;
}
extern "C" {
  pub fn xmlDebugDumpString(output: *mut FILE, str: *const xmlChar);
}
extern "C" {
  pub fn xmlDebugDumpAttr(output: *mut FILE, attr: xmlAttrPtr, depth: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlDebugDumpAttrList(output: *mut FILE, attr: xmlAttrPtr, depth: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlDebugDumpOneNode(output: *mut FILE, node: xmlNodePtr, depth: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlDebugDumpNode(output: *mut FILE, node: xmlNodePtr, depth: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlDebugDumpNodeList(output: *mut FILE, node: xmlNodePtr, depth: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlDebugDumpDocumentHead(output: *mut FILE, doc: xmlDocPtr);
}
extern "C" {
  pub fn xmlDebugDumpDocument(output: *mut FILE, doc: xmlDocPtr);
}
extern "C" {
  pub fn xmlDebugDumpDTD(output: *mut FILE, dtd: xmlDtdPtr);
}
extern "C" {
  pub fn xmlDebugDumpEntities(output: *mut FILE, doc: xmlDocPtr);
}
extern "C" {
  /// *
  /// Checking routines    *
  /// *
  pub fn xmlDebugCheckDocument(output: *mut FILE, doc: xmlDocPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  /// *
  /// XML shell helpers    *
  /// *
  pub fn xmlLsOneNode(output: *mut FILE, node: xmlNodePtr);
}
extern "C" {
  pub fn xmlLsCountNode(node: xmlNodePtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlBoolToText(boolval: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
}
/// xmlShellReadlineFunc:
/// @prompt:  a string prompt
///
/// This is a generic signature for the XML shell input function.
///
/// Returns a string which will be freed by the Shell.
pub type xmlShellReadlineFunc = ::std::option::Option<
  unsafe extern "C" fn(prompt: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char,
>;
/// xmlShellCtxt:
///
/// A debugging shell context.
/// TODO: add the defined function tables.
pub type xmlShellCtxt = _xmlShellCtxt;
pub type xmlShellCtxtPtr = *mut xmlShellCtxt;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlShellCtxt {
  pub filename: *mut ::std::os::raw::c_char,
  pub doc: xmlDocPtr,
  pub node: xmlNodePtr,
  pub pctxt: xmlXPathContextPtr,
  pub loaded: ::std::os::raw::c_int,
  pub output: *mut FILE,
  pub input: xmlShellReadlineFunc,
}
#[test]
fn bindgen_test_layout__xmlShellCtxt() {
  assert_eq!(
    ::std::mem::size_of::<_xmlShellCtxt>(),
    56usize,
    concat!("Size of: ", stringify!(_xmlShellCtxt))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlShellCtxt>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlShellCtxt))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlShellCtxt>())).filename as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlShellCtxt),
  //     "::",
  //     stringify!(filename)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlShellCtxt>())).doc as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlShellCtxt),
  //     "::",
  //     stringify!(doc)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlShellCtxt>())).node as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlShellCtxt),
  //     "::",
  //     stringify!(node)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlShellCtxt>())).pctxt as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlShellCtxt),
  //     "::",
  //     stringify!(pctxt)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlShellCtxt>())).loaded as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlShellCtxt),
  //     "::",
  //     stringify!(loaded)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlShellCtxt>())).output as *const _ as usize },
  //   40usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlShellCtxt),
  //     "::",
  //     stringify!(output)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlShellCtxt>())).input as *const _ as usize },
  //   48usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlShellCtxt),
  //     "::",
  //     stringify!(input)
  //   )
  // );
}
/// xmlShellCmd:
/// @ctxt:  a shell context
/// @arg:  a string argument
/// @node:  a first node
/// @node2:  a second node
///
/// This is a generic signature for the XML shell functions.
///
/// Returns an int, negative returns indicating errors.
pub type xmlShellCmd = ::std::option::Option<
  unsafe extern "C" fn(
    ctxt: xmlShellCtxtPtr,
    arg: *mut ::std::os::raw::c_char,
    node: xmlNodePtr,
    node2: xmlNodePtr,
  ) -> ::std::os::raw::c_int,
>;
extern "C" {
  pub fn xmlShellPrintXPathError(
    errorType: ::std::os::raw::c_int,
    arg: *const ::std::os::raw::c_char,
  );
}
extern "C" {
  pub fn xmlShellPrintXPathResult(list: xmlXPathObjectPtr);
}
extern "C" {
  pub fn xmlShellList(
    ctxt: xmlShellCtxtPtr,
    arg: *mut ::std::os::raw::c_char,
    node: xmlNodePtr,
    node2: xmlNodePtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlShellBase(
    ctxt: xmlShellCtxtPtr,
    arg: *mut ::std::os::raw::c_char,
    node: xmlNodePtr,
    node2: xmlNodePtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlShellDir(
    ctxt: xmlShellCtxtPtr,
    arg: *mut ::std::os::raw::c_char,
    node: xmlNodePtr,
    node2: xmlNodePtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlShellLoad(
    ctxt: xmlShellCtxtPtr,
    filename: *mut ::std::os::raw::c_char,
    node: xmlNodePtr,
    node2: xmlNodePtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlShellPrintNode(node: xmlNodePtr);
}
extern "C" {
  pub fn xmlShellCat(
    ctxt: xmlShellCtxtPtr,
    arg: *mut ::std::os::raw::c_char,
    node: xmlNodePtr,
    node2: xmlNodePtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlShellWrite(
    ctxt: xmlShellCtxtPtr,
    filename: *mut ::std::os::raw::c_char,
    node: xmlNodePtr,
    node2: xmlNodePtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlShellSave(
    ctxt: xmlShellCtxtPtr,
    filename: *mut ::std::os::raw::c_char,
    node: xmlNodePtr,
    node2: xmlNodePtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlShellValidate(
    ctxt: xmlShellCtxtPtr,
    dtd: *mut ::std::os::raw::c_char,
    node: xmlNodePtr,
    node2: xmlNodePtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlShellDu(
    ctxt: xmlShellCtxtPtr,
    arg: *mut ::std::os::raw::c_char,
    tree: xmlNodePtr,
    node2: xmlNodePtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlShellPwd(
    ctxt: xmlShellCtxtPtr,
    buffer: *mut ::std::os::raw::c_char,
    node: xmlNodePtr,
    node2: xmlNodePtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlShell(
    doc: xmlDocPtr,
    filename: *mut ::std::os::raw::c_char,
    input: xmlShellReadlineFunc,
    output: *mut FILE,
  );
}
/// ftpListCallback:
/// @userData:  user provided data for the callback
/// @filename:  the file name (including "->" when links are shown)
/// @attrib:  the attribute string
/// @owner:  the owner string
/// @group:  the group string
/// @size:  the file size
/// @links:  the link count
/// @year:  the year
/// @month:  the month
/// @day:  the day
/// @hour:  the hour
/// @minute:  the minute
///
/// A callback for the xmlNanoFTPList command.
/// Note that only one of year and day:minute are specified.
pub type ftpListCallback = ::std::option::Option<
  unsafe extern "C" fn(
    userData: *mut ::std::os::raw::c_void,
    filename: *const ::std::os::raw::c_char,
    attrib: *const ::std::os::raw::c_char,
    owner: *const ::std::os::raw::c_char,
    group: *const ::std::os::raw::c_char,
    size: ::std::os::raw::c_ulong,
    links: ::std::os::raw::c_int,
    year: ::std::os::raw::c_int,
    month: *const ::std::os::raw::c_char,
    day: ::std::os::raw::c_int,
    hour: ::std::os::raw::c_int,
    minute: ::std::os::raw::c_int,
  ),
>;
/// ftpDataCallback:
/// @userData: the user provided context
/// @data: the data received
/// @len: its size in bytes
///
/// A callback for the xmlNanoFTPGet command.
pub type ftpDataCallback = ::std::option::Option<
  unsafe extern "C" fn(
    userData: *mut ::std::os::raw::c_void,
    data: *const ::std::os::raw::c_char,
    len: ::std::os::raw::c_int,
  ),
>;
extern "C" {
  pub fn xmlNanoFTPInit();
}
extern "C" {
  pub fn xmlNanoFTPCleanup();
}
extern "C" {
  pub fn xmlNanoFTPNewCtxt(URL: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn xmlNanoFTPFreeCtxt(ctx: *mut ::std::os::raw::c_void);
}
extern "C" {
  pub fn xmlNanoFTPConnectTo(
    server: *const ::std::os::raw::c_char,
    port: ::std::os::raw::c_int,
  ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn xmlNanoFTPOpen(URL: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn xmlNanoFTPConnect(ctx: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlNanoFTPClose(ctx: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlNanoFTPQuit(ctx: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlNanoFTPScanProxy(URL: *const ::std::os::raw::c_char);
}
extern "C" {
  pub fn xmlNanoFTPProxy(
    host: *const ::std::os::raw::c_char,
    port: ::std::os::raw::c_int,
    user: *const ::std::os::raw::c_char,
    passwd: *const ::std::os::raw::c_char,
    type_: ::std::os::raw::c_int,
  );
}
extern "C" {
  pub fn xmlNanoFTPUpdateURL(
    ctx: *mut ::std::os::raw::c_void,
    URL: *const ::std::os::raw::c_char,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlNanoFTPGetResponse(ctx: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlNanoFTPCheckResponse(ctx: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlNanoFTPCwd(
    ctx: *mut ::std::os::raw::c_void,
    directory: *const ::std::os::raw::c_char,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlNanoFTPDele(
    ctx: *mut ::std::os::raw::c_void,
    file: *const ::std::os::raw::c_char,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlNanoFTPGetConnection(ctx: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlNanoFTPCloseConnection(ctx: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlNanoFTPList(
    ctx: *mut ::std::os::raw::c_void,
    callback: ftpListCallback,
    userData: *mut ::std::os::raw::c_void,
    filename: *const ::std::os::raw::c_char,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlNanoFTPGetSocket(
    ctx: *mut ::std::os::raw::c_void,
    filename: *const ::std::os::raw::c_char,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlNanoFTPGet(
    ctx: *mut ::std::os::raw::c_void,
    callback: ftpDataCallback,
    userData: *mut ::std::os::raw::c_void,
    filename: *const ::std::os::raw::c_char,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlNanoFTPRead(
    ctx: *mut ::std::os::raw::c_void,
    dest: *mut ::std::os::raw::c_void,
    len: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlNanoHTTPInit();
}
extern "C" {
  pub fn xmlNanoHTTPCleanup();
}
extern "C" {
  pub fn xmlNanoHTTPScanProxy(URL: *const ::std::os::raw::c_char);
}
extern "C" {
  pub fn xmlNanoHTTPFetch(
    URL: *const ::std::os::raw::c_char,
    filename: *const ::std::os::raw::c_char,
    contentType: *mut *mut ::std::os::raw::c_char,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlNanoHTTPMethod(
    URL: *const ::std::os::raw::c_char,
    method: *const ::std::os::raw::c_char,
    input: *const ::std::os::raw::c_char,
    contentType: *mut *mut ::std::os::raw::c_char,
    headers: *const ::std::os::raw::c_char,
    ilen: ::std::os::raw::c_int,
  ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn xmlNanoHTTPMethodRedir(
    URL: *const ::std::os::raw::c_char,
    method: *const ::std::os::raw::c_char,
    input: *const ::std::os::raw::c_char,
    contentType: *mut *mut ::std::os::raw::c_char,
    redir: *mut *mut ::std::os::raw::c_char,
    headers: *const ::std::os::raw::c_char,
    ilen: ::std::os::raw::c_int,
  ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn xmlNanoHTTPOpen(
    URL: *const ::std::os::raw::c_char,
    contentType: *mut *mut ::std::os::raw::c_char,
  ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn xmlNanoHTTPOpenRedir(
    URL: *const ::std::os::raw::c_char,
    contentType: *mut *mut ::std::os::raw::c_char,
    redir: *mut *mut ::std::os::raw::c_char,
  ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn xmlNanoHTTPReturnCode(ctx: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlNanoHTTPAuthHeader(ctx: *mut ::std::os::raw::c_void) -> *const ::std::os::raw::c_char;
}
extern "C" {
  pub fn xmlNanoHTTPRedir(ctx: *mut ::std::os::raw::c_void) -> *const ::std::os::raw::c_char;
}
extern "C" {
  pub fn xmlNanoHTTPContentLength(ctx: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlNanoHTTPEncoding(ctx: *mut ::std::os::raw::c_void) -> *const ::std::os::raw::c_char;
}
extern "C" {
  pub fn xmlNanoHTTPMimeType(ctx: *mut ::std::os::raw::c_void) -> *const ::std::os::raw::c_char;
}
extern "C" {
  pub fn xmlNanoHTTPRead(
    ctx: *mut ::std::os::raw::c_void,
    dest: *mut ::std::os::raw::c_void,
    len: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlNanoHTTPSave(
    ctxt: *mut ::std::os::raw::c_void,
    filename: *const ::std::os::raw::c_char,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlNanoHTTPClose(ctx: *mut ::std::os::raw::c_void);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlPattern {
  _unused: [u8; 0],
}
/// xmlPattern:
///
/// A compiled (XPath based) pattern to select nodes
pub type xmlPattern = _xmlPattern;
pub type xmlPatternPtr = *mut xmlPattern;
pub const xmlPatternFlags_XML_PATTERN_DEFAULT: xmlPatternFlags = 0;
pub const xmlPatternFlags_XML_PATTERN_XPATH: xmlPatternFlags = 1;
pub const xmlPatternFlags_XML_PATTERN_XSSEL: xmlPatternFlags = 2;
pub const xmlPatternFlags_XML_PATTERN_XSFIELD: xmlPatternFlags = 4;
/// xmlPatternFlags:
///
/// This is the set of options affecting the behaviour of pattern
/// matching with this module
///
pub type xmlPatternFlags = u32;
extern "C" {
  pub fn xmlFreePattern(comp: xmlPatternPtr);
}
extern "C" {
  pub fn xmlFreePatternList(comp: xmlPatternPtr);
}
extern "C" {
  pub fn xmlPatterncompile(
    pattern: *const xmlChar,
    dict: *mut xmlDict,
    flags: ::std::os::raw::c_int,
    namespaces: *mut *const xmlChar,
  ) -> xmlPatternPtr;
}
extern "C" {
  pub fn xmlPatternMatch(comp: xmlPatternPtr, node: xmlNodePtr) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlStreamCtxt {
  _unused: [u8; 0],
}
pub type xmlStreamCtxt = _xmlStreamCtxt;
pub type xmlStreamCtxtPtr = *mut xmlStreamCtxt;
extern "C" {
  pub fn xmlPatternStreamable(comp: xmlPatternPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlPatternMaxDepth(comp: xmlPatternPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlPatternMinDepth(comp: xmlPatternPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlPatternFromRoot(comp: xmlPatternPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlPatternGetStreamCtxt(comp: xmlPatternPtr) -> xmlStreamCtxtPtr;
}
extern "C" {
  pub fn xmlFreeStreamCtxt(stream: xmlStreamCtxtPtr);
}
extern "C" {
  pub fn xmlStreamPushNode(
    stream: xmlStreamCtxtPtr,
    name: *const xmlChar,
    ns: *const xmlChar,
    nodeType: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlStreamPush(
    stream: xmlStreamCtxtPtr,
    name: *const xmlChar,
    ns: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlStreamPushAttr(
    stream: xmlStreamCtxtPtr,
    name: *const xmlChar,
    ns: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlStreamPop(stream: xmlStreamCtxtPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlStreamWantsAnyNode(stream: xmlStreamCtxtPtr) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlRelaxNG {
  _unused: [u8; 0],
}
pub type xmlRelaxNG = _xmlRelaxNG;
pub type xmlRelaxNGPtr = *mut xmlRelaxNG;
/// xmlRelaxNGValidityErrorFunc:
/// @ctx: the validation context
/// @msg: the message
/// @...: extra arguments
///
/// Signature of an error callback from a Relax-NG validation
pub type xmlRelaxNGValidityErrorFunc = ::std::option::Option<
  unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, msg: *const ::std::os::raw::c_char, ...),
>;
/// xmlRelaxNGValidityWarningFunc:
/// @ctx: the validation context
/// @msg: the message
/// @...: extra arguments
///
/// Signature of a warning callback from a Relax-NG validation
pub type xmlRelaxNGValidityWarningFunc = ::std::option::Option<
  unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, msg: *const ::std::os::raw::c_char, ...),
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlRelaxNGParserCtxt {
  _unused: [u8; 0],
}
/// A schemas validation context
pub type xmlRelaxNGParserCtxt = _xmlRelaxNGParserCtxt;
pub type xmlRelaxNGParserCtxtPtr = *mut xmlRelaxNGParserCtxt;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlRelaxNGValidCtxt {
  _unused: [u8; 0],
}
pub type xmlRelaxNGValidCtxt = _xmlRelaxNGValidCtxt;
pub type xmlRelaxNGValidCtxtPtr = *mut xmlRelaxNGValidCtxt;
pub const xmlRelaxNGValidErr_XML_RELAXNG_OK: xmlRelaxNGValidErr = 0;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_MEMORY: xmlRelaxNGValidErr = 1;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_TYPE: xmlRelaxNGValidErr = 2;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_TYPEVAL: xmlRelaxNGValidErr = 3;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_DUPID: xmlRelaxNGValidErr = 4;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_TYPECMP: xmlRelaxNGValidErr = 5;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_NOSTATE: xmlRelaxNGValidErr = 6;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_NODEFINE: xmlRelaxNGValidErr = 7;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_LISTEXTRA: xmlRelaxNGValidErr = 8;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_LISTEMPTY: xmlRelaxNGValidErr = 9;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_INTERNODATA: xmlRelaxNGValidErr = 10;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_INTERSEQ: xmlRelaxNGValidErr = 11;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_INTEREXTRA: xmlRelaxNGValidErr = 12;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_ELEMNAME: xmlRelaxNGValidErr = 13;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_ATTRNAME: xmlRelaxNGValidErr = 14;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_ELEMNONS: xmlRelaxNGValidErr = 15;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_ATTRNONS: xmlRelaxNGValidErr = 16;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_ELEMWRONGNS: xmlRelaxNGValidErr = 17;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_ATTRWRONGNS: xmlRelaxNGValidErr = 18;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_ELEMEXTRANS: xmlRelaxNGValidErr = 19;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_ATTREXTRANS: xmlRelaxNGValidErr = 20;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_ELEMNOTEMPTY: xmlRelaxNGValidErr = 21;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_NOELEM: xmlRelaxNGValidErr = 22;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_NOTELEM: xmlRelaxNGValidErr = 23;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_ATTRVALID: xmlRelaxNGValidErr = 24;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_CONTENTVALID: xmlRelaxNGValidErr = 25;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_EXTRACONTENT: xmlRelaxNGValidErr = 26;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_INVALIDATTR: xmlRelaxNGValidErr = 27;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_DATAELEM: xmlRelaxNGValidErr = 28;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_VALELEM: xmlRelaxNGValidErr = 29;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_LISTELEM: xmlRelaxNGValidErr = 30;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_DATATYPE: xmlRelaxNGValidErr = 31;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_VALUE: xmlRelaxNGValidErr = 32;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_LIST: xmlRelaxNGValidErr = 33;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_NOGRAMMAR: xmlRelaxNGValidErr = 34;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_EXTRADATA: xmlRelaxNGValidErr = 35;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_LACKDATA: xmlRelaxNGValidErr = 36;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_INTERNAL: xmlRelaxNGValidErr = 37;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_ELEMWRONG: xmlRelaxNGValidErr = 38;
pub const xmlRelaxNGValidErr_XML_RELAXNG_ERR_TEXTWRONG: xmlRelaxNGValidErr = 39;
pub type xmlRelaxNGValidErr = u32;
pub const xmlRelaxNGParserFlag_XML_RELAXNGP_NONE: xmlRelaxNGParserFlag = 0;
pub const xmlRelaxNGParserFlag_XML_RELAXNGP_FREE_DOC: xmlRelaxNGParserFlag = 1;
pub const xmlRelaxNGParserFlag_XML_RELAXNGP_CRNG: xmlRelaxNGParserFlag = 2;
pub type xmlRelaxNGParserFlag = u32;
extern "C" {
  pub fn xmlRelaxNGInitTypes() -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlRelaxNGCleanupTypes();
}
extern "C" {
  pub fn xmlRelaxNGNewParserCtxt(URL: *const ::std::os::raw::c_char) -> xmlRelaxNGParserCtxtPtr;
}
extern "C" {
  pub fn xmlRelaxNGNewMemParserCtxt(
    buffer: *const ::std::os::raw::c_char,
    size: ::std::os::raw::c_int,
  ) -> xmlRelaxNGParserCtxtPtr;
}
extern "C" {
  pub fn xmlRelaxNGNewDocParserCtxt(doc: xmlDocPtr) -> xmlRelaxNGParserCtxtPtr;
}
extern "C" {
  pub fn xmlRelaxParserSetFlag(
    ctxt: xmlRelaxNGParserCtxtPtr,
    flag: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlRelaxNGFreeParserCtxt(ctxt: xmlRelaxNGParserCtxtPtr);
}
extern "C" {
  pub fn xmlRelaxNGSetParserErrors(
    ctxt: xmlRelaxNGParserCtxtPtr,
    err: xmlRelaxNGValidityErrorFunc,
    warn: xmlRelaxNGValidityWarningFunc,
    ctx: *mut ::std::os::raw::c_void,
  );
}
extern "C" {
  pub fn xmlRelaxNGGetParserErrors(
    ctxt: xmlRelaxNGParserCtxtPtr,
    err: *mut xmlRelaxNGValidityErrorFunc,
    warn: *mut xmlRelaxNGValidityWarningFunc,
    ctx: *mut *mut ::std::os::raw::c_void,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlRelaxNGSetParserStructuredErrors(
    ctxt: xmlRelaxNGParserCtxtPtr,
    serror: xmlStructuredErrorFunc,
    ctx: *mut ::std::os::raw::c_void,
  );
}
extern "C" {
  pub fn xmlRelaxNGParse(ctxt: xmlRelaxNGParserCtxtPtr) -> xmlRelaxNGPtr;
}
extern "C" {
  pub fn xmlRelaxNGFree(schema: xmlRelaxNGPtr);
}
extern "C" {
  pub fn xmlRelaxNGDump(output: *mut FILE, schema: xmlRelaxNGPtr);
}
extern "C" {
  pub fn xmlRelaxNGDumpTree(output: *mut FILE, schema: xmlRelaxNGPtr);
}
extern "C" {
  pub fn xmlRelaxNGSetValidErrors(
    ctxt: xmlRelaxNGValidCtxtPtr,
    err: xmlRelaxNGValidityErrorFunc,
    warn: xmlRelaxNGValidityWarningFunc,
    ctx: *mut ::std::os::raw::c_void,
  );
}
extern "C" {
  pub fn xmlRelaxNGGetValidErrors(
    ctxt: xmlRelaxNGValidCtxtPtr,
    err: *mut xmlRelaxNGValidityErrorFunc,
    warn: *mut xmlRelaxNGValidityWarningFunc,
    ctx: *mut *mut ::std::os::raw::c_void,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlRelaxNGSetValidStructuredErrors(
    ctxt: xmlRelaxNGValidCtxtPtr,
    serror: xmlStructuredErrorFunc,
    ctx: *mut ::std::os::raw::c_void,
  );
}
extern "C" {
  pub fn xmlRelaxNGNewValidCtxt(schema: xmlRelaxNGPtr) -> xmlRelaxNGValidCtxtPtr;
}
extern "C" {
  pub fn xmlRelaxNGFreeValidCtxt(ctxt: xmlRelaxNGValidCtxtPtr);
}
extern "C" {
  pub fn xmlRelaxNGValidateDoc(
    ctxt: xmlRelaxNGValidCtxtPtr,
    doc: xmlDocPtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlRelaxNGValidatePushElement(
    ctxt: xmlRelaxNGValidCtxtPtr,
    doc: xmlDocPtr,
    elem: xmlNodePtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlRelaxNGValidatePushCData(
    ctxt: xmlRelaxNGValidCtxtPtr,
    data: *const xmlChar,
    len: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlRelaxNGValidatePopElement(
    ctxt: xmlRelaxNGValidCtxtPtr,
    doc: xmlDocPtr,
    elem: xmlNodePtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlRelaxNGValidateFullElement(
    ctxt: xmlRelaxNGValidCtxtPtr,
    doc: xmlDocPtr,
    elem: xmlNodePtr,
  ) -> ::std::os::raw::c_int;
}
pub const xmlSchemaValType_XML_SCHEMAS_UNKNOWN: xmlSchemaValType = 0;
pub const xmlSchemaValType_XML_SCHEMAS_STRING: xmlSchemaValType = 1;
pub const xmlSchemaValType_XML_SCHEMAS_NORMSTRING: xmlSchemaValType = 2;
pub const xmlSchemaValType_XML_SCHEMAS_DECIMAL: xmlSchemaValType = 3;
pub const xmlSchemaValType_XML_SCHEMAS_TIME: xmlSchemaValType = 4;
pub const xmlSchemaValType_XML_SCHEMAS_GDAY: xmlSchemaValType = 5;
pub const xmlSchemaValType_XML_SCHEMAS_GMONTH: xmlSchemaValType = 6;
pub const xmlSchemaValType_XML_SCHEMAS_GMONTHDAY: xmlSchemaValType = 7;
pub const xmlSchemaValType_XML_SCHEMAS_GYEAR: xmlSchemaValType = 8;
pub const xmlSchemaValType_XML_SCHEMAS_GYEARMONTH: xmlSchemaValType = 9;
pub const xmlSchemaValType_XML_SCHEMAS_DATE: xmlSchemaValType = 10;
pub const xmlSchemaValType_XML_SCHEMAS_DATETIME: xmlSchemaValType = 11;
pub const xmlSchemaValType_XML_SCHEMAS_DURATION: xmlSchemaValType = 12;
pub const xmlSchemaValType_XML_SCHEMAS_FLOAT: xmlSchemaValType = 13;
pub const xmlSchemaValType_XML_SCHEMAS_DOUBLE: xmlSchemaValType = 14;
pub const xmlSchemaValType_XML_SCHEMAS_BOOLEAN: xmlSchemaValType = 15;
pub const xmlSchemaValType_XML_SCHEMAS_TOKEN: xmlSchemaValType = 16;
pub const xmlSchemaValType_XML_SCHEMAS_LANGUAGE: xmlSchemaValType = 17;
pub const xmlSchemaValType_XML_SCHEMAS_NMTOKEN: xmlSchemaValType = 18;
pub const xmlSchemaValType_XML_SCHEMAS_NMTOKENS: xmlSchemaValType = 19;
pub const xmlSchemaValType_XML_SCHEMAS_NAME: xmlSchemaValType = 20;
pub const xmlSchemaValType_XML_SCHEMAS_QNAME: xmlSchemaValType = 21;
pub const xmlSchemaValType_XML_SCHEMAS_NCNAME: xmlSchemaValType = 22;
pub const xmlSchemaValType_XML_SCHEMAS_ID: xmlSchemaValType = 23;
pub const xmlSchemaValType_XML_SCHEMAS_IDREF: xmlSchemaValType = 24;
pub const xmlSchemaValType_XML_SCHEMAS_IDREFS: xmlSchemaValType = 25;
pub const xmlSchemaValType_XML_SCHEMAS_ENTITY: xmlSchemaValType = 26;
pub const xmlSchemaValType_XML_SCHEMAS_ENTITIES: xmlSchemaValType = 27;
pub const xmlSchemaValType_XML_SCHEMAS_NOTATION: xmlSchemaValType = 28;
pub const xmlSchemaValType_XML_SCHEMAS_ANYURI: xmlSchemaValType = 29;
pub const xmlSchemaValType_XML_SCHEMAS_INTEGER: xmlSchemaValType = 30;
pub const xmlSchemaValType_XML_SCHEMAS_NPINTEGER: xmlSchemaValType = 31;
pub const xmlSchemaValType_XML_SCHEMAS_NINTEGER: xmlSchemaValType = 32;
pub const xmlSchemaValType_XML_SCHEMAS_NNINTEGER: xmlSchemaValType = 33;
pub const xmlSchemaValType_XML_SCHEMAS_PINTEGER: xmlSchemaValType = 34;
pub const xmlSchemaValType_XML_SCHEMAS_INT: xmlSchemaValType = 35;
pub const xmlSchemaValType_XML_SCHEMAS_UINT: xmlSchemaValType = 36;
pub const xmlSchemaValType_XML_SCHEMAS_LONG: xmlSchemaValType = 37;
pub const xmlSchemaValType_XML_SCHEMAS_ULONG: xmlSchemaValType = 38;
pub const xmlSchemaValType_XML_SCHEMAS_SHORT: xmlSchemaValType = 39;
pub const xmlSchemaValType_XML_SCHEMAS_USHORT: xmlSchemaValType = 40;
pub const xmlSchemaValType_XML_SCHEMAS_BYTE: xmlSchemaValType = 41;
pub const xmlSchemaValType_XML_SCHEMAS_UBYTE: xmlSchemaValType = 42;
pub const xmlSchemaValType_XML_SCHEMAS_HEXBINARY: xmlSchemaValType = 43;
pub const xmlSchemaValType_XML_SCHEMAS_BASE64BINARY: xmlSchemaValType = 44;
pub const xmlSchemaValType_XML_SCHEMAS_ANYTYPE: xmlSchemaValType = 45;
pub const xmlSchemaValType_XML_SCHEMAS_ANYSIMPLETYPE: xmlSchemaValType = 46;
pub type xmlSchemaValType = u32;
pub const xmlSchemaTypeType_XML_SCHEMA_TYPE_BASIC: xmlSchemaTypeType = 1;
pub const xmlSchemaTypeType_XML_SCHEMA_TYPE_ANY: xmlSchemaTypeType = 2;
pub const xmlSchemaTypeType_XML_SCHEMA_TYPE_FACET: xmlSchemaTypeType = 3;
pub const xmlSchemaTypeType_XML_SCHEMA_TYPE_SIMPLE: xmlSchemaTypeType = 4;
pub const xmlSchemaTypeType_XML_SCHEMA_TYPE_COMPLEX: xmlSchemaTypeType = 5;
pub const xmlSchemaTypeType_XML_SCHEMA_TYPE_SEQUENCE: xmlSchemaTypeType = 6;
pub const xmlSchemaTypeType_XML_SCHEMA_TYPE_CHOICE: xmlSchemaTypeType = 7;
pub const xmlSchemaTypeType_XML_SCHEMA_TYPE_ALL: xmlSchemaTypeType = 8;
pub const xmlSchemaTypeType_XML_SCHEMA_TYPE_SIMPLE_CONTENT: xmlSchemaTypeType = 9;
pub const xmlSchemaTypeType_XML_SCHEMA_TYPE_COMPLEX_CONTENT: xmlSchemaTypeType = 10;
pub const xmlSchemaTypeType_XML_SCHEMA_TYPE_UR: xmlSchemaTypeType = 11;
pub const xmlSchemaTypeType_XML_SCHEMA_TYPE_RESTRICTION: xmlSchemaTypeType = 12;
pub const xmlSchemaTypeType_XML_SCHEMA_TYPE_EXTENSION: xmlSchemaTypeType = 13;
pub const xmlSchemaTypeType_XML_SCHEMA_TYPE_ELEMENT: xmlSchemaTypeType = 14;
pub const xmlSchemaTypeType_XML_SCHEMA_TYPE_ATTRIBUTE: xmlSchemaTypeType = 15;
pub const xmlSchemaTypeType_XML_SCHEMA_TYPE_ATTRIBUTEGROUP: xmlSchemaTypeType = 16;
pub const xmlSchemaTypeType_XML_SCHEMA_TYPE_GROUP: xmlSchemaTypeType = 17;
pub const xmlSchemaTypeType_XML_SCHEMA_TYPE_NOTATION: xmlSchemaTypeType = 18;
pub const xmlSchemaTypeType_XML_SCHEMA_TYPE_LIST: xmlSchemaTypeType = 19;
pub const xmlSchemaTypeType_XML_SCHEMA_TYPE_UNION: xmlSchemaTypeType = 20;
pub const xmlSchemaTypeType_XML_SCHEMA_TYPE_ANY_ATTRIBUTE: xmlSchemaTypeType = 21;
pub const xmlSchemaTypeType_XML_SCHEMA_TYPE_IDC_UNIQUE: xmlSchemaTypeType = 22;
pub const xmlSchemaTypeType_XML_SCHEMA_TYPE_IDC_KEY: xmlSchemaTypeType = 23;
pub const xmlSchemaTypeType_XML_SCHEMA_TYPE_IDC_KEYREF: xmlSchemaTypeType = 24;
pub const xmlSchemaTypeType_XML_SCHEMA_TYPE_PARTICLE: xmlSchemaTypeType = 25;
pub const xmlSchemaTypeType_XML_SCHEMA_TYPE_ATTRIBUTE_USE: xmlSchemaTypeType = 26;
pub const xmlSchemaTypeType_XML_SCHEMA_FACET_MININCLUSIVE: xmlSchemaTypeType = 1_000;
pub const xmlSchemaTypeType_XML_SCHEMA_FACET_MINEXCLUSIVE: xmlSchemaTypeType = 1_001;
pub const xmlSchemaTypeType_XML_SCHEMA_FACET_MAXINCLUSIVE: xmlSchemaTypeType = 1_002;
pub const xmlSchemaTypeType_XML_SCHEMA_FACET_MAXEXCLUSIVE: xmlSchemaTypeType = 1_003;
pub const xmlSchemaTypeType_XML_SCHEMA_FACET_TOTALDIGITS: xmlSchemaTypeType = 1_004;
pub const xmlSchemaTypeType_XML_SCHEMA_FACET_FRACTIONDIGITS: xmlSchemaTypeType = 1_005;
pub const xmlSchemaTypeType_XML_SCHEMA_FACET_PATTERN: xmlSchemaTypeType = 1_006;
pub const xmlSchemaTypeType_XML_SCHEMA_FACET_ENUMERATION: xmlSchemaTypeType = 1_007;
pub const xmlSchemaTypeType_XML_SCHEMA_FACET_WHITESPACE: xmlSchemaTypeType = 1_008;
pub const xmlSchemaTypeType_XML_SCHEMA_FACET_LENGTH: xmlSchemaTypeType = 1_009;
pub const xmlSchemaTypeType_XML_SCHEMA_FACET_MAXLENGTH: xmlSchemaTypeType = 1_010;
pub const xmlSchemaTypeType_XML_SCHEMA_FACET_MINLENGTH: xmlSchemaTypeType = 1_011;
pub const xmlSchemaTypeType_XML_SCHEMA_EXTRA_QNAMEREF: xmlSchemaTypeType = 2_000;
pub const xmlSchemaTypeType_XML_SCHEMA_EXTRA_ATTR_USE_PROHIB: xmlSchemaTypeType = 2_001;
pub type xmlSchemaTypeType = u32;
pub const xmlSchemaContentType_XML_SCHEMA_CONTENT_UNKNOWN: xmlSchemaContentType = 0;
pub const xmlSchemaContentType_XML_SCHEMA_CONTENT_EMPTY: xmlSchemaContentType = 1;
pub const xmlSchemaContentType_XML_SCHEMA_CONTENT_ELEMENTS: xmlSchemaContentType = 2;
pub const xmlSchemaContentType_XML_SCHEMA_CONTENT_MIXED: xmlSchemaContentType = 3;
pub const xmlSchemaContentType_XML_SCHEMA_CONTENT_SIMPLE: xmlSchemaContentType = 4;
pub const xmlSchemaContentType_XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS: xmlSchemaContentType = 5;
pub const xmlSchemaContentType_XML_SCHEMA_CONTENT_BASIC: xmlSchemaContentType = 6;
pub const xmlSchemaContentType_XML_SCHEMA_CONTENT_ANY: xmlSchemaContentType = 7;
pub type xmlSchemaContentType = u32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlSchemaVal {
  _unused: [u8; 0],
}
pub type xmlSchemaVal = _xmlSchemaVal;
pub type xmlSchemaValPtr = *mut xmlSchemaVal;
pub type xmlSchemaType = _xmlSchemaType;
pub type xmlSchemaTypePtr = *mut xmlSchemaType;
pub type xmlSchemaFacet = _xmlSchemaFacet;
pub type xmlSchemaFacetPtr = *mut xmlSchemaFacet;
/// Annotation
pub type xmlSchemaAnnot = _xmlSchemaAnnot;
pub type xmlSchemaAnnotPtr = *mut xmlSchemaAnnot;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlSchemaAnnot {
  pub next: *mut _xmlSchemaAnnot,
  pub content: xmlNodePtr,
}
#[test]
fn bindgen_test_layout__xmlSchemaAnnot() {
  assert_eq!(
    ::std::mem::size_of::<_xmlSchemaAnnot>(),
    16usize,
    concat!("Size of: ", stringify!(_xmlSchemaAnnot))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlSchemaAnnot>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlSchemaAnnot))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAnnot>())).next as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAnnot),
  //     "::",
  //     stringify!(next)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAnnot>())).content as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAnnot),
  //     "::",
  //     stringify!(content)
  //   )
  // );
}
/// xmlSchemaAttribute:
/// An attribute definition.
pub type xmlSchemaAttribute = _xmlSchemaAttribute;
pub type xmlSchemaAttributePtr = *mut xmlSchemaAttribute;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlSchemaAttribute {
  pub type_: xmlSchemaTypeType,
  pub next: *mut _xmlSchemaAttribute,
  pub name: *const xmlChar,
  pub id: *const xmlChar,
  pub ref_: *const xmlChar,
  pub refNs: *const xmlChar,
  pub typeName: *const xmlChar,
  pub typeNs: *const xmlChar,
  pub annot: xmlSchemaAnnotPtr,
  pub base: xmlSchemaTypePtr,
  pub occurs: ::std::os::raw::c_int,
  pub defValue: *const xmlChar,
  pub subtypes: xmlSchemaTypePtr,
  pub node: xmlNodePtr,
  pub targetNamespace: *const xmlChar,
  pub flags: ::std::os::raw::c_int,
  pub refPrefix: *const xmlChar,
  pub defVal: xmlSchemaValPtr,
  pub refDecl: xmlSchemaAttributePtr,
}
#[test]
fn bindgen_test_layout__xmlSchemaAttribute() {
  assert_eq!(
    ::std::mem::size_of::<_xmlSchemaAttribute>(),
    152usize,
    concat!("Size of: ", stringify!(_xmlSchemaAttribute))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlSchemaAttribute>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlSchemaAttribute))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttribute>())).type_ as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttribute),
  //     "::",
  //     stringify!(type_)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttribute>())).next as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttribute),
  //     "::",
  //     stringify!(next)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttribute>())).name as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttribute),
  //     "::",
  //     stringify!(name)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttribute>())).id as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttribute),
  //     "::",
  //     stringify!(id)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttribute>())).ref_ as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttribute),
  //     "::",
  //     stringify!(ref_)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttribute>())).refNs as *const _ as usize },
  //   40usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttribute),
  //     "::",
  //     stringify!(refNs)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttribute>())).typeName as *const _ as usize },
  //   48usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttribute),
  //     "::",
  //     stringify!(typeName)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttribute>())).typeNs as *const _ as usize },
  //   56usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttribute),
  //     "::",
  //     stringify!(typeNs)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttribute>())).annot as *const _ as usize },
  //   64usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttribute),
  //     "::",
  //     stringify!(annot)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttribute>())).base as *const _ as usize },
  //   72usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttribute),
  //     "::",
  //     stringify!(base)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttribute>())).occurs as *const _ as usize },
  //   80usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttribute),
  //     "::",
  //     stringify!(occurs)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttribute>())).defValue as *const _ as usize },
  //   88usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttribute),
  //     "::",
  //     stringify!(defValue)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttribute>())).subtypes as *const _ as usize },
  //   96usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttribute),
  //     "::",
  //     stringify!(subtypes)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttribute>())).node as *const _ as usize },
  //   104usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttribute),
  //     "::",
  //     stringify!(node)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttribute>())).targetNamespace as *const _ as usize },
  //   112usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttribute),
  //     "::",
  //     stringify!(targetNamespace)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttribute>())).flags as *const _ as usize },
  //   120usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttribute),
  //     "::",
  //     stringify!(flags)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttribute>())).refPrefix as *const _ as usize },
  //   128usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttribute),
  //     "::",
  //     stringify!(refPrefix)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttribute>())).defVal as *const _ as usize },
  //   136usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttribute),
  //     "::",
  //     stringify!(defVal)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttribute>())).refDecl as *const _ as usize },
  //   144usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttribute),
  //     "::",
  //     stringify!(refDecl)
  //   )
  // );
}
/// xmlSchemaAttributeLink:
/// Used to build a list of attribute uses on complexType definitions.
/// WARNING: Deprecated; not used.
pub type xmlSchemaAttributeLink = _xmlSchemaAttributeLink;
pub type xmlSchemaAttributeLinkPtr = *mut xmlSchemaAttributeLink;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlSchemaAttributeLink {
  pub next: *mut _xmlSchemaAttributeLink,
  pub attr: *mut _xmlSchemaAttribute,
}
#[test]
fn bindgen_test_layout__xmlSchemaAttributeLink() {
  assert_eq!(
    ::std::mem::size_of::<_xmlSchemaAttributeLink>(),
    16usize,
    concat!("Size of: ", stringify!(_xmlSchemaAttributeLink))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlSchemaAttributeLink>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlSchemaAttributeLink))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttributeLink>())).next as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttributeLink),
  //     "::",
  //     stringify!(next)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttributeLink>())).attr as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttributeLink),
  //     "::",
  //     stringify!(attr)
  //   )
  // );
}
/// xmlSchemaCharValueLink:
/// Used to build a list of namespaces on wildcards.
pub type xmlSchemaWildcardNs = _xmlSchemaWildcardNs;
pub type xmlSchemaWildcardNsPtr = *mut xmlSchemaWildcardNs;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlSchemaWildcardNs {
  pub next: *mut _xmlSchemaWildcardNs,
  pub value: *const xmlChar,
}
#[test]
fn bindgen_test_layout__xmlSchemaWildcardNs() {
  assert_eq!(
    ::std::mem::size_of::<_xmlSchemaWildcardNs>(),
    16usize,
    concat!("Size of: ", stringify!(_xmlSchemaWildcardNs))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlSchemaWildcardNs>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlSchemaWildcardNs))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaWildcardNs>())).next as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaWildcardNs),
  //     "::",
  //     stringify!(next)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaWildcardNs>())).value as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaWildcardNs),
  //     "::",
  //     stringify!(value)
  //   )
  // );
}
/// xmlSchemaWildcard.
/// A wildcard.
pub type xmlSchemaWildcard = _xmlSchemaWildcard;
pub type xmlSchemaWildcardPtr = *mut xmlSchemaWildcard;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlSchemaWildcard {
  pub type_: xmlSchemaTypeType,
  pub id: *const xmlChar,
  pub annot: xmlSchemaAnnotPtr,
  pub node: xmlNodePtr,
  pub minOccurs: ::std::os::raw::c_int,
  pub maxOccurs: ::std::os::raw::c_int,
  pub processContents: ::std::os::raw::c_int,
  pub any: ::std::os::raw::c_int,
  pub nsSet: xmlSchemaWildcardNsPtr,
  pub negNsSet: xmlSchemaWildcardNsPtr,
  pub flags: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout__xmlSchemaWildcard() {
  assert_eq!(
    ::std::mem::size_of::<_xmlSchemaWildcard>(),
    72usize,
    concat!("Size of: ", stringify!(_xmlSchemaWildcard))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlSchemaWildcard>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlSchemaWildcard))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaWildcard>())).type_ as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaWildcard),
  //     "::",
  //     stringify!(type_)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaWildcard>())).id as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaWildcard),
  //     "::",
  //     stringify!(id)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaWildcard>())).annot as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaWildcard),
  //     "::",
  //     stringify!(annot)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaWildcard>())).node as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaWildcard),
  //     "::",
  //     stringify!(node)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaWildcard>())).minOccurs as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaWildcard),
  //     "::",
  //     stringify!(minOccurs)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaWildcard>())).maxOccurs as *const _ as usize },
  //   36usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaWildcard),
  //     "::",
  //     stringify!(maxOccurs)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaWildcard>())).processContents as *const _ as usize },
  //   40usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaWildcard),
  //     "::",
  //     stringify!(processContents)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaWildcard>())).any as *const _ as usize },
  //   44usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaWildcard),
  //     "::",
  //     stringify!(any)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaWildcard>())).nsSet as *const _ as usize },
  //   48usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaWildcard),
  //     "::",
  //     stringify!(nsSet)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaWildcard>())).negNsSet as *const _ as usize },
  //   56usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaWildcard),
  //     "::",
  //     stringify!(negNsSet)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaWildcard>())).flags as *const _ as usize },
  //   64usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaWildcard),
  //     "::",
  //     stringify!(flags)
  //   )
  // );
}
/// An attribute group definition.
///
/// xmlSchemaAttribute and xmlSchemaAttributeGroup start of structures
/// must be kept similar
pub type xmlSchemaAttributeGroup = _xmlSchemaAttributeGroup;
pub type xmlSchemaAttributeGroupPtr = *mut xmlSchemaAttributeGroup;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlSchemaAttributeGroup {
  pub type_: xmlSchemaTypeType,
  pub next: *mut _xmlSchemaAttribute,
  pub name: *const xmlChar,
  pub id: *const xmlChar,
  pub ref_: *const xmlChar,
  pub refNs: *const xmlChar,
  pub annot: xmlSchemaAnnotPtr,
  pub attributes: xmlSchemaAttributePtr,
  pub node: xmlNodePtr,
  pub flags: ::std::os::raw::c_int,
  pub attributeWildcard: xmlSchemaWildcardPtr,
  pub refPrefix: *const xmlChar,
  pub refItem: xmlSchemaAttributeGroupPtr,
  pub targetNamespace: *const xmlChar,
  pub attrUses: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout__xmlSchemaAttributeGroup() {
  assert_eq!(
    ::std::mem::size_of::<_xmlSchemaAttributeGroup>(),
    120usize,
    concat!("Size of: ", stringify!(_xmlSchemaAttributeGroup))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlSchemaAttributeGroup>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlSchemaAttributeGroup))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttributeGroup>())).type_ as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttributeGroup),
  //     "::",
  //     stringify!(type_)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttributeGroup>())).next as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttributeGroup),
  //     "::",
  //     stringify!(next)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttributeGroup>())).name as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttributeGroup),
  //     "::",
  //     stringify!(name)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttributeGroup>())).id as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttributeGroup),
  //     "::",
  //     stringify!(id)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttributeGroup>())).ref_ as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttributeGroup),
  //     "::",
  //     stringify!(ref_)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttributeGroup>())).refNs as *const _ as usize },
  //   40usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttributeGroup),
  //     "::",
  //     stringify!(refNs)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttributeGroup>())).annot as *const _ as usize },
  //   48usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttributeGroup),
  //     "::",
  //     stringify!(annot)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttributeGroup>())).attributes as *const _ as usize },
  //   56usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttributeGroup),
  //     "::",
  //     stringify!(attributes)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttributeGroup>())).node as *const _ as usize },
  //   64usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttributeGroup),
  //     "::",
  //     stringify!(node)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttributeGroup>())).flags as *const _ as usize },
  //   72usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttributeGroup),
  //     "::",
  //     stringify!(flags)
  //   )
  // );
  // assert_eq!(
  //   unsafe {
  //     &(*(::std::ptr::null::<_xmlSchemaAttributeGroup>())).attributeWildcard as *const _ as usize
  //   },
  //   80usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttributeGroup),
  //     "::",
  //     stringify!(attributeWildcard)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttributeGroup>())).refPrefix as *const _ as usize },
  //   88usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttributeGroup),
  //     "::",
  //     stringify!(refPrefix)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttributeGroup>())).refItem as *const _ as usize },
  //   96usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttributeGroup),
  //     "::",
  //     stringify!(refItem)
  //   )
  // );
  // assert_eq!(
  //   unsafe {
  //     &(*(::std::ptr::null::<_xmlSchemaAttributeGroup>())).targetNamespace as *const _ as usize
  //   },
  //   104usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttributeGroup),
  //     "::",
  //     stringify!(targetNamespace)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaAttributeGroup>())).attrUses as *const _ as usize },
  //   112usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaAttributeGroup),
  //     "::",
  //     stringify!(attrUses)
  //   )
  // );
}
/// xmlSchemaTypeLink:
/// Used to build a list of types (e.g. member types of
/// simpleType with variety "union").
pub type xmlSchemaTypeLink = _xmlSchemaTypeLink;
pub type xmlSchemaTypeLinkPtr = *mut xmlSchemaTypeLink;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlSchemaTypeLink {
  pub next: *mut _xmlSchemaTypeLink,
  pub type_: xmlSchemaTypePtr,
}
#[test]
fn bindgen_test_layout__xmlSchemaTypeLink() {
  assert_eq!(
    ::std::mem::size_of::<_xmlSchemaTypeLink>(),
    16usize,
    concat!("Size of: ", stringify!(_xmlSchemaTypeLink))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlSchemaTypeLink>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlSchemaTypeLink))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaTypeLink>())).next as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaTypeLink),
  //     "::",
  //     stringify!(next)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaTypeLink>())).type_ as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaTypeLink),
  //     "::",
  //     stringify!(type_)
  //   )
  // );
}
/// xmlSchemaFacetLink:
/// Used to build a list of facets.
pub type xmlSchemaFacetLink = _xmlSchemaFacetLink;
pub type xmlSchemaFacetLinkPtr = *mut xmlSchemaFacetLink;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlSchemaFacetLink {
  pub next: *mut _xmlSchemaFacetLink,
  pub facet: xmlSchemaFacetPtr,
}
#[test]
fn bindgen_test_layout__xmlSchemaFacetLink() {
  assert_eq!(
    ::std::mem::size_of::<_xmlSchemaFacetLink>(),
    16usize,
    concat!("Size of: ", stringify!(_xmlSchemaFacetLink))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlSchemaFacetLink>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlSchemaFacetLink))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaFacetLink>())).next as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaFacetLink),
  //     "::",
  //     stringify!(next)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaFacetLink>())).facet as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaFacetLink),
  //     "::",
  //     stringify!(facet)
  //   )
  // );
}
/// _xmlSchemaType:
///
/// Schemas type definition.
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlSchemaType {
  pub type_: xmlSchemaTypeType,
  pub next: *mut _xmlSchemaType,
  pub name: *const xmlChar,
  pub id: *const xmlChar,
  pub ref_: *const xmlChar,
  pub refNs: *const xmlChar,
  pub annot: xmlSchemaAnnotPtr,
  pub subtypes: xmlSchemaTypePtr,
  pub attributes: xmlSchemaAttributePtr,
  pub node: xmlNodePtr,
  pub minOccurs: ::std::os::raw::c_int,
  pub maxOccurs: ::std::os::raw::c_int,
  pub flags: ::std::os::raw::c_int,
  pub contentType: xmlSchemaContentType,
  pub base: *const xmlChar,
  pub baseNs: *const xmlChar,
  pub baseType: xmlSchemaTypePtr,
  pub facets: xmlSchemaFacetPtr,
  pub redef: *mut _xmlSchemaType,
  pub recurse: ::std::os::raw::c_int,
  pub attributeUses: *mut xmlSchemaAttributeLinkPtr,
  pub attributeWildcard: xmlSchemaWildcardPtr,
  pub builtInType: ::std::os::raw::c_int,
  pub memberTypes: xmlSchemaTypeLinkPtr,
  pub facetSet: xmlSchemaFacetLinkPtr,
  pub refPrefix: *const xmlChar,
  pub contentTypeDef: xmlSchemaTypePtr,
  pub contModel: xmlRegexpPtr,
  pub targetNamespace: *const xmlChar,
  pub attrUses: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout__xmlSchemaType() {
  assert_eq!(
    ::std::mem::size_of::<_xmlSchemaType>(),
    224usize,
    concat!("Size of: ", stringify!(_xmlSchemaType))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlSchemaType>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlSchemaType))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaType>())).type_ as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaType),
  //     "::",
  //     stringify!(type_)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaType>())).next as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaType),
  //     "::",
  //     stringify!(next)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaType>())).name as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaType),
  //     "::",
  //     stringify!(name)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaType>())).id as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaType),
  //     "::",
  //     stringify!(id)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaType>())).ref_ as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaType),
  //     "::",
  //     stringify!(ref_)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaType>())).refNs as *const _ as usize },
  //   40usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaType),
  //     "::",
  //     stringify!(refNs)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaType>())).annot as *const _ as usize },
  //   48usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaType),
  //     "::",
  //     stringify!(annot)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaType>())).subtypes as *const _ as usize },
  //   56usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaType),
  //     "::",
  //     stringify!(subtypes)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaType>())).attributes as *const _ as usize },
  //   64usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaType),
  //     "::",
  //     stringify!(attributes)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaType>())).node as *const _ as usize },
  //   72usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaType),
  //     "::",
  //     stringify!(node)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaType>())).minOccurs as *const _ as usize },
  //   80usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaType),
  //     "::",
  //     stringify!(minOccurs)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaType>())).maxOccurs as *const _ as usize },
  //   84usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaType),
  //     "::",
  //     stringify!(maxOccurs)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaType>())).flags as *const _ as usize },
  //   88usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaType),
  //     "::",
  //     stringify!(flags)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaType>())).contentType as *const _ as usize },
  //   92usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaType),
  //     "::",
  //     stringify!(contentType)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaType>())).base as *const _ as usize },
  //   96usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaType),
  //     "::",
  //     stringify!(base)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaType>())).baseNs as *const _ as usize },
  //   104usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaType),
  //     "::",
  //     stringify!(baseNs)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaType>())).baseType as *const _ as usize },
  //   112usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaType),
  //     "::",
  //     stringify!(baseType)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaType>())).facets as *const _ as usize },
  //   120usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaType),
  //     "::",
  //     stringify!(facets)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaType>())).redef as *const _ as usize },
  //   128usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaType),
  //     "::",
  //     stringify!(redef)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaType>())).recurse as *const _ as usize },
  //   136usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaType),
  //     "::",
  //     stringify!(recurse)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaType>())).attributeUses as *const _ as usize },
  //   144usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaType),
  //     "::",
  //     stringify!(attributeUses)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaType>())).attributeWildcard as *const _ as usize },
  //   152usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaType),
  //     "::",
  //     stringify!(attributeWildcard)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaType>())).builtInType as *const _ as usize },
  //   160usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaType),
  //     "::",
  //     stringify!(builtInType)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaType>())).memberTypes as *const _ as usize },
  //   168usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaType),
  //     "::",
  //     stringify!(memberTypes)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaType>())).facetSet as *const _ as usize },
  //   176usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaType),
  //     "::",
  //     stringify!(facetSet)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaType>())).refPrefix as *const _ as usize },
  //   184usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaType),
  //     "::",
  //     stringify!(refPrefix)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaType>())).contentTypeDef as *const _ as usize },
  //   192usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaType),
  //     "::",
  //     stringify!(contentTypeDef)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaType>())).contModel as *const _ as usize },
  //   200usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaType),
  //     "::",
  //     stringify!(contModel)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaType>())).targetNamespace as *const _ as usize },
  //   208usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaType),
  //     "::",
  //     stringify!(targetNamespace)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaType>())).attrUses as *const _ as usize },
  //   216usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaType),
  //     "::",
  //     stringify!(attrUses)
  //   )
  // );
}
pub type xmlSchemaElement = _xmlSchemaElement;
pub type xmlSchemaElementPtr = *mut xmlSchemaElement;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlSchemaElement {
  pub type_: xmlSchemaTypeType,
  pub next: *mut _xmlSchemaType,
  pub name: *const xmlChar,
  pub id: *const xmlChar,
  pub ref_: *const xmlChar,
  pub refNs: *const xmlChar,
  pub annot: xmlSchemaAnnotPtr,
  pub subtypes: xmlSchemaTypePtr,
  pub attributes: xmlSchemaAttributePtr,
  pub node: xmlNodePtr,
  pub minOccurs: ::std::os::raw::c_int,
  pub maxOccurs: ::std::os::raw::c_int,
  pub flags: ::std::os::raw::c_int,
  pub targetNamespace: *const xmlChar,
  pub namedType: *const xmlChar,
  pub namedTypeNs: *const xmlChar,
  pub substGroup: *const xmlChar,
  pub substGroupNs: *const xmlChar,
  pub scope: *const xmlChar,
  pub value: *const xmlChar,
  pub refDecl: *mut _xmlSchemaElement,
  pub contModel: xmlRegexpPtr,
  pub contentType: xmlSchemaContentType,
  pub refPrefix: *const xmlChar,
  pub defVal: xmlSchemaValPtr,
  pub idcs: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout__xmlSchemaElement() {
  assert_eq!(
    ::std::mem::size_of::<_xmlSchemaElement>(),
    200usize,
    concat!("Size of: ", stringify!(_xmlSchemaElement))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlSchemaElement>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlSchemaElement))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaElement>())).type_ as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaElement),
  //     "::",
  //     stringify!(type_)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaElement>())).next as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaElement),
  //     "::",
  //     stringify!(next)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaElement>())).name as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaElement),
  //     "::",
  //     stringify!(name)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaElement>())).id as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaElement),
  //     "::",
  //     stringify!(id)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaElement>())).ref_ as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaElement),
  //     "::",
  //     stringify!(ref_)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaElement>())).refNs as *const _ as usize },
  //   40usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaElement),
  //     "::",
  //     stringify!(refNs)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaElement>())).annot as *const _ as usize },
  //   48usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaElement),
  //     "::",
  //     stringify!(annot)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaElement>())).subtypes as *const _ as usize },
  //   56usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaElement),
  //     "::",
  //     stringify!(subtypes)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaElement>())).attributes as *const _ as usize },
  //   64usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaElement),
  //     "::",
  //     stringify!(attributes)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaElement>())).node as *const _ as usize },
  //   72usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaElement),
  //     "::",
  //     stringify!(node)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaElement>())).minOccurs as *const _ as usize },
  //   80usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaElement),
  //     "::",
  //     stringify!(minOccurs)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaElement>())).maxOccurs as *const _ as usize },
  //   84usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaElement),
  //     "::",
  //     stringify!(maxOccurs)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaElement>())).flags as *const _ as usize },
  //   88usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaElement),
  //     "::",
  //     stringify!(flags)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaElement>())).targetNamespace as *const _ as usize },
  //   96usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaElement),
  //     "::",
  //     stringify!(targetNamespace)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaElement>())).namedType as *const _ as usize },
  //   104usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaElement),
  //     "::",
  //     stringify!(namedType)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaElement>())).namedTypeNs as *const _ as usize },
  //   112usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaElement),
  //     "::",
  //     stringify!(namedTypeNs)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaElement>())).substGroup as *const _ as usize },
  //   120usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaElement),
  //     "::",
  //     stringify!(substGroup)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaElement>())).substGroupNs as *const _ as usize },
  //   128usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaElement),
  //     "::",
  //     stringify!(substGroupNs)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaElement>())).scope as *const _ as usize },
  //   136usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaElement),
  //     "::",
  //     stringify!(scope)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaElement>())).value as *const _ as usize },
  //   144usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaElement),
  //     "::",
  //     stringify!(value)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaElement>())).refDecl as *const _ as usize },
  //   152usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaElement),
  //     "::",
  //     stringify!(refDecl)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaElement>())).contModel as *const _ as usize },
  //   160usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaElement),
  //     "::",
  //     stringify!(contModel)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaElement>())).contentType as *const _ as usize },
  //   168usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaElement),
  //     "::",
  //     stringify!(contentType)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaElement>())).refPrefix as *const _ as usize },
  //   176usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaElement),
  //     "::",
  //     stringify!(refPrefix)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaElement>())).defVal as *const _ as usize },
  //   184usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaElement),
  //     "::",
  //     stringify!(defVal)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaElement>())).idcs as *const _ as usize },
  //   192usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaElement),
  //     "::",
  //     stringify!(idcs)
  //   )
  // );
}
/// A facet definition.
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlSchemaFacet {
  pub type_: xmlSchemaTypeType,
  pub next: *mut _xmlSchemaFacet,
  pub value: *const xmlChar,
  pub id: *const xmlChar,
  pub annot: xmlSchemaAnnotPtr,
  pub node: xmlNodePtr,
  pub fixed: ::std::os::raw::c_int,
  pub whitespace: ::std::os::raw::c_int,
  pub val: xmlSchemaValPtr,
  pub regexp: xmlRegexpPtr,
}
#[test]
fn bindgen_test_layout__xmlSchemaFacet() {
  assert_eq!(
    ::std::mem::size_of::<_xmlSchemaFacet>(),
    72usize,
    concat!("Size of: ", stringify!(_xmlSchemaFacet))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlSchemaFacet>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlSchemaFacet))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaFacet>())).type_ as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaFacet),
  //     "::",
  //     stringify!(type_)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaFacet>())).next as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaFacet),
  //     "::",
  //     stringify!(next)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaFacet>())).value as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaFacet),
  //     "::",
  //     stringify!(value)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaFacet>())).id as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaFacet),
  //     "::",
  //     stringify!(id)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaFacet>())).annot as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaFacet),
  //     "::",
  //     stringify!(annot)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaFacet>())).node as *const _ as usize },
  //   40usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaFacet),
  //     "::",
  //     stringify!(node)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaFacet>())).fixed as *const _ as usize },
  //   48usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaFacet),
  //     "::",
  //     stringify!(fixed)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaFacet>())).whitespace as *const _ as usize },
  //   52usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaFacet),
  //     "::",
  //     stringify!(whitespace)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaFacet>())).val as *const _ as usize },
  //   56usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaFacet),
  //     "::",
  //     stringify!(val)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaFacet>())).regexp as *const _ as usize },
  //   64usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaFacet),
  //     "::",
  //     stringify!(regexp)
  //   )
  // );
}
/// A notation definition.
pub type xmlSchemaNotation = _xmlSchemaNotation;
pub type xmlSchemaNotationPtr = *mut xmlSchemaNotation;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlSchemaNotation {
  pub type_: xmlSchemaTypeType,
  pub name: *const xmlChar,
  pub annot: xmlSchemaAnnotPtr,
  pub identifier: *const xmlChar,
  pub targetNamespace: *const xmlChar,
}
#[test]
fn bindgen_test_layout__xmlSchemaNotation() {
  assert_eq!(
    ::std::mem::size_of::<_xmlSchemaNotation>(),
    40usize,
    concat!("Size of: ", stringify!(_xmlSchemaNotation))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlSchemaNotation>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlSchemaNotation))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaNotation>())).type_ as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaNotation),
  //     "::",
  //     stringify!(type_)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaNotation>())).name as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaNotation),
  //     "::",
  //     stringify!(name)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaNotation>())).annot as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaNotation),
  //     "::",
  //     stringify!(annot)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaNotation>())).identifier as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaNotation),
  //     "::",
  //     stringify!(identifier)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchemaNotation>())).targetNamespace as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchemaNotation),
  //     "::",
  //     stringify!(targetNamespace)
  //   )
  // );
}
/// _xmlSchema:
///
/// A Schemas definition
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlSchema {
  pub name: *const xmlChar,
  pub targetNamespace: *const xmlChar,
  pub version: *const xmlChar,
  pub id: *const xmlChar,
  pub doc: xmlDocPtr,
  pub annot: xmlSchemaAnnotPtr,
  pub flags: ::std::os::raw::c_int,
  pub typeDecl: xmlHashTablePtr,
  pub attrDecl: xmlHashTablePtr,
  pub attrgrpDecl: xmlHashTablePtr,
  pub elemDecl: xmlHashTablePtr,
  pub notaDecl: xmlHashTablePtr,
  pub schemasImports: xmlHashTablePtr,
  pub _private: *mut ::std::os::raw::c_void,
  pub groupDecl: xmlHashTablePtr,
  pub dict: xmlDictPtr,
  pub includes: *mut ::std::os::raw::c_void,
  pub preserve: ::std::os::raw::c_int,
  pub counter: ::std::os::raw::c_int,
  pub idcDef: xmlHashTablePtr,
  pub volatiles: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout__xmlSchema() {
  assert_eq!(
    ::std::mem::size_of::<_xmlSchema>(),
    160usize,
    concat!("Size of: ", stringify!(_xmlSchema))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlSchema>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlSchema))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchema>())).name as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchema),
  //     "::",
  //     stringify!(name)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchema>())).targetNamespace as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchema),
  //     "::",
  //     stringify!(targetNamespace)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchema>())).version as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchema),
  //     "::",
  //     stringify!(version)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchema>())).id as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchema),
  //     "::",
  //     stringify!(id)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchema>())).doc as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchema),
  //     "::",
  //     stringify!(doc)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchema>())).annot as *const _ as usize },
  //   40usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchema),
  //     "::",
  //     stringify!(annot)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchema>())).flags as *const _ as usize },
  //   48usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchema),
  //     "::",
  //     stringify!(flags)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchema>())).typeDecl as *const _ as usize },
  //   56usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchema),
  //     "::",
  //     stringify!(typeDecl)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchema>())).attrDecl as *const _ as usize },
  //   64usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchema),
  //     "::",
  //     stringify!(attrDecl)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchema>())).attrgrpDecl as *const _ as usize },
  //   72usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchema),
  //     "::",
  //     stringify!(attrgrpDecl)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchema>())).elemDecl as *const _ as usize },
  //   80usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchema),
  //     "::",
  //     stringify!(elemDecl)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchema>())).notaDecl as *const _ as usize },
  //   88usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchema),
  //     "::",
  //     stringify!(notaDecl)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchema>())).schemasImports as *const _ as usize },
  //   96usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchema),
  //     "::",
  //     stringify!(schemasImports)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchema>()))._private as *const _ as usize },
  //   104usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchema),
  //     "::",
  //     stringify!(_private)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchema>())).groupDecl as *const _ as usize },
  //   112usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchema),
  //     "::",
  //     stringify!(groupDecl)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchema>())).dict as *const _ as usize },
  //   120usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchema),
  //     "::",
  //     stringify!(dict)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchema>())).includes as *const _ as usize },
  //   128usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchema),
  //     "::",
  //     stringify!(includes)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchema>())).preserve as *const _ as usize },
  //   136usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchema),
  //     "::",
  //     stringify!(preserve)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchema>())).counter as *const _ as usize },
  //   140usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchema),
  //     "::",
  //     stringify!(counter)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchema>())).idcDef as *const _ as usize },
  //   144usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchema),
  //     "::",
  //     stringify!(idcDef)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlSchema>())).volatiles as *const _ as usize },
  //   152usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlSchema),
  //     "::",
  //     stringify!(volatiles)
  //   )
  // );
}
extern "C" {
  pub fn xmlSchemaFreeType(type_: xmlSchemaTypePtr);
}
extern "C" {
  pub fn xmlSchemaFreeWildcard(wildcard: xmlSchemaWildcardPtr);
}
pub const xmlSchematronValidOptions_XML_SCHEMATRON_OUT_QUIET: xmlSchematronValidOptions = 1;
pub const xmlSchematronValidOptions_XML_SCHEMATRON_OUT_TEXT: xmlSchematronValidOptions = 2;
pub const xmlSchematronValidOptions_XML_SCHEMATRON_OUT_XML: xmlSchematronValidOptions = 4;
pub const xmlSchematronValidOptions_XML_SCHEMATRON_OUT_ERROR: xmlSchematronValidOptions = 8;
pub const xmlSchematronValidOptions_XML_SCHEMATRON_OUT_FILE: xmlSchematronValidOptions = 256;
pub const xmlSchematronValidOptions_XML_SCHEMATRON_OUT_BUFFER: xmlSchematronValidOptions = 512;
pub const xmlSchematronValidOptions_XML_SCHEMATRON_OUT_IO: xmlSchematronValidOptions = 1_024;
pub type xmlSchematronValidOptions = u32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlSchematron {
  _unused: [u8; 0],
}
/// The schemas related types are kept internal
pub type xmlSchematron = _xmlSchematron;
pub type xmlSchematronPtr = *mut xmlSchematron;
/// xmlSchematronValidityErrorFunc:
/// @ctx: the validation context
/// @msg: the message
/// @...: extra arguments
///
/// Signature of an error callback from a Schematron validation
pub type xmlSchematronValidityErrorFunc = ::std::option::Option<
  unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, msg: *const ::std::os::raw::c_char, ...),
>;
/// xmlSchematronValidityWarningFunc:
/// @ctx: the validation context
/// @msg: the message
/// @...: extra arguments
///
/// Signature of a warning callback from a Schematron validation
pub type xmlSchematronValidityWarningFunc = ::std::option::Option<
  unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, msg: *const ::std::os::raw::c_char, ...),
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlSchematronParserCtxt {
  _unused: [u8; 0],
}
/// A schemas validation context
pub type xmlSchematronParserCtxt = _xmlSchematronParserCtxt;
pub type xmlSchematronParserCtxtPtr = *mut xmlSchematronParserCtxt;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlSchematronValidCtxt {
  _unused: [u8; 0],
}
pub type xmlSchematronValidCtxt = _xmlSchematronValidCtxt;
pub type xmlSchematronValidCtxtPtr = *mut xmlSchematronValidCtxt;
extern "C" {
  pub fn xmlSchematronNewParserCtxt(
    URL: *const ::std::os::raw::c_char,
  ) -> xmlSchematronParserCtxtPtr;
}
extern "C" {
  pub fn xmlSchematronNewMemParserCtxt(
    buffer: *const ::std::os::raw::c_char,
    size: ::std::os::raw::c_int,
  ) -> xmlSchematronParserCtxtPtr;
}
extern "C" {
  pub fn xmlSchematronNewDocParserCtxt(doc: xmlDocPtr) -> xmlSchematronParserCtxtPtr;
}
extern "C" {
  pub fn xmlSchematronFreeParserCtxt(ctxt: xmlSchematronParserCtxtPtr);
}
extern "C" {
  /// XMLPUBFUN void XMLCALL
  /// xmlSchematronSetParserErrors(xmlSchematronParserCtxtPtr ctxt,
  /// xmlSchematronValidityErrorFunc err,
  /// xmlSchematronValidityWarningFunc warn,
  /// void *ctx);
  /// XMLPUBFUN int XMLCALL
  /// xmlSchematronGetParserErrors(xmlSchematronParserCtxtPtr ctxt,
  /// xmlSchematronValidityErrorFunc * err,
  /// xmlSchematronValidityWarningFunc * warn,
  /// void **ctx);
  /// XMLPUBFUN int XMLCALL
  /// xmlSchematronIsValid (xmlSchematronValidCtxtPtr ctxt);
  pub fn xmlSchematronParse(ctxt: xmlSchematronParserCtxtPtr) -> xmlSchematronPtr;
}
extern "C" {
  pub fn xmlSchematronFree(schema: xmlSchematronPtr);
}
extern "C" {
  pub fn xmlSchematronSetValidStructuredErrors(
    ctxt: xmlSchematronValidCtxtPtr,
    serror: xmlStructuredErrorFunc,
    ctx: *mut ::std::os::raw::c_void,
  );
}
extern "C" {
  /// XMLPUBFUN void XMLCALL
  /// xmlSchematronSetValidErrors    (xmlSchematronValidCtxtPtr ctxt,
  /// xmlSchematronValidityErrorFunc err,
  /// xmlSchematronValidityWarningFunc warn,
  /// void *ctx);
  /// XMLPUBFUN int XMLCALL
  /// xmlSchematronGetValidErrors    (xmlSchematronValidCtxtPtr ctxt,
  /// xmlSchematronValidityErrorFunc *err,
  /// xmlSchematronValidityWarningFunc *warn,
  /// void **ctx);
  /// XMLPUBFUN int XMLCALL
  /// xmlSchematronSetValidOptions(xmlSchematronValidCtxtPtr ctxt,
  /// int options);
  /// XMLPUBFUN int XMLCALL
  /// xmlSchematronValidCtxtGetOptions(xmlSchematronValidCtxtPtr ctxt);
  /// XMLPUBFUN int XMLCALL
  /// xmlSchematronValidateOneElement (xmlSchematronValidCtxtPtr ctxt,
  /// xmlNodePtr elem);
  pub fn xmlSchematronNewValidCtxt(
    schema: xmlSchematronPtr,
    options: ::std::os::raw::c_int,
  ) -> xmlSchematronValidCtxtPtr;
}
extern "C" {
  pub fn xmlSchematronFreeValidCtxt(ctxt: xmlSchematronValidCtxtPtr);
}
extern "C" {
  pub fn xmlSchematronValidateDoc(
    ctxt: xmlSchematronValidCtxtPtr,
    instance: xmlDocPtr,
  ) -> ::std::os::raw::c_int;
}
/// xmlURI:
///
/// A parsed URI reference. This is a struct containing the various fields
/// as described in RFC 2396 but separated for further processing.
///
/// Note: query is a deprecated field which is incorrectly unescaped.
/// query_raw takes precedence over query if the former is set.
/// See: http://mail.gnome.org/archives/xml/2007-April/thread.html#00127
pub type xmlURI = _xmlURI;
pub type xmlURIPtr = *mut xmlURI;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlURI {
  pub scheme: *mut ::std::os::raw::c_char,
  pub opaque: *mut ::std::os::raw::c_char,
  pub authority: *mut ::std::os::raw::c_char,
  pub server: *mut ::std::os::raw::c_char,
  pub user: *mut ::std::os::raw::c_char,
  pub port: ::std::os::raw::c_int,
  pub path: *mut ::std::os::raw::c_char,
  pub query: *mut ::std::os::raw::c_char,
  pub fragment: *mut ::std::os::raw::c_char,
  pub cleanup: ::std::os::raw::c_int,
  pub query_raw: *mut ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout__xmlURI() {
  assert_eq!(
    ::std::mem::size_of::<_xmlURI>(),
    88usize,
    concat!("Size of: ", stringify!(_xmlURI))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlURI>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlURI))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlURI>())).scheme as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlURI),
  //     "::",
  //     stringify!(scheme)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlURI>())).opaque as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlURI),
  //     "::",
  //     stringify!(opaque)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlURI>())).authority as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlURI),
  //     "::",
  //     stringify!(authority)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlURI>())).server as *const _ as usize },
  //   24usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlURI),
  //     "::",
  //     stringify!(server)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlURI>())).user as *const _ as usize },
  //   32usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlURI),
  //     "::",
  //     stringify!(user)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlURI>())).port as *const _ as usize },
  //   40usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlURI),
  //     "::",
  //     stringify!(port)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlURI>())).path as *const _ as usize },
  //   48usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlURI),
  //     "::",
  //     stringify!(path)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlURI>())).query as *const _ as usize },
  //   56usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlURI),
  //     "::",
  //     stringify!(query)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlURI>())).fragment as *const _ as usize },
  //   64usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlURI),
  //     "::",
  //     stringify!(fragment)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlURI>())).cleanup as *const _ as usize },
  //   72usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlURI),
  //     "::",
  //     stringify!(cleanup)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlURI>())).query_raw as *const _ as usize },
  //   80usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlURI),
  //     "::",
  //     stringify!(query_raw)
  //   )
  // );
}
extern "C" {
  pub fn xmlCreateURI() -> xmlURIPtr;
}
extern "C" {
  pub fn xmlBuildURI(URI: *const xmlChar, base: *const xmlChar) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlBuildRelativeURI(URI: *const xmlChar, base: *const xmlChar) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlParseURI(str: *const ::std::os::raw::c_char) -> xmlURIPtr;
}
extern "C" {
  pub fn xmlParseURIRaw(
    str: *const ::std::os::raw::c_char,
    raw: ::std::os::raw::c_int,
  ) -> xmlURIPtr;
}
extern "C" {
  pub fn xmlParseURIReference(
    uri: xmlURIPtr,
    str: *const ::std::os::raw::c_char,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSaveUri(uri: xmlURIPtr) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlPrintURI(stream: *mut FILE, uri: xmlURIPtr);
}
extern "C" {
  pub fn xmlURIEscapeStr(str: *const xmlChar, list: *const xmlChar) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlURIUnescapeString(
    str: *const ::std::os::raw::c_char,
    len: ::std::os::raw::c_int,
    target: *mut ::std::os::raw::c_char,
  ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
  pub fn xmlNormalizeURIPath(path: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlURIEscape(str: *const xmlChar) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlFreeURI(uri: xmlURIPtr);
}
extern "C" {
  pub fn xmlCanonicPath(path: *const xmlChar) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlPathToURI(path: *const xmlChar) -> *mut xmlChar;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlXIncludeCtxt {
  _unused: [u8; 0],
}
pub type xmlXIncludeCtxt = _xmlXIncludeCtxt;
pub type xmlXIncludeCtxtPtr = *mut xmlXIncludeCtxt;
extern "C" {
  pub fn xmlXIncludeProcess(doc: xmlDocPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXIncludeProcessFlags(
    doc: xmlDocPtr,
    flags: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXIncludeProcessFlagsData(
    doc: xmlDocPtr,
    flags: ::std::os::raw::c_int,
    data: *mut ::std::os::raw::c_void,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXIncludeProcessTreeFlagsData(
    tree: xmlNodePtr,
    flags: ::std::os::raw::c_int,
    data: *mut ::std::os::raw::c_void,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXIncludeProcessTree(tree: xmlNodePtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXIncludeProcessTreeFlags(
    tree: xmlNodePtr,
    flags: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXIncludeNewContext(doc: xmlDocPtr) -> xmlXIncludeCtxtPtr;
}
extern "C" {
  pub fn xmlXIncludeSetFlags(
    ctxt: xmlXIncludeCtxtPtr,
    flags: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXIncludeFreeContext(ctxt: xmlXIncludeCtxtPtr);
}
extern "C" {
  pub fn xmlXIncludeProcessNode(
    ctxt: xmlXIncludeCtxtPtr,
    tree: xmlNodePtr,
  ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlModule {
  _unused: [u8; 0],
}
/// xmlModulePtr:
///
/// A handle to a dynamically loaded module
pub type xmlModule = _xmlModule;
pub type xmlModulePtr = *mut xmlModule;
pub const xmlModuleOption_XML_MODULE_LAZY: xmlModuleOption = 1;
pub const xmlModuleOption_XML_MODULE_LOCAL: xmlModuleOption = 2;
/// xmlModuleOption:
///
/// enumeration of options that can be passed down to xmlModuleOpen()
pub type xmlModuleOption = u32;
extern "C" {
  pub fn xmlModuleOpen(
    filename: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> xmlModulePtr;
}
extern "C" {
  pub fn xmlModuleSymbol(
    module: xmlModulePtr,
    name: *const ::std::os::raw::c_char,
    result: *mut *mut ::std::os::raw::c_void,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlModuleClose(module: xmlModulePtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlModuleFree(module: xmlModulePtr) -> ::std::os::raw::c_int;
}
pub const xmlSchemaValidError_XML_SCHEMAS_ERR_OK: xmlSchemaValidError = 0;
pub const xmlSchemaValidError_XML_SCHEMAS_ERR_NOROOT: xmlSchemaValidError = 1;
pub const xmlSchemaValidError_XML_SCHEMAS_ERR_UNDECLAREDELEM: xmlSchemaValidError = 2;
pub const xmlSchemaValidError_XML_SCHEMAS_ERR_NOTTOPLEVEL: xmlSchemaValidError = 3;
pub const xmlSchemaValidError_XML_SCHEMAS_ERR_MISSING: xmlSchemaValidError = 4;
pub const xmlSchemaValidError_XML_SCHEMAS_ERR_WRONGELEM: xmlSchemaValidError = 5;
pub const xmlSchemaValidError_XML_SCHEMAS_ERR_NOTYPE: xmlSchemaValidError = 6;
pub const xmlSchemaValidError_XML_SCHEMAS_ERR_NOROLLBACK: xmlSchemaValidError = 7;
pub const xmlSchemaValidError_XML_SCHEMAS_ERR_ISABSTRACT: xmlSchemaValidError = 8;
pub const xmlSchemaValidError_XML_SCHEMAS_ERR_NOTEMPTY: xmlSchemaValidError = 9;
pub const xmlSchemaValidError_XML_SCHEMAS_ERR_ELEMCONT: xmlSchemaValidError = 10;
pub const xmlSchemaValidError_XML_SCHEMAS_ERR_HAVEDEFAULT: xmlSchemaValidError = 11;
pub const xmlSchemaValidError_XML_SCHEMAS_ERR_NOTNILLABLE: xmlSchemaValidError = 12;
pub const xmlSchemaValidError_XML_SCHEMAS_ERR_EXTRACONTENT: xmlSchemaValidError = 13;
pub const xmlSchemaValidError_XML_SCHEMAS_ERR_INVALIDATTR: xmlSchemaValidError = 14;
pub const xmlSchemaValidError_XML_SCHEMAS_ERR_INVALIDELEM: xmlSchemaValidError = 15;
pub const xmlSchemaValidError_XML_SCHEMAS_ERR_NOTDETERMINIST: xmlSchemaValidError = 16;
pub const xmlSchemaValidError_XML_SCHEMAS_ERR_CONSTRUCT: xmlSchemaValidError = 17;
pub const xmlSchemaValidError_XML_SCHEMAS_ERR_INTERNAL: xmlSchemaValidError = 18;
pub const xmlSchemaValidError_XML_SCHEMAS_ERR_NOTSIMPLE: xmlSchemaValidError = 19;
pub const xmlSchemaValidError_XML_SCHEMAS_ERR_ATTRUNKNOWN: xmlSchemaValidError = 20;
pub const xmlSchemaValidError_XML_SCHEMAS_ERR_ATTRINVALID: xmlSchemaValidError = 21;
pub const xmlSchemaValidError_XML_SCHEMAS_ERR_VALUE: xmlSchemaValidError = 22;
pub const xmlSchemaValidError_XML_SCHEMAS_ERR_FACET: xmlSchemaValidError = 23;
pub const xmlSchemaValidError_XML_SCHEMAS_ERR_: xmlSchemaValidError = 24;
pub const xmlSchemaValidError_XML_SCHEMAS_ERR_XXX: xmlSchemaValidError = 25;
/// This error codes are obsolete; not used any more.
pub type xmlSchemaValidError = u32;
pub const xmlSchemaValidOption_XML_SCHEMA_VAL_VC_I_CREATE: xmlSchemaValidOption = 1;
/// xmlSchemaValidOption:
///
/// This is the set of XML Schema validation options.
pub type xmlSchemaValidOption = u32;
/// The schemas related types are kept internal
pub type xmlSchema = _xmlSchema;
pub type xmlSchemaPtr = *mut xmlSchema;
/// xmlSchemaValidityErrorFunc:
/// @ctx: the validation context
/// @msg: the message
/// @...: extra arguments
///
/// Signature of an error callback from an XSD validation
pub type xmlSchemaValidityErrorFunc = ::std::option::Option<
  unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, msg: *const ::std::os::raw::c_char, ...),
>;
/// xmlSchemaValidityWarningFunc:
/// @ctx: the validation context
/// @msg: the message
/// @...: extra arguments
///
/// Signature of a warning callback from an XSD validation
pub type xmlSchemaValidityWarningFunc = ::std::option::Option<
  unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, msg: *const ::std::os::raw::c_char, ...),
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlSchemaParserCtxt {
  _unused: [u8; 0],
}
/// A schemas validation context
pub type xmlSchemaParserCtxt = _xmlSchemaParserCtxt;
pub type xmlSchemaParserCtxtPtr = *mut xmlSchemaParserCtxt;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlSchemaValidCtxt {
  _unused: [u8; 0],
}
pub type xmlSchemaValidCtxt = _xmlSchemaValidCtxt;
pub type xmlSchemaValidCtxtPtr = *mut xmlSchemaValidCtxt;
/// xmlSchemaValidityLocatorFunc:
/// @ctx: user provided context
/// @file: returned file information
/// @line: returned line information
///
/// A schemas validation locator, a callback called by the validator.
/// This is used when file or node informations are not available
/// to find out what file and line number are affected
///
/// Returns: 0 in case of success and -1 in case of error
pub type xmlSchemaValidityLocatorFunc = ::std::option::Option<
  unsafe extern "C" fn(
    ctx: *mut ::std::os::raw::c_void,
    file: *mut *const ::std::os::raw::c_char,
    line: *mut ::std::os::raw::c_ulong,
  ) -> ::std::os::raw::c_int,
>;
extern "C" {
  pub fn xmlSchemaNewParserCtxt(URL: *const ::std::os::raw::c_char) -> xmlSchemaParserCtxtPtr;
}
extern "C" {
  pub fn xmlSchemaNewMemParserCtxt(
    buffer: *const ::std::os::raw::c_char,
    size: ::std::os::raw::c_int,
  ) -> xmlSchemaParserCtxtPtr;
}
extern "C" {
  pub fn xmlSchemaNewDocParserCtxt(doc: xmlDocPtr) -> xmlSchemaParserCtxtPtr;
}
extern "C" {
  pub fn xmlSchemaFreeParserCtxt(ctxt: xmlSchemaParserCtxtPtr);
}
extern "C" {
  pub fn xmlSchemaSetParserErrors(
    ctxt: xmlSchemaParserCtxtPtr,
    err: xmlSchemaValidityErrorFunc,
    warn: xmlSchemaValidityWarningFunc,
    ctx: *mut ::std::os::raw::c_void,
  );
}
extern "C" {
  pub fn xmlSchemaSetParserStructuredErrors(
    ctxt: xmlSchemaParserCtxtPtr,
    serror: xmlStructuredErrorFunc,
    ctx: *mut ::std::os::raw::c_void,
  );
}
extern "C" {
  pub fn xmlSchemaGetParserErrors(
    ctxt: xmlSchemaParserCtxtPtr,
    err: *mut xmlSchemaValidityErrorFunc,
    warn: *mut xmlSchemaValidityWarningFunc,
    ctx: *mut *mut ::std::os::raw::c_void,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSchemaIsValid(ctxt: xmlSchemaValidCtxtPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSchemaParse(ctxt: xmlSchemaParserCtxtPtr) -> xmlSchemaPtr;
}
extern "C" {
  pub fn xmlSchemaFree(schema: xmlSchemaPtr);
}
extern "C" {
  pub fn xmlSchemaDump(output: *mut FILE, schema: xmlSchemaPtr);
}
extern "C" {
  pub fn xmlSchemaSetValidErrors(
    ctxt: xmlSchemaValidCtxtPtr,
    err: xmlSchemaValidityErrorFunc,
    warn: xmlSchemaValidityWarningFunc,
    ctx: *mut ::std::os::raw::c_void,
  );
}
extern "C" {
  pub fn xmlSchemaSetValidStructuredErrors(
    ctxt: xmlSchemaValidCtxtPtr,
    serror: xmlStructuredErrorFunc,
    ctx: *mut ::std::os::raw::c_void,
  );
}
extern "C" {
  pub fn xmlSchemaGetValidErrors(
    ctxt: xmlSchemaValidCtxtPtr,
    err: *mut xmlSchemaValidityErrorFunc,
    warn: *mut xmlSchemaValidityWarningFunc,
    ctx: *mut *mut ::std::os::raw::c_void,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSchemaSetValidOptions(
    ctxt: xmlSchemaValidCtxtPtr,
    options: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSchemaValidateSetFilename(
    vctxt: xmlSchemaValidCtxtPtr,
    filename: *const ::std::os::raw::c_char,
  );
}
extern "C" {
  pub fn xmlSchemaValidCtxtGetOptions(ctxt: xmlSchemaValidCtxtPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSchemaNewValidCtxt(schema: xmlSchemaPtr) -> xmlSchemaValidCtxtPtr;
}
extern "C" {
  pub fn xmlSchemaFreeValidCtxt(ctxt: xmlSchemaValidCtxtPtr);
}
extern "C" {
  pub fn xmlSchemaValidateDoc(
    ctxt: xmlSchemaValidCtxtPtr,
    instance: xmlDocPtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSchemaValidateOneElement(
    ctxt: xmlSchemaValidCtxtPtr,
    elem: xmlNodePtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSchemaValidateStream(
    ctxt: xmlSchemaValidCtxtPtr,
    input: xmlParserInputBufferPtr,
    enc: xmlCharEncoding,
    sax: xmlSAXHandlerPtr,
    user_data: *mut ::std::os::raw::c_void,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSchemaValidateFile(
    ctxt: xmlSchemaValidCtxtPtr,
    filename: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSchemaValidCtxtGetParserCtxt(ctxt: xmlSchemaValidCtxtPtr) -> xmlParserCtxtPtr;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlSchemaSAXPlug {
  _unused: [u8; 0],
}
pub type xmlSchemaSAXPlugStruct = _xmlSchemaSAXPlug;
pub type xmlSchemaSAXPlugPtr = *mut xmlSchemaSAXPlugStruct;
extern "C" {
  pub fn xmlSchemaSAXPlug(
    ctxt: xmlSchemaValidCtxtPtr,
    sax: *mut xmlSAXHandlerPtr,
    user_data: *mut *mut ::std::os::raw::c_void,
  ) -> xmlSchemaSAXPlugPtr;
}
extern "C" {
  pub fn xmlSchemaSAXUnplug(plug: xmlSchemaSAXPlugPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSchemaValidateSetLocator(
    vctxt: xmlSchemaValidCtxtPtr,
    f: xmlSchemaValidityLocatorFunc,
    ctxt: *mut ::std::os::raw::c_void,
  );
}
pub const xmlParserSeverities_XML_PARSER_SEVERITY_VALIDITY_WARNING: xmlParserSeverities = 1;
pub const xmlParserSeverities_XML_PARSER_SEVERITY_VALIDITY_ERROR: xmlParserSeverities = 2;
pub const xmlParserSeverities_XML_PARSER_SEVERITY_WARNING: xmlParserSeverities = 3;
pub const xmlParserSeverities_XML_PARSER_SEVERITY_ERROR: xmlParserSeverities = 4;
/// xmlParserSeverities:
///
/// How severe an error callback is when the per-reader error callback API
/// is used.
pub type xmlParserSeverities = u32;
pub const xmlTextReaderMode_XML_TEXTREADER_MODE_INITIAL: xmlTextReaderMode = 0;
pub const xmlTextReaderMode_XML_TEXTREADER_MODE_INTERACTIVE: xmlTextReaderMode = 1;
pub const xmlTextReaderMode_XML_TEXTREADER_MODE_ERROR: xmlTextReaderMode = 2;
pub const xmlTextReaderMode_XML_TEXTREADER_MODE_EOF: xmlTextReaderMode = 3;
pub const xmlTextReaderMode_XML_TEXTREADER_MODE_CLOSED: xmlTextReaderMode = 4;
pub const xmlTextReaderMode_XML_TEXTREADER_MODE_READING: xmlTextReaderMode = 5;
/// xmlTextReaderMode:
///
/// Internal state values for the reader.
pub type xmlTextReaderMode = u32;
pub const xmlParserProperties_XML_PARSER_LOADDTD: xmlParserProperties = 1;
pub const xmlParserProperties_XML_PARSER_DEFAULTATTRS: xmlParserProperties = 2;
pub const xmlParserProperties_XML_PARSER_VALIDATE: xmlParserProperties = 3;
pub const xmlParserProperties_XML_PARSER_SUBST_ENTITIES: xmlParserProperties = 4;
/// xmlParserProperties:
///
/// Some common options to use with xmlTextReaderSetParserProp, but it
/// is better to use xmlParserOption and the xmlReaderNewxxx and
/// xmlReaderForxxx APIs now.
pub type xmlParserProperties = u32;
pub const xmlReaderTypes_XML_READER_TYPE_NONE: xmlReaderTypes = 0;
pub const xmlReaderTypes_XML_READER_TYPE_ELEMENT: xmlReaderTypes = 1;
pub const xmlReaderTypes_XML_READER_TYPE_ATTRIBUTE: xmlReaderTypes = 2;
pub const xmlReaderTypes_XML_READER_TYPE_TEXT: xmlReaderTypes = 3;
pub const xmlReaderTypes_XML_READER_TYPE_CDATA: xmlReaderTypes = 4;
pub const xmlReaderTypes_XML_READER_TYPE_ENTITY_REFERENCE: xmlReaderTypes = 5;
pub const xmlReaderTypes_XML_READER_TYPE_ENTITY: xmlReaderTypes = 6;
pub const xmlReaderTypes_XML_READER_TYPE_PROCESSING_INSTRUCTION: xmlReaderTypes = 7;
pub const xmlReaderTypes_XML_READER_TYPE_COMMENT: xmlReaderTypes = 8;
pub const xmlReaderTypes_XML_READER_TYPE_DOCUMENT: xmlReaderTypes = 9;
pub const xmlReaderTypes_XML_READER_TYPE_DOCUMENT_TYPE: xmlReaderTypes = 10;
pub const xmlReaderTypes_XML_READER_TYPE_DOCUMENT_FRAGMENT: xmlReaderTypes = 11;
pub const xmlReaderTypes_XML_READER_TYPE_NOTATION: xmlReaderTypes = 12;
pub const xmlReaderTypes_XML_READER_TYPE_WHITESPACE: xmlReaderTypes = 13;
pub const xmlReaderTypes_XML_READER_TYPE_SIGNIFICANT_WHITESPACE: xmlReaderTypes = 14;
pub const xmlReaderTypes_XML_READER_TYPE_END_ELEMENT: xmlReaderTypes = 15;
pub const xmlReaderTypes_XML_READER_TYPE_END_ENTITY: xmlReaderTypes = 16;
pub const xmlReaderTypes_XML_READER_TYPE_XML_DECLARATION: xmlReaderTypes = 17;
/// xmlReaderTypes:
///
/// Predefined constants for the different types of nodes.
pub type xmlReaderTypes = u32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlTextReader {
  _unused: [u8; 0],
}
/// xmlTextReader:
///
/// Structure for an xmlReader context.
pub type xmlTextReader = _xmlTextReader;
/// xmlTextReaderPtr:
///
/// Pointer to an xmlReader context.
pub type xmlTextReaderPtr = *mut xmlTextReader;
extern "C" {
  pub fn xmlNewTextReader(
    input: xmlParserInputBufferPtr,
    URI: *const ::std::os::raw::c_char,
  ) -> xmlTextReaderPtr;
}
extern "C" {
  pub fn xmlNewTextReaderFilename(URI: *const ::std::os::raw::c_char) -> xmlTextReaderPtr;
}
extern "C" {
  pub fn xmlFreeTextReader(reader: xmlTextReaderPtr);
}
extern "C" {
  pub fn xmlTextReaderSetup(
    reader: xmlTextReaderPtr,
    input: xmlParserInputBufferPtr,
    URL: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderRead(reader: xmlTextReaderPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderReadInnerXml(reader: xmlTextReaderPtr) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlTextReaderReadOuterXml(reader: xmlTextReaderPtr) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlTextReaderReadString(reader: xmlTextReaderPtr) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlTextReaderReadAttributeValue(reader: xmlTextReaderPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderAttributeCount(reader: xmlTextReaderPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderDepth(reader: xmlTextReaderPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderHasAttributes(reader: xmlTextReaderPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderHasValue(reader: xmlTextReaderPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderIsDefault(reader: xmlTextReaderPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderIsEmptyElement(reader: xmlTextReaderPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderNodeType(reader: xmlTextReaderPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderQuoteChar(reader: xmlTextReaderPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderReadState(reader: xmlTextReaderPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderIsNamespaceDecl(reader: xmlTextReaderPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderConstBaseUri(reader: xmlTextReaderPtr) -> *const xmlChar;
}
extern "C" {
  pub fn xmlTextReaderConstLocalName(reader: xmlTextReaderPtr) -> *const xmlChar;
}
extern "C" {
  pub fn xmlTextReaderConstName(reader: xmlTextReaderPtr) -> *const xmlChar;
}
extern "C" {
  pub fn xmlTextReaderConstNamespaceUri(reader: xmlTextReaderPtr) -> *const xmlChar;
}
extern "C" {
  pub fn xmlTextReaderConstPrefix(reader: xmlTextReaderPtr) -> *const xmlChar;
}
extern "C" {
  pub fn xmlTextReaderConstXmlLang(reader: xmlTextReaderPtr) -> *const xmlChar;
}
extern "C" {
  pub fn xmlTextReaderConstString(reader: xmlTextReaderPtr, str: *const xmlChar) -> *const xmlChar;
}
extern "C" {
  pub fn xmlTextReaderConstValue(reader: xmlTextReaderPtr) -> *const xmlChar;
}
extern "C" {
  pub fn xmlTextReaderBaseUri(reader: xmlTextReaderPtr) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlTextReaderLocalName(reader: xmlTextReaderPtr) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlTextReaderName(reader: xmlTextReaderPtr) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlTextReaderNamespaceUri(reader: xmlTextReaderPtr) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlTextReaderPrefix(reader: xmlTextReaderPtr) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlTextReaderXmlLang(reader: xmlTextReaderPtr) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlTextReaderValue(reader: xmlTextReaderPtr) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlTextReaderClose(reader: xmlTextReaderPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderGetAttributeNo(
    reader: xmlTextReaderPtr,
    no: ::std::os::raw::c_int,
  ) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlTextReaderGetAttribute(reader: xmlTextReaderPtr, name: *const xmlChar) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlTextReaderGetAttributeNs(
    reader: xmlTextReaderPtr,
    localName: *const xmlChar,
    namespaceURI: *const xmlChar,
  ) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlTextReaderGetRemainder(reader: xmlTextReaderPtr) -> xmlParserInputBufferPtr;
}
extern "C" {
  pub fn xmlTextReaderLookupNamespace(
    reader: xmlTextReaderPtr,
    prefix: *const xmlChar,
  ) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlTextReaderMoveToAttributeNo(
    reader: xmlTextReaderPtr,
    no: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderMoveToAttribute(
    reader: xmlTextReaderPtr,
    name: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderMoveToAttributeNs(
    reader: xmlTextReaderPtr,
    localName: *const xmlChar,
    namespaceURI: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderMoveToFirstAttribute(reader: xmlTextReaderPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderMoveToNextAttribute(reader: xmlTextReaderPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderMoveToElement(reader: xmlTextReaderPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderNormalization(reader: xmlTextReaderPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderConstEncoding(reader: xmlTextReaderPtr) -> *const xmlChar;
}
extern "C" {
  pub fn xmlTextReaderSetParserProp(
    reader: xmlTextReaderPtr,
    prop: ::std::os::raw::c_int,
    value: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderGetParserProp(
    reader: xmlTextReaderPtr,
    prop: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderCurrentNode(reader: xmlTextReaderPtr) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlTextReaderGetParserLineNumber(reader: xmlTextReaderPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderGetParserColumnNumber(reader: xmlTextReaderPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderPreserve(reader: xmlTextReaderPtr) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlTextReaderPreservePattern(
    reader: xmlTextReaderPtr,
    pattern: *const xmlChar,
    namespaces: *mut *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderCurrentDoc(reader: xmlTextReaderPtr) -> xmlDocPtr;
}
extern "C" {
  pub fn xmlTextReaderExpand(reader: xmlTextReaderPtr) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlTextReaderNext(reader: xmlTextReaderPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderNextSibling(reader: xmlTextReaderPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderIsValid(reader: xmlTextReaderPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderRelaxNGValidate(
    reader: xmlTextReaderPtr,
    rng: *const ::std::os::raw::c_char,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderRelaxNGValidateCtxt(
    reader: xmlTextReaderPtr,
    ctxt: xmlRelaxNGValidCtxtPtr,
    options: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderRelaxNGSetSchema(
    reader: xmlTextReaderPtr,
    schema: xmlRelaxNGPtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderSchemaValidate(
    reader: xmlTextReaderPtr,
    xsd: *const ::std::os::raw::c_char,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderSchemaValidateCtxt(
    reader: xmlTextReaderPtr,
    ctxt: xmlSchemaValidCtxtPtr,
    options: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderSetSchema(
    reader: xmlTextReaderPtr,
    schema: xmlSchemaPtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderConstXmlVersion(reader: xmlTextReaderPtr) -> *const xmlChar;
}
extern "C" {
  pub fn xmlTextReaderStandalone(reader: xmlTextReaderPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderByteConsumed(reader: xmlTextReaderPtr) -> ::std::os::raw::c_long;
}
extern "C" {
  pub fn xmlReaderWalker(doc: xmlDocPtr) -> xmlTextReaderPtr;
}
extern "C" {
  pub fn xmlReaderForDoc(
    cur: *const xmlChar,
    URL: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> xmlTextReaderPtr;
}
extern "C" {
  pub fn xmlReaderForFile(
    filename: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> xmlTextReaderPtr;
}
extern "C" {
  pub fn xmlReaderForMemory(
    buffer: *const ::std::os::raw::c_char,
    size: ::std::os::raw::c_int,
    URL: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> xmlTextReaderPtr;
}
extern "C" {
  pub fn xmlReaderForFd(
    fd: ::std::os::raw::c_int,
    URL: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> xmlTextReaderPtr;
}
extern "C" {
  pub fn xmlReaderForIO(
    ioread: xmlInputReadCallback,
    ioclose: xmlInputCloseCallback,
    ioctx: *mut ::std::os::raw::c_void,
    URL: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> xmlTextReaderPtr;
}
extern "C" {
  pub fn xmlReaderNewWalker(reader: xmlTextReaderPtr, doc: xmlDocPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlReaderNewDoc(
    reader: xmlTextReaderPtr,
    cur: *const xmlChar,
    URL: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlReaderNewFile(
    reader: xmlTextReaderPtr,
    filename: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlReaderNewMemory(
    reader: xmlTextReaderPtr,
    buffer: *const ::std::os::raw::c_char,
    size: ::std::os::raw::c_int,
    URL: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlReaderNewFd(
    reader: xmlTextReaderPtr,
    fd: ::std::os::raw::c_int,
    URL: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlReaderNewIO(
    reader: xmlTextReaderPtr,
    ioread: xmlInputReadCallback,
    ioclose: xmlInputCloseCallback,
    ioctx: *mut ::std::os::raw::c_void,
    URL: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
pub type xmlTextReaderLocatorPtr = *mut ::std::os::raw::c_void;
/// xmlTextReaderErrorFunc:
/// @arg: the user argument
/// @msg: the message
/// @severity: the severity of the error
/// @locator: a locator indicating where the error occured
///
/// Signature of an error callback from a reader parser
pub type xmlTextReaderErrorFunc = ::std::option::Option<
  unsafe extern "C" fn(
    arg: *mut ::std::os::raw::c_void,
    msg: *const ::std::os::raw::c_char,
    severity: xmlParserSeverities,
    locator: xmlTextReaderLocatorPtr,
  ),
>;
extern "C" {
  pub fn xmlTextReaderLocatorLineNumber(locator: xmlTextReaderLocatorPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextReaderLocatorBaseURI(locator: xmlTextReaderLocatorPtr) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlTextReaderSetErrorHandler(
    reader: xmlTextReaderPtr,
    f: xmlTextReaderErrorFunc,
    arg: *mut ::std::os::raw::c_void,
  );
}
extern "C" {
  pub fn xmlTextReaderSetStructuredErrorHandler(
    reader: xmlTextReaderPtr,
    f: xmlStructuredErrorFunc,
    arg: *mut ::std::os::raw::c_void,
  );
}
extern "C" {
  pub fn xmlTextReaderGetErrorHandler(
    reader: xmlTextReaderPtr,
    f: *mut xmlTextReaderErrorFunc,
    arg: *mut *mut ::std::os::raw::c_void,
  );
}
pub const xmlSaveOption_XML_SAVE_FORMAT: xmlSaveOption = 1;
pub const xmlSaveOption_XML_SAVE_NO_DECL: xmlSaveOption = 2;
pub const xmlSaveOption_XML_SAVE_NO_EMPTY: xmlSaveOption = 4;
pub const xmlSaveOption_XML_SAVE_NO_XHTML: xmlSaveOption = 8;
pub const xmlSaveOption_XML_SAVE_XHTML: xmlSaveOption = 16;
pub const xmlSaveOption_XML_SAVE_AS_XML: xmlSaveOption = 32;
pub const xmlSaveOption_XML_SAVE_AS_HTML: xmlSaveOption = 64;
pub const xmlSaveOption_XML_SAVE_WSNONSIG: xmlSaveOption = 128;
/// xmlSaveOption:
///
/// This is the set of XML save options that can be passed down
/// to the xmlSaveToFd() and similar calls.
pub type xmlSaveOption = u32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlSaveCtxt {
  _unused: [u8; 0],
}
pub type xmlSaveCtxt = _xmlSaveCtxt;
pub type xmlSaveCtxtPtr = *mut xmlSaveCtxt;
extern "C" {
  pub fn xmlSaveToFd(
    fd: ::std::os::raw::c_int,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> xmlSaveCtxtPtr;
}
extern "C" {
  pub fn xmlSaveToFilename(
    filename: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> xmlSaveCtxtPtr;
}
extern "C" {
  pub fn xmlSaveToBuffer(
    buffer: xmlBufferPtr,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> xmlSaveCtxtPtr;
}
extern "C" {
  pub fn xmlSaveToIO(
    iowrite: xmlOutputWriteCallback,
    ioclose: xmlOutputCloseCallback,
    ioctx: *mut ::std::os::raw::c_void,
    encoding: *const ::std::os::raw::c_char,
    options: ::std::os::raw::c_int,
  ) -> xmlSaveCtxtPtr;
}
extern "C" {
  pub fn xmlSaveDoc(ctxt: xmlSaveCtxtPtr, doc: xmlDocPtr) -> ::std::os::raw::c_long;
}
extern "C" {
  pub fn xmlSaveTree(ctxt: xmlSaveCtxtPtr, node: xmlNodePtr) -> ::std::os::raw::c_long;
}
extern "C" {
  pub fn xmlSaveFlush(ctxt: xmlSaveCtxtPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSaveClose(ctxt: xmlSaveCtxtPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSaveSetEscape(
    ctxt: xmlSaveCtxtPtr,
    escape: xmlCharEncodingOutputFunc,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSaveSetAttrEscape(
    ctxt: xmlSaveCtxtPtr,
    escape: xmlCharEncodingOutputFunc,
  ) -> ::std::os::raw::c_int;
}
pub const xmlSchemaWhitespaceValueType_XML_SCHEMA_WHITESPACE_UNKNOWN: xmlSchemaWhitespaceValueType =
  0;
pub const xmlSchemaWhitespaceValueType_XML_SCHEMA_WHITESPACE_PRESERVE:
  xmlSchemaWhitespaceValueType = 1;
pub const xmlSchemaWhitespaceValueType_XML_SCHEMA_WHITESPACE_REPLACE: xmlSchemaWhitespaceValueType =
  2;
pub const xmlSchemaWhitespaceValueType_XML_SCHEMA_WHITESPACE_COLLAPSE:
  xmlSchemaWhitespaceValueType = 3;
pub type xmlSchemaWhitespaceValueType = u32;
extern "C" {
  pub fn xmlSchemaInitTypes();
}
extern "C" {
  pub fn xmlSchemaCleanupTypes();
}
extern "C" {
  pub fn xmlSchemaGetPredefinedType(name: *const xmlChar, ns: *const xmlChar) -> xmlSchemaTypePtr;
}
extern "C" {
  pub fn xmlSchemaValidatePredefinedType(
    type_: xmlSchemaTypePtr,
    value: *const xmlChar,
    val: *mut xmlSchemaValPtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSchemaValPredefTypeNode(
    type_: xmlSchemaTypePtr,
    value: *const xmlChar,
    val: *mut xmlSchemaValPtr,
    node: xmlNodePtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSchemaValidateFacet(
    base: xmlSchemaTypePtr,
    facet: xmlSchemaFacetPtr,
    value: *const xmlChar,
    val: xmlSchemaValPtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSchemaValidateFacetWhtsp(
    facet: xmlSchemaFacetPtr,
    fws: xmlSchemaWhitespaceValueType,
    valType: xmlSchemaValType,
    value: *const xmlChar,
    val: xmlSchemaValPtr,
    ws: xmlSchemaWhitespaceValueType,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSchemaFreeValue(val: xmlSchemaValPtr);
}
extern "C" {
  pub fn xmlSchemaNewFacet() -> xmlSchemaFacetPtr;
}
extern "C" {
  pub fn xmlSchemaCheckFacet(
    facet: xmlSchemaFacetPtr,
    typeDecl: xmlSchemaTypePtr,
    ctxt: xmlSchemaParserCtxtPtr,
    name: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSchemaFreeFacet(facet: xmlSchemaFacetPtr);
}
extern "C" {
  pub fn xmlSchemaCompareValues(x: xmlSchemaValPtr, y: xmlSchemaValPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSchemaGetBuiltInListSimpleTypeItemType(type_: xmlSchemaTypePtr) -> xmlSchemaTypePtr;
}
extern "C" {
  pub fn xmlSchemaValidateListSimpleTypeFacet(
    facet: xmlSchemaFacetPtr,
    value: *const xmlChar,
    actualLen: ::std::os::raw::c_ulong,
    expectedLen: *mut ::std::os::raw::c_ulong,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSchemaGetBuiltInType(type_: xmlSchemaValType) -> xmlSchemaTypePtr;
}
extern "C" {
  pub fn xmlSchemaIsBuiltInTypeFacet(
    type_: xmlSchemaTypePtr,
    facetType: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSchemaCollapseString(value: *const xmlChar) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlSchemaWhiteSpaceReplace(value: *const xmlChar) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlSchemaGetFacetValueAsULong(facet: xmlSchemaFacetPtr) -> ::std::os::raw::c_ulong;
}
extern "C" {
  pub fn xmlSchemaValidateLengthFacet(
    type_: xmlSchemaTypePtr,
    facet: xmlSchemaFacetPtr,
    value: *const xmlChar,
    val: xmlSchemaValPtr,
    length: *mut ::std::os::raw::c_ulong,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSchemaValidateLengthFacetWhtsp(
    facet: xmlSchemaFacetPtr,
    valType: xmlSchemaValType,
    value: *const xmlChar,
    val: xmlSchemaValPtr,
    length: *mut ::std::os::raw::c_ulong,
    ws: xmlSchemaWhitespaceValueType,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSchemaValPredefTypeNodeNoNorm(
    type_: xmlSchemaTypePtr,
    value: *const xmlChar,
    val: *mut xmlSchemaValPtr,
    node: xmlNodePtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSchemaGetCanonValue(
    val: xmlSchemaValPtr,
    retValue: *mut *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSchemaGetCanonValueWhtsp(
    val: xmlSchemaValPtr,
    retValue: *mut *const xmlChar,
    ws: xmlSchemaWhitespaceValueType,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSchemaValueAppend(prev: xmlSchemaValPtr, cur: xmlSchemaValPtr)
    -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSchemaValueGetNext(cur: xmlSchemaValPtr) -> xmlSchemaValPtr;
}
extern "C" {
  pub fn xmlSchemaValueGetAsString(val: xmlSchemaValPtr) -> *const xmlChar;
}
extern "C" {
  pub fn xmlSchemaValueGetAsBoolean(val: xmlSchemaValPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSchemaNewStringValue(type_: xmlSchemaValType, value: *const xmlChar)
    -> xmlSchemaValPtr;
}
extern "C" {
  pub fn xmlSchemaNewNOTATIONValue(name: *const xmlChar, ns: *const xmlChar) -> xmlSchemaValPtr;
}
extern "C" {
  pub fn xmlSchemaNewQNameValue(
    namespaceName: *const xmlChar,
    localName: *const xmlChar,
  ) -> xmlSchemaValPtr;
}
extern "C" {
  pub fn xmlSchemaCompareValuesWhtsp(
    x: xmlSchemaValPtr,
    xws: xmlSchemaWhitespaceValueType,
    y: xmlSchemaValPtr,
    yws: xmlSchemaWhitespaceValueType,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlSchemaCopyValue(val: xmlSchemaValPtr) -> xmlSchemaValPtr;
}
extern "C" {
  pub fn xmlSchemaGetValType(val: xmlSchemaValPtr) -> xmlSchemaValType;
}
extern "C" {
  pub fn xmlUCSIsAegeanNumbers(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsAlphabeticPresentationForms(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsArabic(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsArabicPresentationFormsA(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsArabicPresentationFormsB(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsArmenian(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsArrows(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsBasicLatin(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsBengali(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsBlockElements(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsBopomofo(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsBopomofoExtended(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsBoxDrawing(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsBraillePatterns(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsBuhid(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsByzantineMusicalSymbols(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCJKCompatibility(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCJKCompatibilityForms(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCJKCompatibilityIdeographs(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCJKCompatibilityIdeographsSupplement(
    code: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCJKRadicalsSupplement(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCJKSymbolsandPunctuation(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCJKUnifiedIdeographs(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCJKUnifiedIdeographsExtensionA(
    code: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCJKUnifiedIdeographsExtensionB(
    code: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCherokee(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCombiningDiacriticalMarks(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCombiningDiacriticalMarksforSymbols(
    code: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCombiningHalfMarks(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCombiningMarksforSymbols(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsControlPictures(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCurrencySymbols(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCypriotSyllabary(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCyrillic(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCyrillicSupplement(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsDeseret(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsDevanagari(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsDingbats(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsEnclosedAlphanumerics(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsEnclosedCJKLettersandMonths(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsEthiopic(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsGeneralPunctuation(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsGeometricShapes(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsGeorgian(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsGothic(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsGreek(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsGreekExtended(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsGreekandCoptic(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsGujarati(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsGurmukhi(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsHalfwidthandFullwidthForms(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsHangulCompatibilityJamo(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsHangulJamo(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsHangulSyllables(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsHanunoo(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsHebrew(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsHighPrivateUseSurrogates(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsHighSurrogates(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsHiragana(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsIPAExtensions(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsIdeographicDescriptionCharacters(
    code: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsKanbun(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsKangxiRadicals(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsKannada(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsKatakana(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsKatakanaPhoneticExtensions(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsKhmer(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsKhmerSymbols(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsLao(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsLatin1Supplement(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsLatinExtendedA(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsLatinExtendedB(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsLatinExtendedAdditional(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsLetterlikeSymbols(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsLimbu(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsLinearBIdeograms(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsLinearBSyllabary(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsLowSurrogates(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsMalayalam(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsMathematicalAlphanumericSymbols(
    code: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsMathematicalOperators(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsMiscellaneousMathematicalSymbolsA(
    code: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsMiscellaneousMathematicalSymbolsB(
    code: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsMiscellaneousSymbols(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsMiscellaneousSymbolsandArrows(
    code: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsMiscellaneousTechnical(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsMongolian(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsMusicalSymbols(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsMyanmar(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsNumberForms(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsOgham(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsOldItalic(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsOpticalCharacterRecognition(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsOriya(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsOsmanya(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsPhoneticExtensions(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsPrivateUse(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsPrivateUseArea(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsRunic(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsShavian(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsSinhala(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsSmallFormVariants(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsSpacingModifierLetters(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsSpecials(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsSuperscriptsandSubscripts(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsSupplementalArrowsA(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsSupplementalArrowsB(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsSupplementalMathematicalOperators(
    code: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsSupplementaryPrivateUseAreaA(code: ::std::os::raw::c_int)
    -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsSupplementaryPrivateUseAreaB(code: ::std::os::raw::c_int)
    -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsSyriac(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsTagalog(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsTagbanwa(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsTags(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsTaiLe(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsTaiXuanJingSymbols(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsTamil(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsTelugu(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsThaana(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsThai(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsTibetan(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsUgaritic(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsUnifiedCanadianAboriginalSyllabics(
    code: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsVariationSelectors(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsVariationSelectorsSupplement(code: ::std::os::raw::c_int)
    -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsYiRadicals(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsYiSyllables(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsYijingHexagramSymbols(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsBlock(
    code: ::std::os::raw::c_int,
    block: *const ::std::os::raw::c_char,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatC(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatCc(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatCf(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatCo(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatCs(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatL(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatLl(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatLm(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatLo(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatLt(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatLu(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatM(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatMc(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatMe(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatMn(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatN(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatNd(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatNl(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatNo(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatP(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatPc(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatPd(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatPe(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatPf(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatPi(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatPo(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatPs(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatS(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatSc(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatSk(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatSm(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatSo(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatZ(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatZl(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatZp(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCatZs(code: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlUCSIsCat(
    code: ::std::os::raw::c_int,
    cat: *const ::std::os::raw::c_char,
  ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlTextWriter {
  _unused: [u8; 0],
}
pub type xmlTextWriter = _xmlTextWriter;
pub type xmlTextWriterPtr = *mut xmlTextWriter;
extern "C" {
  pub fn xmlNewTextWriter(out: xmlOutputBufferPtr) -> xmlTextWriterPtr;
}
extern "C" {
  pub fn xmlNewTextWriterFilename(
    uri: *const ::std::os::raw::c_char,
    compression: ::std::os::raw::c_int,
  ) -> xmlTextWriterPtr;
}
extern "C" {
  pub fn xmlNewTextWriterMemory(
    buf: xmlBufferPtr,
    compression: ::std::os::raw::c_int,
  ) -> xmlTextWriterPtr;
}
extern "C" {
  pub fn xmlNewTextWriterPushParser(
    ctxt: xmlParserCtxtPtr,
    compression: ::std::os::raw::c_int,
  ) -> xmlTextWriterPtr;
}
extern "C" {
  pub fn xmlNewTextWriterDoc(
    doc: *mut xmlDocPtr,
    compression: ::std::os::raw::c_int,
  ) -> xmlTextWriterPtr;
}
extern "C" {
  pub fn xmlNewTextWriterTree(
    doc: xmlDocPtr,
    node: xmlNodePtr,
    compression: ::std::os::raw::c_int,
  ) -> xmlTextWriterPtr;
}
extern "C" {
  pub fn xmlFreeTextWriter(writer: xmlTextWriterPtr);
}
extern "C" {
  pub fn xmlTextWriterStartDocument(
    writer: xmlTextWriterPtr,
    version: *const ::std::os::raw::c_char,
    encoding: *const ::std::os::raw::c_char,
    standalone: *const ::std::os::raw::c_char,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterEndDocument(writer: xmlTextWriterPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterStartComment(writer: xmlTextWriterPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterEndComment(writer: xmlTextWriterPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteFormatComment(
    writer: xmlTextWriterPtr,
    format: *const ::std::os::raw::c_char,
    ...
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteVFormatComment(
    writer: xmlTextWriterPtr,
    format: *const ::std::os::raw::c_char,
    argptr: *mut __va_list_tag,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteComment(
    writer: xmlTextWriterPtr,
    content: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterStartElement(
    writer: xmlTextWriterPtr,
    name: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterStartElementNS(
    writer: xmlTextWriterPtr,
    prefix: *const xmlChar,
    name: *const xmlChar,
    namespaceURI: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterEndElement(writer: xmlTextWriterPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterFullEndElement(writer: xmlTextWriterPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteFormatElement(
    writer: xmlTextWriterPtr,
    name: *const xmlChar,
    format: *const ::std::os::raw::c_char,
    ...
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteVFormatElement(
    writer: xmlTextWriterPtr,
    name: *const xmlChar,
    format: *const ::std::os::raw::c_char,
    argptr: *mut __va_list_tag,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteElement(
    writer: xmlTextWriterPtr,
    name: *const xmlChar,
    content: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteFormatElementNS(
    writer: xmlTextWriterPtr,
    prefix: *const xmlChar,
    name: *const xmlChar,
    namespaceURI: *const xmlChar,
    format: *const ::std::os::raw::c_char,
    ...
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteVFormatElementNS(
    writer: xmlTextWriterPtr,
    prefix: *const xmlChar,
    name: *const xmlChar,
    namespaceURI: *const xmlChar,
    format: *const ::std::os::raw::c_char,
    argptr: *mut __va_list_tag,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteElementNS(
    writer: xmlTextWriterPtr,
    prefix: *const xmlChar,
    name: *const xmlChar,
    namespaceURI: *const xmlChar,
    content: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteFormatRaw(
    writer: xmlTextWriterPtr,
    format: *const ::std::os::raw::c_char,
    ...
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteVFormatRaw(
    writer: xmlTextWriterPtr,
    format: *const ::std::os::raw::c_char,
    argptr: *mut __va_list_tag,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteRawLen(
    writer: xmlTextWriterPtr,
    content: *const xmlChar,
    len: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteRaw(
    writer: xmlTextWriterPtr,
    content: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteFormatString(
    writer: xmlTextWriterPtr,
    format: *const ::std::os::raw::c_char,
    ...
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteVFormatString(
    writer: xmlTextWriterPtr,
    format: *const ::std::os::raw::c_char,
    argptr: *mut __va_list_tag,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteString(
    writer: xmlTextWriterPtr,
    content: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteBase64(
    writer: xmlTextWriterPtr,
    data: *const ::std::os::raw::c_char,
    start: ::std::os::raw::c_int,
    len: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteBinHex(
    writer: xmlTextWriterPtr,
    data: *const ::std::os::raw::c_char,
    start: ::std::os::raw::c_int,
    len: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterStartAttribute(
    writer: xmlTextWriterPtr,
    name: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterStartAttributeNS(
    writer: xmlTextWriterPtr,
    prefix: *const xmlChar,
    name: *const xmlChar,
    namespaceURI: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterEndAttribute(writer: xmlTextWriterPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteFormatAttribute(
    writer: xmlTextWriterPtr,
    name: *const xmlChar,
    format: *const ::std::os::raw::c_char,
    ...
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteVFormatAttribute(
    writer: xmlTextWriterPtr,
    name: *const xmlChar,
    format: *const ::std::os::raw::c_char,
    argptr: *mut __va_list_tag,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteAttribute(
    writer: xmlTextWriterPtr,
    name: *const xmlChar,
    content: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteFormatAttributeNS(
    writer: xmlTextWriterPtr,
    prefix: *const xmlChar,
    name: *const xmlChar,
    namespaceURI: *const xmlChar,
    format: *const ::std::os::raw::c_char,
    ...
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteVFormatAttributeNS(
    writer: xmlTextWriterPtr,
    prefix: *const xmlChar,
    name: *const xmlChar,
    namespaceURI: *const xmlChar,
    format: *const ::std::os::raw::c_char,
    argptr: *mut __va_list_tag,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteAttributeNS(
    writer: xmlTextWriterPtr,
    prefix: *const xmlChar,
    name: *const xmlChar,
    namespaceURI: *const xmlChar,
    content: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterStartPI(
    writer: xmlTextWriterPtr,
    target: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterEndPI(writer: xmlTextWriterPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteFormatPI(
    writer: xmlTextWriterPtr,
    target: *const xmlChar,
    format: *const ::std::os::raw::c_char,
    ...
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteVFormatPI(
    writer: xmlTextWriterPtr,
    target: *const xmlChar,
    format: *const ::std::os::raw::c_char,
    argptr: *mut __va_list_tag,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWritePI(
    writer: xmlTextWriterPtr,
    target: *const xmlChar,
    content: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterStartCDATA(writer: xmlTextWriterPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterEndCDATA(writer: xmlTextWriterPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteFormatCDATA(
    writer: xmlTextWriterPtr,
    format: *const ::std::os::raw::c_char,
    ...
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteVFormatCDATA(
    writer: xmlTextWriterPtr,
    format: *const ::std::os::raw::c_char,
    argptr: *mut __va_list_tag,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteCDATA(
    writer: xmlTextWriterPtr,
    content: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterStartDTD(
    writer: xmlTextWriterPtr,
    name: *const xmlChar,
    pubid: *const xmlChar,
    sysid: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterEndDTD(writer: xmlTextWriterPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteFormatDTD(
    writer: xmlTextWriterPtr,
    name: *const xmlChar,
    pubid: *const xmlChar,
    sysid: *const xmlChar,
    format: *const ::std::os::raw::c_char,
    ...
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteVFormatDTD(
    writer: xmlTextWriterPtr,
    name: *const xmlChar,
    pubid: *const xmlChar,
    sysid: *const xmlChar,
    format: *const ::std::os::raw::c_char,
    argptr: *mut __va_list_tag,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteDTD(
    writer: xmlTextWriterPtr,
    name: *const xmlChar,
    pubid: *const xmlChar,
    sysid: *const xmlChar,
    subset: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterStartDTDElement(
    writer: xmlTextWriterPtr,
    name: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterEndDTDElement(writer: xmlTextWriterPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteFormatDTDElement(
    writer: xmlTextWriterPtr,
    name: *const xmlChar,
    format: *const ::std::os::raw::c_char,
    ...
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteVFormatDTDElement(
    writer: xmlTextWriterPtr,
    name: *const xmlChar,
    format: *const ::std::os::raw::c_char,
    argptr: *mut __va_list_tag,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteDTDElement(
    writer: xmlTextWriterPtr,
    name: *const xmlChar,
    content: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterStartDTDAttlist(
    writer: xmlTextWriterPtr,
    name: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterEndDTDAttlist(writer: xmlTextWriterPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteFormatDTDAttlist(
    writer: xmlTextWriterPtr,
    name: *const xmlChar,
    format: *const ::std::os::raw::c_char,
    ...
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteVFormatDTDAttlist(
    writer: xmlTextWriterPtr,
    name: *const xmlChar,
    format: *const ::std::os::raw::c_char,
    argptr: *mut __va_list_tag,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteDTDAttlist(
    writer: xmlTextWriterPtr,
    name: *const xmlChar,
    content: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterStartDTDEntity(
    writer: xmlTextWriterPtr,
    pe: ::std::os::raw::c_int,
    name: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterEndDTDEntity(writer: xmlTextWriterPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteFormatDTDInternalEntity(
    writer: xmlTextWriterPtr,
    pe: ::std::os::raw::c_int,
    name: *const xmlChar,
    format: *const ::std::os::raw::c_char,
    ...
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteVFormatDTDInternalEntity(
    writer: xmlTextWriterPtr,
    pe: ::std::os::raw::c_int,
    name: *const xmlChar,
    format: *const ::std::os::raw::c_char,
    argptr: *mut __va_list_tag,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteDTDInternalEntity(
    writer: xmlTextWriterPtr,
    pe: ::std::os::raw::c_int,
    name: *const xmlChar,
    content: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteDTDExternalEntity(
    writer: xmlTextWriterPtr,
    pe: ::std::os::raw::c_int,
    name: *const xmlChar,
    pubid: *const xmlChar,
    sysid: *const xmlChar,
    ndataid: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteDTDExternalEntityContents(
    writer: xmlTextWriterPtr,
    pubid: *const xmlChar,
    sysid: *const xmlChar,
    ndataid: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteDTDEntity(
    writer: xmlTextWriterPtr,
    pe: ::std::os::raw::c_int,
    name: *const xmlChar,
    pubid: *const xmlChar,
    sysid: *const xmlChar,
    ndataid: *const xmlChar,
    content: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterWriteDTDNotation(
    writer: xmlTextWriterPtr,
    name: *const xmlChar,
    pubid: *const xmlChar,
    sysid: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterSetIndent(
    writer: xmlTextWriterPtr,
    indent: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterSetIndentString(
    writer: xmlTextWriterPtr,
    str: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterSetQuoteChar(
    writer: xmlTextWriterPtr,
    quotechar: xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlTextWriterFlush(writer: xmlTextWriterPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXPathPopBoolean(ctxt: xmlXPathParserContextPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXPathPopNumber(ctxt: xmlXPathParserContextPtr) -> f64;
}
extern "C" {
  pub fn xmlXPathPopString(ctxt: xmlXPathParserContextPtr) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlXPathPopNodeSet(ctxt: xmlXPathParserContextPtr) -> xmlNodeSetPtr;
}
extern "C" {
  pub fn xmlXPathPopExternal(ctxt: xmlXPathParserContextPtr) -> *mut ::std::os::raw::c_void;
}
extern "C" {
  pub fn xmlXPathRegisterVariableLookup(
    ctxt: xmlXPathContextPtr,
    f: xmlXPathVariableLookupFunc,
    data: *mut ::std::os::raw::c_void,
  );
}
extern "C" {
  pub fn xmlXPathRegisterFuncLookup(
    ctxt: xmlXPathContextPtr,
    f: xmlXPathFuncLookupFunc,
    funcCtxt: *mut ::std::os::raw::c_void,
  );
}
extern "C" {
  pub fn xmlXPatherror(
    ctxt: xmlXPathParserContextPtr,
    file: *const ::std::os::raw::c_char,
    line: ::std::os::raw::c_int,
    no: ::std::os::raw::c_int,
  );
}
extern "C" {
  pub fn xmlXPathErr(ctxt: xmlXPathParserContextPtr, error: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlXPathDebugDumpObject(
    output: *mut FILE,
    cur: xmlXPathObjectPtr,
    depth: ::std::os::raw::c_int,
  );
}
extern "C" {
  pub fn xmlXPathDebugDumpCompExpr(
    output: *mut FILE,
    comp: xmlXPathCompExprPtr,
    depth: ::std::os::raw::c_int,
  );
}
extern "C" {
  /// NodeSet handling.
  pub fn xmlXPathNodeSetContains(cur: xmlNodeSetPtr, val: xmlNodePtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXPathDifference(nodes1: xmlNodeSetPtr, nodes2: xmlNodeSetPtr) -> xmlNodeSetPtr;
}
extern "C" {
  pub fn xmlXPathIntersection(nodes1: xmlNodeSetPtr, nodes2: xmlNodeSetPtr) -> xmlNodeSetPtr;
}
extern "C" {
  pub fn xmlXPathDistinctSorted(nodes: xmlNodeSetPtr) -> xmlNodeSetPtr;
}
extern "C" {
  pub fn xmlXPathDistinct(nodes: xmlNodeSetPtr) -> xmlNodeSetPtr;
}
extern "C" {
  pub fn xmlXPathHasSameNodes(
    nodes1: xmlNodeSetPtr,
    nodes2: xmlNodeSetPtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXPathNodeLeadingSorted(nodes: xmlNodeSetPtr, node: xmlNodePtr) -> xmlNodeSetPtr;
}
extern "C" {
  pub fn xmlXPathLeadingSorted(nodes1: xmlNodeSetPtr, nodes2: xmlNodeSetPtr) -> xmlNodeSetPtr;
}
extern "C" {
  pub fn xmlXPathNodeLeading(nodes: xmlNodeSetPtr, node: xmlNodePtr) -> xmlNodeSetPtr;
}
extern "C" {
  pub fn xmlXPathLeading(nodes1: xmlNodeSetPtr, nodes2: xmlNodeSetPtr) -> xmlNodeSetPtr;
}
extern "C" {
  pub fn xmlXPathNodeTrailingSorted(nodes: xmlNodeSetPtr, node: xmlNodePtr) -> xmlNodeSetPtr;
}
extern "C" {
  pub fn xmlXPathTrailingSorted(nodes1: xmlNodeSetPtr, nodes2: xmlNodeSetPtr) -> xmlNodeSetPtr;
}
extern "C" {
  pub fn xmlXPathNodeTrailing(nodes: xmlNodeSetPtr, node: xmlNodePtr) -> xmlNodeSetPtr;
}
extern "C" {
  pub fn xmlXPathTrailing(nodes1: xmlNodeSetPtr, nodes2: xmlNodeSetPtr) -> xmlNodeSetPtr;
}
extern "C" {
  /// Extending a context.
  pub fn xmlXPathRegisterNs(
    ctxt: xmlXPathContextPtr,
    prefix: *const xmlChar,
    ns_uri: *const xmlChar,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXPathNsLookup(ctxt: xmlXPathContextPtr, prefix: *const xmlChar) -> *const xmlChar;
}
extern "C" {
  pub fn xmlXPathRegisteredNsCleanup(ctxt: xmlXPathContextPtr);
}
extern "C" {
  pub fn xmlXPathRegisterFunc(
    ctxt: xmlXPathContextPtr,
    name: *const xmlChar,
    f: xmlXPathFunction,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXPathRegisterFuncNS(
    ctxt: xmlXPathContextPtr,
    name: *const xmlChar,
    ns_uri: *const xmlChar,
    f: xmlXPathFunction,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXPathRegisterVariable(
    ctxt: xmlXPathContextPtr,
    name: *const xmlChar,
    value: xmlXPathObjectPtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXPathRegisterVariableNS(
    ctxt: xmlXPathContextPtr,
    name: *const xmlChar,
    ns_uri: *const xmlChar,
    value: xmlXPathObjectPtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXPathFunctionLookup(ctxt: xmlXPathContextPtr, name: *const xmlChar)
    -> xmlXPathFunction;
}
extern "C" {
  pub fn xmlXPathFunctionLookupNS(
    ctxt: xmlXPathContextPtr,
    name: *const xmlChar,
    ns_uri: *const xmlChar,
  ) -> xmlXPathFunction;
}
extern "C" {
  pub fn xmlXPathRegisteredFuncsCleanup(ctxt: xmlXPathContextPtr);
}
extern "C" {
  pub fn xmlXPathVariableLookup(
    ctxt: xmlXPathContextPtr,
    name: *const xmlChar,
  ) -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn xmlXPathVariableLookupNS(
    ctxt: xmlXPathContextPtr,
    name: *const xmlChar,
    ns_uri: *const xmlChar,
  ) -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn xmlXPathRegisteredVariablesCleanup(ctxt: xmlXPathContextPtr);
}
extern "C" {
  /// Utilities to extend XPath.
  pub fn xmlXPathNewParserContext(
    str: *const xmlChar,
    ctxt: xmlXPathContextPtr,
  ) -> xmlXPathParserContextPtr;
}
extern "C" {
  pub fn xmlXPathFreeParserContext(ctxt: xmlXPathParserContextPtr);
}
extern "C" {
  pub fn valuePop(ctxt: xmlXPathParserContextPtr) -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn valuePush(
    ctxt: xmlXPathParserContextPtr,
    value: xmlXPathObjectPtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXPathNewString(val: *const xmlChar) -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn xmlXPathNewCString(val: *const ::std::os::raw::c_char) -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn xmlXPathWrapString(val: *mut xmlChar) -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn xmlXPathWrapCString(val: *mut ::std::os::raw::c_char) -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn xmlXPathNewFloat(val: f64) -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn xmlXPathNewBoolean(val: ::std::os::raw::c_int) -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn xmlXPathNewNodeSet(val: xmlNodePtr) -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn xmlXPathNewValueTree(val: xmlNodePtr) -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn xmlXPathNodeSetAdd(cur: xmlNodeSetPtr, val: xmlNodePtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXPathNodeSetAddUnique(cur: xmlNodeSetPtr, val: xmlNodePtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXPathNodeSetAddNs(
    cur: xmlNodeSetPtr,
    node: xmlNodePtr,
    ns: xmlNsPtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXPathNodeSetSort(set: xmlNodeSetPtr);
}
extern "C" {
  pub fn xmlXPathRoot(ctxt: xmlXPathParserContextPtr);
}
extern "C" {
  pub fn xmlXPathEvalExpr(ctxt: xmlXPathParserContextPtr);
}
extern "C" {
  pub fn xmlXPathParseName(ctxt: xmlXPathParserContextPtr) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlXPathParseNCName(ctxt: xmlXPathParserContextPtr) -> *mut xmlChar;
}
extern "C" {
  pub fn xmlXPathStringEvalNumber(str: *const xmlChar) -> f64;
}
extern "C" {
  pub fn xmlXPathEvaluatePredicateResult(
    ctxt: xmlXPathParserContextPtr,
    res: xmlXPathObjectPtr,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXPathRegisterAllFunctions(ctxt: xmlXPathContextPtr);
}
extern "C" {
  pub fn xmlXPathNodeSetMerge(val1: xmlNodeSetPtr, val2: xmlNodeSetPtr) -> xmlNodeSetPtr;
}
extern "C" {
  pub fn xmlXPathNodeSetDel(cur: xmlNodeSetPtr, val: xmlNodePtr);
}
extern "C" {
  pub fn xmlXPathNodeSetRemove(cur: xmlNodeSetPtr, val: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlXPathNewNodeSetList(val: xmlNodeSetPtr) -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn xmlXPathWrapNodeSet(val: xmlNodeSetPtr) -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn xmlXPathWrapExternal(val: *mut ::std::os::raw::c_void) -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn xmlXPathEqualValues(ctxt: xmlXPathParserContextPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXPathNotEqualValues(ctxt: xmlXPathParserContextPtr) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXPathCompareValues(
    ctxt: xmlXPathParserContextPtr,
    inf: ::std::os::raw::c_int,
    strict: ::std::os::raw::c_int,
  ) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXPathValueFlipSign(ctxt: xmlXPathParserContextPtr);
}
extern "C" {
  pub fn xmlXPathAddValues(ctxt: xmlXPathParserContextPtr);
}
extern "C" {
  pub fn xmlXPathSubValues(ctxt: xmlXPathParserContextPtr);
}
extern "C" {
  pub fn xmlXPathMultValues(ctxt: xmlXPathParserContextPtr);
}
extern "C" {
  pub fn xmlXPathDivValues(ctxt: xmlXPathParserContextPtr);
}
extern "C" {
  pub fn xmlXPathModValues(ctxt: xmlXPathParserContextPtr);
}
extern "C" {
  pub fn xmlXPathIsNodeType(name: *const xmlChar) -> ::std::os::raw::c_int;
}
extern "C" {
  pub fn xmlXPathNextSelf(ctxt: xmlXPathParserContextPtr, cur: xmlNodePtr) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlXPathNextChild(ctxt: xmlXPathParserContextPtr, cur: xmlNodePtr) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlXPathNextDescendant(ctxt: xmlXPathParserContextPtr, cur: xmlNodePtr) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlXPathNextDescendantOrSelf(
    ctxt: xmlXPathParserContextPtr,
    cur: xmlNodePtr,
  ) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlXPathNextParent(ctxt: xmlXPathParserContextPtr, cur: xmlNodePtr) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlXPathNextAncestorOrSelf(ctxt: xmlXPathParserContextPtr, cur: xmlNodePtr) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlXPathNextFollowingSibling(
    ctxt: xmlXPathParserContextPtr,
    cur: xmlNodePtr,
  ) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlXPathNextFollowing(ctxt: xmlXPathParserContextPtr, cur: xmlNodePtr) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlXPathNextNamespace(ctxt: xmlXPathParserContextPtr, cur: xmlNodePtr) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlXPathNextAttribute(ctxt: xmlXPathParserContextPtr, cur: xmlNodePtr) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlXPathNextPreceding(ctxt: xmlXPathParserContextPtr, cur: xmlNodePtr) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlXPathNextAncestor(ctxt: xmlXPathParserContextPtr, cur: xmlNodePtr) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlXPathNextPrecedingSibling(
    ctxt: xmlXPathParserContextPtr,
    cur: xmlNodePtr,
  ) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlXPathLastFunction(ctxt: xmlXPathParserContextPtr, nargs: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlXPathPositionFunction(ctxt: xmlXPathParserContextPtr, nargs: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlXPathCountFunction(ctxt: xmlXPathParserContextPtr, nargs: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlXPathIdFunction(ctxt: xmlXPathParserContextPtr, nargs: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlXPathLocalNameFunction(ctxt: xmlXPathParserContextPtr, nargs: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlXPathNamespaceURIFunction(ctxt: xmlXPathParserContextPtr, nargs: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlXPathStringFunction(ctxt: xmlXPathParserContextPtr, nargs: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlXPathStringLengthFunction(ctxt: xmlXPathParserContextPtr, nargs: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlXPathConcatFunction(ctxt: xmlXPathParserContextPtr, nargs: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlXPathContainsFunction(ctxt: xmlXPathParserContextPtr, nargs: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlXPathStartsWithFunction(ctxt: xmlXPathParserContextPtr, nargs: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlXPathSubstringFunction(ctxt: xmlXPathParserContextPtr, nargs: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlXPathSubstringBeforeFunction(
    ctxt: xmlXPathParserContextPtr,
    nargs: ::std::os::raw::c_int,
  );
}
extern "C" {
  pub fn xmlXPathSubstringAfterFunction(
    ctxt: xmlXPathParserContextPtr,
    nargs: ::std::os::raw::c_int,
  );
}
extern "C" {
  pub fn xmlXPathNormalizeFunction(ctxt: xmlXPathParserContextPtr, nargs: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlXPathTranslateFunction(ctxt: xmlXPathParserContextPtr, nargs: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlXPathNotFunction(ctxt: xmlXPathParserContextPtr, nargs: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlXPathTrueFunction(ctxt: xmlXPathParserContextPtr, nargs: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlXPathFalseFunction(ctxt: xmlXPathParserContextPtr, nargs: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlXPathLangFunction(ctxt: xmlXPathParserContextPtr, nargs: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlXPathNumberFunction(ctxt: xmlXPathParserContextPtr, nargs: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlXPathSumFunction(ctxt: xmlXPathParserContextPtr, nargs: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlXPathFloorFunction(ctxt: xmlXPathParserContextPtr, nargs: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlXPathCeilingFunction(ctxt: xmlXPathParserContextPtr, nargs: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlXPathRoundFunction(ctxt: xmlXPathParserContextPtr, nargs: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlXPathBooleanFunction(ctxt: xmlXPathParserContextPtr, nargs: ::std::os::raw::c_int);
}
extern "C" {
  /// Really internal functions
  pub fn xmlXPathNodeSetFreeNs(ns: xmlNsPtr);
}
pub type xmlLocationSet = _xmlLocationSet;
pub type xmlLocationSetPtr = *mut xmlLocationSet;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xmlLocationSet {
  pub locNr: ::std::os::raw::c_int,
  pub locMax: ::std::os::raw::c_int,
  pub locTab: *mut xmlXPathObjectPtr,
}
#[test]
fn bindgen_test_layout__xmlLocationSet() {
  assert_eq!(
    ::std::mem::size_of::<_xmlLocationSet>(),
    16usize,
    concat!("Size of: ", stringify!(_xmlLocationSet))
  );
  assert_eq!(
    ::std::mem::align_of::<_xmlLocationSet>(),
    8usize,
    concat!("Alignment of ", stringify!(_xmlLocationSet))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlLocationSet>())).locNr as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlLocationSet),
  //     "::",
  //     stringify!(locNr)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlLocationSet>())).locMax as *const _ as usize },
  //   4usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlLocationSet),
  //     "::",
  //     stringify!(locMax)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<_xmlLocationSet>())).locTab as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(_xmlLocationSet),
  //     "::",
  //     stringify!(locTab)
  //   )
  // );
}
extern "C" {
  pub fn xmlXPtrLocationSetCreate(val: xmlXPathObjectPtr) -> xmlLocationSetPtr;
}
extern "C" {
  pub fn xmlXPtrFreeLocationSet(obj: xmlLocationSetPtr);
}
extern "C" {
  pub fn xmlXPtrLocationSetMerge(
    val1: xmlLocationSetPtr,
    val2: xmlLocationSetPtr,
  ) -> xmlLocationSetPtr;
}
extern "C" {
  pub fn xmlXPtrNewRange(
    start: xmlNodePtr,
    startindex: ::std::os::raw::c_int,
    end: xmlNodePtr,
    endindex: ::std::os::raw::c_int,
  ) -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn xmlXPtrNewRangePoints(
    start: xmlXPathObjectPtr,
    end: xmlXPathObjectPtr,
  ) -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn xmlXPtrNewRangeNodePoint(start: xmlNodePtr, end: xmlXPathObjectPtr) -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn xmlXPtrNewRangePointNode(start: xmlXPathObjectPtr, end: xmlNodePtr) -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn xmlXPtrNewRangeNodes(start: xmlNodePtr, end: xmlNodePtr) -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn xmlXPtrNewLocationSetNodes(start: xmlNodePtr, end: xmlNodePtr) -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn xmlXPtrNewLocationSetNodeSet(set: xmlNodeSetPtr) -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn xmlXPtrNewRangeNodeObject(start: xmlNodePtr, end: xmlXPathObjectPtr) -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn xmlXPtrNewCollapsedRange(start: xmlNodePtr) -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn xmlXPtrLocationSetAdd(cur: xmlLocationSetPtr, val: xmlXPathObjectPtr);
}
extern "C" {
  pub fn xmlXPtrWrapLocationSet(val: xmlLocationSetPtr) -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn xmlXPtrLocationSetDel(cur: xmlLocationSetPtr, val: xmlXPathObjectPtr);
}
extern "C" {
  pub fn xmlXPtrLocationSetRemove(cur: xmlLocationSetPtr, val: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlXPtrNewContext(
    doc: xmlDocPtr,
    here: xmlNodePtr,
    origin: xmlNodePtr,
  ) -> xmlXPathContextPtr;
}
extern "C" {
  pub fn xmlXPtrEval(str: *const xmlChar, ctx: xmlXPathContextPtr) -> xmlXPathObjectPtr;
}
extern "C" {
  pub fn xmlXPtrRangeToFunction(ctxt: xmlXPathParserContextPtr, nargs: ::std::os::raw::c_int);
}
extern "C" {
  pub fn xmlXPtrBuildNodeList(obj: xmlXPathObjectPtr) -> xmlNodePtr;
}
extern "C" {
  pub fn xmlXPtrEvalRangePredicate(ctxt: xmlXPathParserContextPtr);
}
pub type __builtin_va_list = [__va_list_tag; 1usize];
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __va_list_tag {
  pub gp_offset: ::std::os::raw::c_uint,
  pub fp_offset: ::std::os::raw::c_uint,
  pub overflow_arg_area: *mut ::std::os::raw::c_void,
  pub reg_save_area: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout___va_list_tag() {
  assert_eq!(
    ::std::mem::size_of::<__va_list_tag>(),
    24usize,
    concat!("Size of: ", stringify!(__va_list_tag))
  );
  assert_eq!(
    ::std::mem::align_of::<__va_list_tag>(),
    8usize,
    concat!("Alignment of ", stringify!(__va_list_tag))
  );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<__va_list_tag>())).gp_offset as *const _ as usize },
  //   0usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(__va_list_tag),
  //     "::",
  //     stringify!(gp_offset)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<__va_list_tag>())).fp_offset as *const _ as usize },
  //   4usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(__va_list_tag),
  //     "::",
  //     stringify!(fp_offset)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<__va_list_tag>())).overflow_arg_area as *const _ as usize },
  //   8usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(__va_list_tag),
  //     "::",
  //     stringify!(overflow_arg_area)
  //   )
  // );
  // assert_eq!(
  //   unsafe { &(*(::std::ptr::null::<__va_list_tag>())).reg_save_area as *const _ as usize },
  //   16usize,
  //   concat!(
  //     "Offset of field: ",
  //     stringify!(__va_list_tag),
  //     "::",
  //     stringify!(reg_save_area)
  //   )
  // );
}
