45 xmlGenericError(xmlGenericErrorContext, \
46 "Unimplemented block at %s:%d\n", \
55xmlSAX2ErrMemory(xmlParserCtxtPtr ctxt,
const char *
msg) {
57 const char *
str1 =
"out of memory\n";
62 schannel = ctxt->sax->serror;
64 ctxt->vctxt.error, ctxt->vctxt.userData,
98 if ((ctxt !=
NULL) && (ctxt->disableSAX != 0) &&
104 schannel = ctxt->sax->serror;
106 ctxt->vctxt.error, ctxt->vctxt.userData,
136 if ((ctxt !=
NULL) && (ctxt->disableSAX != 0) &&
143 (
const char *)
str1, (
const char *)
str2,
146 ctxt->wellFormed = 0;
148 if (ctxt->recovery == 0)
149 ctxt->disableSAX = 1;
167 if ((ctxt !=
NULL) && (ctxt->disableSAX != 0) &&
191 if ((ctxt !=
NULL) && (ctxt->disableSAX != 0) &&
198 (
const char *)
str1, (
const char *)
str2,
229 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr)
ctx;
231 return((
const xmlChar *) ctxt->input->filename);
245 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr)
ctx;
246 if ((
ctx ==
NULL) || (ctxt->input ==
NULL))
return(0);
247 return(ctxt->input->line);
261 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr)
ctx;
262 if ((
ctx ==
NULL) || (ctxt->input ==
NULL))
return(0);
263 return(ctxt->input->col);
277 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr)
ctx;
278 if ((
ctx ==
NULL) || (ctxt->myDoc ==
NULL))
return(0);
279 return(ctxt->myDoc->standalone == 1);
293 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr)
ctx;
294 if ((ctxt ==
NULL) || (ctxt->myDoc ==
NULL))
return(0);
295 return(ctxt->myDoc->intSubset !=
NULL);
309 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr)
ctx;
310 if ((ctxt ==
NULL) || (ctxt->myDoc ==
NULL))
return(0);
311 return(ctxt->myDoc->extSubset !=
NULL);
327 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr)
ctx;
331 if (ctxt->myDoc ==
NULL)
333 dtd = xmlGetIntSubset(ctxt->myDoc);
337 xmlUnlinkNode((xmlNodePtr) dtd);
339 ctxt->myDoc->intSubset =
NULL;
341 ctxt->myDoc->intSubset =
342 xmlCreateIntSubset(ctxt->myDoc,
name, ExternalID, SystemID);
343 if (ctxt->myDoc->intSubset ==
NULL)
344 xmlSAX2ErrMemory(ctxt,
"xmlSAX2InternalSubset");
360 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr)
ctx;
362 if (((ExternalID !=
NULL) || (SystemID !=
NULL)) &&
363 (((ctxt->validate) || (ctxt->loadsubset != 0)) &&
364 (ctxt->wellFormed && ctxt->myDoc))) {
368 xmlParserInputPtr oldinput;
371 xmlParserInputPtr *oldinputTab;
381 if ((ctxt->sax !=
NULL) && (ctxt->sax->resolveEntity !=
NULL))
382 input = ctxt->sax->resolveEntity(ctxt->userData, ExternalID,
388 xmlNewDtd(ctxt->myDoc,
name, ExternalID, SystemID);
393 oldinput = ctxt->input;
394 oldinputNr = ctxt->inputNr;
395 oldinputMax = ctxt->inputMax;
396 oldinputTab = ctxt->inputTab;
397 oldencoding = ctxt->encoding;
398 oldprogressive = ctxt->progressive;
399 ctxt->encoding =
NULL;
400 ctxt->progressive = 0;
402 ctxt->inputTab = (xmlParserInputPtr *)
403 xmlMalloc(5 *
sizeof(xmlParserInputPtr));
404 if (ctxt->inputTab ==
NULL) {
405 xmlSAX2ErrMemory(ctxt,
"xmlSAX2ExternalSubset");
407 ctxt->input = oldinput;
408 ctxt->inputNr = oldinputNr;
409 ctxt->inputMax = oldinputMax;
410 ctxt->inputTab = oldinputTab;
411 ctxt->encoding = oldencoding;
412 ctxt->progressive = oldprogressive;
424 input->base = ctxt->input->cur;
425 input->cur = ctxt->input->cur;
437 while (ctxt->inputNr > 1)
441 buffered = ctxt->input->cur - ctxt->input->base;
457 ctxt->input = oldinput;
458 ctxt->inputNr = oldinputNr;
459 ctxt->inputMax = oldinputMax;
460 ctxt->inputTab = oldinputTab;
461 if ((ctxt->encoding !=
NULL) &&
462 ((ctxt->dict ==
NULL) ||
465 ctxt->encoding = oldencoding;
466 ctxt->progressive = oldprogressive;
488 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr)
ctx;
489 xmlParserInputPtr
ret;
494 if (ctxt->input !=
NULL)
495 base = ctxt->input->filename;
497 base = ctxt->directory;
502 (
const char *) publicId, ctxt);
520 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr)
ctx;
525 if (ctxt->inSubset == 0) {
530 if ((ctxt->myDoc !=
NULL) && (ctxt->myDoc->standalone == 1)) {
531 if (ctxt->inSubset == 2) {
532 ctxt->myDoc->standalone = 0;
534 ctxt->myDoc->standalone = 1;
538 ctxt->myDoc->standalone = 0;
542 "Entity(%s) document marked standalone but requires external subset\n",
545 ctxt->myDoc->standalone = 1;
566 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr)
ctx;
592 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr)
ctx;
595 if (ctxt->inSubset == 1) {
598 if ((ent ==
NULL) && (ctxt->pedantic))
600 "Entity(%s) already defined in the internal subset\n",
602 if ((ent !=
NULL) && (ent->URI ==
NULL) && (systemId !=
NULL)) {
606 if (ctxt->input !=
NULL)
607 base = ctxt->input->filename;
609 base = ctxt->directory;
614 }
else if (ctxt->inSubset == 2) {
617 if ((ent ==
NULL) && (ctxt->pedantic) &&
618 (ctxt->sax !=
NULL) && (ctxt->sax->warning !=
NULL))
619 ctxt->sax->warning(ctxt->userData,
620 "Entity(%s) already defined in the external subset\n",
name);
621 if ((ent !=
NULL) && (ent->URI ==
NULL) && (systemId !=
NULL)) {
625 if (ctxt->input !=
NULL)
626 base = ctxt->input->filename;
628 base = ctxt->directory;
635 "SAX.xmlSAX2EntityDecl(%s) called while not in subset\n",
655 xmlEnumerationPtr
tree)
657 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr)
ctx;
658 xmlAttributePtr
attr;
664 if ((ctxt ==
NULL) || (ctxt->myDoc ==
NULL))
668 (
type != XML_ATTRIBUTE_ID)) {
672 int tmp = ctxt->valid;
674 "xml:id : attribute type should be ID\n",
NULL,
NULL);
679 ctxt->vctxt.valid = 1;
680 if (ctxt->inSubset == 1)
683 (xmlAttributeDefault) def, defaultValue,
tree);
684 else if (ctxt->inSubset == 2)
687 (xmlAttributeDefault) def, defaultValue,
tree);
690 "SAX.xmlSAX2AttributeDecl(%s) called while not in subset\n",
696#ifdef LIBXML_VALID_ENABLED
697 if (ctxt->vctxt.valid == 0)
699 if ((
attr !=
NULL) && (ctxt->validate) && (ctxt->wellFormed) &&
700 (ctxt->myDoc->intSubset !=
NULL))
701 ctxt->valid &= xmlValidateAttributeDecl(&ctxt->vctxt, ctxt->myDoc,
723 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr)
ctx;
729 if ((ctxt ==
NULL) || (ctxt->myDoc ==
NULL))
732 if (ctxt->inSubset == 1)
735 else if (ctxt->inSubset == 2)
740 "SAX.xmlSAX2ElementDecl(%s) called while not in subset\n",
744#ifdef LIBXML_VALID_ENABLED
747 if (ctxt->validate && ctxt->wellFormed &&
748 ctxt->myDoc && ctxt->myDoc->intSubset)
750 xmlValidateElementDecl(&ctxt->vctxt, ctxt->myDoc,
elem);
767 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr)
ctx;
768 xmlNotationPtr nota =
NULL;
773 if ((ctxt ==
NULL) || (ctxt->myDoc ==
NULL))
776 if ((publicId ==
NULL) && (systemId ==
NULL)) {
778 "SAX.xmlSAX2NotationDecl(%s) externalID or PublicID missing\n",
781 }
else if (ctxt->inSubset == 1)
784 else if (ctxt->inSubset == 2)
789 "SAX.xmlSAX2NotationDecl(%s) called while not in subset\n",
793#ifdef LIBXML_VALID_ENABLED
794 if (nota ==
NULL) ctxt->valid = 0;
795 if ((ctxt->validate) && (ctxt->wellFormed) &&
796 (ctxt->myDoc->intSubset !=
NULL))
797 ctxt->valid &= xmlValidateNotationDecl(&ctxt->vctxt, ctxt->myDoc,
818 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr)
ctx;
820 if (ctxt->inSubset == 1) {
823 publicId, systemId, notationName);
824 if ((ent ==
NULL) && (ctxt->pedantic) &&
825 (ctxt->sax !=
NULL) && (ctxt->sax->warning !=
NULL))
826 ctxt->sax->warning(ctxt->userData,
827 "Entity(%s) already defined in the internal subset\n",
name);
828 if ((ent !=
NULL) && (ent->URI ==
NULL) && (systemId !=
NULL)) {
832 if (ctxt->input !=
NULL)
833 base = ctxt->input->filename;
835 base = ctxt->directory;
840 }
else if (ctxt->inSubset == 2) {
843 publicId, systemId, notationName);
844 if ((ent ==
NULL) && (ctxt->pedantic) &&
845 (ctxt->sax !=
NULL) && (ctxt->sax->warning !=
NULL))
846 ctxt->sax->warning(ctxt->userData,
847 "Entity(%s) already defined in the external subset\n",
name);
848 if ((ent !=
NULL) && (ent->URI ==
NULL) && (systemId !=
NULL)) {
852 if (ctxt->input !=
NULL)
853 base = ctxt->input->filename;
855 base = ctxt->directory;
862 "SAX.xmlSAX2UnparsedEntityDecl(%s) called while not in subset\n",
889 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr)
ctx;
895#ifdef LIBXML_HTML_ENABLED
896 if (ctxt->myDoc ==
NULL)
897 ctxt->myDoc = htmlNewDocNoDtD(
NULL,
NULL);
898 if (ctxt->myDoc ==
NULL) {
899 xmlSAX2ErrMemory(ctxt,
"xmlSAX2StartDocument");
902 ctxt->myDoc->properties = XML_DOC_HTML;
903 ctxt->myDoc->parseFlags = ctxt->options;
906 "libxml2 built without HTML support\n");
909 ctxt->disableSAX = 1;
913 doc = ctxt->myDoc = xmlNewDoc(ctxt->version);
917 doc->properties |= XML_DOC_OLD10;
918 doc->parseFlags = ctxt->options;
919 doc->standalone = ctxt->standalone;
921 xmlSAX2ErrMemory(ctxt,
"xmlSAX2StartDocument");
924 if ((ctxt->dictNames) && (doc !=
NULL)) {
925 doc->dict = ctxt->dict;
929 if ((ctxt->myDoc !=
NULL) && (ctxt->myDoc->URL ==
NULL) &&
930 (ctxt->input !=
NULL) && (ctxt->input->filename !=
NULL)) {
932 if (ctxt->myDoc->URL ==
NULL)
933 xmlSAX2ErrMemory(ctxt,
"xmlSAX2StartDocument");
946 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr)
ctx;
950#ifdef LIBXML_VALID_ENABLED
951 if (ctxt->validate && ctxt->wellFormed &&
952 ctxt->myDoc && ctxt->myDoc->intSubset)
953 ctxt->valid &= xmlValidateDocumentFinal(&ctxt->vctxt, ctxt->myDoc);
957 if ((doc !=
NULL) && (doc->encoding ==
NULL)) {
960 if (encoding !=
NULL) {
962 if (doc->encoding ==
NULL)
963 xmlSAX2ErrMemory(ctxt,
"xmlSAX2EndDocument");
968#if defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_LEGACY_ENABLED)
983 if ((ctxt !=
NULL) && (ctxt->disableSAX != 0) &&
990 (
const char *)
str1, (
const char *)
str2,
1010 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr)
ctx;
1029 "invalid namespace declaration '%s'\n",
1033 "Avoid attribute ending with ':' like '%s'\n",
1044 xmlSAX2ErrMemory(ctxt,
"xmlSAX2StartElement");
1050#ifdef LIBXML_HTML_ENABLED
1058#ifdef LIBXML_VALID_ENABLED
1064 ctxt->vctxt.valid = 1;
1065 nval = xmlValidCtxtNormalizeAttributeValue(&ctxt->vctxt,
1066 ctxt->myDoc, ctxt->node,
1068 if (ctxt->vctxt.valid != 1) {
1081 if ((!ctxt->html) && (
ns ==
NULL) &&
1082 (
name[0] ==
'x') && (
name[1] ==
'm') && (
name[2] ==
'l') &&
1083 (
name[3] ==
'n') && (
name[4] ==
's') && (
name[5] == 0)) {
1090 if (!ctxt->replaceEntities) {
1096 xmlSAX2ErrMemory(ctxt,
"xmlSAX2StartElement");
1112 if ((ctxt->sax !=
NULL) && (ctxt->sax->warning !=
NULL))
1113 ctxt->sax->warning(ctxt->userData,
1114 "xmlns: %s not a valid URI\n",
val);
1117 if ((ctxt->sax !=
NULL) && (ctxt->sax->warning !=
NULL))
1118 ctxt->sax->warning(ctxt->userData,
1119 "xmlns: URI %s is not absolute\n",
val);
1126 nsret = xmlNewNs(ctxt->node,
val,
NULL);
1128#ifdef LIBXML_VALID_ENABLED
1133 if (nsret !=
NULL && ctxt->validate && ctxt->wellFormed &&
1134 ctxt->myDoc && ctxt->myDoc->intSubset)
1135 ctxt->valid &= xmlValidateOneNamespace(&ctxt->vctxt, ctxt->myDoc,
1146 if ((!ctxt->html) &&
1147 (
ns !=
NULL) && (
ns[0] ==
'x') && (
ns[1] ==
'm') && (
ns[2] ==
'l') &&
1148 (
ns[3] ==
'n') && (
ns[4] ==
's') && (
ns[5] == 0)) {
1155 if (!ctxt->replaceEntities) {
1161 xmlSAX2ErrMemory(ctxt,
"xmlSAX2StartElement");
1175 "Empty namespace name for prefix %s\n",
name,
NULL);
1177 if ((ctxt->pedantic != 0) && (
val[0] != 0)) {
1183 "xmlns:%s: %s not a valid URI\n",
name,
value);
1187 "xmlns:%s: URI %s is not absolute\n",
name,
value);
1194 nsret = xmlNewNs(ctxt->node,
val,
name);
1196#ifdef LIBXML_VALID_ENABLED
1201 if (nsret !=
NULL && ctxt->validate && ctxt->wellFormed &&
1202 ctxt->myDoc && ctxt->myDoc->intSubset)
1203 ctxt->valid &= xmlValidateOneNamespace(&ctxt->vctxt, ctxt->myDoc,
1216 namespace = xmlSearchNs(ctxt->myDoc, ctxt->
node,
ns);
1218 if (
namespace ==
NULL) {
1220 "Namespace prefix %s of attribute %s is not defined\n",
1225 prop = ctxt->node->properties;
1226 while (prop !=
NULL) {
1227 if (prop->ns !=
NULL) {
1229 ((
namespace == prop->ns) ||
1232 "Attribute %s in %s redefined\n",
1234 ctxt->wellFormed = 0;
1235 if (ctxt->recovery == 0) ctxt->disableSAX = 1;
1249 ret = xmlNewNsPropEatName(ctxt->node,
namespace,
name,
NULL);
1253 if ((ctxt->replaceEntities == 0) && (!ctxt->html)) {
1256 ret->children = xmlStringGetNodeList(ctxt->myDoc,
value);
1257 tmp =
ret->children;
1258 while (tmp !=
NULL) {
1259 tmp->parent = (xmlNodePtr)
ret;
1260 if (tmp->next ==
NULL)
1265 ret->children = xmlNewDocText(ctxt->myDoc,
value);
1266 ret->last =
ret->children;
1268 ret->children->parent = (xmlNodePtr)
ret;
1271#ifdef LIBXML_VALID_ENABLED
1272 if ((!ctxt->html) && ctxt->validate && ctxt->wellFormed &&
1273 ctxt->myDoc && ctxt->myDoc->intSubset) {
1279 if (!ctxt->replaceEntities) {
1288 ctxt->valid &= xmlValidateOneAttribute(&ctxt->vctxt,
1289 ctxt->myDoc, ctxt->node,
ret,
value);
1298 nvalnorm = xmlValidNormalizeAttributeValue(ctxt->myDoc,
1300 if (nvalnorm !=
NULL) {
1305 ctxt->valid &= xmlValidateOneAttribute(&ctxt->vctxt,
1306 ctxt->myDoc, ctxt->node,
ret,
val);
1310 ctxt->valid &= xmlValidateOneAttribute(&ctxt->vctxt, ctxt->myDoc,
1316 (((ctxt->replaceEntities == 0) && (ctxt->external != 2)) ||
1317 ((ctxt->replaceEntities != 0) && (ctxt->inSubset == 0))) &&
1320 (
ret->children->type == XML_TEXT_NODE) &&
1321 (
ret->children->next ==
NULL)) {
1333 if (xmlValidateNCName(
content, 1) != 0) {
1335 "xml:id : attribute value %s is not an NCName\n",
1339 }
else if (
xmlIsID(ctxt->myDoc, ctxt->node,
ret))
1358xmlCheckDefaultedAttributes(xmlParserCtxtPtr ctxt,
const xmlChar *
name,
1360 xmlElementPtr elemDecl;
1366 if (elemDecl ==
NULL) {
1371process_external_subset:
1373 if (elemDecl !=
NULL) {
1374 xmlAttributePtr
attr = elemDecl->attributes;
1379 if ((ctxt->myDoc->standalone == 1) &&
1380 (ctxt->myDoc->extSubset !=
NULL) &&
1383 if ((
attr->defaultValue !=
NULL) &&
1399 if (fulln ==
NULL) {
1400 xmlSAX2ErrMemory(ctxt,
"xmlSAX2StartElement");
1412 while (att !=
NULL) {
1421 "standalone: attribute %s on %s defaulted from external subset\n",
1422 (
const char *)fulln,
1423 (
const char *)
attr->elem);
1434 attr = elemDecl->attributes;
1455 xmlAttributePtr tst;
1460 if ((tst ==
attr) || (tst ==
NULL)) {
1465 if (fulln ==
NULL) {
1466 xmlSAX2ErrMemory(ctxt,
"xmlSAX2StartElement");
1478 while (att !=
NULL) {
1486 xmlSAX2AttributeInternal(ctxt, fulln,
1500 goto process_external_subset;
1516 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr)
ctx;
1531 if (ctxt->validate && (ctxt->myDoc->extSubset ==
NULL) &&
1532 ((ctxt->myDoc->intSubset ==
NULL) ||
1533 ((ctxt->myDoc->intSubset->notations ==
NULL) &&
1534 (ctxt->myDoc->intSubset->elements ==
NULL) &&
1535 (ctxt->myDoc->intSubset->attributes ==
NULL) &&
1536 (ctxt->myDoc->intSubset->entities ==
NULL)))) {
1538 "Validation failed: no DTD found !",
NULL,
NULL);
1561 xmlSAX2ErrMemory(ctxt,
"xmlSAX2StartElement");
1565 if (ctxt->linenumbers) {
1566 if (ctxt->input !=
NULL) {
1567 if ((
unsigned) ctxt->input->line < (
unsigned)
USHRT_MAX)
1568 ret->line = ctxt->input->line;
1577 parent = (xmlNodePtr) ctxt->myDoc;
1600 if ((ctxt->myDoc->intSubset !=
NULL) ||
1601 (ctxt->myDoc->extSubset !=
NULL)) {
1613 if ((att[0] ==
'x') && (att[1] ==
'm') && (att[2] ==
'l') &&
1614 (att[3] ==
'n') && (att[4] ==
's'))
1615 xmlSAX2AttributeInternal(ctxt, att,
value,
prefix);
1632 "Namespace prefix %s is not defined\n",
1653 while (att !=
NULL) {
1654 xmlSAX2AttributeInternal(ctxt, att,
value,
NULL);
1660 if ((att[0] !=
'x') || (att[1] !=
'm') || (att[2] !=
'l') ||
1661 (att[3] !=
'n') || (att[4] !=
's'))
1662 xmlSAX2AttributeInternal(ctxt, att,
value,
NULL);
1673#ifdef LIBXML_VALID_ENABLED
1678 if ((ctxt->validate) &&
1682 chk = xmlValidateDtdFinal(&ctxt->vctxt, ctxt->myDoc);
1686 ctxt->wellFormed = 0;
1687 ctxt->valid &= xmlValidateRoot(&ctxt->vctxt, ctxt->myDoc);
1707 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr)
ctx;
1713#ifdef LIBXML_VALID_ENABLED
1714 if (ctxt->validate && ctxt->wellFormed &&
1715 ctxt->myDoc && ctxt->myDoc->intSubset)
1716 ctxt->valid &= xmlValidateOneElement(&ctxt->vctxt, ctxt->myDoc,
1746 if (ctxt->freeElems !=
NULL) {
1747 ret = ctxt->freeElems;
1748 ctxt->freeElems =
ret->next;
1749 ctxt->freeElemsNr--;
1762 if (ctxt->dictNames) {
1765 if ((
len < (
int) (2 *
sizeof(
void *))) &&
1772 }
else if ((
len <= 3) && ((
cur ==
'"') || (
cur ==
'\'') ||
1773 ((
cur ==
'<') && (
str[
len + 1] !=
'!')))) {
1779 for (
i = 1;
i <
len;
i++) {
1786 ret->type = XML_TEXT_NODE;
1789 if (intern ==
NULL) {
1792 xmlSAX2ErrMemory(ctxt,
"xmlSAX2TextNode");
1804#ifdef LIBXML_VALID_ENABLED
1816xmlSAX2DecodeAttrEntities(xmlParserCtxtPtr ctxt,
const xmlChar *
str,
1859 xmlNsPtr
namespace =
NULL;
1868 namespace = xmlSearchNs(ctxt->myDoc, ctxt->
node,
prefix);
1875 if (ctxt->freeAttrs !=
NULL) {
1876 ret = ctxt->freeAttrs;
1877 ctxt->freeAttrs =
ret->next;
1878 ctxt->freeAttrsNr--;
1882 xmlSAX2ErrMemory(ctxt,
NULL);
1888 ret->type = XML_ATTRIBUTE_NODE;
1899 ret->parent = ctxt->node;
1900 ret->doc = ctxt->node->doc;
1901 ret->ns =
namespace;
1903 if (ctxt->dictNames)
1904 ret->name = localname;
1911 if ((ctxt->replaceEntities == 0) && (!ctxt->html)) {
1919 if (*valueend != 0) {
1921 ret->children = tmp;
1924 tmp->doc =
ret->doc;
1925 tmp->parent = (xmlNodePtr)
ret;
1928 ret->children = xmlStringLenGetNodeList(ctxt->myDoc,
value,
1930 tmp =
ret->children;
1931 while (tmp !=
NULL) {
1932 tmp->doc =
ret->doc;
1933 tmp->parent = (xmlNodePtr)
ret;
1934 if (tmp->next ==
NULL)
1943 ret->children = tmp;
1946 tmp->doc =
ret->doc;
1947 tmp->parent = (xmlNodePtr)
ret;
1951#ifdef LIBXML_VALID_ENABLED
1952 if ((!ctxt->html) && ctxt->validate && ctxt->wellFormed &&
1953 ctxt->myDoc && ctxt->myDoc->intSubset) {
1958 if (!ctxt->replaceEntities) {
1959 dup = xmlSAX2DecodeAttrEntities(ctxt,
value, valueend);
1961 if (*valueend == 0) {
1962 ctxt->valid &= xmlValidateOneAttribute(&ctxt->vctxt,
1963 ctxt->myDoc, ctxt->node,
ret,
value);
1972 ctxt->valid &= xmlValidateOneAttribute(&ctxt->vctxt,
1973 ctxt->myDoc, ctxt->node,
ret,
dup);
1983 if (ctxt->attsSpecial !=
NULL) {
1990 ctxt->vctxt.valid = 1;
1991 nvalnorm = xmlValidCtxtNormalizeAttributeValue(
1992 &ctxt->vctxt, ctxt->myDoc,
1994 if (ctxt->vctxt.valid != 1)
1999 if (nvalnorm !=
NULL) {
2006 ctxt->valid &= xmlValidateOneAttribute(&ctxt->vctxt,
2007 ctxt->myDoc, ctxt->node,
ret,
dup);
2016 ctxt->valid &= xmlValidateOneAttribute(&ctxt->vctxt,
2017 ctxt->myDoc, ctxt->node,
ret,
dup);
2022 (((ctxt->replaceEntities == 0) && (ctxt->external != 2)) ||
2023 ((ctxt->replaceEntities != 0) && (ctxt->inSubset == 0))) &&
2026 (
ret->children->type == XML_TEXT_NODE) &&
2027 (
ret->children->next ==
NULL)) {
2033 if ((
prefix == ctxt->str_xml) &&
2034 (localname[0] ==
'i') && (localname[1] ==
'd') &&
2035 (localname[2] == 0)) {
2041 if (xmlValidateNCName(
content, 1) != 0) {
2043 "xml:id : attribute value %s is not an NCName\n",
2047 }
else if (
xmlIsID(ctxt->myDoc, ctxt->node,
ret)) {
2049 }
else if (
xmlIsRef(ctxt->myDoc, ctxt->node,
ret)) {
2087 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr)
ctx;
2099 if (ctxt->validate && (ctxt->myDoc->extSubset ==
NULL) &&
2100 ((ctxt->myDoc->intSubset ==
NULL) ||
2101 ((ctxt->myDoc->intSubset->notations ==
NULL) &&
2102 (ctxt->myDoc->intSubset->elements ==
NULL) &&
2103 (ctxt->myDoc->intSubset->attributes ==
NULL) &&
2104 (ctxt->myDoc->intSubset->entities ==
NULL)))) {
2106 "Validation failed: no DTD found !",
NULL,
NULL);
2114 if (ctxt->dictNames) {
2121 lname = xmlBuildQName(localname,
prefix,
NULL, 0);
2127 if (ctxt->freeElems !=
NULL) {
2128 ret = ctxt->freeElems;
2129 ctxt->freeElems =
ret->next;
2130 ctxt->freeElemsNr--;
2132 ret->doc = ctxt->myDoc;
2133 ret->type = XML_ELEMENT_NODE;
2135 if (ctxt->dictNames)
2136 ret->name = localname;
2143 xmlSAX2ErrMemory(ctxt,
"xmlSAX2StartElementNs");
2151 if (ctxt->dictNames)
2152 ret = xmlNewDocNodeEatName(ctxt->myDoc,
NULL,
2154 else if (lname ==
NULL)
2155 ret = xmlNewDocNode(ctxt->myDoc,
NULL, localname,
NULL);
2157 ret = xmlNewDocNodeEatName(ctxt->myDoc,
NULL,
2160 xmlSAX2ErrMemory(ctxt,
"xmlSAX2StartElementNs");
2164 if (ctxt->linenumbers) {
2165 if (ctxt->input !=
NULL) {
2166 if ((
unsigned) ctxt->input->line < (
unsigned)
USHRT_MAX)
2167 ret->line = ctxt->input->line;
2176 for (
i = 0,
j = 0;
j < nb_namespaces;
j++) {
2177 pref = namespaces[
i++];
2178 uri = namespaces[
i++];
2200#ifdef LIBXML_VALID_ENABLED
2201 if ((!ctxt->html) && ctxt->validate && ctxt->wellFormed &&
2202 ctxt->myDoc && ctxt->myDoc->intSubset) {
2203 ctxt->valid &= xmlValidateOneNamespace(&ctxt->vctxt, ctxt->myDoc,
2213 parent = (xmlNodePtr) ctxt->myDoc;
2232 if ((nb_defaulted != 0) &&
2234 nb_attributes -= nb_defaulted;
2249 xmlSAX2ErrMemory(ctxt,
"xmlSAX2StartElementNs");
2254 "Namespace prefix %s was not found\n",
2258 "Namespace default prefix was not found\n",
2266 if (nb_attributes > 0) {
2267 xmlAttrPtr prev =
NULL;
2269 for (
j = 0,
i = 0;
i < nb_attributes;
i++,
j+=5) {
2275 if ((attributes[
j+1] !=
NULL) && (attributes[
j+2] ==
NULL)) {
2276 if (ctxt->dictNames) {
2288 lname = xmlBuildQName(attributes[
j], attributes[
j+1],
2290 if (lname !=
NULL) {
2300 attributes[
j+3], attributes[
j+4]);
2307 ctxt->node->properties =
attr;
2317#ifdef LIBXML_VALID_ENABLED
2322 if ((ctxt->validate) &&
2326 chk = xmlValidateDtdFinal(&ctxt->vctxt, ctxt->myDoc);
2330 ctxt->wellFormed = 0;
2331 ctxt->valid &= xmlValidateRoot(&ctxt->vctxt, ctxt->myDoc);
2353 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr)
ctx;
2358#ifdef LIBXML_VALID_ENABLED
2359 if (ctxt->validate && ctxt->wellFormed &&
2360 ctxt->myDoc && ctxt->myDoc->intSubset)
2361 ctxt->valid &= xmlValidateOneElement(&ctxt->vctxt, ctxt->myDoc,
2381 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr)
ctx;
2385 ret = xmlNewReference(ctxt->myDoc,
name);
2386 if (xmlAddChild(ctxt->node,
ret) ==
NULL) {
2402 xmlElementType
type)
2404 xmlNodePtr lastChild;
2406 if (ctxt ==
NULL)
return;
2413 if (ctxt->node ==
NULL) {
2416 lastChild = ctxt->node->last;
2422 if (lastChild ==
NULL) {
2423 if (
type == XML_TEXT_NODE)
2426 lastChild = xmlNewCDataBlock(ctxt->myDoc,
ch,
len);
2427 if (lastChild !=
NULL) {
2428 ctxt->node->children = lastChild;
2429 ctxt->node->last = lastChild;
2430 lastChild->parent = ctxt->node;
2431 lastChild->doc = ctxt->node->doc;
2432 ctxt->nodelen =
len;
2433 ctxt->nodemem =
len + 1;
2435 xmlSAX2ErrMemory(ctxt,
"xmlSAX2Characters");
2439 int coalesceText = (lastChild !=
NULL) &&
2440 (lastChild->type ==
type) &&
2441 ((
type != XML_TEXT_NODE) ||
2443 if ((coalesceText) && (ctxt->nodemem != 0)) {
2451 if (lastChild->content == (
xmlChar *)&(lastChild->properties)) {
2452 lastChild->content =
xmlStrdup(lastChild->content);
2453 lastChild->properties =
NULL;
2454 }
else if ((ctxt->nodemem == ctxt->nodelen + 1) &&
2456 lastChild->content =
xmlStrdup(lastChild->content);
2458 if (lastChild->content ==
NULL) {
2459 xmlSAX2ErrMemory(ctxt,
"xmlSAX2Characters: xmlStrdup returned NULL");
2463 xmlSAX2ErrMemory(ctxt,
"xmlSAX2Characters overflow prevented");
2468 xmlSAX2ErrMemory(ctxt,
"xmlSAX2Characters: huge text node");
2471 if (ctxt->nodelen +
len >= ctxt->nodemem) {
2477 ctxt->nodemem +
len;
2480 if (newbuf ==
NULL) {
2481 xmlSAX2ErrMemory(ctxt,
"xmlSAX2Characters");
2484 ctxt->nodemem =
size;
2485 lastChild->content = newbuf;
2487 memcpy(&lastChild->content[ctxt->nodelen],
ch,
len);
2488 ctxt->nodelen +=
len;
2489 lastChild->content[ctxt->nodelen] = 0;
2490 }
else if (coalesceText) {
2491 if (xmlTextConcat(lastChild,
ch,
len)) {
2492 xmlSAX2ErrMemory(ctxt,
"xmlSAX2Characters");
2494 if (ctxt->node->children !=
NULL) {
2495 ctxt->nodelen =
xmlStrlen(lastChild->content);
2496 ctxt->nodemem = ctxt->nodelen + 1;
2500 if (
type == XML_TEXT_NODE) {
2502 if (lastChild !=
NULL)
2503 lastChild->doc = ctxt->myDoc;
2505 lastChild = xmlNewCDataBlock(ctxt->myDoc,
ch,
len);
2506 if (lastChild !=
NULL) {
2507 xmlAddChild(ctxt->node, lastChild);
2508 if (ctxt->node->children !=
NULL) {
2509 ctxt->nodelen =
len;
2510 ctxt->nodemem =
len + 1;
2516 if ((lastChild !=
NULL) &&
2517 (
type == XML_TEXT_NODE) &&
2518 (ctxt->linenumbers) &&
2519 (ctxt->input !=
NULL)) {
2520 if ((
unsigned) ctxt->input->line < (
unsigned)
USHRT_MAX)
2521 lastChild->line = ctxt->input->line;
2525 lastChild->psvi = (
void *) (
ptrdiff_t) ctxt->input->line;
2570 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr)
ctx;
2580 if (ctxt->linenumbers) {
2581 if (ctxt->input !=
NULL) {
2582 if ((
unsigned) ctxt->input->line < (
unsigned)
USHRT_MAX)
2583 ret->line = ctxt->input->line;
2588 if (ctxt->inSubset == 1) {
2589 xmlAddChild((xmlNodePtr) ctxt->myDoc->intSubset,
ret);
2591 }
else if (ctxt->inSubset == 2) {
2592 xmlAddChild((xmlNodePtr) ctxt->myDoc->extSubset,
ret);
2596 xmlAddChild((xmlNodePtr) ctxt->myDoc, (xmlNodePtr)
ret);
2599 if (
parent->type == XML_ELEMENT_NODE) {
2616 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr)
ctx;
2622 ret = xmlNewDocComment(ctxt->myDoc,
value);
2624 if (ctxt->linenumbers) {
2625 if (ctxt->input !=
NULL) {
2626 if ((
unsigned) ctxt->input->line < (
unsigned)
USHRT_MAX)
2627 ret->line = ctxt->input->line;
2633 if (ctxt->inSubset == 1) {
2634 xmlAddChild((xmlNodePtr) ctxt->myDoc->intSubset,
ret);
2636 }
else if (ctxt->inSubset == 2) {
2637 xmlAddChild((xmlNodePtr) ctxt->myDoc->extSubset,
ret);
2641 xmlAddChild((xmlNodePtr) ctxt->myDoc, (xmlNodePtr)
ret);
2644 if (
parent->type == XML_ELEMENT_NODE) {
2667#ifdef LIBXML_SAX1_ENABLED
2683xmlSAXDefaultVersion(
int version)
2706 if (hdlr ==
NULL)
return(-1);
2710 hdlr->serror =
NULL;
2712#ifdef LIBXML_SAX1_ENABLED
2714 hdlr->initialized = 1;
2718#ifdef LIBXML_SAX1_ENABLED
2719 hdlr->startElement = xmlSAX2StartElement;
2720 hdlr->endElement = xmlSAX2EndElement;
2722 hdlr->startElement =
NULL;
2723 hdlr->endElement =
NULL;
2764 if ((hdlr ==
NULL) || (hdlr->initialized != 0))
2769 hdlr->warning =
NULL;
2787#ifdef LIBXML_HTML_ENABLED
2796xmlSAX2InitHtmlDefaultSAXHandler(xmlSAXHandler *hdlr)
2798 if ((hdlr ==
NULL) || (hdlr->initialized != 0))
2802 hdlr->externalSubset =
NULL;
2803 hdlr->isStandalone =
NULL;
2804 hdlr->hasInternalSubset =
NULL;
2805 hdlr->hasExternalSubset =
NULL;
2806 hdlr->resolveEntity =
NULL;
2808 hdlr->getParameterEntity =
NULL;
2809 hdlr->entityDecl =
NULL;
2810 hdlr->attributeDecl =
NULL;
2811 hdlr->elementDecl =
NULL;
2812 hdlr->notationDecl =
NULL;
2813 hdlr->unparsedEntityDecl =
NULL;
2817 hdlr->startElement = xmlSAX2StartElement;
2818 hdlr->endElement = xmlSAX2EndElement;
2819 hdlr->reference =
NULL;
2829 hdlr->initialized = 1;
2839htmlDefaultSAXHandlerInit(
void)
int xmlSAX2HasInternalSubset(void *ctx)
void xmlSAX2IgnorableWhitespace(void *ctx ATTRIBUTE_UNUSED, const xmlChar *ch ATTRIBUTE_UNUSED, int len ATTRIBUTE_UNUSED)
int xmlSAXVersion(xmlSAXHandler *hdlr, int version)
int xmlSAX2GetLineNumber(void *ctx)
const xmlChar * xmlSAX2GetPublicId(void *ctx ATTRIBUTE_UNUSED)
void xmlSAX2NotationDecl(void *ctx, const xmlChar *name, const xmlChar *publicId, const xmlChar *systemId)
void xmlSAX2ExternalSubset(void *ctx, const xmlChar *name, const xmlChar *ExternalID, const xmlChar *SystemID)
xmlParserInputPtr xmlSAX2ResolveEntity(void *ctx, const xmlChar *publicId, const xmlChar *systemId)
void xmlSAX2InitDefaultSAXHandler(xmlSAXHandler *hdlr, int warning)
void xmlSAX2UnparsedEntityDecl(void *ctx, const xmlChar *name, const xmlChar *publicId, const xmlChar *systemId, const xmlChar *notationName)
xmlEntityPtr xmlSAX2GetParameterEntity(void *ctx, const xmlChar *name)
void xmlSAX2EndDocument(void *ctx)
void xmlSAX2EntityDecl(void *ctx, const xmlChar *name, int type, const xmlChar *publicId, const xmlChar *systemId, xmlChar *content)
void xmlSAX2Comment(void *ctx, const xmlChar *value)
void xmlSAX2CDataBlock(void *ctx, const xmlChar *value, int len)
int xmlSAX2HasExternalSubset(void *ctx)
static int xmlSAX2DefaultVersionValue
const xmlChar * xmlSAX2GetSystemId(void *ctx)
void xmlDefaultSAXHandlerInit(void)
int xmlSAX2GetColumnNumber(void *ctx)
void xmlSAX2InternalSubset(void *ctx, const xmlChar *name, const xmlChar *ExternalID, const xmlChar *SystemID)
void xmlSAX2SetDocumentLocator(void *ctx ATTRIBUTE_UNUSED, xmlSAXLocatorPtr loc ATTRIBUTE_UNUSED)
void xmlSAX2ElementDecl(void *ctx, const xmlChar *name, int type, xmlElementContentPtr content)
void xmlSAX2StartElementNs(void *ctx, const xmlChar *localname, const xmlChar *prefix, const xmlChar *URI, int nb_namespaces, const xmlChar **namespaces, int nb_attributes, int nb_defaulted, const xmlChar **attributes)
void xmlSAX2StartDocument(void *ctx)
static void xmlSAX2Text(xmlParserCtxtPtr ctxt, const xmlChar *ch, int len, xmlElementType type)
void xmlSAX2Characters(void *ctx, const xmlChar *ch, int len)
static xmlAttrPtr xmlSAX2AttributeNs(xmlParserCtxtPtr ctxt, const xmlChar *localname, const xmlChar *prefix, const xmlChar *value, const xmlChar *valueend)
static xmlNodePtr xmlSAX2TextNode(xmlParserCtxtPtr ctxt, const xmlChar *str, int len)
xmlEntityPtr xmlSAX2GetEntity(void *ctx, const xmlChar *name)
void xmlSAX2Reference(void *ctx, const xmlChar *name)
void xmlSAX2ProcessingInstruction(void *ctx, const xmlChar *target, const xmlChar *data)
void xmlSAX2EndElementNs(void *ctx, const xmlChar *localname ATTRIBUTE_UNUSED, const xmlChar *prefix ATTRIBUTE_UNUSED, const xmlChar *URI ATTRIBUTE_UNUSED)
void xmlSAX2AttributeDecl(void *ctx, const xmlChar *elem, const xmlChar *fullname, int type, int def, const xmlChar *defaultValue, xmlEnumerationPtr tree)
int xmlSAX2IsStandalone(void *ctx)
ios_base &_STLP_CALL internal(ios_base &__s)
static BYTE decode(char c)
_In_ uint16_t _Out_ ULONG * atts
static const WCHAR version[]
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLenum GLenum GLenum input
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
XMLPUBFUN xmlEntityPtr xmlAddDocEntity(xmlDocPtr doc, const xmlChar *name, int type, const xmlChar *ExternalID, const xmlChar *SystemID, const xmlChar *content)
XMLPUBFUN xmlEntityPtr xmlGetDocEntity(const xmlDoc *doc, const xmlChar *name)
XMLPUBFUN xmlEntityPtr xmlGetPredefinedEntity(const xmlChar *name)
@ XML_EXTERNAL_GENERAL_UNPARSED_ENTITY
XMLPUBFUN xmlEntityPtr xmlAddDtdEntity(xmlDocPtr doc, const xmlChar *name, int type, const xmlChar *ExternalID, const xmlChar *SystemID, const xmlChar *content)
XMLPUBFUN xmlEntityPtr xmlGetParameterEntity(xmlDocPtr doc, const xmlChar *name)
#define memcpy(s1, s2, n)
XMLPUBFUN xmlChar xmlPopInput(xmlParserCtxtPtr ctxt)
#define XML_MAX_TEXT_LENGTH
#define XML_SUBSTITUTE_REF
XML_DEPRECATED XMLPUBFUN xmlNodePtr nodePop(xmlParserCtxtPtr ctxt)
XMLPUBFUN void xmlParseExternalSubset(xmlParserCtxtPtr ctxt, const xmlChar *ExternalID, const xmlChar *SystemID)
XMLPUBFUN int xmlPushInput(xmlParserCtxtPtr ctxt, xmlParserInputPtr input)
XMLPUBFUN xmlChar * xmlSplitQName(xmlParserCtxtPtr ctxt, const xmlChar *name, xmlChar **prefix)
XMLPUBFUN void xmlFreeInputStream(xmlParserInputPtr input)
XML_DEPRECATED XMLPUBFUN int nodePush(xmlParserCtxtPtr ctxt, xmlNodePtr value)
XML_DEPRECATED XMLPUBFUN xmlChar * xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len, int what, xmlChar end, xmlChar end2, xmlChar end3)
XMLPUBVAR const xmlChar xmlStringText[]
XML_DEPRECATED XMLPUBFUN xmlChar * xmlStringDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int what, xmlChar end, xmlChar end2, xmlChar end3)
int xmlDictOwns(xmlDictPtr dict, const xmlChar *str)
int xmlDictReference(xmlDictPtr dict)
const xmlChar * xmlDictQLookup(xmlDictPtr dict, const xmlChar *prefix, const xmlChar *name)
const xmlChar * xmlDictLookup(xmlDictPtr dict, const xmlChar *name, int len)
void * xmlGenericErrorContext
xmlReallocFunc xmlRealloc
xmlRegisterNodeFunc xmlRegisterNodeDefaultValue
xmlGenericErrorFunc xmlGenericError
XMLPUBFUN xmlParserInputPtr xmlLoadExternalEntity(const char *URL, const char *ID, xmlParserCtxtPtr ctxt)
#define XML_COMPLETE_ATTRS
XML_HIDDEN void __xmlRaiseError(xmlStructuredErrorFunc schannel, xmlGenericErrorFunc channel, void *data, void *ctx, void *nod, int domain, int code, xmlErrorLevel level, const char *file, int line, const char *str1, const char *str2, const char *str3, int int1, int col, const char *msg,...) LIBXML_ATTR_FORMAT(16
#define XML_VCTXT_DTD_VALIDATED
XML_HIDDEN void xmlParserErrors const char const xmlChar const xmlChar * str2
XML_HIDDEN void xmlErrMemory(xmlParserCtxtPtr ctxt, const char *extra)
XML_HIDDEN const xmlChar * xmlGetActualEncoding(xmlParserCtxtPtr ctxt)
XML_HIDDEN int xmlParserNsUpdateSax(xmlParserCtxtPtr ctxt, const xmlChar *prefix, void *saxData)
XML_HIDDEN void * xmlParserNsLookupSax(xmlParserCtxtPtr ctxt, const xmlChar *prefix)
XML_HIDDEN void xmlParserErrors const char const xmlChar * str1
XML_HIDDEN int __xmlRegisterCallbacks
Character const *const prefix
XMLPUBFUN xmlChar * xmlBuildURI(const xmlChar *URI, const xmlChar *base)
XMLPUBFUN void xmlFreeURI(xmlURIPtr uri)
XMLPUBFUN xmlURIPtr xmlParseURI(const char *str)
XMLPUBFUN xmlChar * xmlCanonicPath(const xmlChar *path)
XMLPUBFUN xmlChar * xmlPathToURI(const xmlChar *path)
XMLPUBFUN xmlElementPtr xmlGetDtdQElementDesc(xmlDtdPtr dtd, const xmlChar *name, const xmlChar *prefix)
XMLPUBFUN void xmlFreeEnumeration(xmlEnumerationPtr cur)
XMLPUBFUN xmlNotationPtr xmlAddNotationDecl(xmlValidCtxtPtr ctxt, xmlDtdPtr dtd, const xmlChar *name, const xmlChar *PublicID, const xmlChar *SystemID)
XMLPUBFUN xmlElementPtr xmlAddElementDecl(xmlValidCtxtPtr ctxt, xmlDtdPtr dtd, const xmlChar *name, xmlElementTypeVal type, xmlElementContentPtr content)
XMLPUBFUN xmlIDPtr xmlAddID(xmlValidCtxtPtr ctxt, xmlDocPtr doc, const xmlChar *value, xmlAttrPtr attr)
XMLPUBFUN xmlAttributePtr xmlGetDtdQAttrDesc(xmlDtdPtr dtd, const xmlChar *elem, const xmlChar *name, const xmlChar *prefix)
XML_DEPRECATED XMLPUBFUN int xmlIsRef(xmlDocPtr doc, xmlNodePtr elem, xmlAttrPtr attr)
XMLPUBFUN int xmlIsID(xmlDocPtr doc, xmlNodePtr elem, xmlAttrPtr attr)
XMLPUBFUN xmlAttributePtr xmlAddAttributeDecl(xmlValidCtxtPtr ctxt, xmlDtdPtr dtd, const xmlChar *elem, const xmlChar *name, const xmlChar *ns, xmlAttributeType type, xmlAttributeDefault def, const xmlChar *defaultValue, xmlEnumerationPtr tree)
XML_DEPRECATED XMLPUBFUN xmlRefPtr xmlAddRef(xmlValidCtxtPtr ctxt, xmlDocPtr doc, const xmlChar *value, xmlAttrPtr attr)
static GLenum _GLUfuncptr fn
XMLPUBFUN void xmlParserError(void *ctx, const char *msg,...) LIBXML_ATTR_FORMAT(2
void(*) typedef void(* xmlStructuredErrorFunc)(void *userData, const xmlError *error)
XMLPUBFUN void XMLPUBFUN void xmlParserWarning(void *ctx, const char *msg,...) LIBXML_ATTR_FORMAT(2
@ XML_DTD_STANDALONE_DEFAULTED
@ XML_NS_ERR_UNDEFINED_NAMESPACE
@ XML_ERR_ATTRIBUTE_REDEFINED
@ XML_ERR_NOTATION_PROCESSING
@ XML_WAR_ENTITY_REDEFINED
@ XML_WAR_NS_URI_RELATIVE
@ XML_ERR_ENTITY_PROCESSING
XMLPUBFUN xmlChar * xmlStrndup(const xmlChar *cur, int len)
XMLPUBFUN int xmlStrlen(const xmlChar *str)
XMLPUBFUN xmlChar * xmlStrcat(xmlChar *cur, const xmlChar *add)
XMLPUBFUN int xmlStrEqual(const xmlChar *str1, const xmlChar *str2)
XMLPUBFUN xmlChar * xmlStrdup(const xmlChar *cur)
#define LIBXML_ATTR_FORMAT(fmt, args)