1// -*- C++ -*- 2 3#include <stdio.h> 4#include <stddef.h> 5#include <stdint.h> 6#include <ctype.h> 7#include <unistd.h> 8#include <string.h> 9#include <stdlib.h> 10#include <math.h> 11#include <sys/types.h> 12#include <time.h> 13#include <signal.h> 14#include <pthread.h> 15 16void xmlCheckVersion (int version); 17typedef unsigned char xmlChar; 18xmlChar *xmlStrdup (const xmlChar * cur); 19xmlChar *xmlStrndup (const xmlChar * cur, int len); 20xmlChar *xmlCharStrndup (const char *cur, int len); 21xmlChar *xmlCharStrdup (const char *cur); 22xmlChar *xmlStrsub (const xmlChar * str, int start, int len); 23const xmlChar *xmlStrchr (const xmlChar * str, xmlChar val); 24const xmlChar *xmlStrstr (const xmlChar * str, const xmlChar * val); 25const xmlChar *xmlStrcasestr (const xmlChar * str, const xmlChar * val); 26int xmlStrcmp (const xmlChar * str1, const xmlChar * str2); 27int xmlStrncmp (const xmlChar * str1, const xmlChar * str2, int len); 28int xmlStrcasecmp (const xmlChar * str1, const xmlChar * str2); 29int xmlStrncasecmp (const xmlChar * str1, const xmlChar * str2, int len); 30int xmlStrEqual (const xmlChar * str1, const xmlChar * str2); 31int xmlStrQEqual (const xmlChar * pref, 32 const xmlChar * name, const xmlChar * str); 33int xmlStrlen (const xmlChar * str); 34xmlChar *xmlStrcat (xmlChar * cur, const xmlChar * add); 35xmlChar *xmlStrncat (xmlChar * cur, const xmlChar * add, int len); 36xmlChar *xmlStrncatNew (const xmlChar * str1, const xmlChar * str2, int len); 37int xmlStrPrintf (xmlChar * buf, int len, const xmlChar * msg, ...); 38int xmlStrVPrintf (xmlChar * buf, int len, const xmlChar * msg, va_list ap); 39int xmlGetUTF8Char (const unsigned char *utf, int *len); 40int xmlCheckUTF8 (const unsigned char *utf); 41int xmlUTF8Strsize (const xmlChar * utf, int len); 42xmlChar *xmlUTF8Strndup (const xmlChar * utf, int len); 43const xmlChar *xmlUTF8Strpos (const xmlChar * utf, int pos); 44int xmlUTF8Strloc (const xmlChar * utf, const xmlChar * utfchar); 45xmlChar *xmlUTF8Strsub (const xmlChar * utf, int start, int len); 46int xmlUTF8Strlen (const xmlChar * utf); 47int xmlUTF8Size (const xmlChar * utf); 48int xmlUTF8Charcmp (const xmlChar * utf1, const xmlChar * utf2); 49 50typedef struct _xmlParserInputBuffer xmlParserInputBuffer; 51typedef xmlParserInputBuffer *xmlParserInputBufferPtr; 52typedef struct _xmlOutputBuffer xmlOutputBuffer; 53typedef xmlOutputBuffer *xmlOutputBufferPtr; 54typedef struct _xmlParserInput xmlParserInput; 55typedef xmlParserInput *xmlParserInputPtr; 56typedef struct _xmlParserCtxt xmlParserCtxt; 57typedef xmlParserCtxt *xmlParserCtxtPtr; 58typedef struct _xmlSAXLocator xmlSAXLocator; 59typedef xmlSAXLocator *xmlSAXLocatorPtr; 60typedef struct _xmlSAXHandler xmlSAXHandler; 61typedef xmlSAXHandler *xmlSAXHandlerPtr; 62typedef struct _xmlEntity xmlEntity; 63typedef xmlEntity *xmlEntityPtr; 64 65typedef enum 66{ 67 XML_BUFFER_ALLOC_DOUBLEIT, 68 XML_BUFFER_ALLOC_EXACT, 69 XML_BUFFER_ALLOC_IMMUTABLE, 70 XML_BUFFER_ALLOC_IO, 71 XML_BUFFER_ALLOC_HYBRID 72} xmlBufferAllocationScheme; 73 74typedef struct _xmlBuffer xmlBuffer; 75typedef xmlBuffer *xmlBufferPtr; 76 77struct _xmlBuffer 78{ 79 xmlChar *content; 80 unsigned int use; 81 unsigned int size; 82 xmlBufferAllocationScheme alloc; 83 xmlChar *contentIO; 84}; 85 86typedef struct _xmlBuf xmlBuf; 87typedef xmlBuf *xmlBufPtr; 88 89xmlChar *xmlBufContent (const xmlBuf * buf); 90xmlChar *xmlBufEnd (xmlBufPtr buf); 91size_t xmlBufUse (const xmlBufPtr buf); 92size_t xmlBufShrink (xmlBufPtr buf, size_t len); 93 94typedef enum 95{ 96 XML_ELEMENT_NODE = 1, 97 XML_ATTRIBUTE_NODE = 2, 98 XML_TEXT_NODE = 3, 99 XML_CDATA_SECTION_NODE = 4, 100 XML_ENTITY_REF_NODE = 5, 101 XML_ENTITY_NODE = 6, 102 XML_PI_NODE = 7, 103 XML_COMMENT_NODE = 8, 104 XML_DOCUMENT_NODE = 9, 105 XML_DOCUMENT_TYPE_NODE = 10, 106 XML_DOCUMENT_FRAG_NODE = 11, 107 XML_NOTATION_NODE = 12, 108 XML_HTML_DOCUMENT_NODE = 13, 109 XML_DTD_NODE = 14, 110 XML_ELEMENT_DECL = 15, 111 XML_ATTRIBUTE_DECL = 16, 112 XML_ENTITY_DECL = 17, 113 XML_NAMESPACE_DECL = 18, 114 XML_XINCLUDE_START = 19, 115 XML_XINCLUDE_END = 20, XML_DOCB_DOCUMENT_NODE = 21 116} xmlElementType; 117 118typedef struct _xmlNotation xmlNotation; 119typedef xmlNotation *xmlNotationPtr; 120 121struct _xmlNotation 122{ 123 const xmlChar *name; 124 const xmlChar *PublicID; 125 const xmlChar *SystemID; 126}; 127 128typedef enum 129{ 130 XML_ATTRIBUTE_CDATA = 1, 131 XML_ATTRIBUTE_ID, 132 XML_ATTRIBUTE_IDREF, 133 XML_ATTRIBUTE_IDREFS, 134 XML_ATTRIBUTE_ENTITY, 135 XML_ATTRIBUTE_ENTITIES, 136 XML_ATTRIBUTE_NMTOKEN, 137 XML_ATTRIBUTE_NMTOKENS, 138 XML_ATTRIBUTE_ENUMERATION, 139 XML_ATTRIBUTE_NOTATION 140} xmlAttributeType; 141 142typedef enum 143{ 144 XML_ATTRIBUTE_NONE = 1, 145 XML_ATTRIBUTE_REQUIRED, 146 XML_ATTRIBUTE_IMPLIED, 147 XML_ATTRIBUTE_FIXED 148} xmlAttributeDefault; 149 150typedef struct _xmlEnumeration xmlEnumeration; 151typedef xmlEnumeration *xmlEnumerationPtr; 152 153struct _xmlEnumeration 154{ 155 struct _xmlEnumeration *next; 156 const xmlChar *name; 157}; 158 159typedef struct _xmlAttribute xmlAttribute; 160typedef xmlAttribute *xmlAttributePtr; 161struct _xmlAttribute 162{ 163 void *_private; 164 xmlElementType type; 165 const xmlChar *name; 166 struct _xmlNode *children; 167 struct _xmlNode *last; 168 struct _xmlDtd *parent; 169 struct _xmlNode *next; 170 struct _xmlNode *prev; 171 struct _xmlDoc *doc; 172 173 struct _xmlAttribute *nexth; 174 xmlAttributeType atype; 175 xmlAttributeDefault def; 176 const xmlChar *defaultValue; 177 xmlEnumerationPtr tree; 178 const xmlChar *prefix; 179 const xmlChar *elem; 180}; 181 182typedef enum 183{ 184 XML_ELEMENT_CONTENT_PCDATA = 1, 185 XML_ELEMENT_CONTENT_ELEMENT, 186 XML_ELEMENT_CONTENT_SEQ, 187 XML_ELEMENT_CONTENT_OR 188} xmlElementContentType; 189 190typedef enum 191{ 192 XML_ELEMENT_CONTENT_ONCE = 1, 193 XML_ELEMENT_CONTENT_OPT, 194 XML_ELEMENT_CONTENT_MULT, 195 XML_ELEMENT_CONTENT_PLUS 196} xmlElementContentOccur; 197 198typedef struct _xmlElementContent xmlElementContent; 199typedef xmlElementContent *xmlElementContentPtr; 200 201struct _xmlElementContent 202{ 203 xmlElementContentType type; 204 xmlElementContentOccur ocur; 205 const xmlChar *name; 206 struct _xmlElementContent *c1; 207 struct _xmlElementContent *c2; 208 struct _xmlElementContent *parent; 209 const xmlChar *prefix; 210}; 211 212typedef enum 213{ 214 XML_ELEMENT_TYPE_UNDEFINED = 0, 215 XML_ELEMENT_TYPE_EMPTY = 1, 216 XML_ELEMENT_TYPE_ANY, 217 XML_ELEMENT_TYPE_MIXED, 218 XML_ELEMENT_TYPE_ELEMENT 219} xmlElementTypeVal; 220 221typedef struct _xmlRegexp xmlRegexp; 222typedef xmlRegexp *xmlRegexpPtr; 223typedef struct _xmlRegExecCtxt xmlRegExecCtxt; 224typedef xmlRegExecCtxt *xmlRegExecCtxtPtr; 225typedef struct _xmlDict xmlDict; 226typedef xmlDict *xmlDictPtr; 227 228int xmlInitializeDict (void); 229xmlDictPtr xmlDictCreate (void); 230size_t xmlDictSetLimit (xmlDictPtr dict, size_t limit); 231size_t xmlDictGetUsage (xmlDictPtr dict); 232xmlDictPtr xmlDictCreateSub (xmlDictPtr sub); 233int xmlDictReference (xmlDictPtr dict); 234void xmlDictFree (xmlDictPtr dict); 235const xmlChar *xmlDictLookup (xmlDictPtr dict, const xmlChar * name, int len); 236const xmlChar *xmlDictExists (xmlDictPtr dict, const xmlChar * name, int len); 237const xmlChar *xmlDictQLookup (xmlDictPtr dict, 238 const xmlChar * prefix, const xmlChar * name); 239int xmlDictOwns (xmlDictPtr dict, const xmlChar * str); 240int xmlDictSize (xmlDictPtr dict); 241void xmlDictCleanup (void); 242xmlRegexpPtr xmlRegexpCompile (const xmlChar * regexp); 243void xmlRegFreeRegexp (xmlRegexpPtr regexp); 244int xmlRegexpExec (xmlRegexpPtr comp, const xmlChar * value); 245void xmlRegexpPrint (FILE * output, xmlRegexpPtr regexp); 246int xmlRegexpIsDeterminist (xmlRegexpPtr comp); 247typedef void (*xmlRegExecCallbacks) (xmlRegExecCtxtPtr exec, 248 const xmlChar * token, 249 void *transdata, void *inputdata); 250xmlRegExecCtxtPtr 251xmlRegNewExecCtxt (xmlRegexpPtr comp, 252 xmlRegExecCallbacks callback, void *data); 253void xmlRegFreeExecCtxt (xmlRegExecCtxtPtr exec); 254int xmlRegExecPushString (xmlRegExecCtxtPtr exec, 255 const xmlChar * value, void *data); 256int xmlRegExecPushString2 (xmlRegExecCtxtPtr exec, 257 const xmlChar * value, 258 const xmlChar * value2, void *data); 259 260int xmlRegExecNextValues (xmlRegExecCtxtPtr exec, 261 int *nbval, 262 int *nbneg, xmlChar ** values, int *terminal); 263int xmlRegExecErrInfo (xmlRegExecCtxtPtr exec, 264 const xmlChar ** string, 265 int *nbval, int *nbneg, xmlChar ** values, int *terminal); 266 267typedef struct _xmlExpCtxt xmlExpCtxt; 268typedef xmlExpCtxt *xmlExpCtxtPtr; 269void xmlExpFreeCtxt (xmlExpCtxtPtr ctxt); 270xmlExpCtxtPtr xmlExpNewCtxt (int maxNodes, xmlDictPtr dict); 271int xmlExpCtxtNbNodes (xmlExpCtxtPtr ctxt); 272int xmlExpCtxtNbCons (xmlExpCtxtPtr ctxt); 273typedef struct _xmlExpNode xmlExpNode; 274typedef xmlExpNode *xmlExpNodePtr; 275 276typedef enum 277{ 278 XML_EXP_EMPTY = 0, 279 XML_EXP_FORBID = 1, 280 XML_EXP_ATOM = 2, 281 XML_EXP_SEQ = 3, 282 XML_EXP_OR = 4, 283 XML_EXP_COUNT = 5 284} xmlExpNodeType; 285 286extern xmlExpNodePtr forbiddenExp; 287extern xmlExpNodePtr emptyExp; 288 289void xmlExpFree (xmlExpCtxtPtr ctxt, xmlExpNodePtr expr); 290void xmlExpRef (xmlExpNodePtr expr); 291 292xmlExpNodePtr xmlExpParse (xmlExpCtxtPtr ctxt, const char *expr); 293xmlExpNodePtr xmlExpNewAtom (xmlExpCtxtPtr ctxt, const xmlChar * name, int len); 294xmlExpNodePtr xmlExpNewOr (xmlExpCtxtPtr ctxt, xmlExpNodePtr left, xmlExpNodePtr right); 295xmlExpNodePtr xmlExpNewSeq (xmlExpCtxtPtr ctxt, xmlExpNodePtr left, xmlExpNodePtr right); 296xmlExpNodePtr xmlExpNewRange (xmlExpCtxtPtr ctxt, xmlExpNodePtr subset, int min, int max); 297 298int xmlExpIsNillable (xmlExpNodePtr expr); 299int xmlExpMaxToken (xmlExpNodePtr expr); 300int xmlExpGetLanguage (xmlExpCtxtPtr ctxt, 301 xmlExpNodePtr expr, const xmlChar ** langList, int len); 302int xmlExpGetStart (xmlExpCtxtPtr ctxt, 303 xmlExpNodePtr expr, const xmlChar ** tokList, int len); 304xmlExpNodePtr xmlExpStringDerive (xmlExpCtxtPtr ctxt, 305 xmlExpNodePtr expr, const xmlChar * str, int len); 306xmlExpNodePtr xmlExpExpDerive (xmlExpCtxtPtr ctxt, xmlExpNodePtr expr, xmlExpNodePtr sub); 307int xmlExpSubsume (xmlExpCtxtPtr ctxt, xmlExpNodePtr expr, xmlExpNodePtr sub); 308void xmlExpDump (xmlBufferPtr buf, xmlExpNodePtr expr); 309typedef struct _xmlElement xmlElement; 310typedef xmlElement *xmlElementPtr; 311 312struct _xmlElement 313{ 314 void *_private; 315 xmlElementType type; 316 const xmlChar *name; 317 struct _xmlNode *children; 318 struct _xmlNode *last; 319 struct _xmlDtd *parent; 320 struct _xmlNode *next; 321 struct _xmlNode *prev; 322 struct _xmlDoc *doc; 323 xmlElementTypeVal etype; 324 xmlElementContentPtr content; 325 xmlAttributePtr attributes; 326 const xmlChar *prefix; 327 xmlRegexpPtr contModel; 328}; 329 330typedef xmlElementType xmlNsType; 331typedef struct _xmlNs xmlNs; 332typedef xmlNs *xmlNsPtr; 333 334struct _xmlNs 335{ 336 struct _xmlNs *next; 337 xmlNsType type; 338 const xmlChar *href; 339 const xmlChar *prefix; 340 void *_private; 341 struct _xmlDoc *context; 342}; 343 344typedef struct _xmlDtd xmlDtd; 345typedef xmlDtd *xmlDtdPtr; 346struct _xmlDtd 347{ 348 void *_private; 349 xmlElementType type; 350 const xmlChar *name; 351 struct _xmlNode *children; 352 struct _xmlNode *last; 353 struct _xmlDoc *parent; 354 struct _xmlNode *next; 355 struct _xmlNode *prev; 356 struct _xmlDoc *doc; 357 void *notations; 358 void *elements; 359 void *attributes; 360 void *entities; 361 const xmlChar *ExternalID; 362 const xmlChar *SystemID; 363 void *pentities; 364}; 365 366typedef struct _xmlAttr xmlAttr; 367typedef xmlAttr *xmlAttrPtr; 368struct _xmlAttr 369{ 370 void *_private; 371 xmlElementType type; 372 const xmlChar *name; 373 struct _xmlNode *children; 374 struct _xmlNode *last; 375 struct _xmlNode *parent; 376 struct _xmlAttr *next; 377 struct _xmlAttr *prev; 378 struct _xmlDoc *doc; 379 xmlNs *ns; 380 xmlAttributeType atype; 381 void *psvi; 382}; 383 384typedef struct _xmlID xmlID; 385typedef xmlID *xmlIDPtr; 386struct _xmlID 387{ 388 struct _xmlID *next; 389 const xmlChar *value; 390 xmlAttrPtr attr; 391 const xmlChar *name; 392 int lineno; 393 struct _xmlDoc *doc; 394}; 395 396typedef struct _xmlRef xmlRef; 397typedef xmlRef *xmlRefPtr; 398struct _xmlRef 399{ 400 struct _xmlRef *next; 401 const xmlChar *value; 402 xmlAttrPtr attr; 403 const xmlChar *name; 404 int lineno; 405}; 406 407typedef struct _xmlNode xmlNode; 408typedef xmlNode *xmlNodePtr; 409struct _xmlNode 410{ 411 void *_private; 412 xmlElementType type; 413 const xmlChar *name; 414 struct _xmlNode *children; 415 struct _xmlNode *last; 416 struct _xmlNode *parent; 417 struct _xmlNode *next; 418 struct _xmlNode *prev; 419 struct _xmlDoc *doc; 420 xmlNs *ns; 421 xmlChar *content; 422 struct _xmlAttr *properties; 423 xmlNs *nsDef; 424 void *psvi; 425 unsigned short line; 426 unsigned short extra; 427}; 428 429typedef enum 430{ 431 XML_DOC_WELLFORMED = 1 << 0, 432 XML_DOC_NSVALID = 1 << 1, 433 XML_DOC_OLD10 = 1 << 2, 434 XML_DOC_DTDVALID = 1 << 3, 435 XML_DOC_XINCLUDE = 1 << 4, 436 XML_DOC_USERBUILT = 1 << 5, 437 XML_DOC_INTERNAL = 1 << 6, 438 XML_DOC_HTML = 1 << 7 439} xmlDocProperties; 440 441typedef struct _xmlDoc xmlDoc; 442typedef xmlDoc *xmlDocPtr; 443 444struct _xmlDoc 445{ 446 void *_private; 447 xmlElementType type; 448 char *name; 449 struct _xmlNode *children; 450 struct _xmlNode *last; 451 struct _xmlNode *parent; 452 struct _xmlNode *next; 453 struct _xmlNode *prev; 454 struct _xmlDoc *doc; 455 int compression; 456 int standalone; 457 struct _xmlDtd *intSubset; 458 struct _xmlDtd *extSubset; 459 struct _xmlNs *oldNs; 460 const xmlChar *version; 461 const xmlChar *encoding; 462 void *ids; 463 void *refs; 464 const xmlChar *URL; 465 int charset; 466 struct _xmlDict *dict; 467 void *psvi; 468 int parseFlags; 469 int properties; 470}; 471 472typedef struct _xmlDOMWrapCtxt xmlDOMWrapCtxt; 473typedef xmlDOMWrapCtxt *xmlDOMWrapCtxtPtr; 474typedef xmlNsPtr (*xmlDOMWrapAcquireNsFunction) (xmlDOMWrapCtxtPtr ctxt, 475 xmlNodePtr node, 476 const xmlChar * nsName, 477 const xmlChar * nsPrefix); 478 479struct _xmlDOMWrapCtxt 480{ 481 void *_private; 482 int type; 483 void *namespaceMap; 484 xmlDOMWrapAcquireNsFunction getNsForNodeFunc; 485}; 486 487int xmlValidateNCName (const xmlChar * value, int space); 488int xmlValidateQName (const xmlChar * value, int space); 489int xmlValidateName (const xmlChar * value, int space); 490int xmlValidateNMToken (const xmlChar * value, int space); 491xmlChar *xmlBuildQName (const xmlChar * ncname, 492 const xmlChar * prefix, xmlChar * memory, int len); 493xmlChar *xmlSplitQName2 (const xmlChar * name, xmlChar ** prefix); 494const xmlChar *xmlSplitQName3 (const xmlChar * name, int *len); 495void xmlSetBufferAllocationScheme (xmlBufferAllocationScheme scheme); 496xmlBufferAllocationScheme xmlGetBufferAllocationScheme (void); 497xmlBufferPtr xmlBufferCreate (void); 498xmlBufferPtr xmlBufferCreateSize (size_t size); 499xmlBufferPtr xmlBufferCreateStatic (void *mem, size_t size); 500int xmlBufferResize (xmlBufferPtr buf, unsigned int size); 501void xmlBufferFree (xmlBufferPtr buf); 502int xmlBufferDump (FILE * file, xmlBufferPtr buf); 503int xmlBufferAdd (xmlBufferPtr buf, const xmlChar * str, int len); 504int xmlBufferAddHead (xmlBufferPtr buf, const xmlChar * str, int len); 505int xmlBufferCat (xmlBufferPtr buf, const xmlChar * str); 506int xmlBufferCCat (xmlBufferPtr buf, const char *str); 507int xmlBufferShrink (xmlBufferPtr buf, unsigned int len); 508int xmlBufferGrow (xmlBufferPtr buf, unsigned int len); 509void xmlBufferEmpty (xmlBufferPtr buf); 510const xmlChar *xmlBufferContent (const xmlBuffer * buf); 511xmlChar *xmlBufferDetach (xmlBufferPtr buf); 512void xmlBufferSetAllocationScheme (xmlBufferPtr buf, 513 xmlBufferAllocationScheme scheme); 514int xmlBufferLength (const xmlBuffer * buf); 515 516xmlDtdPtr xmlCreateIntSubset (xmlDocPtr doc, 517 const xmlChar * name, 518 const xmlChar * ExternalID, const xmlChar * SystemID); 519xmlDtdPtr xmlNewDtd (xmlDocPtr doc, 520 const xmlChar * name, 521 const xmlChar * ExternalID, const xmlChar * SystemID); 522xmlDtdPtr xmlGetIntSubset (const xmlDoc * doc); 523void xmlFreeDtd (xmlDtdPtr cur); 524 525xmlNsPtr xmlNewGlobalNs (xmlDocPtr doc, const xmlChar * href, const xmlChar * prefix); 526 527xmlNsPtr xmlNewNs (xmlNodePtr node, const xmlChar * href, const xmlChar * prefix); 528void xmlFreeNs (xmlNsPtr cur); 529void xmlFreeNsList (xmlNsPtr cur); 530xmlDocPtr xmlNewDoc (const xmlChar * version); 531void xmlFreeDoc (xmlDocPtr cur); 532xmlAttrPtr xmlNewDocProp (xmlDocPtr doc, const xmlChar * name, const xmlChar * value); 533 534 535xmlAttrPtr xmlNewProp (xmlNodePtr node, const xmlChar * name, const xmlChar * value); 536 537xmlAttrPtr xmlNewNsProp (xmlNodePtr node, 538 xmlNsPtr ns, const xmlChar * name, const xmlChar * value); 539xmlAttrPtr xmlNewNsPropEatName (xmlNodePtr node, 540 xmlNsPtr ns, xmlChar * name, const xmlChar * value); 541void xmlFreePropList (xmlAttrPtr cur); 542void xmlFreeProp (xmlAttrPtr cur); 543xmlAttrPtr xmlCopyProp (xmlNodePtr target, xmlAttrPtr cur); 544xmlAttrPtr xmlCopyPropList (xmlNodePtr target, xmlAttrPtr cur); 545xmlDtdPtr xmlCopyDtd (xmlDtdPtr dtd); 546xmlDocPtr xmlCopyDoc (xmlDocPtr doc, int recursive); 547xmlNodePtr xmlNewDocNode (xmlDocPtr doc, 548 xmlNsPtr ns, const xmlChar * name, const xmlChar * content); 549xmlNodePtr xmlNewDocNodeEatName (xmlDocPtr doc, 550 xmlNsPtr ns, xmlChar * name, const xmlChar * content); 551xmlNodePtr xmlNewNode (xmlNsPtr ns, const xmlChar * name); 552xmlNodePtr xmlNewNodeEatName (xmlNsPtr ns, xmlChar * name); 553 554xmlNodePtr xmlNewChild (xmlNodePtr parent, 555 xmlNsPtr ns, const xmlChar * name, const xmlChar * content); 556xmlNodePtr xmlNewDocText (const xmlDoc * doc, const xmlChar * content); 557xmlNodePtr xmlNewText (const xmlChar * content); 558xmlNodePtr xmlNewDocPI (xmlDocPtr doc, const xmlChar * name, const xmlChar * content); 559xmlNodePtr xmlNewPI (const xmlChar * name, const xmlChar * content); 560xmlNodePtr xmlNewDocTextLen (xmlDocPtr doc, const xmlChar * content, int len); 561xmlNodePtr xmlNewTextLen (const xmlChar * content, int len); 562xmlNodePtr xmlNewDocComment (xmlDocPtr doc, const xmlChar * content); 563xmlNodePtr xmlNewComment (const xmlChar * content); 564xmlNodePtr xmlNewCDataBlock (xmlDocPtr doc, const xmlChar * content, int len); 565xmlNodePtr xmlNewCharRef (xmlDocPtr doc, const xmlChar * name); 566xmlNodePtr xmlNewReference (const xmlDoc * doc, const xmlChar * name); 567xmlNodePtr xmlCopyNode (xmlNodePtr node, int recursive); 568xmlNodePtr xmlDocCopyNode (xmlNodePtr node, xmlDocPtr doc, int recursive); 569xmlNodePtr xmlDocCopyNodeList (xmlDocPtr doc, xmlNodePtr node); 570xmlNodePtr xmlCopyNodeList (xmlNodePtr node); 571 572xmlNodePtr xmlNewTextChild (xmlNodePtr parent, 573 xmlNsPtr ns, const xmlChar * name, const xmlChar * content); 574xmlNodePtr xmlNewDocRawNode (xmlDocPtr doc, 575 xmlNsPtr ns, const xmlChar * name, const xmlChar * content); 576xmlNodePtr xmlNewDocFragment (xmlDocPtr doc); 577long xmlGetLineNo (const xmlNode * node); 578xmlChar *xmlGetNodePath (const xmlNode * node); 579xmlNodePtr xmlDocGetRootElement (const xmlDoc * doc); 580xmlNodePtr xmlGetLastChild (const xmlNode * parent); 581int xmlNodeIsText (const xmlNode * node); 582int xmlIsBlankNode (const xmlNode * node); 583xmlNodePtr xmlDocSetRootElement (xmlDocPtr doc, xmlNodePtr root); 584void xmlNodeSetName (xmlNodePtr cur, const xmlChar * name); 585xmlNodePtr xmlAddChild (xmlNodePtr parent, xmlNodePtr cur); 586xmlNodePtr xmlAddChildList (xmlNodePtr parent, xmlNodePtr cur); 587xmlNodePtr xmlReplaceNode (xmlNodePtr old, xmlNodePtr cur); 588xmlNodePtr xmlAddPrevSibling (xmlNodePtr cur, xmlNodePtr elem); 589xmlNodePtr xmlAddSibling (xmlNodePtr cur, xmlNodePtr elem); 590xmlNodePtr xmlAddNextSibling (xmlNodePtr cur, xmlNodePtr elem); 591void xmlUnlinkNode (xmlNodePtr cur); 592xmlNodePtr xmlTextMerge (xmlNodePtr first, xmlNodePtr second); 593int xmlTextConcat (xmlNodePtr node, const xmlChar * content, int len); 594void xmlFreeNodeList (xmlNodePtr cur); 595void xmlFreeNode (xmlNodePtr cur); 596void xmlSetTreeDoc (xmlNodePtr tree, xmlDocPtr doc); 597void xmlSetListDoc (xmlNodePtr list, xmlDocPtr doc); 598 599xmlNsPtr xmlSearchNs (xmlDocPtr doc, xmlNodePtr node, const xmlChar * nameSpace); 600xmlNsPtr xmlSearchNsByHref (xmlDocPtr doc, xmlNodePtr node, const xmlChar * href); 601xmlNsPtr *xmlGetNsList (const xmlDoc * doc, const xmlNode * node); 602void xmlSetNs (xmlNodePtr node, xmlNsPtr ns); 603xmlNsPtr xmlCopyNamespace (xmlNsPtr cur); 604xmlNsPtr xmlCopyNamespaceList (xmlNsPtr cur); 605xmlAttrPtr xmlSetProp (xmlNodePtr node, const xmlChar * name, const xmlChar * value); 606xmlAttrPtr xmlSetNsProp (xmlNodePtr node, 607 xmlNsPtr ns, const xmlChar * name, const xmlChar * value); 608 609xmlChar *xmlGetNoNsProp (const xmlNode * node, const xmlChar * name); 610xmlChar *xmlGetProp (const xmlNode * node, const xmlChar * name); 611xmlAttrPtr xmlHasProp (const xmlNode * node, const xmlChar * name); 612xmlAttrPtr xmlHasNsProp (const xmlNode * node, 613 const xmlChar * name, const xmlChar * nameSpace); 614xmlChar *xmlGetNsProp (const xmlNode * node, 615 const xmlChar * name, const xmlChar * nameSpace); 616xmlNodePtr xmlStringGetNodeList (const xmlDoc * doc, const xmlChar * value); 617xmlNodePtr xmlStringLenGetNodeList (const xmlDoc * doc, const xmlChar * value, int len); 618xmlChar *xmlNodeListGetString (xmlDocPtr doc, 619 const xmlNode * list, int inLine); 620 621xmlChar *xmlNodeListGetRawString (const xmlDoc * doc, 622 const xmlNode * list, int inLine); 623 624void xmlNodeSetContent (xmlNodePtr cur, const xmlChar * content); 625void xmlNodeSetContentLen (xmlNodePtr cur, const xmlChar * content, int len); 626void xmlNodeAddContent (xmlNodePtr cur, const xmlChar * content); 627void xmlNodeAddContentLen (xmlNodePtr cur, const xmlChar * content, int len); 628xmlChar *xmlNodeGetContent (const xmlNode * cur); 629int xmlNodeBufGetContent (xmlBufferPtr buffer, const xmlNode * cur); 630int xmlBufGetNodeContent (xmlBufPtr buf, const xmlNode * cur); 631xmlChar *xmlNodeGetLang (const xmlNode * cur); 632int xmlNodeGetSpacePreserve (const xmlNode * cur); 633void xmlNodeSetLang (xmlNodePtr cur, const xmlChar * lang); 634void xmlNodeSetSpacePreserve (xmlNodePtr cur, int val); 635xmlChar *xmlNodeGetBase (const xmlDoc * doc, const xmlNode * cur); 636void xmlNodeSetBase (xmlNodePtr cur, const xmlChar * uri); 637int xmlRemoveProp (xmlAttrPtr cur); 638int xmlUnsetNsProp (xmlNodePtr node, xmlNsPtr ns, const xmlChar * name); 639int xmlUnsetProp (xmlNodePtr node, const xmlChar * name); 640void xmlBufferWriteCHAR (xmlBufferPtr buf, const xmlChar * string); 641void xmlBufferWriteChar (xmlBufferPtr buf, const char *string); 642void xmlBufferWriteQuotedString (xmlBufferPtr buf, const xmlChar * string); 643void xmlAttrSerializeTxtContent (xmlBufferPtr buf, 644 xmlDocPtr doc, 645 xmlAttrPtr attr, const xmlChar * string); 646int xmlReconciliateNs (xmlDocPtr doc, xmlNodePtr tree); 647void xmlDocDumpFormatMemory (xmlDocPtr cur, xmlChar ** mem, int *size, int format); 648void xmlDocDumpMemory (xmlDocPtr cur, xmlChar ** mem, int *size); 649void xmlDocDumpMemoryEnc (xmlDocPtr out_doc, 650 xmlChar ** doc_txt_ptr, 651 int *doc_txt_len, const char *txt_encoding); 652void xmlDocDumpFormatMemoryEnc (xmlDocPtr out_doc, 653 xmlChar ** doc_txt_ptr, 654 int *doc_txt_len, 655 const char *txt_encoding, int format); 656int xmlDocFormatDump (FILE * f, xmlDocPtr cur, int format); 657int xmlDocDump (FILE * f, xmlDocPtr cur); 658void xmlElemDump (FILE * f, xmlDocPtr doc, xmlNodePtr cur); 659int xmlSaveFile (const char *filename, xmlDocPtr cur); 660int xmlSaveFormatFile (const char *filename, xmlDocPtr cur, int format); 661size_t xmlBufNodeDump (xmlBufPtr buf, 662 xmlDocPtr doc, xmlNodePtr cur, int level, int format); 663int xmlNodeDump (xmlBufferPtr buf, 664 xmlDocPtr doc, xmlNodePtr cur, int level, int format); 665 666int xmlSaveFileTo (xmlOutputBufferPtr buf, xmlDocPtr cur, const char *encoding); 667int xmlSaveFormatFileTo (xmlOutputBufferPtr buf, 668 xmlDocPtr cur, const char *encoding, int format); 669void xmlNodeDumpOutput (xmlOutputBufferPtr buf, 670 xmlDocPtr doc, 671 xmlNodePtr cur, 672 int level, int format, const char *encoding); 673 674int xmlSaveFormatFileEnc (const char *filename, 675 xmlDocPtr cur, const char *encoding, int format); 676 677int xmlSaveFileEnc (const char *filename, xmlDocPtr cur, const char *encoding); 678int xmlIsXHTML (const xmlChar * systemID, const xmlChar * publicID); 679int xmlGetDocCompressMode (const xmlDoc * doc); 680void xmlSetDocCompressMode (xmlDocPtr doc, int mode); 681int xmlGetCompressMode (void); 682void xmlSetCompressMode (int mode); 683xmlDOMWrapCtxtPtr xmlDOMWrapNewCtxt (void); 684void xmlDOMWrapFreeCtxt (xmlDOMWrapCtxtPtr ctxt); 685int xmlDOMWrapReconcileNamespaces (xmlDOMWrapCtxtPtr ctxt, 686 xmlNodePtr elem, int options); 687int xmlDOMWrapAdoptNode (xmlDOMWrapCtxtPtr ctxt, 688 xmlDocPtr sourceDoc, 689 xmlNodePtr node, 690 xmlDocPtr destDoc, xmlNodePtr destParent, int options); 691int xmlDOMWrapRemoveNode (xmlDOMWrapCtxtPtr ctxt, 692 xmlDocPtr doc, xmlNodePtr node, int options); 693int xmlDOMWrapCloneNode (xmlDOMWrapCtxtPtr ctxt, 694 xmlDocPtr sourceDoc, 695 xmlNodePtr node, 696 xmlNodePtr * clonedNode, 697 xmlDocPtr destDoc, 698 xmlNodePtr destParent, int deep, int options); 699 700unsigned long xmlChildElementCount (xmlNodePtr parent); 701xmlNodePtr xmlNextElementSibling (xmlNodePtr node); 702xmlNodePtr xmlFirstElementChild (xmlNodePtr parent); 703xmlNodePtr xmlLastElementChild (xmlNodePtr parent); 704xmlNodePtr xmlPreviousElementSibling (xmlNodePtr node); 705typedef struct _xmlHashTable xmlHashTable; 706typedef xmlHashTable *xmlHashTablePtr; 707typedef void (*xmlHashDeallocator) (void *payload, xmlChar * name); 708typedef void *(*xmlHashCopier) (void *payload, xmlChar * name); 709typedef void (*xmlHashScanner) (void *payload, void *data, xmlChar * name); 710typedef void (*xmlHashScannerFull) (void *payload, void *data, 711 const xmlChar * name, 712 const xmlChar * name2, 713 const xmlChar * name3); 714 715 716 717 718xmlHashTablePtr xmlHashCreate (int size); 719xmlHashTablePtr xmlHashCreateDict (int size, xmlDictPtr dict); 720void xmlHashFree (xmlHashTablePtr table, xmlHashDeallocator f); 721 722int xmlHashAddEntry (xmlHashTablePtr table, const xmlChar * name, void *userdata); 723int xmlHashUpdateEntry (xmlHashTablePtr table, 724 const xmlChar * name, 725 void *userdata, xmlHashDeallocator f); 726int xmlHashAddEntry2 (xmlHashTablePtr table, 727 const xmlChar * name, 728 const xmlChar * name2, void *userdata); 729int xmlHashUpdateEntry2 (xmlHashTablePtr table, 730 const xmlChar * name, 731 const xmlChar * name2, 732 void *userdata, xmlHashDeallocator f); 733int xmlHashAddEntry3 (xmlHashTablePtr table, 734 const xmlChar * name, 735 const xmlChar * name2, 736 const xmlChar * name3, void *userdata); 737int xmlHashUpdateEntry3 (xmlHashTablePtr table, 738 const xmlChar * name, 739 const xmlChar * name2, 740 const xmlChar * name3, 741 void *userdata, xmlHashDeallocator f); 742 743int xmlHashRemoveEntry (xmlHashTablePtr table, const xmlChar * name, 744 xmlHashDeallocator f); 745int xmlHashRemoveEntry2 (xmlHashTablePtr table, const xmlChar * name, 746 const xmlChar * name2, xmlHashDeallocator f); 747int xmlHashRemoveEntry3 (xmlHashTablePtr table, const xmlChar * name, 748 const xmlChar * name2, const xmlChar * name3, 749 xmlHashDeallocator f); 750 751void *xmlHashLookup (xmlHashTablePtr table, const xmlChar * name); 752void *xmlHashLookup2 (xmlHashTablePtr table, 753 const xmlChar * name, const xmlChar * name2); 754void *xmlHashLookup3 (xmlHashTablePtr table, 755 const xmlChar * name, 756 const xmlChar * name2, const xmlChar * name3); 757void *xmlHashQLookup (xmlHashTablePtr table, 758 const xmlChar * name, const xmlChar * prefix); 759void *xmlHashQLookup2 (xmlHashTablePtr table, 760 const xmlChar * name, 761 const xmlChar * prefix, 762 const xmlChar * name2, const xmlChar * prefix2); 763void *xmlHashQLookup3 (xmlHashTablePtr table, 764 const xmlChar * name, 765 const xmlChar * prefix, 766 const xmlChar * name2, 767 const xmlChar * prefix2, 768 const xmlChar * name3, const xmlChar * prefix3); 769 770xmlHashTablePtr xmlHashCopy (xmlHashTablePtr table, xmlHashCopier f); 771int xmlHashSize (xmlHashTablePtr table); 772void xmlHashScan (xmlHashTablePtr table, xmlHashScanner f, void *data); 773void xmlHashScan3 (xmlHashTablePtr table, 774 const xmlChar * name, 775 const xmlChar * name2, 776 const xmlChar * name3, xmlHashScanner f, void *data); 777void xmlHashScanFull (xmlHashTablePtr table, xmlHashScannerFull f, void *data); 778void xmlHashScanFull3 (xmlHashTablePtr table, 779 const xmlChar * name, 780 const xmlChar * name2, 781 const xmlChar * name3, xmlHashScannerFull f, void *data); 782typedef enum 783{ 784 XML_ERR_NONE = 0, 785 XML_ERR_WARNING = 1, 786 XML_ERR_ERROR = 2, 787 XML_ERR_FATAL = 3 788} xmlErrorLevel; 789 790typedef enum 791{ 792 XML_FROM_NONE = 0, 793 XML_FROM_PARSER, 794 XML_FROM_TREE, 795 XML_FROM_NAMESPACE, 796 XML_FROM_DTD, 797 XML_FROM_HTML, 798 XML_FROM_MEMORY, 799 XML_FROM_OUTPUT, 800 XML_FROM_IO, 801 XML_FROM_FTP, 802 XML_FROM_HTTP, 803 XML_FROM_XINCLUDE, 804 XML_FROM_XPATH, 805 XML_FROM_XPOINTER, 806 XML_FROM_REGEXP, 807 XML_FROM_DATATYPE, 808 XML_FROM_SCHEMASP, 809 XML_FROM_SCHEMASV, 810 XML_FROM_RELAXNGP, 811 XML_FROM_RELAXNGV, 812 XML_FROM_CATALOG, 813 XML_FROM_C14N, 814 XML_FROM_XSLT, 815 XML_FROM_VALID, 816 XML_FROM_CHECK, 817 XML_FROM_WRITER, 818 XML_FROM_MODULE, 819 XML_FROM_I18N, 820 XML_FROM_SCHEMATRONV, 821 XML_FROM_BUFFER, 822 XML_FROM_URI 823} xmlErrorDomain; 824 825typedef struct _xmlError xmlError; 826typedef xmlError *xmlErrorPtr; 827struct _xmlError 828{ 829 int domain; 830 int code; 831 char *message; 832 xmlErrorLevel level; 833 char *file; 834 int line; 835 char *str1; 836 char *str2; 837 char *str3; 838 int int1; 839 int int2; 840 void *ctxt; 841 void *node; 842}; 843 844typedef enum 845{ 846 XML_ERR_OK = 0, 847 XML_ERR_INTERNAL_ERROR, 848 XML_ERR_NO_MEMORY, 849 XML_ERR_DOCUMENT_START, 850 XML_ERR_DOCUMENT_EMPTY, 851 XML_ERR_DOCUMENT_END, 852 XML_ERR_INVALID_HEX_CHARREF, 853 XML_ERR_INVALID_DEC_CHARREF, 854 XML_ERR_INVALID_CHARREF, 855 XML_ERR_INVALID_CHAR, 856 XML_ERR_CHARREF_AT_EOF, 857 XML_ERR_CHARREF_IN_PROLOG, 858 XML_ERR_CHARREF_IN_EPILOG, 859 XML_ERR_CHARREF_IN_DTD, 860 XML_ERR_ENTITYREF_AT_EOF, 861 XML_ERR_ENTITYREF_IN_PROLOG, 862 XML_ERR_ENTITYREF_IN_EPILOG, 863 XML_ERR_ENTITYREF_IN_DTD, 864 XML_ERR_PEREF_AT_EOF, 865 XML_ERR_PEREF_IN_PROLOG, 866 XML_ERR_PEREF_IN_EPILOG, 867 XML_ERR_PEREF_IN_INT_SUBSET, 868 XML_ERR_ENTITYREF_NO_NAME, 869 XML_ERR_ENTITYREF_SEMICOL_MISSING, 870 XML_ERR_PEREF_NO_NAME, 871 XML_ERR_PEREF_SEMICOL_MISSING, 872 XML_ERR_UNDECLARED_ENTITY, 873 XML_WAR_UNDECLARED_ENTITY, 874 XML_ERR_UNPARSED_ENTITY, 875 XML_ERR_ENTITY_IS_EXTERNAL, 876 XML_ERR_ENTITY_IS_PARAMETER, 877 XML_ERR_UNKNOWN_ENCODING, 878 XML_ERR_UNSUPPORTED_ENCODING, 879 XML_ERR_STRING_NOT_STARTED, 880 XML_ERR_STRING_NOT_CLOSED, 881 XML_ERR_NS_DECL_ERROR, 882 XML_ERR_ENTITY_NOT_STARTED, 883 XML_ERR_ENTITY_NOT_FINISHED, 884 XML_ERR_LT_IN_ATTRIBUTE, 885 XML_ERR_ATTRIBUTE_NOT_STARTED, 886 XML_ERR_ATTRIBUTE_NOT_FINISHED, 887 XML_ERR_ATTRIBUTE_WITHOUT_VALUE, 888 XML_ERR_ATTRIBUTE_REDEFINED, 889 XML_ERR_LITERAL_NOT_STARTED, 890 XML_ERR_LITERAL_NOT_FINISHED, 891 XML_ERR_COMMENT_NOT_FINISHED, 892 XML_ERR_PI_NOT_STARTED, 893 XML_ERR_PI_NOT_FINISHED, 894 XML_ERR_NOTATION_NOT_STARTED, 895 XML_ERR_NOTATION_NOT_FINISHED, 896 XML_ERR_ATTLIST_NOT_STARTED, 897 XML_ERR_ATTLIST_NOT_FINISHED, 898 XML_ERR_MIXED_NOT_STARTED, 899 XML_ERR_MIXED_NOT_FINISHED, 900 XML_ERR_ELEMCONTENT_NOT_STARTED, 901 XML_ERR_ELEMCONTENT_NOT_FINISHED, 902 XML_ERR_XMLDECL_NOT_STARTED, 903 XML_ERR_XMLDECL_NOT_FINISHED, 904 XML_ERR_CONDSEC_NOT_STARTED, 905 XML_ERR_CONDSEC_NOT_FINISHED, 906 XML_ERR_EXT_SUBSET_NOT_FINISHED, 907 XML_ERR_DOCTYPE_NOT_FINISHED, 908 XML_ERR_MISPLACED_CDATA_END, 909 XML_ERR_CDATA_NOT_FINISHED, 910 XML_ERR_RESERVED_XML_NAME, 911 XML_ERR_SPACE_REQUIRED, 912 XML_ERR_SEPARATOR_REQUIRED, 913 XML_ERR_NMTOKEN_REQUIRED, 914 XML_ERR_NAME_REQUIRED, 915 XML_ERR_PCDATA_REQUIRED, 916 XML_ERR_URI_REQUIRED, 917 XML_ERR_PUBID_REQUIRED, 918 XML_ERR_LT_REQUIRED, 919 XML_ERR_GT_REQUIRED, 920 XML_ERR_LTSLASH_REQUIRED, 921 XML_ERR_EQUAL_REQUIRED, 922 XML_ERR_TAG_NAME_MISMATCH, 923 XML_ERR_TAG_NOT_FINISHED, 924 XML_ERR_STANDALONE_VALUE, 925 XML_ERR_ENCODING_NAME, 926 XML_ERR_HYPHEN_IN_COMMENT, 927 XML_ERR_INVALID_ENCODING, 928 XML_ERR_EXT_ENTITY_STANDALONE, 929 XML_ERR_CONDSEC_INVALID, 930 XML_ERR_VALUE_REQUIRED, 931 XML_ERR_NOT_WELL_BALANCED, 932 XML_ERR_EXTRA_CONTENT, 933 XML_ERR_ENTITY_CHAR_ERROR, 934 XML_ERR_ENTITY_PE_INTERNAL, 935 XML_ERR_ENTITY_LOOP, 936 XML_ERR_ENTITY_BOUNDARY, 937 XML_ERR_INVALID_URI, 938 XML_ERR_URI_FRAGMENT, 939 XML_WAR_CATALOG_PI, 940 XML_ERR_NO_DTD, 941 XML_ERR_CONDSEC_INVALID_KEYWORD, 942 XML_ERR_VERSION_MISSING, 943 XML_WAR_UNKNOWN_VERSION, 944 XML_WAR_LANG_VALUE, 945 XML_WAR_NS_URI, 946 XML_WAR_NS_URI_RELATIVE, 947 XML_ERR_MISSING_ENCODING, 948 XML_WAR_SPACE_VALUE, 949 XML_ERR_NOT_STANDALONE, 950 XML_ERR_ENTITY_PROCESSING, 951 XML_ERR_NOTATION_PROCESSING, 952 XML_WAR_NS_COLUMN, 953 XML_WAR_ENTITY_REDEFINED, 954 XML_ERR_UNKNOWN_VERSION, 955 XML_ERR_VERSION_MISMATCH, 956 XML_ERR_NAME_TOO_LONG, 957 XML_ERR_USER_STOP, 958 XML_NS_ERR_XML_NAMESPACE = 200, 959 XML_NS_ERR_UNDEFINED_NAMESPACE, 960 XML_NS_ERR_QNAME, 961 XML_NS_ERR_ATTRIBUTE_REDEFINED, 962 XML_NS_ERR_EMPTY, 963 XML_NS_ERR_COLON, 964 XML_DTD_ATTRIBUTE_DEFAULT = 500, 965 XML_DTD_ATTRIBUTE_REDEFINED, 966 XML_DTD_ATTRIBUTE_VALUE, 967 XML_DTD_CONTENT_ERROR, 968 XML_DTD_CONTENT_MODEL, 969 XML_DTD_CONTENT_NOT_DETERMINIST, 970 XML_DTD_DIFFERENT_PREFIX, 971 XML_DTD_ELEM_DEFAULT_NAMESPACE, 972 XML_DTD_ELEM_NAMESPACE, 973 XML_DTD_ELEM_REDEFINED, 974 XML_DTD_EMPTY_NOTATION, 975 XML_DTD_ENTITY_TYPE, 976 XML_DTD_ID_FIXED, 977 XML_DTD_ID_REDEFINED, 978 XML_DTD_ID_SUBSET, 979 XML_DTD_INVALID_CHILD, 980 XML_DTD_INVALID_DEFAULT, 981 XML_DTD_LOAD_ERROR, 982 XML_DTD_MISSING_ATTRIBUTE, 983 XML_DTD_MIXED_CORRUPT, 984 XML_DTD_MULTIPLE_ID, 985 XML_DTD_NO_DOC, 986 XML_DTD_NO_DTD, 987 XML_DTD_NO_ELEM_NAME, 988 XML_DTD_NO_PREFIX, 989 XML_DTD_NO_ROOT, 990 XML_DTD_NOTATION_REDEFINED, 991 XML_DTD_NOTATION_VALUE, 992 XML_DTD_NOT_EMPTY, 993 XML_DTD_NOT_PCDATA, 994 XML_DTD_NOT_STANDALONE, 995 XML_DTD_ROOT_NAME, 996 XML_DTD_STANDALONE_WHITE_SPACE, 997 XML_DTD_UNKNOWN_ATTRIBUTE, 998 XML_DTD_UNKNOWN_ELEM, 999 XML_DTD_UNKNOWN_ENTITY, 1000 XML_DTD_UNKNOWN_ID, 1001 XML_DTD_UNKNOWN_NOTATION, 1002 XML_DTD_STANDALONE_DEFAULTED, 1003 XML_DTD_XMLID_VALUE, 1004 XML_DTD_XMLID_TYPE, 1005 XML_DTD_DUP_TOKEN, 1006 XML_HTML_STRUCURE_ERROR = 800, 1007 XML_HTML_UNKNOWN_TAG, 1008 XML_RNGP_ANYNAME_ATTR_ANCESTOR = 1000, 1009 XML_RNGP_ATTR_CONFLICT, 1010 XML_RNGP_ATTRIBUTE_CHILDREN, 1011 XML_RNGP_ATTRIBUTE_CONTENT, 1012 XML_RNGP_ATTRIBUTE_EMPTY, 1013 XML_RNGP_ATTRIBUTE_NOOP, 1014 XML_RNGP_CHOICE_CONTENT, 1015 XML_RNGP_CHOICE_EMPTY, 1016 XML_RNGP_CREATE_FAILURE, 1017 XML_RNGP_DATA_CONTENT, 1018 XML_RNGP_DEF_CHOICE_AND_INTERLEAVE, 1019 XML_RNGP_DEFINE_CREATE_FAILED, 1020 XML_RNGP_DEFINE_EMPTY, 1021 XML_RNGP_DEFINE_MISSING, 1022 XML_RNGP_DEFINE_NAME_MISSING, 1023 XML_RNGP_ELEM_CONTENT_EMPTY, 1024 XML_RNGP_ELEM_CONTENT_ERROR, 1025 XML_RNGP_ELEMENT_EMPTY, 1026 XML_RNGP_ELEMENT_CONTENT, 1027 XML_RNGP_ELEMENT_NAME, 1028 XML_RNGP_ELEMENT_NO_CONTENT, 1029 XML_RNGP_ELEM_TEXT_CONFLICT, 1030 XML_RNGP_EMPTY, 1031 XML_RNGP_EMPTY_CONSTRUCT, 1032 XML_RNGP_EMPTY_CONTENT, 1033 XML_RNGP_EMPTY_NOT_EMPTY, 1034 XML_RNGP_ERROR_TYPE_LIB, 1035 XML_RNGP_EXCEPT_EMPTY, 1036 XML_RNGP_EXCEPT_MISSING, 1037 XML_RNGP_EXCEPT_MULTIPLE, 1038 XML_RNGP_EXCEPT_NO_CONTENT, 1039 XML_RNGP_EXTERNALREF_EMTPY, 1040 XML_RNGP_EXTERNAL_REF_FAILURE, 1041 XML_RNGP_EXTERNALREF_RECURSE, 1042 XML_RNGP_FORBIDDEN_ATTRIBUTE, 1043 XML_RNGP_FOREIGN_ELEMENT, 1044 XML_RNGP_GRAMMAR_CONTENT, 1045 XML_RNGP_GRAMMAR_EMPTY, 1046 XML_RNGP_GRAMMAR_MISSING, 1047 XML_RNGP_GRAMMAR_NO_START, 1048 XML_RNGP_GROUP_ATTR_CONFLICT, 1049 XML_RNGP_HREF_ERROR, 1050 XML_RNGP_INCLUDE_EMPTY, 1051 XML_RNGP_INCLUDE_FAILURE, 1052 XML_RNGP_INCLUDE_RECURSE, 1053 XML_RNGP_INTERLEAVE_ADD, 1054 XML_RNGP_INTERLEAVE_CREATE_FAILED, 1055 XML_RNGP_INTERLEAVE_EMPTY, 1056 XML_RNGP_INTERLEAVE_NO_CONTENT, 1057 XML_RNGP_INVALID_DEFINE_NAME, 1058 XML_RNGP_INVALID_URI, 1059 XML_RNGP_INVALID_VALUE, 1060 XML_RNGP_MISSING_HREF, 1061 XML_RNGP_NAME_MISSING, 1062 XML_RNGP_NEED_COMBINE, 1063 XML_RNGP_NOTALLOWED_NOT_EMPTY, 1064 XML_RNGP_NSNAME_ATTR_ANCESTOR, 1065 XML_RNGP_NSNAME_NO_NS, 1066 XML_RNGP_PARAM_FORBIDDEN, 1067 XML_RNGP_PARAM_NAME_MISSING, 1068 XML_RNGP_PARENTREF_CREATE_FAILED, 1069 XML_RNGP_PARENTREF_NAME_INVALID, 1070 XML_RNGP_PARENTREF_NO_NAME, 1071 XML_RNGP_PARENTREF_NO_PARENT, 1072 XML_RNGP_PARENTREF_NOT_EMPTY, 1073 XML_RNGP_PARSE_ERROR, 1074 XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME, 1075 XML_RNGP_PAT_ATTR_ATTR, 1076 XML_RNGP_PAT_ATTR_ELEM, 1077 XML_RNGP_PAT_DATA_EXCEPT_ATTR, 1078 XML_RNGP_PAT_DATA_EXCEPT_ELEM, 1079 XML_RNGP_PAT_DATA_EXCEPT_EMPTY, 1080 XML_RNGP_PAT_DATA_EXCEPT_GROUP, 1081 XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE, 1082 XML_RNGP_PAT_DATA_EXCEPT_LIST, 1083 XML_RNGP_PAT_DATA_EXCEPT_ONEMORE, 1084 XML_RNGP_PAT_DATA_EXCEPT_REF, 1085 XML_RNGP_PAT_DATA_EXCEPT_TEXT, 1086 XML_RNGP_PAT_LIST_ATTR, 1087 XML_RNGP_PAT_LIST_ELEM, 1088 XML_RNGP_PAT_LIST_INTERLEAVE, 1089 XML_RNGP_PAT_LIST_LIST, 1090 XML_RNGP_PAT_LIST_REF, 1091 XML_RNGP_PAT_LIST_TEXT, 1092 XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME, 1093 XML_RNGP_PAT_NSNAME_EXCEPT_NSNAME, 1094 XML_RNGP_PAT_ONEMORE_GROUP_ATTR, 1095 XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR, 1096 XML_RNGP_PAT_START_ATTR, 1097 XML_RNGP_PAT_START_DATA, 1098 XML_RNGP_PAT_START_EMPTY, 1099 XML_RNGP_PAT_START_GROUP, 1100 XML_RNGP_PAT_START_INTERLEAVE, 1101 XML_RNGP_PAT_START_LIST, 1102 XML_RNGP_PAT_START_ONEMORE, 1103 XML_RNGP_PAT_START_TEXT, 1104 XML_RNGP_PAT_START_VALUE, 1105 XML_RNGP_PREFIX_UNDEFINED, 1106 XML_RNGP_REF_CREATE_FAILED, 1107 XML_RNGP_REF_CYCLE, 1108 XML_RNGP_REF_NAME_INVALID, 1109 XML_RNGP_REF_NO_DEF, 1110 XML_RNGP_REF_NO_NAME, 1111 XML_RNGP_REF_NOT_EMPTY, 1112 XML_RNGP_START_CHOICE_AND_INTERLEAVE, 1113 XML_RNGP_START_CONTENT, 1114 XML_RNGP_START_EMPTY, 1115 XML_RNGP_START_MISSING, 1116 XML_RNGP_TEXT_EXPECTED, 1117 XML_RNGP_TEXT_HAS_CHILD, 1118 XML_RNGP_TYPE_MISSING, 1119 XML_RNGP_TYPE_NOT_FOUND, 1120 XML_RNGP_TYPE_VALUE, 1121 XML_RNGP_UNKNOWN_ATTRIBUTE, 1122 XML_RNGP_UNKNOWN_COMBINE, 1123 XML_RNGP_UNKNOWN_CONSTRUCT, 1124 XML_RNGP_UNKNOWN_TYPE_LIB, 1125 XML_RNGP_URI_FRAGMENT, 1126 XML_RNGP_URI_NOT_ABSOLUTE, 1127 XML_RNGP_VALUE_EMPTY, 1128 XML_RNGP_VALUE_NO_CONTENT, 1129 XML_RNGP_XMLNS_NAME, 1130 XML_RNGP_XML_NS, 1131 XML_XPATH_EXPRESSION_OK = 1200, 1132 XML_XPATH_NUMBER_ERROR, 1133 XML_XPATH_UNFINISHED_LITERAL_ERROR, 1134 XML_XPATH_START_LITERAL_ERROR, 1135 XML_XPATH_VARIABLE_REF_ERROR, 1136 XML_XPATH_UNDEF_VARIABLE_ERROR, 1137 XML_XPATH_INVALID_PREDICATE_ERROR, 1138 XML_XPATH_EXPR_ERROR, 1139 XML_XPATH_UNCLOSED_ERROR, 1140 XML_XPATH_UNKNOWN_FUNC_ERROR, 1141 XML_XPATH_INVALID_OPERAND, 1142 XML_XPATH_INVALID_TYPE, 1143 XML_XPATH_INVALID_ARITY, 1144 XML_XPATH_INVALID_CTXT_SIZE, 1145 XML_XPATH_INVALID_CTXT_POSITION, 1146 XML_XPATH_MEMORY_ERROR, 1147 XML_XPTR_SYNTAX_ERROR, 1148 XML_XPTR_RESOURCE_ERROR, 1149 XML_XPTR_SUB_RESOURCE_ERROR, 1150 XML_XPATH_UNDEF_PREFIX_ERROR, 1151 XML_XPATH_ENCODING_ERROR, 1152 XML_XPATH_INVALID_CHAR_ERROR, 1153 XML_TREE_INVALID_HEX = 1300, 1154 XML_TREE_INVALID_DEC, 1155 XML_TREE_UNTERMINATED_ENTITY, 1156 XML_TREE_NOT_UTF8, 1157 XML_SAVE_NOT_UTF8 = 1400, 1158 XML_SAVE_CHAR_INVALID, 1159 XML_SAVE_NO_DOCTYPE, 1160 XML_SAVE_UNKNOWN_ENCODING, 1161 XML_REGEXP_COMPILE_ERROR = 1450, 1162 XML_IO_UNKNOWN = 1500, 1163 XML_IO_EACCES, 1164 XML_IO_EAGAIN, 1165 XML_IO_EBADF, 1166 XML_IO_EBADMSG, 1167 XML_IO_EBUSY, 1168 XML_IO_ECANCELED, 1169 XML_IO_ECHILD, 1170 XML_IO_EDEADLK, 1171 XML_IO_EDOM, 1172 XML_IO_EEXIST, 1173 XML_IO_EFAULT, 1174 XML_IO_EFBIG, 1175 XML_IO_EINPROGRESS, 1176 XML_IO_EINTR, 1177 XML_IO_EINVAL, 1178 XML_IO_EIO, 1179 XML_IO_EISDIR, 1180 XML_IO_EMFILE, 1181 XML_IO_EMLINK, 1182 XML_IO_EMSGSIZE, 1183 XML_IO_ENAMETOOLONG, 1184 XML_IO_ENFILE, 1185 XML_IO_ENODEV, 1186 XML_IO_ENOENT, 1187 XML_IO_ENOEXEC, 1188 XML_IO_ENOLCK, 1189 XML_IO_ENOMEM, 1190 XML_IO_ENOSPC, 1191 XML_IO_ENOSYS, 1192 XML_IO_ENOTDIR, 1193 XML_IO_ENOTEMPTY, 1194 XML_IO_ENOTSUP, 1195 XML_IO_ENOTTY, 1196 XML_IO_ENXIO, 1197 XML_IO_EPERM, 1198 XML_IO_EPIPE, 1199 XML_IO_ERANGE, 1200 XML_IO_EROFS, 1201 XML_IO_ESPIPE, 1202 XML_IO_ESRCH, 1203 XML_IO_ETIMEDOUT, 1204 XML_IO_EXDEV, 1205 XML_IO_NETWORK_ATTEMPT, 1206 XML_IO_ENCODER, 1207 XML_IO_FLUSH, 1208 XML_IO_WRITE, 1209 XML_IO_NO_INPUT, 1210 XML_IO_BUFFER_FULL, 1211 XML_IO_LOAD_ERROR, 1212 XML_IO_ENOTSOCK, 1213 XML_IO_EISCONN, 1214 XML_IO_ECONNREFUSED, 1215 XML_IO_ENETUNREACH, 1216 XML_IO_EADDRINUSE, 1217 XML_IO_EALREADY, 1218 XML_IO_EAFNOSUPPORT, 1219 XML_XINCLUDE_RECURSION = 1600, 1220 XML_XINCLUDE_PARSE_VALUE, 1221 XML_XINCLUDE_ENTITY_DEF_MISMATCH, 1222 XML_XINCLUDE_NO_HREF, 1223 XML_XINCLUDE_NO_FALLBACK, 1224 XML_XINCLUDE_HREF_URI, 1225 XML_XINCLUDE_TEXT_FRAGMENT, 1226 XML_XINCLUDE_TEXT_DOCUMENT, 1227 XML_XINCLUDE_INVALID_CHAR, 1228 XML_XINCLUDE_BUILD_FAILED, 1229 XML_XINCLUDE_UNKNOWN_ENCODING, 1230 XML_XINCLUDE_MULTIPLE_ROOT, 1231 XML_XINCLUDE_XPTR_FAILED, 1232 XML_XINCLUDE_XPTR_RESULT, 1233 XML_XINCLUDE_INCLUDE_IN_INCLUDE, 1234 XML_XINCLUDE_FALLBACKS_IN_INCLUDE, 1235 XML_XINCLUDE_FALLBACK_NOT_IN_INCLUDE, 1236 XML_XINCLUDE_DEPRECATED_NS, 1237 XML_XINCLUDE_FRAGMENT_ID, 1238 XML_CATALOG_MISSING_ATTR = 1650, 1239 XML_CATALOG_ENTRY_BROKEN, 1240 XML_CATALOG_PREFER_VALUE, 1241 XML_CATALOG_NOT_CATALOG, 1242 XML_CATALOG_RECURSION, 1243 XML_SCHEMAP_PREFIX_UNDEFINED = 1700, 1244 XML_SCHEMAP_ATTRFORMDEFAULT_VALUE, 1245 XML_SCHEMAP_ATTRGRP_NONAME_NOREF, 1246 XML_SCHEMAP_ATTR_NONAME_NOREF, 1247 XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF, 1248 XML_SCHEMAP_ELEMFORMDEFAULT_VALUE, 1249 XML_SCHEMAP_ELEM_NONAME_NOREF, 1250 XML_SCHEMAP_EXTENSION_NO_BASE, 1251 XML_SCHEMAP_FACET_NO_VALUE, 1252 XML_SCHEMAP_FAILED_BUILD_IMPORT, 1253 XML_SCHEMAP_GROUP_NONAME_NOREF, 1254 XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URI, 1255 XML_SCHEMAP_IMPORT_REDEFINE_NSNAME, 1256 XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI, 1257 XML_SCHEMAP_INVALID_BOOLEAN, 1258 XML_SCHEMAP_INVALID_ENUM, 1259 XML_SCHEMAP_INVALID_FACET, 1260 XML_SCHEMAP_INVALID_FACET_VALUE, 1261 XML_SCHEMAP_INVALID_MAXOCCURS, 1262 XML_SCHEMAP_INVALID_MINOCCURS, 1263 XML_SCHEMAP_INVALID_REF_AND_SUBTYPE, 1264 XML_SCHEMAP_INVALID_WHITE_SPACE, 1265 XML_SCHEMAP_NOATTR_NOREF, 1266 XML_SCHEMAP_NOTATION_NO_NAME, 1267 XML_SCHEMAP_NOTYPE_NOREF, 1268 XML_SCHEMAP_REF_AND_SUBTYPE, 1269 XML_SCHEMAP_RESTRICTION_NONAME_NOREF, 1270 XML_SCHEMAP_SIMPLETYPE_NONAME, 1271 XML_SCHEMAP_TYPE_AND_SUBTYPE, 1272 XML_SCHEMAP_UNKNOWN_ALL_CHILD, 1273 XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD, 1274 XML_SCHEMAP_UNKNOWN_ATTR_CHILD, 1275 XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILD, 1276 XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP, 1277 XML_SCHEMAP_UNKNOWN_BASE_TYPE, 1278 XML_SCHEMAP_UNKNOWN_CHOICE_CHILD, 1279 XML_SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD, 1280 XML_SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD, 1281 XML_SCHEMAP_UNKNOWN_ELEM_CHILD, 1282 XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD, 1283 XML_SCHEMAP_UNKNOWN_FACET_CHILD, 1284 XML_SCHEMAP_UNKNOWN_FACET_TYPE, 1285 XML_SCHEMAP_UNKNOWN_GROUP_CHILD, 1286 XML_SCHEMAP_UNKNOWN_IMPORT_CHILD, 1287 XML_SCHEMAP_UNKNOWN_LIST_CHILD, 1288 XML_SCHEMAP_UNKNOWN_NOTATION_CHILD, 1289 XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD, 1290 XML_SCHEMAP_UNKNOWN_REF, 1291 XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD, 1292 XML_SCHEMAP_UNKNOWN_SCHEMAS_CHILD, 1293 XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD, 1294 XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD, 1295 XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD, 1296 XML_SCHEMAP_UNKNOWN_TYPE, 1297 XML_SCHEMAP_UNKNOWN_UNION_CHILD, 1298 XML_SCHEMAP_ELEM_DEFAULT_FIXED, 1299 XML_SCHEMAP_REGEXP_INVALID, 1300 XML_SCHEMAP_FAILED_LOAD, 1301 XML_SCHEMAP_NOTHING_TO_PARSE, 1302 XML_SCHEMAP_NOROOT, 1303 XML_SCHEMAP_REDEFINED_GROUP, 1304 XML_SCHEMAP_REDEFINED_TYPE, 1305 XML_SCHEMAP_REDEFINED_ELEMENT, 1306 XML_SCHEMAP_REDEFINED_ATTRGROUP, 1307 XML_SCHEMAP_REDEFINED_ATTR, 1308 XML_SCHEMAP_REDEFINED_NOTATION, 1309 XML_SCHEMAP_FAILED_PARSE, 1310 XML_SCHEMAP_UNKNOWN_PREFIX, 1311 XML_SCHEMAP_DEF_AND_PREFIX, 1312 XML_SCHEMAP_UNKNOWN_INCLUDE_CHILD, 1313 XML_SCHEMAP_INCLUDE_SCHEMA_NOT_URI, 1314 XML_SCHEMAP_INCLUDE_SCHEMA_NO_URI, 1315 XML_SCHEMAP_NOT_SCHEMA, 1316 XML_SCHEMAP_UNKNOWN_MEMBER_TYPE, 1317 XML_SCHEMAP_INVALID_ATTR_USE, 1318 XML_SCHEMAP_RECURSIVE, 1319 XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE, 1320 XML_SCHEMAP_INVALID_ATTR_COMBINATION, 1321 XML_SCHEMAP_INVALID_ATTR_INLINE_COMBINATION, 1322 XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD, 1323 XML_SCHEMAP_INVALID_ATTR_NAME, 1324 XML_SCHEMAP_REF_AND_CONTENT, 1325 XML_SCHEMAP_CT_PROPS_CORRECT_1, 1326 XML_SCHEMAP_CT_PROPS_CORRECT_2, 1327 XML_SCHEMAP_CT_PROPS_CORRECT_3, 1328 XML_SCHEMAP_CT_PROPS_CORRECT_4, 1329 XML_SCHEMAP_CT_PROPS_CORRECT_5, 1330 XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1, 1331 XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1, 1332 XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2, 1333 XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2, 1334 XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3, 1335 XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER, 1336 XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE, 1337 XML_SCHEMAP_UNION_NOT_EXPRESSIBLE, 1338 XML_SCHEMAP_SRC_IMPORT_3_1, 1339 XML_SCHEMAP_SRC_IMPORT_3_2, 1340 XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1, 1341 XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2, 1342 XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3, 1343 XML_SCHEMAP_COS_CT_EXTENDS_1_3, 1344 XML_SCHEMAV_NOROOT = 1801, 1345 XML_SCHEMAV_UNDECLAREDELEM, 1346 XML_SCHEMAV_NOTTOPLEVEL, 1347 XML_SCHEMAV_MISSING, 1348 XML_SCHEMAV_WRONGELEM, 1349 XML_SCHEMAV_NOTYPE, 1350 XML_SCHEMAV_NOROLLBACK, 1351 XML_SCHEMAV_ISABSTRACT, 1352 XML_SCHEMAV_NOTEMPTY, 1353 XML_SCHEMAV_ELEMCONT, 1354 XML_SCHEMAV_HAVEDEFAULT, 1355 XML_SCHEMAV_NOTNILLABLE, 1356 XML_SCHEMAV_EXTRACONTENT, 1357 XML_SCHEMAV_INVALIDATTR, 1358 XML_SCHEMAV_INVALIDELEM, 1359 XML_SCHEMAV_NOTDETERMINIST, 1360 XML_SCHEMAV_CONSTRUCT, 1361 XML_SCHEMAV_INTERNAL, 1362 XML_SCHEMAV_NOTSIMPLE, 1363 XML_SCHEMAV_ATTRUNKNOWN, 1364 XML_SCHEMAV_ATTRINVALID, 1365 XML_SCHEMAV_VALUE, 1366 XML_SCHEMAV_FACET, 1367 XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1, 1368 XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2, 1369 XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3, 1370 XML_SCHEMAV_CVC_TYPE_3_1_1, 1371 XML_SCHEMAV_CVC_TYPE_3_1_2, 1372 XML_SCHEMAV_CVC_FACET_VALID, 1373 XML_SCHEMAV_CVC_LENGTH_VALID, 1374 XML_SCHEMAV_CVC_MINLENGTH_VALID, 1375 XML_SCHEMAV_CVC_MAXLENGTH_VALID, 1376 XML_SCHEMAV_CVC_MININCLUSIVE_VALID, 1377 XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID, 1378 XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID, 1379 XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID, 1380 XML_SCHEMAV_CVC_TOTALDIGITS_VALID, 1381 XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID, 1382 XML_SCHEMAV_CVC_PATTERN_VALID, 1383 XML_SCHEMAV_CVC_ENUMERATION_VALID, 1384 XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1, 1385 XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2, 1386 XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3, 1387 XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4, 1388 XML_SCHEMAV_CVC_ELT_1, 1389 XML_SCHEMAV_CVC_ELT_2, 1390 XML_SCHEMAV_CVC_ELT_3_1, 1391 XML_SCHEMAV_CVC_ELT_3_2_1, 1392 XML_SCHEMAV_CVC_ELT_3_2_2, 1393 XML_SCHEMAV_CVC_ELT_4_1, 1394 XML_SCHEMAV_CVC_ELT_4_2, 1395 XML_SCHEMAV_CVC_ELT_4_3, 1396 XML_SCHEMAV_CVC_ELT_5_1_1, 1397 XML_SCHEMAV_CVC_ELT_5_1_2, 1398 XML_SCHEMAV_CVC_ELT_5_2_1, 1399 XML_SCHEMAV_CVC_ELT_5_2_2_1, 1400 XML_SCHEMAV_CVC_ELT_5_2_2_2_1, 1401 XML_SCHEMAV_CVC_ELT_5_2_2_2_2, 1402 XML_SCHEMAV_CVC_ELT_6, 1403 XML_SCHEMAV_CVC_ELT_7, 1404 XML_SCHEMAV_CVC_ATTRIBUTE_1, 1405 XML_SCHEMAV_CVC_ATTRIBUTE_2, 1406 XML_SCHEMAV_CVC_ATTRIBUTE_3, 1407 XML_SCHEMAV_CVC_ATTRIBUTE_4, 1408 XML_SCHEMAV_CVC_COMPLEX_TYPE_3_1, 1409 XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_1, 1410 XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_2, 1411 XML_SCHEMAV_CVC_COMPLEX_TYPE_4, 1412 XML_SCHEMAV_CVC_COMPLEX_TYPE_5_1, 1413 XML_SCHEMAV_CVC_COMPLEX_TYPE_5_2, 1414 XML_SCHEMAV_ELEMENT_CONTENT, 1415 XML_SCHEMAV_DOCUMENT_ELEMENT_MISSING, 1416 XML_SCHEMAV_CVC_COMPLEX_TYPE_1, 1417 XML_SCHEMAV_CVC_AU, 1418 XML_SCHEMAV_CVC_TYPE_1, 1419 XML_SCHEMAV_CVC_TYPE_2, 1420 XML_SCHEMAV_CVC_IDC, 1421 XML_SCHEMAV_CVC_WILDCARD, 1422 XML_SCHEMAV_MISC, 1423 XML_XPTR_UNKNOWN_SCHEME = 1900, 1424 XML_XPTR_CHILDSEQ_START, 1425 XML_XPTR_EVAL_FAILED, 1426 XML_XPTR_EXTRA_OBJECTS, 1427 XML_C14N_CREATE_CTXT = 1950, 1428 XML_C14N_REQUIRES_UTF8, 1429 XML_C14N_CREATE_STACK, 1430 XML_C14N_INVALID_NODE, 1431 XML_C14N_UNKNOW_NODE, 1432 XML_C14N_RELATIVE_NAMESPACE, 1433 XML_FTP_PASV_ANSWER = 2000, 1434 XML_FTP_EPSV_ANSWER, 1435 XML_FTP_ACCNT, 1436 XML_FTP_URL_SYNTAX, 1437 XML_HTTP_URL_SYNTAX = 2020, 1438 XML_HTTP_USE_IP, 1439 XML_HTTP_UNKNOWN_HOST, 1440 XML_SCHEMAP_SRC_SIMPLE_TYPE_1 = 3000, 1441 XML_SCHEMAP_SRC_SIMPLE_TYPE_2, 1442 XML_SCHEMAP_SRC_SIMPLE_TYPE_3, 1443 XML_SCHEMAP_SRC_SIMPLE_TYPE_4, 1444 XML_SCHEMAP_SRC_RESOLVE, 1445 XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE, 1446 XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE, 1447 XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES, 1448 XML_SCHEMAP_ST_PROPS_CORRECT_1, 1449 XML_SCHEMAP_ST_PROPS_CORRECT_2, 1450 XML_SCHEMAP_ST_PROPS_CORRECT_3, 1451 XML_SCHEMAP_COS_ST_RESTRICTS_1_1, 1452 XML_SCHEMAP_COS_ST_RESTRICTS_1_2, 1453 XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1, 1454 XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2, 1455 XML_SCHEMAP_COS_ST_RESTRICTS_2_1, 1456 XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1, 1457 XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2, 1458 XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1, 1459 XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2, 1460 XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3, 1461 XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4, 1462 XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_5, 1463 XML_SCHEMAP_COS_ST_RESTRICTS_3_1, 1464 XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1, 1465 XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2, 1466 XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2, 1467 XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1, 1468 XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3, 1469 XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4, 1470 XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5, 1471 XML_SCHEMAP_COS_ST_DERIVED_OK_2_1, 1472 XML_SCHEMAP_COS_ST_DERIVED_OK_2_2, 1473 XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED, 1474 XML_SCHEMAP_S4S_ELEM_MISSING, 1475 XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED, 1476 XML_SCHEMAP_S4S_ATTR_MISSING, 1477 XML_SCHEMAP_S4S_ATTR_INVALID_VALUE, 1478 XML_SCHEMAP_SRC_ELEMENT_1, 1479 XML_SCHEMAP_SRC_ELEMENT_2_1, 1480 XML_SCHEMAP_SRC_ELEMENT_2_2, 1481 XML_SCHEMAP_SRC_ELEMENT_3, 1482 XML_SCHEMAP_P_PROPS_CORRECT_1, 1483 XML_SCHEMAP_P_PROPS_CORRECT_2_1, 1484 XML_SCHEMAP_P_PROPS_CORRECT_2_2, 1485 XML_SCHEMAP_E_PROPS_CORRECT_2, 1486 XML_SCHEMAP_E_PROPS_CORRECT_3, 1487 XML_SCHEMAP_E_PROPS_CORRECT_4, 1488 XML_SCHEMAP_E_PROPS_CORRECT_5, 1489 XML_SCHEMAP_E_PROPS_CORRECT_6, 1490 XML_SCHEMAP_SRC_INCLUDE, 1491 XML_SCHEMAP_SRC_ATTRIBUTE_1, 1492 XML_SCHEMAP_SRC_ATTRIBUTE_2, 1493 XML_SCHEMAP_SRC_ATTRIBUTE_3_1, 1494 XML_SCHEMAP_SRC_ATTRIBUTE_3_2, 1495 XML_SCHEMAP_SRC_ATTRIBUTE_4, 1496 XML_SCHEMAP_NO_XMLNS, 1497 XML_SCHEMAP_NO_XSI, 1498 XML_SCHEMAP_COS_VALID_DEFAULT_1, 1499 XML_SCHEMAP_COS_VALID_DEFAULT_2_1, 1500 XML_SCHEMAP_COS_VALID_DEFAULT_2_2_1, 1501 XML_SCHEMAP_COS_VALID_DEFAULT_2_2_2, 1502 XML_SCHEMAP_CVC_SIMPLE_TYPE, 1503 XML_SCHEMAP_COS_CT_EXTENDS_1_1, 1504 XML_SCHEMAP_SRC_IMPORT_1_1, 1505 XML_SCHEMAP_SRC_IMPORT_1_2, 1506 XML_SCHEMAP_SRC_IMPORT_2, 1507 XML_SCHEMAP_SRC_IMPORT_2_1, 1508 XML_SCHEMAP_SRC_IMPORT_2_2, 1509 XML_SCHEMAP_INTERNAL, 1510 XML_SCHEMAP_NOT_DETERMINISTIC, 1511 XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_1, 1512 XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_2, 1513 XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_3, 1514 XML_SCHEMAP_MG_PROPS_CORRECT_1, 1515 XML_SCHEMAP_MG_PROPS_CORRECT_2, 1516 XML_SCHEMAP_SRC_CT_1, 1517 XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3, 1518 XML_SCHEMAP_AU_PROPS_CORRECT_2, 1519 XML_SCHEMAP_A_PROPS_CORRECT_2, 1520 XML_SCHEMAP_C_PROPS_CORRECT, 1521 XML_SCHEMAP_SRC_REDEFINE, 1522 XML_SCHEMAP_SRC_IMPORT, 1523 XML_SCHEMAP_WARN_SKIP_SCHEMA, 1524 XML_SCHEMAP_WARN_UNLOCATED_SCHEMA, 1525 XML_SCHEMAP_WARN_ATTR_REDECL_PROH, 1526 XML_SCHEMAP_WARN_ATTR_POINTLESS_PROH, 1527 XML_SCHEMAP_AG_PROPS_CORRECT, 1528 XML_SCHEMAP_COS_CT_EXTENDS_1_2, 1529 XML_SCHEMAP_AU_PROPS_CORRECT, 1530 XML_SCHEMAP_A_PROPS_CORRECT_3, 1531 XML_SCHEMAP_COS_ALL_LIMITED, 1532 XML_SCHEMATRONV_ASSERT = 4000, 1533 XML_SCHEMATRONV_REPORT, 1534 XML_MODULE_OPEN = 4900, 1535 XML_MODULE_CLOSE, 1536 XML_CHECK_FOUND_ELEMENT = 5000, 1537 XML_CHECK_FOUND_ATTRIBUTE, 1538 XML_CHECK_FOUND_TEXT, 1539 XML_CHECK_FOUND_CDATA, 1540 XML_CHECK_FOUND_ENTITYREF, 1541 XML_CHECK_FOUND_ENTITY, 1542 XML_CHECK_FOUND_PI, 1543 XML_CHECK_FOUND_COMMENT, 1544 XML_CHECK_FOUND_DOCTYPE, 1545 XML_CHECK_FOUND_FRAGMENT, 1546 XML_CHECK_FOUND_NOTATION, 1547 XML_CHECK_UNKNOWN_NODE, 1548 XML_CHECK_ENTITY_TYPE, 1549 XML_CHECK_NO_PARENT, 1550 XML_CHECK_NO_DOC, 1551 XML_CHECK_NO_NAME, 1552 XML_CHECK_NO_ELEM, 1553 XML_CHECK_WRONG_DOC, 1554 XML_CHECK_NO_PREV, 1555 XML_CHECK_WRONG_PREV, 1556 XML_CHECK_NO_NEXT, 1557 XML_CHECK_WRONG_NEXT, 1558 XML_CHECK_NOT_DTD, 1559 XML_CHECK_NOT_ATTR, 1560 XML_CHECK_NOT_ATTR_DECL, 1561 XML_CHECK_NOT_ELEM_DECL, 1562 XML_CHECK_NOT_ENTITY_DECL, 1563 XML_CHECK_NOT_NS_DECL, 1564 XML_CHECK_NO_HREF, 1565 XML_CHECK_WRONG_PARENT, 1566 XML_CHECK_NS_SCOPE, 1567 XML_CHECK_NS_ANCESTOR, 1568 XML_CHECK_NOT_UTF8, 1569 XML_CHECK_NO_DICT, 1570 XML_CHECK_NOT_NCNAME, 1571 XML_CHECK_OUTSIDE_DICT, 1572 XML_CHECK_WRONG_NAME, 1573 XML_CHECK_NAME_NOT_NULL, 1574 XML_I18N_NO_NAME = 6000, 1575 XML_I18N_NO_HANDLER, 1576 XML_I18N_EXCESS_HANDLER, 1577 XML_I18N_CONV_FAILED, 1578 XML_I18N_NO_OUTPUT, 1579 XML_BUF_OVERFLOW = 7000 1580} xmlParserErrors; 1581 1582typedef void (*xmlGenericErrorFunc) (void *ctx, const char *msg, ...) 1583 __attribute__ ((__format__ (__printf__, 2, 3))); 1584typedef void (*xmlStructuredErrorFunc) (void *userData, xmlErrorPtr error); 1585 1586void xmlSetGenericErrorFunc (void *ctx, xmlGenericErrorFunc handler); 1587void initGenericErrorDefaultFunc (xmlGenericErrorFunc * handler); 1588void xmlSetStructuredErrorFunc (void *ctx, xmlStructuredErrorFunc handler); 1589 1590void xmlParserError (void *ctx, const char *msg, ...) 1591 __attribute__ ((__format__ (__printf__, 2, 3))); 1592void xmlParserWarning (void *ctx, const char *msg, ...) 1593 __attribute__ ((__format__ (__printf__, 2, 3))); 1594void xmlParserValidityError (void *ctx, const char *msg, ...) 1595 __attribute__ ((__format__ (__printf__, 2, 3))); 1596void xmlParserValidityWarning (void *ctx, const char *msg, ...) 1597 __attribute__ ((__format__ (__printf__, 2, 3))); 1598void xmlParserPrintFileInfo (xmlParserInputPtr input); 1599void xmlParserPrintFileContext (xmlParserInputPtr input); 1600xmlErrorPtr xmlGetLastError (void); 1601void xmlResetLastError (void); 1602xmlErrorPtr xmlCtxtGetLastError (void *ctx); 1603void xmlCtxtResetLastError (void *ctx); 1604void xmlResetError (xmlErrorPtr err); 1605int xmlCopyError (xmlErrorPtr from, xmlErrorPtr to); 1606typedef struct _xmlLink xmlLink; 1607typedef xmlLink *xmlLinkPtr; 1608typedef struct _xmlList xmlList; 1609typedef xmlList *xmlListPtr; 1610typedef void (*xmlListDeallocator) (xmlLinkPtr lk); 1611typedef int (*xmlListDataCompare) (const void *data0, const void *data1); 1612typedef int (*xmlListWalker) (const void *data, const void *user); 1613 1614xmlListPtr xmlListCreate (xmlListDeallocator deallocator, xmlListDataCompare compare); 1615void xmlListDelete (xmlListPtr l); 1616void *xmlListSearch (xmlListPtr l, void *data); 1617void *xmlListReverseSearch (xmlListPtr l, void *data); 1618int xmlListInsert (xmlListPtr l, void *data); 1619int xmlListAppend (xmlListPtr l, void *data); 1620int xmlListRemoveFirst (xmlListPtr l, void *data); 1621int xmlListRemoveLast (xmlListPtr l, void *data); 1622int xmlListRemoveAll (xmlListPtr l, void *data); 1623void xmlListClear (xmlListPtr l); 1624int xmlListEmpty (xmlListPtr l); 1625xmlLinkPtr xmlListFront (xmlListPtr l); 1626xmlLinkPtr xmlListEnd (xmlListPtr l); 1627int xmlListSize (xmlListPtr l); 1628void xmlListPopFront (xmlListPtr l); 1629void xmlListPopBack (xmlListPtr l); 1630int xmlListPushFront (xmlListPtr l, void *data); 1631int xmlListPushBack (xmlListPtr l, void *data); 1632void xmlListReverse (xmlListPtr l); 1633void xmlListSort (xmlListPtr l); 1634void xmlListWalk (xmlListPtr l, xmlListWalker walker, const void *user); 1635void xmlListReverseWalk (xmlListPtr l, xmlListWalker walker, const void *user); 1636void xmlListMerge (xmlListPtr l1, xmlListPtr l2); 1637xmlListPtr xmlListDup (const xmlListPtr old); 1638int xmlListCopy (xmlListPtr cur, const xmlListPtr old); 1639void *xmlLinkGetData (xmlLinkPtr lk); 1640typedef struct _xmlAutomata xmlAutomata; 1641typedef xmlAutomata *xmlAutomataPtr; 1642 1643typedef struct _xmlAutomataState xmlAutomataState; 1644typedef xmlAutomataState *xmlAutomataStatePtr; 1645 1646xmlAutomataPtr xmlNewAutomata (void); 1647void xmlFreeAutomata (xmlAutomataPtr am); 1648 1649xmlAutomataStatePtr xmlAutomataGetInitState (xmlAutomataPtr am); 1650int xmlAutomataSetFinalState (xmlAutomataPtr am, xmlAutomataStatePtr state); 1651xmlAutomataStatePtr xmlAutomataNewState (xmlAutomataPtr am); 1652xmlAutomataStatePtr 1653xmlAutomataNewTransition (xmlAutomataPtr am, 1654 xmlAutomataStatePtr from, 1655 xmlAutomataStatePtr to, 1656 const xmlChar * token, void *data); 1657xmlAutomataStatePtr 1658xmlAutomataNewTransition2 (xmlAutomataPtr am, 1659 xmlAutomataStatePtr from, 1660 xmlAutomataStatePtr to, 1661 const xmlChar * token, 1662 const xmlChar * token2, void *data); 1663xmlAutomataStatePtr 1664xmlAutomataNewNegTrans (xmlAutomataPtr am, 1665 xmlAutomataStatePtr from, 1666 xmlAutomataStatePtr to, 1667 const xmlChar * token, 1668 const xmlChar * token2, void *data); 1669 1670xmlAutomataStatePtr 1671xmlAutomataNewCountTrans (xmlAutomataPtr am, 1672 xmlAutomataStatePtr from, 1673 xmlAutomataStatePtr to, 1674 const xmlChar * token, 1675 int min, int max, void *data); 1676xmlAutomataStatePtr 1677xmlAutomataNewCountTrans2 (xmlAutomataPtr am, 1678 xmlAutomataStatePtr from, 1679 xmlAutomataStatePtr to, 1680 const xmlChar * token, 1681 const xmlChar * token2, 1682 int min, int max, void *data); 1683xmlAutomataStatePtr 1684xmlAutomataNewOnceTrans (xmlAutomataPtr am, 1685 xmlAutomataStatePtr from, 1686 xmlAutomataStatePtr to, 1687 const xmlChar * token, int min, int max, void *data); 1688xmlAutomataStatePtr 1689xmlAutomataNewOnceTrans2 (xmlAutomataPtr am, 1690 xmlAutomataStatePtr from, 1691 xmlAutomataStatePtr to, 1692 const xmlChar * token, 1693 const xmlChar * token2, 1694 int min, int max, void *data); 1695xmlAutomataStatePtr 1696xmlAutomataNewAllTrans (xmlAutomataPtr am, 1697 xmlAutomataStatePtr from, 1698 xmlAutomataStatePtr to, int lax); 1699xmlAutomataStatePtr 1700xmlAutomataNewEpsilon (xmlAutomataPtr am, 1701 xmlAutomataStatePtr from, xmlAutomataStatePtr to); 1702xmlAutomataStatePtr 1703xmlAutomataNewCountedTrans (xmlAutomataPtr am, 1704 xmlAutomataStatePtr from, 1705 xmlAutomataStatePtr to, int counter); 1706xmlAutomataStatePtr 1707xmlAutomataNewCounterTrans (xmlAutomataPtr am, 1708 xmlAutomataStatePtr from, 1709 xmlAutomataStatePtr to, int counter); 1710int xmlAutomataNewCounter (xmlAutomataPtr am, int min, int max); 1711 1712xmlRegexpPtr xmlAutomataCompile (xmlAutomataPtr am); 1713int xmlAutomataIsDeterminist (xmlAutomataPtr am); 1714typedef struct _xmlValidState xmlValidState; 1715typedef xmlValidState *xmlValidStatePtr; 1716typedef void (*xmlValidityErrorFunc) (void *ctx, const char *msg, ...) 1717 __attribute__ ((__format__ (__printf__, 2, 3))); 1718typedef void (*xmlValidityWarningFunc) (void *ctx, const char *msg, ...) 1719 __attribute__ ((__format__ (__printf__, 2, 3))); 1720typedef struct _xmlValidCtxt xmlValidCtxt; 1721typedef xmlValidCtxt *xmlValidCtxtPtr; 1722 1723struct _xmlValidCtxt 1724{ 1725 void *userData; 1726 xmlValidityErrorFunc error; 1727 xmlValidityWarningFunc warning; 1728 xmlNodePtr node; 1729 int nodeNr; 1730 int nodeMax; 1731 xmlNodePtr *nodeTab; 1732 unsigned int finishDtd; 1733 xmlDocPtr doc; 1734 int valid; 1735 xmlValidState *vstate; 1736 int vstateNr; 1737 int vstateMax; 1738 xmlValidState *vstateTab; 1739 xmlAutomataPtr am; 1740 xmlAutomataStatePtr state; 1741}; 1742 1743typedef struct _xmlHashTable xmlNotationTable; 1744typedef xmlNotationTable *xmlNotationTablePtr; 1745typedef struct _xmlHashTable xmlElementTable; 1746typedef xmlElementTable *xmlElementTablePtr; 1747typedef struct _xmlHashTable xmlAttributeTable; 1748typedef xmlAttributeTable *xmlAttributeTablePtr; 1749typedef struct _xmlHashTable xmlIDTable; 1750typedef xmlIDTable *xmlIDTablePtr; 1751typedef struct _xmlHashTable xmlRefTable; 1752typedef xmlRefTable *xmlRefTablePtr; 1753 1754xmlNotationPtr xmlAddNotationDecl (xmlValidCtxtPtr ctxt, 1755 xmlDtdPtr dtd, 1756 const xmlChar * name, 1757 const xmlChar * PublicID, const xmlChar * SystemID); 1758 1759xmlNotationTablePtr xmlCopyNotationTable (xmlNotationTablePtr table); 1760 1761void xmlFreeNotationTable (xmlNotationTablePtr table); 1762 1763void xmlDumpNotationDecl (xmlBufferPtr buf, xmlNotationPtr nota); 1764void xmlDumpNotationTable (xmlBufferPtr buf, xmlNotationTablePtr table); 1765 1766xmlElementContentPtr xmlNewElementContent (const xmlChar * name, xmlElementContentType type); 1767xmlElementContentPtr xmlCopyElementContent (xmlElementContentPtr content); 1768void xmlFreeElementContent (xmlElementContentPtr cur); 1769 1770xmlElementContentPtr xmlNewDocElementContent (xmlDocPtr doc, 1771 const xmlChar * name, xmlElementContentType type); 1772xmlElementContentPtr xmlCopyDocElementContent (xmlDocPtr doc, xmlElementContentPtr content); 1773void xmlFreeDocElementContent (xmlDocPtr doc, xmlElementContentPtr cur); 1774void xmlSnprintfElementContent (char *buf, 1775 int size, 1776 xmlElementContentPtr content, int englob); 1777 1778void xmlSprintfElementContent (char *buf, 1779 xmlElementContentPtr content, int englob); 1780 1781xmlElementPtr xmlAddElementDecl (xmlValidCtxtPtr ctxt, 1782 xmlDtdPtr dtd, 1783 const xmlChar * name, 1784 xmlElementTypeVal type, xmlElementContentPtr content); 1785 1786xmlElementTablePtr xmlCopyElementTable (xmlElementTablePtr table); 1787 1788void xmlFreeElementTable (xmlElementTablePtr table); 1789void xmlDumpElementTable (xmlBufferPtr buf, xmlElementTablePtr table); 1790void xmlDumpElementDecl (xmlBufferPtr buf, xmlElementPtr elem); 1791xmlEnumerationPtr xmlCreateEnumeration (const xmlChar * name); 1792void xmlFreeEnumeration (xmlEnumerationPtr cur); 1793xmlEnumerationPtr xmlCopyEnumeration (xmlEnumerationPtr cur); 1794 1795xmlAttributePtr xmlAddAttributeDecl (xmlValidCtxtPtr ctxt, 1796 xmlDtdPtr dtd, 1797 const xmlChar * elem, 1798 const xmlChar * name, 1799 const xmlChar * ns, 1800 xmlAttributeType type, 1801 xmlAttributeDefault def, 1802 const xmlChar * defaultValue, xmlEnumerationPtr tree); 1803 1804xmlAttributeTablePtr xmlCopyAttributeTable (xmlAttributeTablePtr table); 1805void xmlFreeAttributeTable (xmlAttributeTablePtr table); 1806void xmlDumpAttributeTable (xmlBufferPtr buf, xmlAttributeTablePtr table); 1807void xmlDumpAttributeDecl (xmlBufferPtr buf, xmlAttributePtr attr); 1808 1809xmlIDPtr xmlAddID (xmlValidCtxtPtr ctxt, 1810 xmlDocPtr doc, const xmlChar * value, xmlAttrPtr attr); 1811void xmlFreeIDTable (xmlIDTablePtr table); 1812xmlAttrPtr xmlGetID (xmlDocPtr doc, const xmlChar * ID); 1813int xmlIsID (xmlDocPtr doc, xmlNodePtr elem, xmlAttrPtr attr); 1814int xmlRemoveID (xmlDocPtr doc, xmlAttrPtr attr); 1815 1816xmlRefPtr xmlAddRef (xmlValidCtxtPtr ctxt, 1817 xmlDocPtr doc, const xmlChar * value, xmlAttrPtr attr); 1818void xmlFreeRefTable (xmlRefTablePtr table); 1819int xmlIsRef (xmlDocPtr doc, xmlNodePtr elem, xmlAttrPtr attr); 1820int xmlRemoveRef (xmlDocPtr doc, xmlAttrPtr attr); 1821xmlListPtr xmlGetRefs (xmlDocPtr doc, const xmlChar * ID); 1822 1823xmlValidCtxtPtr xmlNewValidCtxt (void); 1824void xmlFreeValidCtxt (xmlValidCtxtPtr); 1825int xmlValidateRoot (xmlValidCtxtPtr ctxt, xmlDocPtr doc); 1826int xmlValidateElementDecl (xmlValidCtxtPtr ctxt, 1827 xmlDocPtr doc, xmlElementPtr elem); 1828xmlChar *xmlValidNormalizeAttributeValue (xmlDocPtr doc, 1829 xmlNodePtr elem, 1830 const xmlChar * name, 1831 const xmlChar * value); 1832xmlChar *xmlValidCtxtNormalizeAttributeValue (xmlValidCtxtPtr ctxt, 1833 xmlDocPtr doc, 1834 xmlNodePtr elem, 1835 const xmlChar * name, 1836 const xmlChar * value); 1837int xmlValidateAttributeDecl (xmlValidCtxtPtr ctxt, 1838 xmlDocPtr doc, xmlAttributePtr attr); 1839int xmlValidateAttributeValue (xmlAttributeType type, const xmlChar * value); 1840int xmlValidateNotationDecl (xmlValidCtxtPtr ctxt, 1841 xmlDocPtr doc, xmlNotationPtr nota); 1842int xmlValidateDtd (xmlValidCtxtPtr ctxt, xmlDocPtr doc, xmlDtdPtr dtd); 1843int xmlValidateDtdFinal (xmlValidCtxtPtr ctxt, xmlDocPtr doc); 1844int xmlValidateDocument (xmlValidCtxtPtr ctxt, xmlDocPtr doc); 1845int xmlValidateElement (xmlValidCtxtPtr ctxt, xmlDocPtr doc, xmlNodePtr elem); 1846int xmlValidateOneElement (xmlValidCtxtPtr ctxt, xmlDocPtr doc, xmlNodePtr elem); 1847int xmlValidateOneAttribute (xmlValidCtxtPtr ctxt, 1848 xmlDocPtr doc, 1849 xmlNodePtr elem, 1850 xmlAttrPtr attr, const xmlChar * value); 1851int xmlValidateOneNamespace (xmlValidCtxtPtr ctxt, 1852 xmlDocPtr doc, 1853 xmlNodePtr elem, 1854 const xmlChar * prefix, 1855 xmlNsPtr ns, const xmlChar * value); 1856int xmlValidateDocumentFinal (xmlValidCtxtPtr ctxt, xmlDocPtr doc); 1857 1858 1859 1860int 1861xmlValidateNotationUse (xmlValidCtxtPtr ctxt, 1862 xmlDocPtr doc, const xmlChar * notationName); 1863 1864 1865int xmlIsMixedElement (xmlDocPtr doc, const xmlChar * name); 1866xmlAttributePtr xmlGetDtdAttrDesc (xmlDtdPtr dtd, const xmlChar * elem, const xmlChar * name); 1867xmlAttributePtr xmlGetDtdQAttrDesc (xmlDtdPtr dtd, 1868 const xmlChar * elem, 1869 const xmlChar * name, const xmlChar * prefix); 1870xmlNotationPtr xmlGetDtdNotationDesc (xmlDtdPtr dtd, const xmlChar * name); 1871xmlElementPtr xmlGetDtdQElementDesc (xmlDtdPtr dtd, 1872 const xmlChar * name, const xmlChar * prefix); 1873xmlElementPtr xmlGetDtdElementDesc (xmlDtdPtr dtd, const xmlChar * name); 1874 1875int xmlValidGetPotentialChildren (xmlElementContent * ctree, 1876 const xmlChar ** names, int *len, int max); 1877 1878int xmlValidGetValidElements (xmlNode * prev, 1879 xmlNode * next, const xmlChar ** names, int max); 1880int xmlValidateNameValue (const xmlChar * value); 1881int xmlValidateNamesValue (const xmlChar * value); 1882int xmlValidateNmtokenValue (const xmlChar * value); 1883int xmlValidateNmtokensValue (const xmlChar * value); 1884 1885int xmlValidBuildContentModel (xmlValidCtxtPtr ctxt, xmlElementPtr elem); 1886 1887int 1888xmlValidatePushElement (xmlValidCtxtPtr ctxt, 1889 xmlDocPtr doc, 1890 xmlNodePtr elem, const xmlChar * qname); 1891int 1892xmlValidatePushCData (xmlValidCtxtPtr ctxt, const xmlChar * data, int len); 1893int 1894xmlValidatePopElement (xmlValidCtxtPtr ctxt, 1895 xmlDocPtr doc, xmlNodePtr elem, const xmlChar * qname); 1896typedef enum 1897 { 1898 XML_INTERNAL_GENERAL_ENTITY = 1, 1899 XML_EXTERNAL_GENERAL_PARSED_ENTITY = 2, 1900 XML_EXTERNAL_GENERAL_UNPARSED_ENTITY = 3, 1901 XML_INTERNAL_PARAMETER_ENTITY = 4, 1902 XML_EXTERNAL_PARAMETER_ENTITY = 5, 1903 XML_INTERNAL_PREDEFINED_ENTITY = 6 1904 } xmlEntityType; 1905 1906struct _xmlEntity 1907{ 1908 void *_private; 1909 xmlElementType type; 1910 const xmlChar *name; 1911 struct _xmlNode *children; 1912 struct _xmlNode *last; 1913 struct _xmlDtd *parent; 1914 struct _xmlNode *next; 1915 struct _xmlNode *prev; 1916 struct _xmlDoc *doc; 1917 1918 xmlChar *orig; 1919 xmlChar *content; 1920 int length; 1921 xmlEntityType etype; 1922 const xmlChar *ExternalID; 1923 const xmlChar *SystemID; 1924 1925 struct _xmlEntity *nexte; 1926 const xmlChar *URI; 1927 int owner; 1928 int checked; 1929}; 1930 1931typedef struct _xmlHashTable xmlEntitiesTable; 1932typedef xmlEntitiesTable *xmlEntitiesTablePtr; 1933void xmlInitializePredefinedEntities (void); 1934 1935xmlEntityPtr 1936xmlNewEntity (xmlDocPtr doc, 1937 const xmlChar * name, 1938 int type, 1939 const xmlChar * ExternalID, 1940 const xmlChar * SystemID, const xmlChar * content); 1941xmlEntityPtr 1942xmlAddDocEntity (xmlDocPtr doc, 1943 const xmlChar * name, 1944 int type, 1945 const xmlChar * ExternalID, 1946 const xmlChar * SystemID, const xmlChar * content); 1947xmlEntityPtr 1948xmlAddDtdEntity (xmlDocPtr doc, 1949 const xmlChar * name, 1950 int type, 1951 const xmlChar * ExternalID, 1952 const xmlChar * SystemID, const xmlChar * content); 1953xmlEntityPtr xmlGetPredefinedEntity (const xmlChar * name); 1954xmlEntityPtr xmlGetDocEntity (const xmlDoc * doc, const xmlChar * name); 1955xmlEntityPtr xmlGetDtdEntity (xmlDocPtr doc, const xmlChar * name); 1956xmlEntityPtr xmlGetParameterEntity (xmlDocPtr doc, const xmlChar * name); 1957const xmlChar *xmlEncodeEntities (xmlDocPtr doc, const xmlChar * input); 1958xmlChar *xmlEncodeEntitiesReentrant (xmlDocPtr doc, const xmlChar * input); 1959xmlChar *xmlEncodeSpecialChars (const xmlDoc * doc, const xmlChar * input); 1960xmlEntitiesTablePtr xmlCreateEntitiesTable (void); 1961 1962xmlEntitiesTablePtr xmlCopyEntitiesTable (xmlEntitiesTablePtr table); 1963void xmlFreeEntitiesTable (xmlEntitiesTablePtr table); 1964void xmlDumpEntitiesTable (xmlBufferPtr buf, xmlEntitiesTablePtr table); 1965void xmlDumpEntityDecl (xmlBufferPtr buf, xmlEntityPtr ent); 1966void xmlCleanupPredefinedEntities (void); 1967typedef void (*xmlParserInputDeallocate) (xmlChar * str); 1968 1969struct _xmlParserInput 1970{ 1971 xmlParserInputBufferPtr buf; 1972 const char *filename; 1973 const char *directory; 1974 const xmlChar *base; 1975 const xmlChar *cur; 1976 const xmlChar *end; 1977 int length; 1978 int line; 1979 int col; 1980 unsigned long consumed; 1981 xmlParserInputDeallocate free; 1982 const xmlChar *encoding; 1983 const xmlChar *version; 1984 int standalone; 1985 int id; 1986}; 1987 1988typedef struct _xmlParserNodeInfo xmlParserNodeInfo; 1989typedef xmlParserNodeInfo *xmlParserNodeInfoPtr; 1990 1991struct _xmlParserNodeInfo 1992{ 1993 const struct _xmlNode *node; 1994 unsigned long begin_pos; 1995 unsigned long begin_line; 1996 unsigned long end_pos; 1997 unsigned long end_line; 1998}; 1999 2000typedef struct _xmlParserNodeInfoSeq xmlParserNodeInfoSeq; 2001typedef xmlParserNodeInfoSeq *xmlParserNodeInfoSeqPtr; 2002struct _xmlParserNodeInfoSeq 2003{ 2004 unsigned long maximum; 2005 unsigned long length; 2006 xmlParserNodeInfo *buffer; 2007}; 2008 2009typedef enum 2010 { 2011 XML_PARSER_EOF = -1, 2012 XML_PARSER_START = 0, 2013 XML_PARSER_MISC, 2014 XML_PARSER_PI, 2015 XML_PARSER_DTD, 2016 XML_PARSER_PROLOG, 2017 XML_PARSER_COMMENT, 2018 XML_PARSER_START_TAG, 2019 XML_PARSER_CONTENT, 2020 XML_PARSER_CDATA_SECTION, 2021 XML_PARSER_END_TAG, 2022 XML_PARSER_ENTITY_DECL, 2023 XML_PARSER_ENTITY_VALUE, 2024 XML_PARSER_ATTRIBUTE_VALUE, 2025 XML_PARSER_SYSTEM_LITERAL, 2026 XML_PARSER_EPILOG, 2027 XML_PARSER_IGNORE, 2028 XML_PARSER_PUBLIC_LITERAL 2029 } xmlParserInputState; 2030 2031typedef enum 2032 { 2033 XML_PARSE_UNKNOWN = 0, 2034 XML_PARSE_DOM = 1, 2035 XML_PARSE_SAX = 2, 2036 XML_PARSE_PUSH_DOM = 3, 2037 XML_PARSE_PUSH_SAX = 4, 2038 XML_PARSE_READER = 5 2039 } xmlParserMode; 2040 2041struct _xmlParserCtxt 2042{ 2043 struct _xmlSAXHandler *sax; 2044 void *userData; 2045 xmlDocPtr myDoc; 2046 int wellFormed; 2047 int replaceEntities; 2048 const xmlChar *version; 2049 const xmlChar *encoding; 2050 int standalone; 2051 int html; 2052 xmlParserInputPtr input; 2053 int inputNr; 2054 int inputMax; 2055 xmlParserInputPtr *inputTab; 2056 xmlNodePtr node; 2057 int nodeNr; 2058 int nodeMax; 2059 xmlNodePtr *nodeTab; 2060 int record_info; 2061 xmlParserNodeInfoSeq node_seq; 2062 int errNo; 2063 int hasExternalSubset; 2064 int hasPErefs; 2065 int external; 2066 int valid; 2067 int validate; 2068 xmlValidCtxt vctxt; 2069 xmlParserInputState instate; 2070 int token; 2071 char *directory; 2072 const xmlChar *name; 2073 int nameNr; 2074 int nameMax; 2075 const xmlChar **nameTab; 2076 long nbChars; 2077 long checkIndex; 2078 int keepBlanks; 2079 int disableSAX; 2080 int inSubset; 2081 const xmlChar *intSubName; 2082 xmlChar *extSubURI; 2083 xmlChar *extSubSystem; 2084 int *space; 2085 int spaceNr; 2086 int spaceMax; 2087 int *spaceTab; 2088 int depth; 2089 xmlParserInputPtr entity; 2090 int charset; 2091 int nodelen; 2092 int nodemem; 2093 int pedantic; 2094 void *_private; 2095 int loadsubset; 2096 int linenumbers; 2097 void *catalogs; 2098 int recovery; 2099 int progressive; 2100 xmlDictPtr dict; 2101 const xmlChar **atts; 2102 int maxatts; 2103 int docdict; 2104 const xmlChar *str_xml; 2105 const xmlChar *str_xmlns; 2106 const xmlChar *str_xml_ns; 2107 int sax2; 2108 int nsNr; 2109 int nsMax; 2110 const xmlChar **nsTab; 2111 int *attallocs; 2112 void **pushTab; 2113 xmlHashTablePtr attsDefault; 2114 xmlHashTablePtr attsSpecial; 2115 int nsWellFormed; 2116 int options; 2117 int dictNames; 2118 int freeElemsNr; 2119 xmlNodePtr freeElems; 2120 int freeAttrsNr; 2121 xmlAttrPtr freeAttrs; 2122 xmlError lastError; 2123 xmlParserMode parseMode; 2124 unsigned long nbentities; 2125 unsigned long sizeentities; 2126 xmlParserNodeInfo *nodeInfo; 2127 int nodeInfoNr; 2128 int nodeInfoMax; 2129 xmlParserNodeInfo *nodeInfoTab; 2130 int input_id; 2131 unsigned long sizeentcopy; 2132}; 2133 2134struct _xmlSAXLocator 2135{ 2136 const xmlChar *(*getPublicId) (void *ctx); 2137 const xmlChar *(*getSystemId) (void *ctx); 2138 int (*getLineNumber) (void *ctx); 2139 int (*getColumnNumber) (void *ctx); 2140}; 2141 2142typedef xmlParserInputPtr (*resolveEntitySAXFunc) (void *ctx, 2143 const xmlChar * publicId, 2144 const xmlChar * systemId); 2145typedef void (*internalSubsetSAXFunc) (void *ctx, 2146 const xmlChar * name, 2147 const xmlChar * ExternalID, 2148 const xmlChar * SystemID); 2149typedef void (*externalSubsetSAXFunc) (void *ctx, 2150 const xmlChar * name, 2151 const xmlChar * ExternalID, 2152 const xmlChar * SystemID); 2153typedef xmlEntityPtr (*getEntitySAXFunc) (void *ctx, const xmlChar * name); 2154typedef xmlEntityPtr (*getParameterEntitySAXFunc) (void *ctx, 2155 const xmlChar * name); 2156typedef void (*entityDeclSAXFunc) (void *ctx, 2157 const xmlChar * name, 2158 int type, 2159 const xmlChar * publicId, 2160 const xmlChar * systemId, 2161 xmlChar * content); 2162typedef void (*notationDeclSAXFunc) (void *ctx, 2163 const xmlChar * name, 2164 const xmlChar * publicId, 2165 const xmlChar * systemId); 2166typedef void (*attributeDeclSAXFunc) (void *ctx, 2167 const xmlChar * elem, 2168 const xmlChar * fullname, 2169 int type, 2170 int def, 2171 const xmlChar * defaultValue, 2172 xmlEnumerationPtr tree); 2173typedef void (*elementDeclSAXFunc) (void *ctx, 2174 const xmlChar * name, 2175 int type, xmlElementContentPtr content); 2176typedef void (*unparsedEntityDeclSAXFunc) (void *ctx, 2177 const xmlChar * name, 2178 const xmlChar * publicId, 2179 const xmlChar * systemId, 2180 const xmlChar * notationName); 2181typedef void (*setDocumentLocatorSAXFunc) (void *ctx, xmlSAXLocatorPtr loc); 2182typedef void (*startDocumentSAXFunc) (void *ctx); 2183typedef void (*endDocumentSAXFunc) (void *ctx); 2184typedef void (*startElementSAXFunc) (void *ctx, 2185 const xmlChar * name, 2186 const xmlChar ** atts); 2187typedef void (*endElementSAXFunc) (void *ctx, const xmlChar * name); 2188typedef void (*attributeSAXFunc) (void *ctx, 2189 const xmlChar * name, 2190 const xmlChar * value); 2191typedef void (*referenceSAXFunc) (void *ctx, const xmlChar * name); 2192typedef void (*charactersSAXFunc) (void *ctx, const xmlChar * ch, int len); 2193typedef void (*ignorableWhitespaceSAXFunc) (void *ctx, 2194 const xmlChar * ch, int len); 2195typedef void (*processingInstructionSAXFunc) (void *ctx, 2196 const xmlChar * target, 2197 const xmlChar * data); 2198 2199typedef void (*commentSAXFunc) (void *ctx, const xmlChar * value); 2200typedef void (*cdataBlockSAXFunc) (void *ctx, const xmlChar * value, int len); 2201typedef void (*warningSAXFunc) (void *ctx, 2202 const char *msg, ...) 2203 __attribute__ ((__format__ (__printf__, 2, 3))); 2204typedef void (*errorSAXFunc) (void *ctx, const char *msg, ...) 2205 __attribute__ ((__format__ (__printf__, 2, 3))); 2206typedef void (*fatalErrorSAXFunc) (void *ctx, const char *msg, ...) 2207 __attribute__ ((__format__ (__printf__, 2, 3))); 2208typedef int (*isStandaloneSAXFunc) (void *ctx); 2209typedef int (*hasInternalSubsetSAXFunc) (void *ctx); 2210typedef int (*hasExternalSubsetSAXFunc) (void *ctx); 2211typedef void (*startElementNsSAX2Func) (void *ctx, 2212 const xmlChar * localname, 2213 const xmlChar * prefix, 2214 const xmlChar * URI, 2215 int nb_namespaces, 2216 const xmlChar ** namespaces, 2217 int nb_attributes, 2218 int nb_defaulted, 2219 const xmlChar ** attributes); 2220typedef void (*endElementNsSAX2Func) (void *ctx, 2221 const xmlChar * localname, 2222 const xmlChar * prefix, 2223 const xmlChar * URI); 2224 2225 2226struct _xmlSAXHandler 2227{ 2228 internalSubsetSAXFunc internalSubset; 2229 isStandaloneSAXFunc isStandalone; 2230 hasInternalSubsetSAXFunc hasInternalSubset; 2231 hasExternalSubsetSAXFunc hasExternalSubset; 2232 resolveEntitySAXFunc resolveEntity; 2233 getEntitySAXFunc getEntity; 2234 entityDeclSAXFunc entityDecl; 2235 notationDeclSAXFunc notationDecl; 2236 attributeDeclSAXFunc attributeDecl; 2237 elementDeclSAXFunc elementDecl; 2238 unparsedEntityDeclSAXFunc unparsedEntityDecl; 2239 setDocumentLocatorSAXFunc setDocumentLocator; 2240 startDocumentSAXFunc startDocument; 2241 endDocumentSAXFunc endDocument; 2242 startElementSAXFunc startElement; 2243 endElementSAXFunc endElement; 2244 referenceSAXFunc reference; 2245 charactersSAXFunc characters; 2246 ignorableWhitespaceSAXFunc ignorableWhitespace; 2247 processingInstructionSAXFunc processingInstruction; 2248 commentSAXFunc comment; 2249 warningSAXFunc warning; 2250 errorSAXFunc error; 2251 fatalErrorSAXFunc fatalError; 2252 getParameterEntitySAXFunc getParameterEntity; 2253 cdataBlockSAXFunc cdataBlock; 2254 externalSubsetSAXFunc externalSubset; 2255 unsigned int initialized; 2256 2257 void *_private; 2258 startElementNsSAX2Func startElementNs; 2259 endElementNsSAX2Func endElementNs; 2260 xmlStructuredErrorFunc serror; 2261}; 2262 2263typedef struct _xmlSAXHandlerV1 xmlSAXHandlerV1; 2264typedef xmlSAXHandlerV1 *xmlSAXHandlerV1Ptr; 2265struct _xmlSAXHandlerV1 2266{ 2267 internalSubsetSAXFunc internalSubset; 2268 isStandaloneSAXFunc isStandalone; 2269 hasInternalSubsetSAXFunc hasInternalSubset; 2270 hasExternalSubsetSAXFunc hasExternalSubset; 2271 resolveEntitySAXFunc resolveEntity; 2272 getEntitySAXFunc getEntity; 2273 entityDeclSAXFunc entityDecl; 2274 notationDeclSAXFunc notationDecl; 2275 attributeDeclSAXFunc attributeDecl; 2276 elementDeclSAXFunc elementDecl; 2277 unparsedEntityDeclSAXFunc unparsedEntityDecl; 2278 setDocumentLocatorSAXFunc setDocumentLocator; 2279 startDocumentSAXFunc startDocument; 2280 endDocumentSAXFunc endDocument; 2281 startElementSAXFunc startElement; 2282 endElementSAXFunc endElement; 2283 referenceSAXFunc reference; 2284 charactersSAXFunc characters; 2285 ignorableWhitespaceSAXFunc ignorableWhitespace; 2286 processingInstructionSAXFunc processingInstruction; 2287 commentSAXFunc comment; 2288 warningSAXFunc warning; 2289 errorSAXFunc error; 2290 fatalErrorSAXFunc fatalError; 2291 getParameterEntitySAXFunc getParameterEntity; 2292 cdataBlockSAXFunc cdataBlock; 2293 externalSubsetSAXFunc externalSubset; 2294 unsigned int initialized; 2295}; 2296typedef xmlParserInputPtr (*xmlExternalEntityLoader) (const char *URL, 2297 const char *ID, 2298 xmlParserCtxtPtr 2299 context); 2300 2301typedef void *iconv_t; 2302extern iconv_t iconv_open (const char *__tocode, const char *__fromcode); 2303extern size_t iconv (iconv_t __cd, char **__restrict __inbuf, 2304 size_t * __restrict __inbytesleft, 2305 char **__restrict __outbuf, 2306 size_t * __restrict __outbytesleft); 2307 2308extern int iconv_close (iconv_t __cd); 2309typedef int8_t UBool; 2310typedef short unsigned int UChar; 2311typedef int32_t UChar32; 2312typedef uint8_t UVersionInfo[4]; 2313 2314extern __attribute__ ((visibility ("default"))) 2315void u_versionFromString_52 (UVersionInfo versionArray, 2316 const char *versionString); 2317extern __attribute__ ((visibility ("default"))) 2318void u_versionFromUString_52 (UVersionInfo versionArray, 2319 const UChar * versionString); 2320extern __attribute__ ((visibility ("default"))) 2321void u_versionToString_52 (const UVersionInfo versionArray, 2322 char *versionString); 2323extern __attribute__ ((visibility ("default"))) 2324void u_getVersion_52 (UVersionInfo versionArray); 2325 2326extern const uint8_t utf8_countTrailBytes_52[256]; 2327extern __attribute__ ((visibility ("default"))) 2328UChar32 utf8_nextCharSafeBody_52 (const uint8_t * s, int32_t * pi, int32_t length, 2329 UChar32 c, UBool strict); 2330extern __attribute__ ((visibility ("default"))) 2331int32_t utf8_appendCharSafeBody_52 (uint8_t * s, int32_t i, int32_t length, 2332 UChar32 c, UBool * pIsError); 2333extern __attribute__ ((visibility ("default"))) 2334UChar32 utf8_prevCharSafeBody_52 (const uint8_t * s, int32_t start, int32_t * pi, 2335 UChar32 c, UBool strict); 2336extern __attribute__ ((visibility ("default"))) int32_t 2337utf8_back1SafeBody_52 (const uint8_t * s, int32_t start, int32_t i); 2338 2339typedef double UDate; 2340 2341typedef enum UErrorCode { 2342 U_USING_FALLBACK_WARNING = -128, 2343 U_ERROR_WARNING_START = -128, 2344 U_USING_DEFAULT_WARNING = -127, 2345 U_SAFECLONE_ALLOCATED_WARNING = -126, 2346 U_STATE_OLD_WARNING = -125, 2347 U_STRING_NOT_TERMINATED_WARNING = -124, 2348 U_SORT_KEY_TOO_SHORT_WARNING = -123, 2349 U_AMBIGUOUS_ALIAS_WARNING = -122, 2350 U_DIFFERENT_UCA_VERSION = -121, 2351 U_PLUGIN_CHANGED_LEVEL_WARNING = -120, 2352 U_ERROR_WARNING_LIMIT, 2353 U_ZERO_ERROR = 0, 2354 U_ILLEGAL_ARGUMENT_ERROR = 1, 2355 U_MISSING_RESOURCE_ERROR = 2, 2356 U_INVALID_FORMAT_ERROR = 3, 2357 U_FILE_ACCESS_ERROR = 4, 2358 U_INTERNAL_PROGRAM_ERROR = 5, 2359 U_MESSAGE_PARSE_ERROR = 6, 2360 U_MEMORY_ALLOCATION_ERROR = 7, 2361 U_INDEX_OUTOFBOUNDS_ERROR = 8, 2362 U_PARSE_ERROR = 9, 2363 U_INVALID_CHAR_FOUND = 10, 2364 U_TRUNCATED_CHAR_FOUND = 11, 2365 U_ILLEGAL_CHAR_FOUND = 12, 2366 U_INVALID_TABLE_FORMAT = 13, 2367 U_INVALID_TABLE_FILE = 14, 2368 U_BUFFER_OVERFLOW_ERROR = 15, 2369 U_UNSUPPORTED_ERROR = 16, 2370 U_RESOURCE_TYPE_MISMATCH = 17, 2371 U_ILLEGAL_ESCAPE_SEQUENCE = 18, 2372 U_UNSUPPORTED_ESCAPE_SEQUENCE = 19, 2373 U_NO_SPACE_AVAILABLE = 20, 2374 U_CE_NOT_FOUND_ERROR = 21, 2375 U_PRIMARY_TOO_LONG_ERROR = 22, 2376 U_STATE_TOO_OLD_ERROR = 23, 2377 U_TOO_MANY_ALIASES_ERROR = 24, 2378 U_ENUM_OUT_OF_SYNC_ERROR = 25, 2379 U_INVARIANT_CONVERSION_ERROR = 26, 2380 U_INVALID_STATE_ERROR = 27, 2381 U_COLLATOR_VERSION_MISMATCH = 28, 2382 U_USELESS_COLLATOR_ERROR = 29, 2383 U_NO_WRITE_PERMISSION = 30, 2384 U_STANDARD_ERROR_LIMIT, 2385 U_BAD_VARIABLE_DEFINITION = 0x10000, 2386 U_PARSE_ERROR_START = 0x10000, 2387 U_MALFORMED_RULE, 2388 U_MALFORMED_SET, 2389 U_MALFORMED_SYMBOL_REFERENCE, 2390 U_MALFORMED_UNICODE_ESCAPE, 2391 U_MALFORMED_VARIABLE_DEFINITION, 2392 U_MALFORMED_VARIABLE_REFERENCE, 2393 U_MISMATCHED_SEGMENT_DELIMITERS, 2394 U_MISPLACED_ANCHOR_START, 2395 U_MISPLACED_CURSOR_OFFSET, 2396 U_MISPLACED_QUANTIFIER, 2397 U_MISSING_OPERATOR, 2398 U_MISSING_SEGMENT_CLOSE, 2399 U_MULTIPLE_ANTE_CONTEXTS, 2400 U_MULTIPLE_CURSORS, 2401 U_MULTIPLE_POST_CONTEXTS, 2402 U_TRAILING_BACKSLASH, 2403 U_UNDEFINED_SEGMENT_REFERENCE, 2404 U_UNDEFINED_VARIABLE, 2405 U_UNQUOTED_SPECIAL, 2406 U_UNTERMINATED_QUOTE, 2407 U_RULE_MASK_ERROR, 2408 U_MISPLACED_COMPOUND_FILTER, 2409 U_MULTIPLE_COMPOUND_FILTERS, 2410 U_INVALID_RBT_SYNTAX, 2411 U_INVALID_PROPERTY_PATTERN, 2412 U_MALFORMED_PRAGMA, 2413 U_UNCLOSED_SEGMENT, 2414 U_ILLEGAL_CHAR_IN_SEGMENT, 2415 U_VARIABLE_RANGE_EXHAUSTED, 2416 U_VARIABLE_RANGE_OVERLAP, 2417 U_ILLEGAL_CHARACTER, 2418 U_INTERNAL_TRANSLITERATOR_ERROR, 2419 U_INVALID_ID, 2420 U_INVALID_FUNCTION, 2421 U_PARSE_ERROR_LIMIT, 2422 U_UNEXPECTED_TOKEN = 0x10100, 2423 U_FMT_PARSE_ERROR_START = 0x10100, 2424 U_MULTIPLE_DECIMAL_SEPARATORS, 2425 U_MULTIPLE_DECIMAL_SEPERATORS = U_MULTIPLE_DECIMAL_SEPARATORS, 2426 U_MULTIPLE_EXPONENTIAL_SYMBOLS, 2427 U_MALFORMED_EXPONENTIAL_PATTERN, 2428 U_MULTIPLE_PERCENT_SYMBOLS, 2429 U_MULTIPLE_PERMILL_SYMBOLS, 2430 U_MULTIPLE_PAD_SPECIFIERS, 2431 U_PATTERN_SYNTAX_ERROR, 2432 U_ILLEGAL_PAD_POSITION, 2433 U_UNMATCHED_BRACES, 2434 U_UNSUPPORTED_PROPERTY, 2435 U_UNSUPPORTED_ATTRIBUTE, 2436 U_ARGUMENT_TYPE_MISMATCH, 2437 U_DUPLICATE_KEYWORD, 2438 U_UNDEFINED_KEYWORD, 2439 U_DEFAULT_KEYWORD_MISSING, 2440 U_DECIMAL_NUMBER_SYNTAX_ERROR, 2441 U_FORMAT_INEXACT_ERROR, 2442 U_FMT_PARSE_ERROR_LIMIT, 2443 U_BRK_INTERNAL_ERROR = 0x10200, 2444 U_BRK_ERROR_START = 0x10200, 2445 U_BRK_HEX_DIGITS_EXPECTED, 2446 U_BRK_SEMICOLON_EXPECTED, 2447 U_BRK_RULE_SYNTAX, 2448 U_BRK_UNCLOSED_SET, 2449 U_BRK_ASSIGN_ERROR, 2450 U_BRK_VARIABLE_REDFINITION, 2451 U_BRK_MISMATCHED_PAREN, 2452 U_BRK_NEW_LINE_IN_QUOTED_STRING, 2453 U_BRK_UNDEFINED_VARIABLE, 2454 U_BRK_INIT_ERROR, 2455 U_BRK_RULE_EMPTY_SET, 2456 U_BRK_UNRECOGNIZED_OPTION, 2457 U_BRK_MALFORMED_RULE_TAG, 2458 U_BRK_ERROR_LIMIT, 2459 U_REGEX_INTERNAL_ERROR = 0x10300, 2460 U_REGEX_ERROR_START = 0x10300, 2461 U_REGEX_RULE_SYNTAX, 2462 U_REGEX_INVALID_STATE, 2463 U_REGEX_BAD_ESCAPE_SEQUENCE, 2464 U_REGEX_PROPERTY_SYNTAX, 2465 U_REGEX_UNIMPLEMENTED, 2466 U_REGEX_MISMATCHED_PAREN, 2467 U_REGEX_NUMBER_TOO_BIG, 2468 U_REGEX_BAD_INTERVAL, 2469 U_REGEX_MAX_LT_MIN, 2470 U_REGEX_INVALID_BACK_REF, 2471 U_REGEX_INVALID_FLAG, 2472 U_REGEX_LOOK_BEHIND_LIMIT, 2473 U_REGEX_SET_CONTAINS_STRING, 2474 U_REGEX_OCTAL_TOO_BIG, 2475 U_REGEX_MISSING_CLOSE_BRACKET, 2476 U_REGEX_INVALID_RANGE, 2477 U_REGEX_STACK_OVERFLOW, 2478 U_REGEX_TIME_OUT, 2479 U_REGEX_STOPPED_BY_CALLER, 2480 U_REGEX_PATTERN_TOO_BIG, 2481 U_REGEX_ERROR_LIMIT, 2482 U_IDNA_PROHIBITED_ERROR = 0x10400, 2483 U_IDNA_ERROR_START = 0x10400, 2484 U_IDNA_UNASSIGNED_ERROR, 2485 U_IDNA_CHECK_BIDI_ERROR, 2486 U_IDNA_STD3_ASCII_RULES_ERROR, 2487 U_IDNA_ACE_PREFIX_ERROR, 2488 U_IDNA_VERIFICATION_ERROR, 2489 U_IDNA_LABEL_TOO_LONG_ERROR, 2490 U_IDNA_ZERO_LENGTH_LABEL_ERROR, 2491 U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR, 2492 U_IDNA_ERROR_LIMIT, 2493 U_STRINGPREP_PROHIBITED_ERROR = U_IDNA_PROHIBITED_ERROR, 2494 U_STRINGPREP_UNASSIGNED_ERROR = U_IDNA_UNASSIGNED_ERROR, 2495 U_STRINGPREP_CHECK_BIDI_ERROR = U_IDNA_CHECK_BIDI_ERROR, 2496 U_PLUGIN_ERROR_START = 0x10500, 2497 U_PLUGIN_TOO_HIGH = 0x10500, 2498 U_PLUGIN_DIDNT_SET_LEVEL, 2499 U_PLUGIN_ERROR_LIMIT, 2500 U_ERROR_LIMIT = U_PLUGIN_ERROR_LIMIT 2501} UErrorCode; 2502 2503extern __attribute__ ((visibility ("default"))) 2504const char * u_errorName_52 (UErrorCode code); 2505 2506struct UConverter; 2507 2508typedef struct UConverter UConverter; 2509typedef enum { 2510 UCNV_UNASSIGNED = 0, 2511 UCNV_ILLEGAL = 1, 2512 UCNV_IRREGULAR = 2, 2513 UCNV_RESET = 3, 2514 UCNV_CLOSE = 4, 2515 UCNV_CLONE = 5 2516} UConverterCallbackReason; 2517 2518typedef struct 2519{ 2520 uint16_t size; 2521 UBool flush; 2522 UConverter *converter; 2523 const UChar *source; 2524 const UChar *sourceLimit; 2525 char *target; 2526 const char *targetLimit; 2527 int32_t * offsets; 2528} UConverterFromUnicodeArgs; 2529 2530typedef struct 2531{ 2532 uint16_t size; 2533 UBool flush; 2534 UConverter *converter; 2535 const char *source; 2536 const char *sourceLimit; 2537 UChar *target; 2538 const UChar *targetLimit; 2539 int32_t *offsets; 2540} UConverterToUnicodeArgs; 2541 2542extern __attribute__ ((visibility ("default"))) 2543void UCNV_FROM_U_CALLBACK_STOP_52 (const void *context, 2544 UConverterFromUnicodeArgs * fromUArgs, 2545 const UChar * codeUnits, 2546 int32_t length, 2547 UChar32 codePoint, 2548 UConverterCallbackReason reason, 2549 UErrorCode * err); 2550 2551extern __attribute__ ((visibility ("default"))) 2552void UCNV_TO_U_CALLBACK_STOP_52 (const void *context, 2553 UConverterToUnicodeArgs * toUArgs, 2554 const char *codeUnits, 2555 int32_t length, 2556 UConverterCallbackReason reason, 2557 UErrorCode * err); 2558 2559extern __attribute__ ((visibility ("default"))) 2560void UCNV_FROM_U_CALLBACK_SKIP_52 (const void *context, 2561 UConverterFromUnicodeArgs * fromUArgs, 2562 const UChar * codeUnits, 2563 int32_t length, 2564 UChar32 codePoint, 2565 UConverterCallbackReason reason, 2566 UErrorCode * err); 2567 2568extern __attribute__ ((visibility ("default"))) 2569void UCNV_FROM_U_CALLBACK_SUBSTITUTE_52 (const void *context, 2570 UConverterFromUnicodeArgs * 2571 fromUArgs, const UChar * codeUnits, 2572 int32_t length, UChar32 codePoint, 2573 UConverterCallbackReason reason, 2574 UErrorCode * err); 2575 2576extern __attribute__ ((visibility ("default"))) 2577void UCNV_FROM_U_CALLBACK_ESCAPE_52 (const void *context, 2578 UConverterFromUnicodeArgs * fromUArgs, 2579 const UChar * codeUnits, 2580 int32_t length, 2581 UChar32 codePoint, 2582 UConverterCallbackReason reason, 2583 UErrorCode * err); 2584 2585extern __attribute__ ((visibility ("default"))) 2586void UCNV_TO_U_CALLBACK_SKIP_52 (const void *context, 2587 UConverterToUnicodeArgs * toUArgs, 2588 const char *codeUnits, 2589 int32_t length, 2590 UConverterCallbackReason reason, 2591 UErrorCode * err); 2592 2593extern __attribute__ ((visibility ("default"))) 2594void UCNV_TO_U_CALLBACK_SUBSTITUTE_52 (const void *context, 2595 UConverterToUnicodeArgs * toUArgs, 2596 const char *codeUnits, 2597 int32_t length, 2598 UConverterCallbackReason reason, 2599 UErrorCode * err); 2600 2601extern __attribute__ ((visibility ("default"))) 2602void UCNV_TO_U_CALLBACK_ESCAPE_52 (const void *context, 2603 UConverterToUnicodeArgs * toUArgs, 2604 const char *codeUnits, 2605 int32_t length, 2606 UConverterCallbackReason reason, 2607 UErrorCode * err); 2608struct UEnumeration; 2609 2610typedef struct UEnumeration UEnumeration; 2611 2612extern __attribute__ ((visibility ("default"))) 2613void uenum_close_52 (UEnumeration * en); 2614 2615extern __attribute__ ((visibility ("default"))) 2616int32_t uenum_count_52 (UEnumeration * en, UErrorCode * status); 2617 2618extern __attribute__ ((visibility ("default"))) 2619const UChar *uenum_unext_52 (UEnumeration * en, 2620 int32_t * resultLength, UErrorCode * status); 2621 2622extern __attribute__ ((visibility ("default"))) 2623const char *uenum_next_52 (UEnumeration * en, 2624 int32_t * resultLength, UErrorCode * status); 2625 2626extern __attribute__ ((visibility ("default"))) 2627void uenum_reset_52 (UEnumeration * en, UErrorCode * status); 2628 2629extern __attribute__ ((visibility ("default"))) 2630UEnumeration *uenum_openUCharStringsEnumeration_52 (const UChar * const strings[], 2631 int32_t count, UErrorCode * ec); 2632 2633extern __attribute__ ((visibility ("default"))) 2634UEnumeration *uenum_openCharStringsEnumeration_52 (const char *const strings[], 2635 int32_t count, UErrorCode * ec); 2636 2637struct USet; 2638typedef struct USet USet; 2639 2640typedef enum { 2641 UCNV_UNSUPPORTED_CONVERTER = -1, 2642 UCNV_SBCS = 0, 2643 UCNV_DBCS = 1, 2644 UCNV_MBCS = 2, 2645 UCNV_LATIN_1 = 3, 2646 UCNV_UTF8 = 4, 2647 UCNV_UTF16_BigEndian = 5, 2648 UCNV_UTF16_LittleEndian = 6, 2649 UCNV_UTF32_BigEndian = 7, 2650 UCNV_UTF32_LittleEndian = 8, 2651 UCNV_EBCDIC_STATEFUL = 9, 2652 UCNV_ISO_2022 = 10, 2653 UCNV_LMBCS_1 = 11, 2654 UCNV_LMBCS_2, 2655 UCNV_LMBCS_3, 2656 UCNV_LMBCS_4, 2657 UCNV_LMBCS_5, 2658 UCNV_LMBCS_6, 2659 UCNV_LMBCS_8, 2660 UCNV_LMBCS_11, 2661 UCNV_LMBCS_16, 2662 UCNV_LMBCS_17, 2663 UCNV_LMBCS_18, 2664 UCNV_LMBCS_19, 2665 UCNV_LMBCS_LAST = UCNV_LMBCS_19, 2666 UCNV_HZ, 2667 UCNV_SCSU, 2668 UCNV_ISCII, 2669 UCNV_US_ASCII, 2670 UCNV_UTF7, 2671 UCNV_BOCU1, 2672 UCNV_UTF16, 2673 UCNV_UTF32, 2674 UCNV_CESU8, 2675 UCNV_IMAP_MAILBOX, 2676 UCNV_COMPOUND_TEXT, 2677 UCNV_NUMBER_OF_SUPPORTED_CONVERTER_TYPES 2678} UConverterType; 2679 2680typedef enum { 2681 UCNV_UNKNOWN = -1, 2682 UCNV_IBM = 0 2683} UConverterPlatform; 2684 2685typedef void (*UConverterToUCallback) (const void *context, 2686 UConverterToUnicodeArgs * args, 2687 const char *codeUnits, 2688 int32_t length, 2689 UConverterCallbackReason reason, 2690 UErrorCode * pErrorCode); 2691 2692typedef void (*UConverterFromUCallback) (const void *context, 2693 UConverterFromUnicodeArgs * 2694 args, const UChar * codeUnits, 2695 int32_t length, 2696 UChar32 codePoint, 2697 UConverterCallbackReason reason, 2698 UErrorCode * pErrorCode); 2699 2700extern __attribute__ ((visibility ("default"))) 2701int ucnv_compareNames_52 (const char *name1, const char *name2); 2702 2703extern __attribute__ ((visibility ("default"))) 2704UConverter *ucnv_open_52 (const char *converterName, UErrorCode * err); 2705 2706extern __attribute__ ((visibility ("default"))) 2707UConverter *ucnv_openU_52 (const UChar * name, UErrorCode * err); 2708 2709extern __attribute__ ((visibility ("default"))) 2710UConverter *ucnv_openCCSID_52 (int32_t codepage, 2711 UConverterPlatform platform, UErrorCode * err); 2712 2713extern __attribute__ ((visibility ("default"))) 2714UConverter *ucnv_openPackage_52 (const char *packageName, const char *converterName, 2715 UErrorCode * err); 2716extern __attribute__ ((visibility ("default"))) 2717UConverter * 2718ucnv_safeClone_52 (const UConverter * cnv, 2719 void *stackBuffer, 2720 int32_t * pBufferSize, UErrorCode * status); 2721extern __attribute__ ((visibility ("default"))) 2722void 2723ucnv_close_52 (UConverter * converter); 2724extern __attribute__ ((visibility ("default"))) 2725void 2726ucnv_getSubstChars_52 (const UConverter * converter, 2727 char *subChars, int8_t * len, UErrorCode * err); 2728extern __attribute__ ((visibility ("default"))) 2729void 2730ucnv_setSubstChars_52 (UConverter * converter, 2731 const char *subChars, 2732 int8_t len, UErrorCode * err); 2733extern __attribute__ ((visibility ("default"))) 2734void 2735ucnv_setSubstString_52 (UConverter * cnv, 2736 const UChar * s, 2737 int32_t length, UErrorCode * err); 2738extern __attribute__ ((visibility ("default"))) 2739void 2740ucnv_getInvalidChars_52 (const UConverter * converter, 2741 char *errBytes, int8_t * len, UErrorCode * err); 2742extern __attribute__ ((visibility ("default"))) 2743void 2744ucnv_getInvalidUChars_52 (const UConverter * converter, 2745 UChar * errUChars, 2746 int8_t * len, UErrorCode * err); 2747extern __attribute__ ((visibility ("default"))) 2748void 2749ucnv_reset_52 (UConverter * converter); 2750extern __attribute__ ((visibility ("default"))) 2751void 2752ucnv_resetToUnicode_52 (UConverter * converter); 2753extern __attribute__ ((visibility ("default"))) 2754void 2755ucnv_resetFromUnicode_52 (UConverter * converter); 2756extern __attribute__ ((visibility ("default"))) int8_t 2757ucnv_getMaxCharSize_52 (const UConverter * converter); 2758extern __attribute__ ((visibility ("default"))) int8_t 2759ucnv_getMinCharSize_52 (const UConverter * converter); 2760extern __attribute__ ((visibility ("default"))) int32_t 2761ucnv_getDisplayName_52 (const UConverter * converter, 2762 const char *displayLocale, 2763 UChar * displayName, 2764 int32_t displayNameCapacity, UErrorCode * err); 2765extern __attribute__ ((visibility ("default"))) 2766const char * 2767ucnv_getName_52 (const UConverter * converter, UErrorCode * err); 2768extern __attribute__ ((visibility ("default"))) int32_t 2769ucnv_getCCSID_52 (const UConverter * converter, UErrorCode * err); 2770extern __attribute__ ((visibility ("default"))) UConverterPlatform 2771ucnv_getPlatform_52 (const UConverter * converter, UErrorCode * err); 2772extern __attribute__ ((visibility ("default"))) UConverterType 2773ucnv_getType_52 (const UConverter * converter); 2774extern __attribute__ ((visibility ("default"))) 2775void 2776ucnv_getStarters_52 (const UConverter * converter, 2777 UBool starters[256], UErrorCode * err); 2778 2779typedef enum UConverterUnicodeSet { 2780 2781 UCNV_ROUNDTRIP_SET, 2782 2783 UCNV_ROUNDTRIP_AND_FALLBACK_SET, 2784 2785 UCNV_SET_COUNT 2786} UConverterUnicodeSet; 2787extern __attribute__ ((visibility ("default"))) 2788void 2789ucnv_getUnicodeSet_52 (const UConverter * cnv, 2790 USet * setFillIn, 2791 UConverterUnicodeSet whichSet, 2792 UErrorCode * pErrorCode); 2793extern __attribute__ ((visibility ("default"))) 2794void 2795ucnv_getToUCallBack_52 (const UConverter * converter, 2796 UConverterToUCallback * action, 2797 const void **context); 2798extern __attribute__ ((visibility ("default"))) 2799void 2800ucnv_getFromUCallBack_52 (const UConverter * converter, 2801 UConverterFromUCallback * action, 2802 const void **context); 2803extern __attribute__ ((visibility ("default"))) 2804void 2805ucnv_setToUCallBack_52 (UConverter * converter, 2806 UConverterToUCallback newAction, 2807 const void *newContext, 2808 UConverterToUCallback * oldAction, 2809 const void **oldContext, UErrorCode * err); 2810extern __attribute__ ((visibility ("default"))) 2811void 2812ucnv_setFromUCallBack_52 (UConverter * converter, 2813 UConverterFromUCallback newAction, 2814 const void *newContext, 2815 UConverterFromUCallback * oldAction, 2816 const void **oldContext, UErrorCode * err); 2817extern __attribute__ ((visibility ("default"))) 2818void 2819ucnv_fromUnicode_52 (UConverter * converter, 2820 char **target, 2821 const char *targetLimit, 2822 const UChar ** source, 2823 const UChar * sourceLimit, 2824 int32_t * offsets, UBool flush, UErrorCode * err); 2825extern __attribute__ ((visibility ("default"))) 2826void 2827ucnv_toUnicode_52 (UConverter * converter, 2828 UChar ** target, 2829 const UChar * targetLimit, 2830 const char **source, 2831 const char *sourceLimit, 2832 int32_t * offsets, UBool flush, UErrorCode * err); 2833extern __attribute__ ((visibility ("default"))) int32_t 2834ucnv_fromUChars_52 (UConverter * cnv, 2835 char *dest, int32_t destCapacity, 2836 const UChar * src, int32_t srcLength, 2837 UErrorCode * pErrorCode); 2838extern __attribute__ ((visibility ("default"))) int32_t 2839ucnv_toUChars_52 (UConverter * cnv, 2840 UChar * dest, int32_t destCapacity, 2841 const char *src, int32_t srcLength, 2842 UErrorCode * pErrorCode); 2843extern __attribute__ ((visibility ("default"))) UChar32 2844ucnv_getNextUChar_52 (UConverter * converter, 2845 const char **source, 2846 const char *sourceLimit, UErrorCode * err); 2847extern __attribute__ ((visibility ("default"))) 2848void 2849ucnv_convertEx_52 (UConverter * targetCnv, UConverter * sourceCnv, 2850 char **target, const char *targetLimit, 2851 const char **source, const char *sourceLimit, 2852 UChar * pivotStart, UChar ** pivotSource, 2853 UChar ** pivotTarget, const UChar * pivotLimit, 2854 UBool reset, UBool flush, UErrorCode * pErrorCode); 2855extern __attribute__ ((visibility ("default"))) int32_t 2856ucnv_convert_52 (const char *toConverterName, 2857 const char *fromConverterName, 2858 char *target, 2859 int32_t targetCapacity, 2860 const char *source, 2861 int32_t sourceLength, UErrorCode * pErrorCode); 2862extern __attribute__ ((visibility ("default"))) int32_t 2863ucnv_toAlgorithmic_52 (UConverterType algorithmicType, 2864 UConverter * cnv, 2865 char *target, int32_t targetCapacity, 2866 const char *source, int32_t sourceLength, 2867 UErrorCode * pErrorCode); 2868extern __attribute__ ((visibility ("default"))) int32_t 2869ucnv_fromAlgorithmic_52 (UConverter * cnv, 2870 UConverterType algorithmicType, 2871 char *target, int32_t targetCapacity, 2872 const char *source, int32_t sourceLength, 2873 UErrorCode * pErrorCode); 2874extern __attribute__ ((visibility ("default"))) int32_t 2875ucnv_flushCache_52 (void); 2876extern __attribute__ ((visibility ("default"))) int32_t 2877ucnv_countAvailable_52 (void); 2878extern __attribute__ ((visibility ("default"))) 2879const char * 2880ucnv_getAvailableName_52 (int32_t n); 2881extern __attribute__ ((visibility ("default"))) 2882UEnumeration * 2883ucnv_openAllNames_52 (UErrorCode * pErrorCode); 2884extern __attribute__ ((visibility ("default"))) uint16_t 2885ucnv_countAliases_52 (const char *alias, UErrorCode * pErrorCode); 2886extern __attribute__ ((visibility ("default"))) 2887const char * 2888ucnv_getAlias_52 (const char *alias, uint16_t n, 2889 UErrorCode * pErrorCode); 2890extern __attribute__ ((visibility ("default"))) 2891void 2892ucnv_getAliases_52 (const char *alias, const char **aliases, 2893 UErrorCode * pErrorCode); 2894extern __attribute__ ((visibility ("default"))) 2895UEnumeration * 2896ucnv_openStandardNames_52 (const char *convName, 2897 const char *standard, 2898 UErrorCode * pErrorCode); 2899 2900 2901 2902 2903 2904 2905extern __attribute__ ((visibility ("default"))) uint16_t 2906ucnv_countStandards_52 (void); 2907extern __attribute__ ((visibility ("default"))) 2908const char * 2909ucnv_getStandard_52 (uint16_t n, UErrorCode * pErrorCode); 2910extern __attribute__ ((visibility ("default"))) 2911const char * 2912ucnv_getStandardName_52 (const char *name, const char *standard, 2913 UErrorCode * pErrorCode); 2914extern __attribute__ ((visibility ("default"))) 2915const char * 2916ucnv_getCanonicalName_52 (const char *alias, const char *standard, 2917 UErrorCode * pErrorCode); 2918extern __attribute__ ((visibility ("default"))) 2919const char * 2920ucnv_getDefaultName_52 (void); 2921extern __attribute__ ((visibility ("default"))) 2922void 2923ucnv_setDefaultName_52 (const char *name); 2924extern __attribute__ ((visibility ("default"))) 2925void 2926ucnv_fixFileSeparator_52 (const UConverter * cnv, UChar * source, 2927 int32_t sourceLen); 2928extern 2929__attribute__ ((visibility ("default"))) UBool 2930ucnv_isAmbiguous_52 (const UConverter * cnv); 2931extern __attribute__ ((visibility ("default"))) 2932void 2933ucnv_setFallback_52 (UConverter * cnv, UBool usesFallback); 2934extern __attribute__ ((visibility ("default"))) UBool 2935ucnv_usesFallback_52 (const UConverter * cnv); 2936extern __attribute__ ((visibility ("default"))) 2937const char * 2938ucnv_detectUnicodeSignature_52 (const char *source, 2939 int32_t sourceLength, 2940 int32_t * signatureLength, 2941 UErrorCode * pErrorCode); 2942extern __attribute__ ((visibility ("default"))) int32_t 2943ucnv_fromUCountPending_52 (const UConverter * cnv, UErrorCode * status); 2944extern __attribute__ ((visibility ("default"))) int32_t 2945ucnv_toUCountPending_52 (const UConverter * cnv, UErrorCode * status); 2946extern __attribute__ ((visibility ("default"))) UBool 2947ucnv_isFixedWidth_52 (UConverter * cnv, UErrorCode * status); 2948 2949typedef enum 2950 { 2951 XML_CHAR_ENCODING_ERROR = -1, 2952 XML_CHAR_ENCODING_NONE = 0, 2953 XML_CHAR_ENCODING_UTF8 = 1, 2954 XML_CHAR_ENCODING_UTF16LE = 2, 2955 XML_CHAR_ENCODING_UTF16BE = 3, 2956 XML_CHAR_ENCODING_UCS4LE = 4, 2957 XML_CHAR_ENCODING_UCS4BE = 5, 2958 XML_CHAR_ENCODING_EBCDIC = 6, 2959 XML_CHAR_ENCODING_UCS4_2143 = 7, 2960 XML_CHAR_ENCODING_UCS4_3412 = 8, 2961 XML_CHAR_ENCODING_UCS2 = 9, 2962 XML_CHAR_ENCODING_8859_1 = 10, 2963 XML_CHAR_ENCODING_8859_2 = 11, 2964 XML_CHAR_ENCODING_8859_3 = 12, 2965 XML_CHAR_ENCODING_8859_4 = 13, 2966 XML_CHAR_ENCODING_8859_5 = 14, 2967 XML_CHAR_ENCODING_8859_6 = 15, 2968 XML_CHAR_ENCODING_8859_7 = 16, 2969 XML_CHAR_ENCODING_8859_8 = 17, 2970 XML_CHAR_ENCODING_8859_9 = 18, 2971 XML_CHAR_ENCODING_2022_JP = 19, 2972 XML_CHAR_ENCODING_SHIFT_JIS = 20, 2973 XML_CHAR_ENCODING_EUC_JP = 21, 2974 XML_CHAR_ENCODING_ASCII = 22 2975 } xmlCharEncoding; 2976typedef int (*xmlCharEncodingInputFunc) (unsigned char *out, int *outlen, 2977 const unsigned char *in, 2978 int *inlen); 2979typedef int (*xmlCharEncodingOutputFunc) (unsigned char *out, 2980 int *outlen, 2981 const unsigned char *in, 2982 int *inlen); 2983 2984 2985 2986 2987 2988 2989 2990struct _uconv_t 2991{ 2992 UConverter * 2993 uconv; 2994 UConverter * 2995 utf8; 2996}; 2997typedef struct _uconv_t 2998uconv_t; 2999 3000 3001typedef struct _xmlCharEncodingHandler 3002xmlCharEncodingHandler; 3003typedef xmlCharEncodingHandler * 3004xmlCharEncodingHandlerPtr; 3005struct _xmlCharEncodingHandler 3006{ 3007 char * 3008 name; 3009 xmlCharEncodingInputFunc 3010 input; 3011 xmlCharEncodingOutputFunc 3012 output; 3013 3014 iconv_t 3015 iconv_in; 3016 iconv_t 3017 iconv_out; 3018 3019 3020 uconv_t * 3021 uconv_in; 3022 uconv_t * 3023 uconv_out; 3024 3025}; 3026void 3027xmlInitCharEncodingHandlers (void); 3028void 3029xmlCleanupCharEncodingHandlers (void); 3030void 3031xmlRegisterCharEncodingHandler (xmlCharEncodingHandlerPtr handler); 3032xmlCharEncodingHandlerPtr 3033xmlGetCharEncodingHandler (xmlCharEncoding enc); 3034xmlCharEncodingHandlerPtr 3035xmlFindCharEncodingHandler (const char *name); 3036xmlCharEncodingHandlerPtr 3037xmlNewCharEncodingHandler (const char *name, 3038 xmlCharEncodingInputFunc input, 3039 xmlCharEncodingOutputFunc output); 3040 3041 3042 3043 3044int xmlAddEncodingAlias (const char *name, const char *alias); 3045int xmlDelEncodingAlias (const char *alias); 3046const char *xmlGetEncodingAlias (const char *alias); 3047void xmlCleanupEncodingAliases (void); 3048xmlCharEncoding 3049xmlParseCharEncoding (const char *name); 3050const char *xmlGetCharEncodingName (xmlCharEncoding enc); 3051 3052 3053 3054 3055xmlCharEncoding 3056xmlDetectCharEncoding (const unsigned char *in, int len); 3057 3058int 3059xmlCharEncOutFunc (xmlCharEncodingHandler * handler, 3060 xmlBufferPtr out, xmlBufferPtr in); 3061 3062int 3063xmlCharEncInFunc (xmlCharEncodingHandler * handler, 3064 xmlBufferPtr out, xmlBufferPtr in); 3065int 3066xmlCharEncFirstLine (xmlCharEncodingHandler * handler, 3067 xmlBufferPtr out, xmlBufferPtr in); 3068int xmlCharEncCloseFunc (xmlCharEncodingHandler * handler); 3069 3070 3071 3072 3073 3074int 3075UTF8Toisolat1 (unsigned char *out, 3076 int *outlen, const unsigned char *in, int *inlen); 3077 3078int 3079isolat1ToUTF8 (unsigned char *out, 3080 int *outlen, const unsigned char *in, int *inlen); 3081typedef int (*xmlInputMatchCallback) (char const *filename); 3082typedef void *(*xmlInputOpenCallback) (char const *filename); 3083typedef int (*xmlInputReadCallback) (void *context, char *buffer, 3084 int len); 3085typedef int (*xmlInputCloseCallback) (void *context); 3086typedef int (*xmlOutputMatchCallback) (char const *filename); 3087typedef void *(*xmlOutputOpenCallback) (char const *filename); 3088typedef int (*xmlOutputWriteCallback) (void *context, const char *buffer, 3089 int len); 3090typedef int (*xmlOutputCloseCallback) (void *context); 3091 3092 3093 3094 3095 3096 3097 3098typedef xmlChar *xlinkHRef; 3099typedef xmlChar *xlinkRole; 3100typedef xmlChar *xlinkTitle; 3101 3102typedef enum 3103 { 3104 XLINK_TYPE_NONE = 0, 3105 XLINK_TYPE_SIMPLE, 3106 XLINK_TYPE_EXTENDED, 3107 XLINK_TYPE_EXTENDED_SET 3108 } xlinkType; 3109 3110typedef enum 3111 { 3112 XLINK_SHOW_NONE = 0, 3113 XLINK_SHOW_NEW, 3114 XLINK_SHOW_EMBED, 3115 XLINK_SHOW_REPLACE 3116 } xlinkShow; 3117 3118typedef enum 3119 { 3120 XLINK_ACTUATE_NONE = 0, 3121 XLINK_ACTUATE_AUTO, 3122 XLINK_ACTUATE_ONREQUEST 3123 } xlinkActuate; 3124typedef void (*xlinkNodeDetectFunc) (void *ctx, xmlNodePtr node); 3125typedef void 3126(*xlinkSimpleLinkFunk) (void *ctx, 3127 xmlNodePtr node, 3128 const xlinkHRef href, 3129 const xlinkRole role, const xlinkTitle title); 3130typedef void 3131(*xlinkExtendedLinkFunk) (void *ctx, 3132 xmlNodePtr node, 3133 int nbLocators, 3134 const xlinkHRef * hrefs, 3135 const xlinkRole * roles, 3136 int nbArcs, 3137 const xlinkRole * from, 3138 const xlinkRole * to, 3139 xlinkShow * show, 3140 xlinkActuate * actuate, 3141 int nbTitles, 3142 const xlinkTitle * titles, 3143 const xmlChar ** langs); 3144typedef void 3145(*xlinkExtendedLinkSetFunk) (void *ctx, 3146 xmlNodePtr node, 3147 int nbLocators, 3148 const xlinkHRef * hrefs, 3149 const xlinkRole * roles, 3150 int nbTitles, 3151 const xlinkTitle * titles, 3152 const xmlChar ** langs); 3153 3154 3155 3156 3157 3158 3159 3160typedef struct _xlinkHandler xlinkHandler; 3161typedef xlinkHandler *xlinkHandlerPtr; 3162struct _xlinkHandler 3163{ 3164 xlinkSimpleLinkFunk simple; 3165 xlinkExtendedLinkFunk extended; 3166 xlinkExtendedLinkSetFunk set; 3167}; 3168 3169 3170 3171 3172 3173 3174xlinkNodeDetectFunc 3175xlinkGetDefaultDetect (void); 3176void xlinkSetDefaultDetect (xlinkNodeDetectFunc func); 3177 3178 3179 3180 3181xlinkHandlerPtr 3182xlinkGetDefaultHandler (void); 3183void xlinkSetDefaultHandler (xlinkHandlerPtr handler); 3184 3185 3186 3187 3188xlinkType 3189xlinkIsLink (xmlDocPtr doc, xmlNodePtr node); 3190 3191 3192 3193 3194 3195 3196const xmlChar *getPublicId (void *ctx); 3197const xmlChar *getSystemId (void *ctx); 3198void setDocumentLocator (void *ctx, xmlSAXLocatorPtr loc); 3199 3200int getLineNumber (void *ctx); 3201int getColumnNumber (void *ctx); 3202 3203int isStandalone (void *ctx); 3204int hasInternalSubset (void *ctx); 3205int hasExternalSubset (void *ctx); 3206 3207void 3208internalSubset (void *ctx, 3209 const xmlChar * name, 3210 const xmlChar * ExternalID, const xmlChar * SystemID); 3211void 3212externalSubset (void *ctx, 3213 const xmlChar * name, 3214 const xmlChar * ExternalID, const xmlChar * SystemID); 3215xmlEntityPtr 3216getEntity (void *ctx, const xmlChar * name); 3217xmlEntityPtr 3218getParameterEntity (void *ctx, const xmlChar * name); 3219xmlParserInputPtr 3220resolveEntity (void *ctx, const xmlChar * publicId, const xmlChar * systemId); 3221 3222void 3223entityDecl (void *ctx, 3224 const xmlChar * name, 3225 int type, 3226 const xmlChar * publicId, 3227 const xmlChar * systemId, xmlChar * content); 3228void 3229attributeDecl (void *ctx, 3230 const xmlChar * elem, 3231 const xmlChar * fullname, 3232 int type, 3233 int def, 3234 const xmlChar * defaultValue, xmlEnumerationPtr tree); 3235void 3236elementDecl (void *ctx, 3237 const xmlChar * name, 3238 int type, xmlElementContentPtr content); 3239void 3240notationDecl (void *ctx, 3241 const xmlChar * name, 3242 const xmlChar * publicId, const xmlChar * systemId); 3243void 3244unparsedEntityDecl (void *ctx, 3245 const xmlChar * name, 3246 const xmlChar * publicId, 3247 const xmlChar * systemId, 3248 const xmlChar * notationName); 3249 3250void startDocument (void *ctx); 3251void endDocument (void *ctx); 3252void 3253attribute (void *ctx, const xmlChar * fullname, const xmlChar * value); 3254void 3255startElement (void *ctx, 3256 const xmlChar * fullname, const xmlChar ** atts); 3257void endElement (void *ctx, const xmlChar * name); 3258void reference (void *ctx, const xmlChar * name); 3259void characters (void *ctx, const xmlChar * ch, int len); 3260void ignorableWhitespace (void *ctx, const xmlChar * ch, int len); 3261void 3262processingInstruction (void *ctx, 3263 const xmlChar * target, const xmlChar * data); 3264void 3265globalNamespace (void *ctx, 3266 const xmlChar * href, const xmlChar * prefix); 3267void setNamespace (void *ctx, const xmlChar * name); 3268xmlNsPtr 3269getNamespace (void *ctx); 3270int checkNamespace (void *ctx, xmlChar * nameSpace); 3271void 3272namespaceDecl (void *ctx, 3273 const xmlChar * href, const xmlChar * prefix); 3274void comment (void *ctx, const xmlChar * value); 3275void cdataBlock (void *ctx, const xmlChar * value, int len); 3276 3277 3278void initxmlDefaultSAXHandler (xmlSAXHandlerV1 * hdlr, int warning); 3279 3280void inithtmlDefaultSAXHandler (xmlSAXHandlerV1 * hdlr); 3281 3282 3283void initdocbDefaultSAXHandler (xmlSAXHandlerV1 * hdlr); 3284const xmlChar *xmlSAX2GetPublicId (void *ctx); 3285const xmlChar *xmlSAX2GetSystemId (void *ctx); 3286void xmlSAX2SetDocumentLocator (void *ctx, xmlSAXLocatorPtr loc); 3287 3288int xmlSAX2GetLineNumber (void *ctx); 3289int xmlSAX2GetColumnNumber (void *ctx); 3290 3291int xmlSAX2IsStandalone (void *ctx); 3292int xmlSAX2HasInternalSubset (void *ctx); 3293int xmlSAX2HasExternalSubset (void *ctx); 3294 3295void 3296xmlSAX2InternalSubset (void *ctx, 3297 const xmlChar * name, 3298 const xmlChar * ExternalID, 3299 const xmlChar * SystemID); 3300void 3301xmlSAX2ExternalSubset (void *ctx, 3302 const xmlChar * name, 3303 const xmlChar * ExternalID, 3304 const xmlChar * SystemID); 3305xmlEntityPtr 3306xmlSAX2GetEntity (void *ctx, const xmlChar * name); 3307xmlEntityPtr 3308xmlSAX2GetParameterEntity (void *ctx, const xmlChar * name); 3309xmlParserInputPtr 3310xmlSAX2ResolveEntity (void *ctx, 3311 const xmlChar * publicId, const xmlChar * systemId); 3312 3313void 3314xmlSAX2EntityDecl (void *ctx, 3315 const xmlChar * name, 3316 int type, 3317 const xmlChar * publicId, 3318 const xmlChar * systemId, xmlChar * content); 3319void 3320xmlSAX2AttributeDecl (void *ctx, 3321 const xmlChar * elem, 3322 const xmlChar * fullname, 3323 int type, 3324 int def, 3325 const xmlChar * defaultValue, 3326 xmlEnumerationPtr tree); 3327void 3328xmlSAX2ElementDecl (void *ctx, 3329 const xmlChar * name, 3330 int type, xmlElementContentPtr content); 3331void 3332xmlSAX2NotationDecl (void *ctx, 3333 const xmlChar * name, 3334 const xmlChar * publicId, 3335 const xmlChar * systemId); 3336void 3337xmlSAX2UnparsedEntityDecl (void *ctx, 3338 const xmlChar * name, 3339 const xmlChar * publicId, 3340 const xmlChar * systemId, 3341 const xmlChar * notationName); 3342 3343void xmlSAX2StartDocument (void *ctx); 3344void xmlSAX2EndDocument (void *ctx); 3345 3346 3347 3348void 3349xmlSAX2StartElement (void *ctx, 3350 const xmlChar * fullname, const xmlChar ** atts); 3351void xmlSAX2EndElement (void *ctx, const xmlChar * name); 3352 3353void 3354xmlSAX2StartElementNs (void *ctx, 3355 const xmlChar * localname, 3356 const xmlChar * prefix, 3357 const xmlChar * URI, 3358 int nb_namespaces, 3359 const xmlChar ** namespaces, 3360 int nb_attributes, 3361 int nb_defaulted, const xmlChar ** attributes); 3362void 3363xmlSAX2EndElementNs (void *ctx, 3364 const xmlChar * localname, 3365 const xmlChar * prefix, const xmlChar * URI); 3366void xmlSAX2Reference (void *ctx, const xmlChar * name); 3367void xmlSAX2Characters (void *ctx, const xmlChar * ch, int len); 3368void xmlSAX2IgnorableWhitespace (void *ctx, const xmlChar * ch, int len); 3369void 3370xmlSAX2ProcessingInstruction (void *ctx, 3371 const xmlChar * target, 3372 const xmlChar * data); 3373void xmlSAX2Comment (void *ctx, const xmlChar * value); 3374void xmlSAX2CDataBlock (void *ctx, const xmlChar * value, int len); 3375 3376 3377int xmlSAXDefaultVersion (int version); 3378 3379 3380int xmlSAXVersion (xmlSAXHandler * hdlr, int version); 3381void xmlSAX2InitDefaultSAXHandler (xmlSAXHandler * hdlr, int warning); 3382 3383void xmlSAX2InitHtmlDefaultSAXHandler (xmlSAXHandler * hdlr); 3384void htmlDefaultSAXHandlerInit (void); 3385 3386 3387void xmlSAX2InitDocbDefaultSAXHandler (xmlSAXHandler * hdlr); 3388void docbDefaultSAXHandlerInit (void); 3389 3390void xmlDefaultSAXHandlerInit (void); 3391typedef void (*xmlFreeFunc) (void *mem); 3392typedef void *( __attribute__ ((alloc_size (1))) * 3393 xmlMallocFunc) (size_t size); 3394typedef void *(*xmlReallocFunc) (void *mem, size_t size); 3395typedef char *(*xmlStrdupFunc) (const char *str); 3396int 3397xmlMemSetup (xmlFreeFunc freeFunc, 3398 xmlMallocFunc mallocFunc, 3399 xmlReallocFunc reallocFunc, xmlStrdupFunc strdupFunc); 3400int 3401xmlMemGet (xmlFreeFunc * freeFunc, 3402 xmlMallocFunc * mallocFunc, 3403 xmlReallocFunc * reallocFunc, xmlStrdupFunc * strdupFunc); 3404int 3405xmlGcMemSetup (xmlFreeFunc freeFunc, 3406 xmlMallocFunc mallocFunc, 3407 xmlMallocFunc mallocAtomicFunc, 3408 xmlReallocFunc reallocFunc, xmlStrdupFunc strdupFunc); 3409int 3410xmlGcMemGet (xmlFreeFunc * freeFunc, 3411 xmlMallocFunc * mallocFunc, 3412 xmlMallocFunc * mallocAtomicFunc, 3413 xmlReallocFunc * reallocFunc, xmlStrdupFunc * strdupFunc); 3414 3415 3416 3417 3418int xmlInitMemory (void); 3419 3420 3421 3422 3423void xmlCleanupMemory (void); 3424 3425 3426 3427int xmlMemUsed (void); 3428int xmlMemBlocks (void); 3429void xmlMemDisplay (FILE * fp); 3430void xmlMemDisplayLast (FILE * fp, long nbBytes); 3431void xmlMemShow (FILE * fp, int nr); 3432void xmlMemoryDump (void); 3433void *xmlMemMalloc (size_t size) __attribute__ ((alloc_size (1))); 3434void *xmlMemRealloc (void *ptr, size_t size); 3435void xmlMemFree (void *ptr); 3436char *xmlMemoryStrdup (const char *str); 3437void *xmlMallocLoc (size_t size, const char *file, int line) 3438 __attribute__ ((alloc_size (1))); 3439void *xmlReallocLoc (void *ptr, size_t size, const char *file, int line); 3440void *xmlMallocAtomicLoc (size_t size, const char *file, int line) 3441 __attribute__ ((alloc_size (1))); 3442char *xmlMemStrdupLoc (const char *str, const char *file, int line); 3443 3444 3445 3446 3447 3448void xmlInitGlobals (void); 3449void xmlCleanupGlobals (void); 3450typedef 3451xmlParserInputBufferPtr (*xmlParserInputBufferCreateFilenameFunc) 3452(const char *URI, xmlCharEncoding enc); 3453typedef xmlOutputBufferPtr (*xmlOutputBufferCreateFilenameFunc) (const 3454 char 3455 *URI, 3456 xmlCharEncodingHandlerPtr 3457 encoder, 3458 int 3459 compression); 3460 3461xmlParserInputBufferCreateFilenameFunc 3462xmlParserInputBufferCreateFilenameDefault 3463(xmlParserInputBufferCreateFilenameFunc func); 3464xmlOutputBufferCreateFilenameFunc 3465xmlOutputBufferCreateFilenameDefault (xmlOutputBufferCreateFilenameFunc func); 3466typedef void (*xmlRegisterNodeFunc) (xmlNodePtr node); 3467 3468 3469 3470 3471 3472 3473typedef void (*xmlDeregisterNodeFunc) (xmlNodePtr node); 3474 3475typedef struct _xmlGlobalState xmlGlobalState; 3476typedef xmlGlobalState *xmlGlobalStatePtr; 3477struct _xmlGlobalState 3478{ 3479 const char *xmlParserVersion; 3480 3481 xmlSAXLocator xmlDefaultSAXLocator; 3482 xmlSAXHandlerV1 xmlDefaultSAXHandler; 3483 xmlSAXHandlerV1 docbDefaultSAXHandler; 3484 xmlSAXHandlerV1 htmlDefaultSAXHandler; 3485 3486 xmlFreeFunc xmlFree; 3487 xmlMallocFunc xmlMalloc; 3488 xmlStrdupFunc xmlMemStrdup; 3489 xmlReallocFunc xmlRealloc; 3490 3491 xmlGenericErrorFunc xmlGenericError; 3492 xmlStructuredErrorFunc xmlStructuredError; 3493 void *xmlGenericErrorContext; 3494 3495 int oldXMLWDcompatibility; 3496 3497 xmlBufferAllocationScheme xmlBufferAllocScheme; 3498 int xmlDefaultBufferSize; 3499 3500 int xmlSubstituteEntitiesDefaultValue; 3501 int xmlDoValidityCheckingDefaultValue; 3502 int xmlGetWarningsDefaultValue; 3503 int xmlKeepBlanksDefaultValue; 3504 int xmlLineNumbersDefaultValue; 3505 int xmlLoadExtDtdDefaultValue; 3506 int xmlParserDebugEntities; 3507 int xmlPedanticParserDefaultValue; 3508 3509 int xmlSaveNoEmptyTags; 3510 int xmlIndentTreeOutput; 3511 const char *xmlTreeIndentString; 3512 3513 xmlRegisterNodeFunc xmlRegisterNodeDefaultValue; 3514 xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue; 3515 3516 xmlMallocFunc xmlMallocAtomic; 3517 xmlError xmlLastError; 3518 3519 xmlParserInputBufferCreateFilenameFunc 3520 xmlParserInputBufferCreateFilenameValue; 3521 xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValue; 3522 3523 void *xmlStructuredErrorContext; 3524}; 3525 3526 3527 3528 3529typedef struct _xmlMutex xmlMutex; 3530typedef xmlMutex *xmlMutexPtr; 3531 3532 3533 3534 3535typedef struct _xmlRMutex xmlRMutex; 3536typedef xmlRMutex *xmlRMutexPtr; 3537 3538 3539 3540 3541 3542 3543 3544xmlMutexPtr 3545xmlNewMutex (void); 3546void xmlMutexLock (xmlMutexPtr tok); 3547void xmlMutexUnlock (xmlMutexPtr tok); 3548void xmlFreeMutex (xmlMutexPtr tok); 3549 3550xmlRMutexPtr 3551xmlNewRMutex (void); 3552void xmlRMutexLock (xmlRMutexPtr tok); 3553void xmlRMutexUnlock (xmlRMutexPtr tok); 3554void xmlFreeRMutex (xmlRMutexPtr tok); 3555 3556 3557 3558 3559void xmlInitThreads (void); 3560void xmlLockLibrary (void); 3561void xmlUnlockLibrary (void); 3562int xmlGetThreadId (void); 3563int xmlIsMainThread (void); 3564void xmlCleanupThreads (void); 3565xmlGlobalStatePtr 3566xmlGetGlobalState (void); 3567 3568 3569 3570 3571void xmlInitializeGlobalState (xmlGlobalStatePtr gs); 3572 3573void xmlThrDefSetGenericErrorFunc (void *ctx, 3574 xmlGenericErrorFunc handler); 3575 3576void xmlThrDefSetStructuredErrorFunc (void *ctx, 3577 xmlStructuredErrorFunc handler); 3578 3579xmlRegisterNodeFunc xmlRegisterNodeDefault (xmlRegisterNodeFunc func); 3580xmlRegisterNodeFunc xmlThrDefRegisterNodeDefault (xmlRegisterNodeFunc 3581 func); 3582xmlDeregisterNodeFunc xmlDeregisterNodeDefault (xmlDeregisterNodeFunc 3583 func); 3584xmlDeregisterNodeFunc 3585xmlThrDefDeregisterNodeDefault (xmlDeregisterNodeFunc func); 3586 3587xmlOutputBufferCreateFilenameFunc 3588xmlThrDefOutputBufferCreateFilenameDefault (xmlOutputBufferCreateFilenameFunc 3589 func); 3590xmlParserInputBufferCreateFilenameFunc 3591xmlThrDefParserInputBufferCreateFilenameDefault 3592(xmlParserInputBufferCreateFilenameFunc func); 3593extern xmlMallocFunc xmlMalloc; 3594extern xmlMallocFunc xmlMallocAtomic; 3595extern xmlReallocFunc xmlRealloc; 3596extern xmlFreeFunc xmlFree; 3597extern xmlStrdupFunc xmlMemStrdup; 3598 3599 3600 3601xmlSAXHandlerV1 *__docbDefaultSAXHandler (void); 3602xmlSAXHandlerV1 *__htmlDefaultSAXHandler (void); 3603xmlError *__xmlLastError (void); 3604int *__oldXMLWDcompatibility (void); 3605 3606 3607 3608 3609 3610 3611 3612xmlBufferAllocationScheme *__xmlBufferAllocScheme (void); 3613 3614 3615 3616 3617 3618 3619xmlBufferAllocationScheme 3620xmlThrDefBufferAllocScheme (xmlBufferAllocationScheme v); 3621 3622int *__xmlDefaultBufferSize (void); 3623 3624 3625 3626 3627 3628 3629int xmlThrDefDefaultBufferSize (int v); 3630 3631xmlSAXHandlerV1 *__xmlDefaultSAXHandler (void); 3632 3633 3634 3635 3636 3637 3638 3639xmlSAXLocator *__xmlDefaultSAXLocator (void); 3640 3641 3642 3643 3644 3645 3646 3647int *__xmlDoValidityCheckingDefaultValue (void); 3648 3649 3650 3651 3652 3653 3654int xmlThrDefDoValidityCheckingDefaultValue (int v); 3655 3656xmlGenericErrorFunc *__xmlGenericError (void); 3657 3658 3659 3660 3661 3662 3663 3664xmlStructuredErrorFunc *__xmlStructuredError (void); 3665 3666 3667 3668 3669 3670 3671 3672void **__xmlGenericErrorContext (void); 3673 3674 3675 3676 3677 3678 3679 3680void **__xmlStructuredErrorContext (void); 3681 3682 3683 3684 3685 3686 3687 3688int *__xmlGetWarningsDefaultValue (void); 3689 3690 3691 3692 3693 3694 3695int xmlThrDefGetWarningsDefaultValue (int v); 3696 3697int *__xmlIndentTreeOutput (void); 3698 3699 3700 3701 3702 3703 3704int xmlThrDefIndentTreeOutput (int v); 3705 3706const char **__xmlTreeIndentString (void); 3707 3708 3709 3710 3711 3712 3713const char *xmlThrDefTreeIndentString (const char *v); 3714 3715int *__xmlKeepBlanksDefaultValue (void); 3716 3717 3718 3719 3720 3721 3722int xmlThrDefKeepBlanksDefaultValue (int v); 3723 3724int *__xmlLineNumbersDefaultValue (void); 3725 3726 3727 3728 3729 3730 3731int xmlThrDefLineNumbersDefaultValue (int v); 3732 3733int *__xmlLoadExtDtdDefaultValue (void); 3734 3735 3736 3737 3738 3739 3740int xmlThrDefLoadExtDtdDefaultValue (int v); 3741 3742int *__xmlParserDebugEntities (void); 3743 3744 3745 3746 3747 3748 3749int xmlThrDefParserDebugEntities (int v); 3750 3751const char **__xmlParserVersion (void); 3752 3753 3754 3755 3756 3757 3758 3759int *__xmlPedanticParserDefaultValue (void); 3760 3761 3762 3763 3764 3765 3766int xmlThrDefPedanticParserDefaultValue (int v); 3767 3768int *__xmlSaveNoEmptyTags (void); 3769 3770 3771 3772 3773 3774 3775int xmlThrDefSaveNoEmptyTags (int v); 3776 3777int *__xmlSubstituteEntitiesDefaultValue (void); 3778 3779 3780 3781 3782 3783 3784int xmlThrDefSubstituteEntitiesDefaultValue (int v); 3785 3786xmlRegisterNodeFunc *__xmlRegisterNodeDefaultValue (void); 3787 3788 3789 3790 3791 3792 3793 3794xmlDeregisterNodeFunc *__xmlDeregisterNodeDefaultValue (void); 3795 3796 3797 3798 3799 3800 3801 3802xmlParserInputBufferCreateFilenameFunc 3803*__xmlParserInputBufferCreateFilenameValue (void); 3804 3805 3806 3807 3808 3809 3810 3811xmlOutputBufferCreateFilenameFunc 3812*__xmlOutputBufferCreateFilenameValue (void); 3813 3814 3815 3816 3817 3818 3819 3820struct _xmlParserInputBuffer 3821{ 3822 void *context; 3823 xmlInputReadCallback readcallback; 3824 xmlInputCloseCallback closecallback; 3825 3826 xmlCharEncodingHandlerPtr encoder; 3827 3828 xmlBufPtr buffer; 3829 xmlBufPtr raw; 3830 int compressed; 3831 int error; 3832 unsigned long rawconsumed; 3833}; 3834 3835 3836 3837struct _xmlOutputBuffer 3838{ 3839 void *context; 3840 xmlOutputWriteCallback writecallback; 3841 xmlOutputCloseCallback closecallback; 3842 3843 xmlCharEncodingHandlerPtr encoder; 3844 3845 xmlBufPtr buffer; 3846 xmlBufPtr conv; 3847 int written; 3848 int error; 3849}; 3850 3851 3852 3853 3854 3855void xmlCleanupInputCallbacks (void); 3856 3857int xmlPopInputCallbacks (void); 3858 3859void xmlRegisterDefaultInputCallbacks (void); 3860xmlParserInputBufferPtr 3861xmlAllocParserInputBuffer (xmlCharEncoding enc); 3862 3863xmlParserInputBufferPtr 3864xmlParserInputBufferCreateFilename (const char *URI, xmlCharEncoding enc); 3865xmlParserInputBufferPtr 3866xmlParserInputBufferCreateFile (FILE * file, xmlCharEncoding enc); 3867xmlParserInputBufferPtr 3868xmlParserInputBufferCreateFd (int fd, xmlCharEncoding enc); 3869xmlParserInputBufferPtr 3870xmlParserInputBufferCreateMem (const char *mem, int size, 3871 xmlCharEncoding enc); 3872xmlParserInputBufferPtr 3873xmlParserInputBufferCreateStatic (const char *mem, int size, 3874 xmlCharEncoding enc); 3875xmlParserInputBufferPtr 3876xmlParserInputBufferCreateIO (xmlInputReadCallback ioread, 3877 xmlInputCloseCallback ioclose, 3878 void *ioctx, xmlCharEncoding enc); 3879int xmlParserInputBufferRead (xmlParserInputBufferPtr in, int len); 3880int xmlParserInputBufferGrow (xmlParserInputBufferPtr in, int len); 3881int 3882xmlParserInputBufferPush (xmlParserInputBufferPtr in, 3883 int len, const char *buf); 3884void xmlFreeParserInputBuffer (xmlParserInputBufferPtr in); 3885char *xmlParserGetDirectory (const char *filename); 3886 3887int 3888xmlRegisterInputCallbacks (xmlInputMatchCallback matchFunc, 3889 xmlInputOpenCallback openFunc, 3890 xmlInputReadCallback readFunc, 3891 xmlInputCloseCallback closeFunc); 3892 3893xmlParserInputBufferPtr 3894__xmlParserInputBufferCreateFilename (const char *URI, xmlCharEncoding enc); 3895 3896 3897 3898 3899 3900void xmlCleanupOutputCallbacks (void); 3901void xmlRegisterDefaultOutputCallbacks (void); 3902xmlOutputBufferPtr 3903xmlAllocOutputBuffer (xmlCharEncodingHandlerPtr encoder); 3904 3905xmlOutputBufferPtr 3906xmlOutputBufferCreateFilename (const char *URI, 3907 xmlCharEncodingHandlerPtr encoder, 3908 int compression); 3909 3910xmlOutputBufferPtr 3911xmlOutputBufferCreateFile (FILE * file, xmlCharEncodingHandlerPtr encoder); 3912 3913xmlOutputBufferPtr 3914xmlOutputBufferCreateBuffer (xmlBufferPtr buffer, 3915 xmlCharEncodingHandlerPtr encoder); 3916 3917xmlOutputBufferPtr 3918xmlOutputBufferCreateFd (int fd, xmlCharEncodingHandlerPtr encoder); 3919 3920xmlOutputBufferPtr 3921xmlOutputBufferCreateIO (xmlOutputWriteCallback iowrite, 3922 xmlOutputCloseCallback ioclose, 3923 void *ioctx, xmlCharEncodingHandlerPtr encoder); 3924 3925 3926const xmlChar *xmlOutputBufferGetContent (xmlOutputBufferPtr out); 3927size_t 3928xmlOutputBufferGetSize (xmlOutputBufferPtr out); 3929 3930int 3931xmlOutputBufferWrite (xmlOutputBufferPtr out, 3932 int len, const char *buf); 3933int xmlOutputBufferWriteString (xmlOutputBufferPtr out, const char *str); 3934int 3935xmlOutputBufferWriteEscape (xmlOutputBufferPtr out, 3936 const xmlChar * str, 3937 xmlCharEncodingOutputFunc escaping); 3938 3939int xmlOutputBufferFlush (xmlOutputBufferPtr out); 3940int xmlOutputBufferClose (xmlOutputBufferPtr out); 3941 3942int 3943xmlRegisterOutputCallbacks (xmlOutputMatchCallback matchFunc, 3944 xmlOutputOpenCallback openFunc, 3945 xmlOutputWriteCallback writeFunc, 3946 xmlOutputCloseCallback closeFunc); 3947 3948xmlOutputBufferPtr 3949__xmlOutputBufferCreateFilename (const char *URI, 3950 xmlCharEncodingHandlerPtr encoder, 3951 int compression); 3952 3953 3954 3955void xmlRegisterHTTPPostCallbacks (void); 3956 3957 3958 3959 3960xmlParserInputPtr 3961xmlCheckHTTPInput (xmlParserCtxtPtr ctxt, xmlParserInputPtr ret); 3962 3963 3964 3965 3966xmlParserInputPtr 3967xmlNoNetExternalEntityLoader (const char *URL, 3968 const char *ID, xmlParserCtxtPtr ctxt); 3969 3970 3971 3972 3973 3974xmlChar *xmlNormalizeWindowsPath (const xmlChar * path); 3975 3976int xmlCheckFilename (const char *path); 3977 3978 3979 3980int xmlFileMatch (const char *filename); 3981void *xmlFileOpen (const char *filename); 3982int xmlFileRead (void *context, char *buffer, int len); 3983int xmlFileClose (void *context); 3984 3985 3986 3987 3988 3989int xmlIOHTTPMatch (const char *filename); 3990void *xmlIOHTTPOpen (const char *filename); 3991 3992void *xmlIOHTTPOpenW (const char *post_uri, int compression); 3993 3994int xmlIOHTTPRead (void *context, char *buffer, int len); 3995int xmlIOHTTPClose (void *context); 3996 3997 3998 3999 4000 4001 4002int xmlIOFTPMatch (const char *filename); 4003void *xmlIOFTPOpen (const char *filename); 4004int xmlIOFTPRead (void *context, char *buffer, int len); 4005int xmlIOFTPClose (void *context); 4006void xmlInitParser (void); 4007void xmlCleanupParser (void); 4008 4009 4010 4011 4012int xmlParserInputRead (xmlParserInputPtr in, int len); 4013int xmlParserInputGrow (xmlParserInputPtr in, int len); 4014 4015 4016 4017 4018 4019xmlDocPtr 4020xmlParseDoc (const xmlChar * cur); 4021xmlDocPtr 4022xmlParseFile (const char *filename); 4023xmlDocPtr 4024xmlParseMemory (const char *buffer, int size); 4025 4026int xmlSubstituteEntitiesDefault (int val); 4027int xmlKeepBlanksDefault (int val); 4028void xmlStopParser (xmlParserCtxtPtr ctxt); 4029int xmlPedanticParserDefault (int val); 4030int xmlLineNumbersDefault (int val); 4031 4032 4033 4034 4035 4036xmlDocPtr 4037xmlRecoverDoc (const xmlChar * cur); 4038xmlDocPtr 4039xmlRecoverMemory (const char *buffer, int size); 4040xmlDocPtr 4041xmlRecoverFile (const char *filename); 4042 4043 4044 4045 4046 4047int xmlParseDocument (xmlParserCtxtPtr ctxt); 4048int xmlParseExtParsedEnt (xmlParserCtxtPtr ctxt); 4049 4050int 4051xmlSAXUserParseFile (xmlSAXHandlerPtr sax, 4052 void *user_data, const char *filename); 4053int 4054xmlSAXUserParseMemory (xmlSAXHandlerPtr sax, 4055 void *user_data, const char *buffer, int size); 4056xmlDocPtr 4057xmlSAXParseDoc (xmlSAXHandlerPtr sax, const xmlChar * cur, int recovery); 4058xmlDocPtr 4059xmlSAXParseMemory (xmlSAXHandlerPtr sax, 4060 const char *buffer, int size, int recovery); 4061xmlDocPtr 4062xmlSAXParseMemoryWithData (xmlSAXHandlerPtr sax, 4063 const char *buffer, 4064 int size, int recovery, void *data); 4065xmlDocPtr 4066xmlSAXParseFile (xmlSAXHandlerPtr sax, const char *filename, int recovery); 4067xmlDocPtr 4068xmlSAXParseFileWithData (xmlSAXHandlerPtr sax, 4069 const char *filename, int recovery, void *data); 4070xmlDocPtr 4071xmlSAXParseEntity (xmlSAXHandlerPtr sax, const char *filename); 4072xmlDocPtr 4073xmlParseEntity (const char *filename); 4074 4075 4076 4077xmlDtdPtr 4078xmlSAXParseDTD (xmlSAXHandlerPtr sax, 4079 const xmlChar * ExternalID, const xmlChar * SystemID); 4080xmlDtdPtr 4081xmlParseDTD (const xmlChar * ExternalID, const xmlChar * SystemID); 4082xmlDtdPtr 4083xmlIOParseDTD (xmlSAXHandlerPtr sax, 4084 xmlParserInputBufferPtr input, xmlCharEncoding enc); 4085 4086 4087int 4088xmlParseBalancedChunkMemory (xmlDocPtr doc, 4089 xmlSAXHandlerPtr sax, 4090 void *user_data, 4091 int depth, 4092 const xmlChar * string, xmlNodePtr * lst); 4093 4094xmlParserErrors 4095xmlParseInNodeContext (xmlNodePtr node, 4096 const char *data, 4097 int datalen, int options, xmlNodePtr * lst); 4098 4099int 4100xmlParseBalancedChunkMemoryRecover (xmlDocPtr doc, 4101 xmlSAXHandlerPtr sax, 4102 void *user_data, 4103 int depth, 4104 const xmlChar * string, 4105 xmlNodePtr * lst, int recover); 4106int 4107xmlParseExternalEntity (xmlDocPtr doc, 4108 xmlSAXHandlerPtr sax, 4109 void *user_data, 4110 int depth, 4111 const xmlChar * URL, 4112 const xmlChar * ID, xmlNodePtr * lst); 4113 4114int 4115xmlParseCtxtExternalEntity (xmlParserCtxtPtr ctx, 4116 const xmlChar * URL, 4117 const xmlChar * ID, xmlNodePtr * lst); 4118 4119 4120 4121 4122xmlParserCtxtPtr 4123xmlNewParserCtxt (void); 4124int xmlInitParserCtxt (xmlParserCtxtPtr ctxt); 4125void xmlClearParserCtxt (xmlParserCtxtPtr ctxt); 4126void xmlFreeParserCtxt (xmlParserCtxtPtr ctxt); 4127 4128void 4129xmlSetupParserForBuffer (xmlParserCtxtPtr ctxt, 4130 const xmlChar * buffer, const char *filename); 4131 4132xmlParserCtxtPtr 4133xmlCreateDocParserCtxt (const xmlChar * cur); 4134 4135 4136 4137 4138 4139int xmlGetFeaturesList (int *len, const char **result); 4140int 4141xmlGetFeature (xmlParserCtxtPtr ctxt, const char *name, void *result); 4142int xmlSetFeature (xmlParserCtxtPtr ctxt, const char *name, void *value); 4143 4144 4145 4146 4147 4148 4149xmlParserCtxtPtr 4150xmlCreatePushParserCtxt (xmlSAXHandlerPtr sax, 4151 void *user_data, 4152 const char *chunk, int size, const char *filename); 4153int 4154xmlParseChunk (xmlParserCtxtPtr ctxt, 4155 const char *chunk, int size, int terminate); 4156 4157 4158 4159 4160 4161 4162xmlParserCtxtPtr 4163xmlCreateIOParserCtxt (xmlSAXHandlerPtr sax, 4164 void *user_data, 4165 xmlInputReadCallback ioread, 4166 xmlInputCloseCallback ioclose, 4167 void *ioctx, xmlCharEncoding enc); 4168 4169xmlParserInputPtr 4170xmlNewIOInputStream (xmlParserCtxtPtr ctxt, 4171 xmlParserInputBufferPtr input, xmlCharEncoding enc); 4172 4173 4174 4175 4176const xmlParserNodeInfo *xmlParserFindNodeInfo (const xmlParserCtxtPtr 4177 ctxt, 4178 const xmlNodePtr node); 4179void xmlInitNodeInfoSeq (xmlParserNodeInfoSeqPtr seq); 4180void xmlClearNodeInfoSeq (xmlParserNodeInfoSeqPtr seq); 4181unsigned long 4182xmlParserFindNodeInfoIndex (const xmlParserNodeInfoSeqPtr seq, 4183 const xmlNodePtr node); 4184void 4185xmlParserAddNodeInfo (xmlParserCtxtPtr ctxt, 4186 const xmlParserNodeInfoPtr info); 4187 4188 4189 4190 4191 4192void xmlSetExternalEntityLoader (xmlExternalEntityLoader f); 4193xmlExternalEntityLoader 4194xmlGetExternalEntityLoader (void); 4195xmlParserInputPtr 4196xmlLoadExternalEntity (const char *URL, 4197 const char *ID, xmlParserCtxtPtr ctxt); 4198 4199 4200 4201 4202long xmlByteConsumed (xmlParserCtxtPtr ctxt); 4203typedef enum 4204 { 4205 XML_PARSE_RECOVER = 1 << 0, 4206 XML_PARSE_NOENT = 1 << 1, 4207 XML_PARSE_DTDLOAD = 1 << 2, 4208 XML_PARSE_DTDATTR = 1 << 3, 4209 XML_PARSE_DTDVALID = 1 << 4, 4210 XML_PARSE_NOERROR = 1 << 5, 4211 XML_PARSE_NOWARNING = 1 << 6, 4212 XML_PARSE_PEDANTIC = 1 << 7, 4213 XML_PARSE_NOBLANKS = 1 << 8, 4214 XML_PARSE_SAX1 = 1 << 9, 4215 XML_PARSE_XINCLUDE = 1 << 10, 4216 XML_PARSE_NONET = 1 << 11, 4217 XML_PARSE_NODICT = 1 << 12, 4218 XML_PARSE_NSCLEAN = 1 << 13, 4219 XML_PARSE_NOCDATA = 1 << 14, 4220 XML_PARSE_NOXINCNODE = 1 << 15, 4221 XML_PARSE_COMPACT = 1 << 16, 4222 4223 4224 XML_PARSE_OLD10 = 1 << 17, 4225 XML_PARSE_NOBASEFIX = 1 << 18, 4226 XML_PARSE_HUGE = 1 << 19, 4227 XML_PARSE_OLDSAX = 1 << 20, 4228 XML_PARSE_IGNORE_ENC = 1 << 21, 4229 XML_PARSE_BIG_LINES = 1 << 22 4230 } xmlParserOption; 4231 4232void xmlCtxtReset (xmlParserCtxtPtr ctxt); 4233int 4234xmlCtxtResetPush (xmlParserCtxtPtr ctxt, 4235 const char *chunk, 4236 int size, 4237 const char *filename, const char *encoding); 4238int xmlCtxtUseOptions (xmlParserCtxtPtr ctxt, int options); 4239xmlDocPtr 4240xmlReadDoc (const xmlChar * cur, 4241 const char *URL, const char *encoding, int options); 4242xmlDocPtr 4243xmlReadFile (const char *URL, const char *encoding, int options); 4244xmlDocPtr 4245xmlReadMemory (const char *buffer, 4246 int size, const char *URL, const char *encoding, int options); 4247xmlDocPtr 4248xmlReadFd (int fd, const char *URL, const char *encoding, int options); 4249xmlDocPtr 4250xmlReadIO (xmlInputReadCallback ioread, 4251 xmlInputCloseCallback ioclose, 4252 void *ioctx, const char *URL, const char *encoding, int options); 4253xmlDocPtr 4254xmlCtxtReadDoc (xmlParserCtxtPtr ctxt, 4255 const xmlChar * cur, 4256 const char *URL, const char *encoding, int options); 4257xmlDocPtr 4258xmlCtxtReadFile (xmlParserCtxtPtr ctxt, 4259 const char *filename, const char *encoding, int options); 4260xmlDocPtr 4261xmlCtxtReadMemory (xmlParserCtxtPtr ctxt, 4262 const char *buffer, 4263 int size, 4264 const char *URL, const char *encoding, int options); 4265xmlDocPtr 4266xmlCtxtReadFd (xmlParserCtxtPtr ctxt, 4267 int fd, const char *URL, const char *encoding, int options); 4268xmlDocPtr 4269xmlCtxtReadIO (xmlParserCtxtPtr ctxt, 4270 xmlInputReadCallback ioread, 4271 xmlInputCloseCallback ioclose, 4272 void *ioctx, 4273 const char *URL, const char *encoding, int options); 4274typedef enum 4275 { 4276 XML_WITH_THREAD = 1, 4277 XML_WITH_TREE = 2, 4278 XML_WITH_OUTPUT = 3, 4279 XML_WITH_PUSH = 4, 4280 XML_WITH_READER = 5, 4281 XML_WITH_PATTERN = 6, 4282 XML_WITH_WRITER = 7, 4283 XML_WITH_SAX1 = 8, 4284 XML_WITH_FTP = 9, 4285 XML_WITH_HTTP = 10, 4286 XML_WITH_VALID = 11, 4287 XML_WITH_HTML = 12, 4288 XML_WITH_LEGACY = 13, 4289 XML_WITH_C14N = 14, 4290 XML_WITH_CATALOG = 15, 4291 XML_WITH_XPATH = 16, 4292 XML_WITH_XPTR = 17, 4293 XML_WITH_XINCLUDE = 18, 4294 XML_WITH_ICONV = 19, 4295 XML_WITH_ISO8859X = 20, 4296 XML_WITH_UNICODE = 21, 4297 XML_WITH_REGEXP = 22, 4298 XML_WITH_AUTOMATA = 23, 4299 XML_WITH_EXPR = 24, 4300 XML_WITH_SCHEMAS = 25, 4301 XML_WITH_SCHEMATRON = 26, 4302 XML_WITH_MODULES = 27, 4303 XML_WITH_DEBUG = 28, 4304 XML_WITH_DEBUG_MEM = 29, 4305 XML_WITH_DEBUG_RUN = 30, 4306 XML_WITH_ZLIB = 31, 4307 XML_WITH_ICU = 32, 4308 XML_WITH_LZMA = 33, 4309 XML_WITH_NONE = 99999 4310 } xmlFeature; 4311 4312int xmlHasFeature (xmlFeature feature); 4313typedef unsigned long int ub4; 4314 4315 4316 4317typedef signed long int sb4; 4318 4319 4320 4321typedef unsigned short int ub2; 4322 4323 4324 4325typedef signed short int sb2; 4326 4327 4328 4329typedef unsigned char ub1; 4330 4331 4332 4333typedef signed char sb1; 4334 4335 4336 4337typedef int word; 4338struct randctx 4339{ 4340 ub4 randcnt; 4341 ub4 randrsl[(1 << (4))]; 4342 ub4 randmem[(1 << (4))]; 4343 ub4 randa; 4344 ub4 randb; 4345 ub4 randc; 4346}; 4347typedef struct randctx randctx; 4348 4349 4350 4351 4352 4353 4354void irandinit (randctx * r, word flag); 4355 4356void isaac (randctx * r); 4357char *flam3_version (); 4358typedef struct 4359{ 4360 double index; 4361 double color[4]; 4362} flam3_palette_entry; 4363 4364typedef flam3_palette_entry flam3_palette[256]; 4365 4366int flam3_get_palette (int palette_index, flam3_palette p, 4367 double hue_rotation); 4368 4369 4370 4371 4372extern char *flam3_variation_names[]; 4373typedef struct 4374{ 4375 4376 double badvals; 4377 long int num_iters; 4378 int render_seconds; 4379 4380} stat_struct; 4381 4382typedef struct 4383{ 4384 4385 unsigned int width, height; 4386 int version; 4387 int id; 4388 4389 4390 double intensity_weight[256]; 4391 unsigned int bin_size[256]; 4392 unsigned int bin_offset[256]; 4393 4394 4395 4396 4397 4398 unsigned short *rowcols; 4399 4400} flam3_image_store; 4401 4402 4403typedef struct xform 4404{ 4405 double var[98]; 4406 double c[3][2]; 4407 double post[3][2]; 4408 double density; 4409 double color; 4410 double color_speed; 4411 double animate; 4412 double opacity; 4413 double vis_adjusted; 4414 4415 int padding; 4416 double wind[2]; 4417 4418 int precalc_angles_flag; 4419 int precalc_atan_xy_flag; 4420 int precalc_atan_yx_flag; 4421 double has_preblur; 4422 int has_post; 4423 4424 4425 4426 double blob_low; 4427 double blob_high; 4428 double blob_waves; 4429 4430 4431 double pdj_a; 4432 double pdj_b; 4433 double pdj_c; 4434 double pdj_d; 4435 4436 4437 double fan2_x; 4438 double fan2_y; 4439 4440 4441 double rings2_val; 4442 4443 4444 double perspective_angle; 4445 double perspective_dist; 4446 4447 4448 double julian_power; 4449 double julian_dist; 4450 4451 4452 double juliascope_power; 4453 double juliascope_dist; 4454 4455 4456 double radial_blur_angle; 4457 4458 4459 double pie_slices; 4460 double pie_rotation; 4461 double pie_thickness; 4462 4463 4464 double ngon_sides; 4465 double ngon_power; 4466 double ngon_circle; 4467 double ngon_corners; 4468 4469 4470 double curl_c1; 4471 double curl_c2; 4472 4473 4474 double rectangles_x; 4475 double rectangles_y; 4476 4477 4478 double amw_amp; 4479 4480 4481 double disc2_rot; 4482 double disc2_twist; 4483 4484 4485 double super_shape_rnd; 4486 double super_shape_m; 4487 double super_shape_n1; 4488 double super_shape_n2; 4489 double super_shape_n3; 4490 double super_shape_holes; 4491 4492 4493 double flower_petals; 4494 double flower_holes; 4495 4496 4497 double conic_eccentricity; 4498 double conic_holes; 4499 4500 4501 double parabola_height; 4502 double parabola_width; 4503 4504 4505 double bent2_x; 4506 double bent2_y; 4507 4508 4509 double bipolar_shift; 4510 4511 4512 double cell_size; 4513 4514 4515 double cpow_r; 4516 double cpow_i; 4517 double cpow_power; 4518 4519 4520 double curve_xamp, curve_yamp; 4521 double curve_xlength, curve_ylength; 4522 4523 4524 double escher_beta; 4525 4526 4527 double lazysusan_spin; 4528 double lazysusan_space; 4529 double lazysusan_twist; 4530 double lazysusan_x, lazysusan_y; 4531 4532 4533 double modulus_x, modulus_y; 4534 4535 4536 double oscope_separation; 4537 double oscope_frequency; 4538 double oscope_amplitude; 4539 double oscope_damping; 4540 4541 4542 double popcorn2_x, popcorn2_y, popcorn2_c; 4543 4544 4545 double separation_x, separation_xinside; 4546 double separation_y, separation_yinside; 4547 4548 4549 double split_xsize; 4550 double split_ysize; 4551 4552 4553 double splits_x, splits_y; 4554 4555 4556 double stripes_space; 4557 double stripes_warp; 4558 4559 4560 double wedge_angle, wedge_hole; 4561 double wedge_count, wedge_swirl; 4562 4563 4564 double wedge_julia_angle; 4565 double wedge_julia_count; 4566 double wedge_julia_power; 4567 double wedge_julia_dist; 4568 4569 4570 double wedge_sph_angle, wedge_sph_count; 4571 double wedge_sph_hole, wedge_sph_swirl; 4572 4573 4574 double whorl_inside, whorl_outside; 4575 4576 4577 double waves2_freqx, waves2_scalex; 4578 double waves2_freqy, waves2_scaley; 4579 4580 4581 double auger_sym, auger_weight; 4582 double auger_freq, auger_scale; 4583 4584 4585 double flux_spread; 4586 4587 4588 4589 double persp_vsin; 4590 double persp_vfcos; 4591 4592 4593 double julian_rN; 4594 double julian_cn; 4595 4596 4597 double juliascope_rN; 4598 double juliascope_cn; 4599 4600 4601 double wedgeJulia_rN; 4602 double wedgeJulia_cn; 4603 double wedgeJulia_cf; 4604 4605 4606 double radialBlur_spinvar; 4607 double radialBlur_zoomvar; 4608 4609 4610 double waves_dx2; 4611 double waves_dy2; 4612 4613 4614 double disc2_sinadd; 4615 double disc2_cosadd; 4616 double disc2_timespi; 4617 4618 4619 double super_shape_pm_4; 4620 double super_shape_pneg1_n1; 4621 4622 int num_active_vars; 4623 double active_var_weights[98]; 4624 int varFunc[98]; 4625 4626 int motion_freq; 4627 int motion_func; 4628 4629 struct xform *motion; 4630 int num_motion; 4631 4632 4633} flam3_xform; 4634 4635typedef struct 4636{ 4637 char flame_name[64 + 1]; 4638 double time; 4639 int interpolation; 4640 int interpolation_type; 4641 int palette_interpolation; 4642 int num_xforms; 4643 int final_xform_index; 4644 int final_xform_enable; 4645 flam3_xform *xform; 4646 4647 4648 double **chaos; 4649 int chaos_enable; 4650 4651 int genome_index; 4652 char parent_fname[30]; 4653 int symmetry; 4654 flam3_palette palette; 4655 char *input_image; 4656 int palette_index; 4657 double brightness; 4658 double contrast; 4659 double gamma; 4660 double highlight_power; 4661 int width, height; 4662 int spatial_oversample; 4663 double center[2]; 4664 double rot_center[2]; 4665 double rotate; 4666 double vibrancy; 4667 double hue_rotation; 4668 double background[3]; 4669 double zoom; 4670 double pixels_per_unit; 4671 double spatial_filter_radius; 4672 int spatial_filter_select; 4673 4674 4675 double sample_density; 4676 4677 4678 4679 4680 4681 4682 int nbatches; 4683 int ntemporal_samples; 4684 4685 4686 double estimator; 4687 double estimator_curve; 4688 double estimator_minimum; 4689 4690 4691 4692 xmlDocPtr edits; 4693 4694 4695 double gam_lin_thresh; 4696 4697 4698 int palette_index0; 4699 double hue_rotation0; 4700 int palette_index1; 4701 double hue_rotation1; 4702 double palette_blend; 4703 4704 int temporal_filter_type; 4705 double temporal_filter_width, temporal_filter_exp; 4706 4707 int palette_mode; 4708 4709 4710} flam3_genome; 4711 4712typedef struct 4713{ 4714 int from; 4715 int to; 4716 double scalar; 4717} flam3_chaos_entry; 4718 4719 4720 4721void flam3_add_motion_element (flam3_xform * xf); 4722void flam3_add_xforms (flam3_genome * cp, int num_to_add, 4723 int interp_padding, int final_flag); 4724void flam3_delete_xform (flam3_genome * thiscp, int idx_to_delete); 4725void flam3_copy_xform (flam3_xform * dest, flam3_xform * src); 4726void flam3_copy (flam3_genome * dest, flam3_genome * src); 4727void flam3_copyx (flam3_genome * dest, flam3_genome * src, int num_std, 4728 int num_final); 4729void flam3_copy_params (flam3_xform * dest, flam3_xform * src, int varn); 4730void flam3_delete_motion_elements (flam3_xform * xf); 4731 4732int flam3_xform_preview (flam3_genome * cp, int xi, double range, 4733 int numvals, int depth, double *result, 4734 randctx * rc); 4735unsigned short *flam3_create_xform_distrib (flam3_genome * cp); 4736int flam3_create_chaos_distrib (flam3_genome * cp, int xi, 4737 unsigned short *xform_distrib); 4738int flam3_check_unity_chaos (flam3_genome * cp); 4739void clear_cp (flam3_genome * cp, int def_flag); 4740 4741 4742 4743 4744 4745 4746int flam3_iterate (flam3_genome * g, int nsamples, int fuse, 4747 double *samples, unsigned short *xform_distrib, 4748 randctx * rc); 4749 4750void apply_motion_parameters (flam3_xform * xf, flam3_xform * addto, 4751 double blend); 4752 4753 4754 4755void flam3_interpolate (flam3_genome * genomes, int ngenomes, 4756 double time, double stagger, 4757 flam3_genome * result); 4758 4759 4760void flam3_print (FILE * f, flam3_genome * g, char *extra_attributes, 4761 int print_edits); 4762void flam3_print_xform (FILE * f, flam3_xform * x, int final_flag, 4763 int numstd, double *chaos_row, int motion_flag); 4764char *flam3_print_to_string (flam3_genome * cp); 4765 4766 4767 4768 4769 4770void flam3_random (flam3_genome * g, int *ivars, int ivars_n, int sym, 4771 int spec_xforms); 4772 4773void add_to_action (char *action, char *addtoaction); 4774 4775void flam3_mutate (flam3_genome * cp, int mutate_mode, int *ivars, 4776 int ivars_n, int sym, double speed, randctx * rc, 4777 char *action); 4778void flam3_cross (flam3_genome * cp0, flam3_genome * cp1, 4779 flam3_genome * out, int cross_mode, randctx * rc, 4780 char *action); 4781 4782 4783flam3_genome *flam3_parse_xml2 (char *s, char *fn, int default_flag, 4784 int *ncps); 4785flam3_genome *flam3_parse_from_file (FILE * f, char *fn, 4786 int default_flag, int *ncps); 4787 4788void flam3_add_symmetry (flam3_genome * g, int sym); 4789 4790void flam3_improve_colors (flam3_genome * g, int ntries, 4791 int change_palette, int color_resolution); 4792int flam3_colorhist (flam3_genome * cp, int num_batches, randctx * rc, 4793 double *hist); 4794int flam3_estimate_bounding_box (flam3_genome * g, double eps, 4795 int nsamples, double *bmin, 4796 double *bmax, randctx * rc); 4797void flam3_rotate (flam3_genome * g, double angle, int interp_type); 4798 4799double flam3_dimension (flam3_genome * g, int ntries, 4800 int clip_to_camera); 4801double flam3_lyapunov (flam3_genome * g, int ntries); 4802 4803void flam3_apply_template (flam3_genome * cp, flam3_genome * templ); 4804 4805int flam3_count_nthreads (void); 4806 4807typedef struct 4808{ 4809 4810 double pixel_aspect_ratio; 4811 flam3_genome *genomes; 4812 int ngenomes; 4813 int verbose; 4814 int bits; 4815 int bytes_per_channel; 4816 int earlyclip; 4817 double time; 4818 int (*progress) (void *, double, int, double); 4819 void *progress_parameter; 4820 randctx rc; 4821 int nthreads; 4822 int sub_batch_size; 4823} flam3_frame; 4824int flam3_render (flam3_frame * f, void *out, int field, int nchan, 4825 int transp, stat_struct * stats); 4826 4827double flam3_render_memory_required (flam3_frame * f); 4828int flam3_make_strip (flam3_genome * cp, int nstrips, int stripnum); 4829void rotate_by (double *p, double *center, double by); 4830 4831 4832double flam3_random01 (); 4833double flam3_random11 (); 4834int flam3_random_bit (); 4835 4836 4837double flam3_random_isaac_01 (randctx *); 4838double flam3_random_isaac_11 (randctx *); 4839int flam3_random_isaac_bit (randctx *); 4840 4841void flam3_init_frame (flam3_frame * f); 4842 4843 4844void *flam3_malloc (size_t size); 4845void flam3_free (void *ptr); 4846 4847void flam3_srandom (); 4848 4849flam3_genome *sheep_loop (flam3_genome * cp, double blend); 4850flam3_genome *sheep_edge (flam3_genome * cp, double blend, int seqflag, 4851 double stagger); 4852 4853 4854 4855 4856 4857extern char *dirname (char *__path) 4858 __attribute__ ((__nothrow__, __leaf__)); 4859 4860 4861 4862 4863 4864 4865 4866extern char *__xpg_basename (char *__path) 4867 __attribute__ ((__nothrow__, __leaf__)); 4868 4869 4870 4871 4872 4873 4874void docstring (); 4875 4876 4877typedef struct 4878{ 4879 unsigned short *xform_distrib; 4880 flam3_frame *spec; 4881 double bounds[4]; 4882 double rot[2][2]; 4883 double size[2]; 4884 int width, height; 4885 double ws0, wb0s0, hs1, hb1s1; 4886 flam3_palette_entry *dmap; 4887 double color_scalar; 4888 void *buckets; 4889 double badvals; 4890 double batch_size; 4891 int temporal_sample_num, ntemporal_samples; 4892 int batch_num, nbatches, aborted; 4893 time_t *progress_timer; 4894 time_t *progress_timer_history; 4895 double *progress_history; 4896 int *progress_history_mark; 4897 4898 4899 pthread_mutex_t bucket_mutex; 4900 4901 4902} flam3_iter_constants; 4903 4904typedef struct 4905{ 4906 4907 double tx, ty; 4908 4909 double precalc_atan, precalc_sina; 4910 double precalc_cosa, precalc_sqrt; 4911 double precalc_sumsq, precalc_atanyx; 4912 4913 flam3_xform *xform; 4914 4915 4916 4917 double p0, p1; 4918 4919 4920 randctx *rc; 4921 4922} flam3_iter_helper; 4923 4924typedef struct 4925{ 4926 double *iter_storage; 4927 randctx rc; 4928 flam3_genome cp; 4929 int first_thread; 4930 int timer_initialize; 4931 flam3_iter_constants *fic; 4932} flam3_thread_helper; 4933 4934double flam3_sinc (double x); 4935 4936 4937double flam3_gaussian_filter (double x); 4938double flam3_hermite_filter (double t); 4939double flam3_box_filter (double t); 4940double flam3_triangle_filter (double t); 4941double flam3_bell_filter (double t); 4942double flam3_b_spline_filter (double t); 4943double flam3_lanczos3_filter (double t); 4944double flam3_lanczos2_filter (double t); 4945double flam3_mitchell_filter (double t); 4946double flam3_blackman_filter (double x); 4947double flam3_catrom_filter (double x); 4948double flam3_hamming_filter (double x); 4949double flam3_hanning_filter (double x); 4950double flam3_quadratic_filter (double x); 4951 4952double flam3_spatial_filter (int knum, double x); 4953typedef struct 4954{ 4955 int max_filtered_counts; 4956 int max_filter_index; 4957 int kernel_size; 4958 double *filter_widths; 4959 double *filter_coefs; 4960} flam3_de_helper; 4961 4962extern double flam3_spatial_support[14]; 4963 4964double flam3_spatial_filter (int knum, double x); 4965int flam3_create_spatial_filter (flam3_frame * spec, int field, 4966 double **filter); 4967flam3_de_helper flam3_create_de_filters (double max_rad, double min_rad, 4968 double curve, int ss); 4969double flam3_create_temporal_filter (int numsteps, int filter_type, 4970 double filter_exp, 4971 double filter_width, 4972 double **temporal_filter, 4973 double **temporal_deltas); 4974 4975double flam3_spatial_support[14] = { 4976 1.5, 4977 1.0, 4978 0.5, 4979 1.0, 4980 1.5, 4981 2.0, 4982 2.0, 4983 1.0, 4984 2.0, 4985 1.0, 4986 1.0, 4987 3.0, 4988 2.0, 4989 1.5 4990}; 4991 4992double 4993flam3_hermite_filter (double t) 4994{ 4995 4996 if (t < 0.0) 4997 t = -t; 4998 if (t < 1.0) 4999 return ((2.0 * t - 3.0) * t * t + 1.0); 5000 return (0.0); 5001} 5002 5003double 5004flam3_box_filter (double t) 5005{ 5006 if ((t > -0.5) && (t <= 0.5)) 5007 return (1.0); 5008 return (0.0); 5009} 5010 5011double 5012flam3_triangle_filter (double t) 5013{ 5014 if (t < 0.0) 5015 t = -t; 5016 if (t < 1.0) 5017 return (1.0 - t); 5018 return (0.0); 5019} 5020 5021double 5022flam3_bell_filter (double t) 5023{ 5024 5025 if (t < 0) 5026 t = -t; 5027 if (t < .5) 5028 return (.75 - (t * t)); 5029 if (t < 1.5) 5030 { 5031 t = (t - 1.5); 5032 return (.5 * (t * t)); 5033 } 5034 return (0.0); 5035} 5036 5037double 5038flam3_b_spline_filter (double t) 5039{ 5040 5041 5042 double tt; 5043 5044 if (t < 0) 5045 t = -t; 5046 if (t < 1) 5047 { 5048 tt = t * t; 5049 return ((.5 * tt * t) - tt + (2.0 / 3.0)); 5050 } 5051 else if (t < 2) 5052 { 5053 t = 2 - t; 5054 return ((1.0 / 6.0) * (t * t * t)); 5055 } 5056 return (0.0); 5057} 5058 5059double 5060flam3_sinc (double x) 5061{ 5062 x *= 3.14159265358979323846; 5063 if (x != 0) 5064 return (sin (x) / x); 5065 return (1.0); 5066} 5067 5068double 5069flam3_blackman_filter (double x) 5070{ 5071 return (0.42 + 0.5 * cos (3.14159265358979323846 * x) + 0.08 * cos (2 * 3.14159265358979323846 * x)); 5072} 5073 5074double 5075flam3_catrom_filter (double x) 5076{ 5077 if (x < -2.0) 5078 return (0.0); 5079 if (x < -1.0) 5080 return (0.5 * (4.0 + x * (8.0 + x * (5.0 + x)))); 5081 if (x < 0.0) 5082 return (0.5 * (2.0 + x * x * (-5.0 - 3.0 * x))); 5083 if (x < 1.0) 5084 return (0.5 * (2.0 + x * x * (-5.0 + 3.0 * x))); 5085 if (x < 2.0) 5086 return (0.5 * (4.0 + x * (-8.0 + x * (5.0 - x)))); 5087 return (0.0); 5088} 5089 5090double 5091flam3_mitchell_filter (double t) 5092{ 5093 double tt; 5094 5095 tt = t * t; 5096 if (t < 0) 5097 t = -t; 5098 if (t < 1.0) 5099 { 5100 t = (((12.0 - 9.0 * (1.0 / 3.0) - 6.0 * (1.0 / 3.0)) * (t * tt)) 5101 + ((-18.0 + 12.0 * (1.0 / 3.0) + 6.0 * (1.0 / 3.0)) * tt) 5102 + (6.0 - 2 * (1.0 / 3.0))); 5103 return (t / 6.0); 5104 } 5105 else if (t < 2.0) 5106 { 5107 t = (((-1.0 * (1.0 / 3.0) - 6.0 * (1.0 / 3.0)) * (t * tt)) 5108 + ((6.0 * (1.0 / 3.0) + 30.0 * (1.0 / 3.0)) * tt) 5109 + ((-12.0 * (1.0 / 3.0) - 48.0 * (1.0 / 3.0)) * t) 5110 + (8.0 * (1.0 / 3.0) + 24 * (1.0 / 3.0))); 5111 return (t / 6.0); 5112 } 5113 return (0.0); 5114} 5115 5116double 5117flam3_hanning_filter (double x) 5118{ 5119 return (0.5 + 0.5 * cos (3.14159265358979323846 * x)); 5120} 5121 5122double 5123flam3_hamming_filter (double x) 5124{ 5125 return (0.54 + 0.46 * cos (3.14159265358979323846 * x)); 5126} 5127 5128double 5129flam3_lanczos3_filter (double t) 5130{ 5131 if (t < 0) 5132 t = -t; 5133 if (t < 3.0) 5134 return (flam3_sinc (t) * flam3_sinc (t / 3.0)); 5135 return (0.0); 5136} 5137 5138double 5139flam3_lanczos2_filter (double t) 5140{ 5141 if (t < 0) 5142 t = -t; 5143 if (t < 2.0) 5144 return (flam3_sinc (t) * flam3_sinc (t / 2.0)); 5145 return (0.0); 5146} 5147 5148double 5149flam3_gaussian_filter (double x) 5150{ 5151 return (exp ((-2.0 * x * x)) * sqrt (2.0 / 3.14159265358979323846)); 5152} 5153 5154double 5155flam3_quadratic_filter (double x) 5156{ 5157 if (x < -1.5) 5158 return (0.0); 5159 if (x < -0.5) 5160 return (0.5 * (x + 1.5) * (x + 1.5)); 5161 if (x < 0.5) 5162 return (0.75 - x * x); 5163 if (x < 1.5) 5164 return (0.5 * (x - 1.5) * (x - 1.5)); 5165 return (0.0); 5166} 5167 5168double 5169flam3_spatial_filter (int knum, double x) 5170{ 5171 5172 if (knum == 0) 5173 return flam3_gaussian_filter (x); 5174 else if (knum == 1) 5175 return flam3_hermite_filter (x); 5176 else if (knum == 2) 5177 return flam3_box_filter (x); 5178 else if (knum == 3) 5179 return flam3_triangle_filter (x); 5180 else if (knum == 4) 5181 return flam3_bell_filter (x); 5182 else if (knum == 5) 5183 return flam3_b_spline_filter (x); 5184 else if (knum == 6) 5185 return flam3_mitchell_filter (x); 5186 else if (knum == 7) 5187 return flam3_sinc (x) * flam3_blackman_filter (x); 5188 else if (knum == 8) 5189 return flam3_catrom_filter (x); 5190 else if (knum == 9) 5191 return flam3_sinc (x) * flam3_hanning_filter (x); 5192 else if (knum == 10) 5193 return flam3_sinc (x) * flam3_hamming_filter (x); 5194 else if (knum == 11) 5195 return flam3_lanczos3_filter (x) * flam3_sinc (x / 3.0); 5196 else if (knum == 12) 5197 return flam3_lanczos2_filter (x) * flam3_sinc (x / 2.0); 5198 else if (knum == 13) 5199 return flam3_quadratic_filter (x); 5200} 5201 5202int 5203normalize_vector (double *v, int n) 5204{ 5205 double t = 0.0; 5206 int i; 5207 for (i = 0; i < n; i++) 5208 t += v[i]; 5209 if (0.0 == t) 5210 return 1; 5211 t = 1.0 / t; 5212 for (i = 0; i < n; i++) 5213 v[i] *= t; 5214 return 0; 5215} 5216 5217 5218int 5219flam3_create_spatial_filter (flam3_frame * spec, int field, double **filter) 5220{ 5221 5222 int sf_kernel = spec->genomes[0].spatial_filter_select; 5223 int supersample = spec->genomes[0].spatial_oversample; 5224 double sf_radius = spec->genomes[0].spatial_filter_radius; 5225 double aspect_ratio = spec->pixel_aspect_ratio; 5226 double sf_supp = flam3_spatial_support[sf_kernel]; 5227 5228 double fw = 2.0 * sf_supp * supersample * sf_radius / aspect_ratio; 5229 double adjust, ii, jj; 5230 5231 int fwidth = ((int) fw) + 1; 5232 int i, j; 5233 5234 5235 5236 if ((fwidth ^ supersample) & 1) 5237 fwidth++; 5238 5239 5240 if (fw > 0.0) 5241 adjust = sf_supp * fwidth / fw; 5242 else 5243 adjust = 1.0; 5244 5245 5246 (*filter) = (double *) calloc (fwidth * fwidth, sizeof (double)); 5247 5248 5249 for (i = 0; i < fwidth; i++) 5250 for (j = 0; j < fwidth; j++) 5251 { 5252 5253 5254 ii = ((2.0 * i + 1.0) / (double) fwidth - 1.0) * adjust; 5255 jj = ((2.0 * j + 1.0) / (double) fwidth - 1.0) * adjust; 5256 5257 5258 if (field) 5259 jj *= 2.0; 5260 5261 5262 jj /= aspect_ratio; 5263 5264 (*filter)[i + j * fwidth] = 5265 flam3_spatial_filter (sf_kernel, 5266 ii) * flam3_spatial_filter (sf_kernel, jj); 5267 } 5268 5269 5270 if (normalize_vector ((*filter), fwidth * fwidth)) 5271 { 5272 fprintf (stderr, 5273 "Spatial filter value is too small: %g. Terminating.\n", 5274 sf_radius); 5275 return (-1); 5276 } 5277 5278 return (fwidth); 5279} 5280 5281flam3_de_helper 5282flam3_create_de_filters (double max_rad, double min_rad, double curve, int ss) 5283{ 5284 5285 flam3_de_helper de; 5286 double comp_max_radius, comp_min_radius; 5287 double num_de_filters_d; 5288 int num_de_filters, de_max_ind; 5289 int de_row_size, de_half_size; 5290 int filtloop; 5291 int keep_thresh = 100; 5292 5293 de.kernel_size = -1; 5294 5295 if (curve <= 0.0) 5296 { 5297 fprintf (stderr, "estimator curve must be > 0\n"); 5298 return (de); 5299 } 5300 5301 if (max_rad < min_rad) 5302 { 5303 fprintf (stderr, "estimator must be larger than estimator_minimum.\n"); 5304 fprintf (stderr, "(%f > %f) ? \n", max_rad, min_rad); 5305 return (de); 5306 } 5307 5308 5309 5310 comp_max_radius = max_rad * ss + 1; 5311 comp_min_radius = min_rad * ss + 1; 5312 5313 5314 5315 5316 5317 num_de_filters_d = pow (comp_max_radius / comp_min_radius, 1.0 / curve); 5318 if (num_de_filters_d > 1e7) 5319 { 5320 fprintf (stderr, 5321 "too many filters required in this configuration (%g)\n", 5322 num_de_filters_d); 5323 return (de); 5324 } 5325 num_de_filters = (int) ceil (num_de_filters_d); 5326 5327 5328 if (num_de_filters > keep_thresh) 5329 { 5330 de_max_ind = (int) ceil (100 + pow (num_de_filters - 100, curve)) + 1; 5331 de.max_filtered_counts = 5332 (int) pow ((double) (de_max_ind - 100), 1.0 / curve) + 100; 5333 } 5334 else 5335 { 5336 de_max_ind = num_de_filters; 5337 de.max_filtered_counts = de_max_ind; 5338 } 5339 5340 5341 5342 de_row_size = (int) (2 * ceil (comp_max_radius) - 1); 5343 de_half_size = (de_row_size - 1) / 2; 5344 de.kernel_size = (de_half_size + 1) * (2 + de_half_size) / 2; 5345 5346 de.filter_coefs = 5347 (double *) calloc (de_max_ind * de.kernel_size, sizeof (double)); 5348 de.filter_widths = (double *) calloc (de_max_ind, sizeof (double)); 5349 5350 5351 de.max_filter_index = 0; 5352 for (filtloop = 0; filtloop < de_max_ind; filtloop++) 5353 { 5354 5355 double de_filt_sum = 0.0, de_filt_d; 5356 double de_filt_h; 5357 int dej, dek; 5358 double adjloop; 5359 int filter_coef_idx; 5360 5361 5362 if (filtloop < keep_thresh) 5363 de_filt_h = (comp_max_radius / pow (filtloop + 1, curve)); 5364 else 5365 { 5366 adjloop = pow (filtloop - keep_thresh, (1.0 / curve)) + keep_thresh; 5367 de_filt_h = (comp_max_radius / pow (adjloop + 1, curve)); 5368 } 5369 5370 5371 if (de_filt_h <= comp_min_radius) 5372 { 5373 de_filt_h = comp_min_radius; 5374 de.max_filter_index = filtloop; 5375 } 5376 5377 de.filter_widths[filtloop] = de_filt_h; 5378 5379 5380 for (dej = -de_half_size; dej <= de_half_size; dej++) 5381 { 5382 for (dek = -de_half_size; dek <= de_half_size; dek++) 5383 { 5384 5385 de_filt_d = sqrt ((double) (dej * dej + dek * dek)) / de_filt_h; 5386 5387 5388 if (de_filt_d <= 1.0) 5389 { 5390 de_filt_sum += flam3_spatial_filter (0, flam3_spatial_support [0] * de_filt_d); 5391 } 5392 } 5393 } 5394 5395 filter_coef_idx = filtloop * de.kernel_size; 5396 5397 5398 for (dej = 0; dej <= de_half_size; dej++) 5399 { 5400 for (dek = 0; dek <= dej; dek++) 5401 { 5402 de_filt_d = sqrt ((double) (dej * dej + dek * dek)) / de_filt_h; 5403 5404 5405 if (de_filt_d > 1.0) 5406 de.filter_coefs[filter_coef_idx] = 0.0; 5407 else 5408 { 5409 de.filter_coefs[filter_coef_idx] = flam3_spatial_filter (0, flam3_spatial_support[0] * de_filt_d) / de_filt_sum; 5410 } 5411 5412 filter_coef_idx++; 5413 } 5414 } 5415 5416 if (de.max_filter_index > 0) 5417 break; 5418 } 5419 5420 if (de.max_filter_index == 0) 5421 de.max_filter_index = de_max_ind - 1; 5422 5423 5424 return (de); 5425} 5426 5427double 5428flam3_create_temporal_filter (int numsteps, int filter_type, 5429 double filter_exp, double filter_width, 5430 double **temporal_filter, 5431 double **temporal_deltas) 5432{ 5433 5434 double maxfilt = 0.0; 5435 double sumfilt = 0.0; 5436 double slpx, halfsteps; 5437 double *deltas, *filter; 5438 5439 int i; 5440 5441 5442 deltas = (double *) malloc (numsteps * sizeof (double)); 5443 filter = (double *) malloc (numsteps * sizeof (double)); 5444 5445 5446 if (numsteps == 1) 5447 { 5448 deltas[0] = 0; 5449 filter[0] = 1.0; 5450 *temporal_deltas = deltas; 5451 *temporal_filter = filter; 5452 return (1.0); 5453 } 5454 5455 5456 for (i = 0; i < numsteps; i++) 5457 deltas[i] = ((double) i / (double) (numsteps - 1) - 0.5) * filter_width; 5458 5459 5460 if (2 == filter_type) 5461 { 5462 5463 for (i = 0; i < numsteps; i++) 5464 { 5465 5466 if (filter_exp >= 0) 5467 slpx = ((double) i + 1.0) / numsteps; 5468 else 5469 slpx = (double) (numsteps - i) / numsteps; 5470 5471 5472 filter[i] = pow (slpx, fabs (filter_exp)); 5473 5474 5475 if (filter[i] > maxfilt) 5476 maxfilt = filter[i]; 5477 } 5478 5479 } 5480 else if (1 == filter_type) 5481 { 5482 5483 halfsteps = numsteps / 2.0; 5484 for (i = 0; i < numsteps; i++) 5485 { 5486 5487 5488 filter[i] = flam3_spatial_filter (0, flam3_spatial_support[0] * fabs (i - halfsteps) / halfsteps); 5489 if (filter[i] > maxfilt) 5490 maxfilt = filter[i]; 5491 } 5492 5493 } 5494 else 5495 { 5496 5497 for (i = 0; i < numsteps; i++) 5498 filter[i] = 1.0; 5499 5500 maxfilt = 1.0; 5501 5502 } 5503 5504 5505 5506 for (i = 0; i < numsteps; i++) 5507 { 5508 filter[i] /= maxfilt; 5509 sumfilt += filter[i]; 5510 } 5511 5512 sumfilt /= numsteps; 5513 5514 *temporal_deltas = deltas; 5515 *temporal_filter = filter; 5516 5517 return (sumfilt); 5518} 5519