Lines Matching refs:ctxt

50  * @ctxt:  an XML validation parser context
54 xmlSAX2ErrMemory(xmlParserCtxtPtr ctxt, const char *msg) {
55 if (ctxt != NULL) {
56 if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
57 ctxt->sax->error(ctxt->userData, "%s: out of memory\n", msg);
58 ctxt->errNo = XML_ERR_NO_MEMORY;
59 ctxt->instate = XML_PARSER_EOF;
60 ctxt->disableSAX = 1;
66 * @ctxt: an XML validation parser context
75 xmlErrValid(xmlParserCtxtPtr ctxt, xmlParserErrors error,
80 if ((ctxt != NULL) && (ctxt->disableSAX != 0) &&
81 (ctxt->instate == XML_PARSER_EOF))
83 if (ctxt != NULL) {
84 ctxt->errNo = error;
85 if ((ctxt->sax != NULL) && (ctxt->sax->initialized == XML_SAX2_MAGIC))
86 schannel = ctxt->sax->serror;
88 ctxt->vctxt.error, ctxt->vctxt.userData,
89 ctxt, NULL, XML_FROM_DTD, error,
93 ctxt->valid = 0;
97 ctxt, NULL, XML_FROM_DTD, error,
106 * @ctxt: an XML parser context
115 xmlFatalErrMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error,
118 if ((ctxt != NULL) && (ctxt->disableSAX != 0) &&
119 (ctxt->instate == XML_PARSER_EOF))
121 if (ctxt != NULL)
122 ctxt->errNo = error;
123 __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_PARSER, error,
127 if (ctxt != NULL) {
128 ctxt->wellFormed = 0;
129 ctxt->valid = 0;
130 if (ctxt->recovery == 0)
131 ctxt->disableSAX = 1;
137 * @ctxt: an XML parser context
146 xmlWarnMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error,
149 if ((ctxt != NULL) && (ctxt->disableSAX != 0) &&
150 (ctxt->instate == XML_PARSER_EOF))
152 if (ctxt != NULL)
153 ctxt->errNo = error;
154 __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_PARSER, error,
162 * @ctxt: an XML parser context
171 xmlNsErrMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error,
174 if ((ctxt != NULL) && (ctxt->disableSAX != 0) &&
175 (ctxt->instate == XML_PARSER_EOF))
177 if (ctxt != NULL)
178 ctxt->errNo = error;
179 __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_NAMESPACE, error,
187 * @ctxt: an XML parser context
195 xmlNsWarnMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error,
198 if ((ctxt != NULL) && (ctxt->disableSAX != 0) &&
199 (ctxt->instate == XML_PARSER_EOF))
201 if (ctxt != NULL)
202 ctxt->errNo = error;
203 __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_NAMESPACE, error,
220 /* xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx; */
236 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
237 if ((ctx == NULL) || (ctxt->input == NULL)) return(NULL);
238 return((const xmlChar *) ctxt->input->filename);
252 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
253 if ((ctx == NULL) || (ctxt->input == NULL)) return(0);
254 return(ctxt->input->line);
268 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
269 if ((ctx == NULL) || (ctxt->input == NULL)) return(0);
270 return(ctxt->input->col);
284 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
285 if ((ctx == NULL) || (ctxt->myDoc == NULL)) return(0);
286 return(ctxt->myDoc->standalone == 1);
300 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
301 if ((ctxt == NULL) || (ctxt->myDoc == NULL)) return(0);
302 return(ctxt->myDoc->intSubset != NULL);
316 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
317 if ((ctxt == NULL) || (ctxt->myDoc == NULL)) return(0);
318 return(ctxt->myDoc->extSubset != NULL);
334 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
343 if (ctxt->myDoc == NULL)
345 dtd = xmlGetIntSubset(ctxt->myDoc);
347 if (ctxt->html)
351 ctxt->myDoc->intSubset = NULL;
353 ctxt->myDoc->intSubset =
354 xmlCreateIntSubset(ctxt->myDoc, name, ExternalID, SystemID);
355 if (ctxt->myDoc->intSubset == NULL)
356 xmlSAX2ErrMemory(ctxt, "xmlSAX2InternalSubset");
372 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
380 (((ctxt->validate) || (ctxt->loadsubset != 0)) &&
381 (ctxt->wellFormed && ctxt->myDoc))) {
396 if ((ctxt->sax != NULL) && (ctxt->sax->resolveEntity != NULL))
397 input = ctxt->sax->resolveEntity(ctxt->userData, ExternalID,
403 xmlNewDtd(ctxt->myDoc, name, ExternalID, SystemID);
408 oldinput = ctxt->input;
409 oldinputNr = ctxt->inputNr;
410 oldinputMax = ctxt->inputMax;
411 oldinputTab = ctxt->inputTab;
412 oldcharset = ctxt->charset;
414 ctxt->inputTab = (xmlParserInputPtr *)
416 if (ctxt->inputTab == NULL) {
417 xmlSAX2ErrMemory(ctxt, "xmlSAX2ExternalSubset");
418 ctxt->input = oldinput;
419 ctxt->inputNr = oldinputNr;
420 ctxt->inputMax = oldinputMax;
421 ctxt->inputTab = oldinputTab;
422 ctxt->charset = oldcharset;
425 ctxt->inputNr = 0;
426 ctxt->inputMax = 5;
427 ctxt->input = NULL;
428 xmlPushInput(ctxt, input);
433 if (ctxt->input->length >= 4) {
434 enc = xmlDetectCharEncoding(ctxt->input->cur, 4);
435 xmlSwitchEncoding(ctxt, enc);
442 input->base = ctxt->input->cur;
443 input->cur = ctxt->input->cur;
449 xmlParseExternalSubset(ctxt, ExternalID, SystemID);
455 while (ctxt->inputNr > 1)
456 xmlPopInput(ctxt);
457 xmlFreeInputStream(ctxt->input);
458 xmlFree(ctxt->inputTab);
463 ctxt->input = oldinput;
464 ctxt->inputNr = oldinputNr;
465 ctxt->inputMax = oldinputMax;
466 ctxt->inputTab = oldinputTab;
467 ctxt->charset = oldcharset;
468 /* ctxt->wellFormed = oldwellFormed; */
489 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
495 if (ctxt->input != NULL)
496 base = ctxt->input->filename;
498 base = ctxt->directory;
508 (const char *) publicId, ctxt);
526 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
535 if (ctxt->inSubset == 0) {
540 if ((ctxt->myDoc != NULL) && (ctxt->myDoc->standalone == 1)) {
541 if (ctxt->inSubset == 2) {
542 ctxt->myDoc->standalone = 0;
543 ret = xmlGetDocEntity(ctxt->myDoc, name);
544 ctxt->myDoc->standalone = 1;
546 ret = xmlGetDocEntity(ctxt->myDoc, name);
548 ctxt->myDoc->standalone = 0;
549 ret = xmlGetDocEntity(ctxt->myDoc, name);
551 xmlFatalErrMsg(ctxt, XML_ERR_NOT_STANDALONE,
555 ctxt->myDoc->standalone = 1;
559 ret = xmlGetDocEntity(ctxt->myDoc, name);
562 ((ctxt->validate) || (ctxt->replaceEntities)) &&
573 val = xmlParseCtxtExternalEntity(ctxt, ret->URI,
578 xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_PROCESSING,
580 ctxt->validate = 0;
601 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
610 ret = xmlGetParameterEntity(ctxt->myDoc, name);
631 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
639 if (ctxt->inSubset == 1) {
640 ent = xmlAddDocEntity(ctxt->myDoc, name, type, publicId,
642 if ((ent == NULL) && (ctxt->pedantic))
643 xmlWarnMsg(ctxt, XML_WAR_ENTITY_REDEFINED,
650 if (ctxt->input != NULL)
651 base = ctxt->input->filename;
653 base = ctxt->directory;
658 } else if (ctxt->inSubset == 2) {
659 ent = xmlAddDtdEntity(ctxt->myDoc, name, type, publicId,
661 if ((ent == NULL) && (ctxt->pedantic) &&
662 (ctxt->sax != NULL) && (ctxt->sax->warning != NULL))
663 ctxt->sax->warning(ctxt->userData,
669 if (ctxt->input != NULL)
670 base = ctxt->input->filename;
672 base = ctxt->directory;
678 xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_PROCESSING,
701 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
705 if ((ctxt == NULL) || (ctxt->myDoc == NULL))
718 int tmp = ctxt->valid;
719 xmlErrValid(ctxt, XML_DTD_XMLID_TYPE,
721 ctxt->valid = tmp;
724 name = xmlSplitQName(ctxt, fullname, &prefix);
725 ctxt->vctxt.valid = 1;
726 if (ctxt->inSubset == 1)
727 attr = xmlAddAttributeDecl(&ctxt->vctxt, ctxt->myDoc->intSubset, elem,
730 else if (ctxt->inSubset == 2)
731 attr = xmlAddAttributeDecl(&ctxt->vctxt, ctxt->myDoc->extSubset, elem,
735 xmlFatalErrMsg(ctxt, XML_ERR_INTERNAL_ERROR,
742 if (ctxt->vctxt.valid == 0)
743 ctxt->valid = 0;
744 if ((attr != NULL) && (ctxt->validate) && (ctxt->wellFormed) &&
745 (ctxt->myDoc->intSubset != NULL))
746 ctxt->valid &= xmlValidateAttributeDecl(&ctxt->vctxt, ctxt->myDoc,
768 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
771 if ((ctxt == NULL) || (ctxt->myDoc == NULL))
779 if (ctxt->inSubset == 1)
780 elem = xmlAddElementDecl(&ctxt->vctxt, ctxt->myDoc->intSubset,
782 else if (ctxt->inSubset == 2)
783 elem = xmlAddElementDecl(&ctxt->vctxt, ctxt->myDoc->extSubset,
786 xmlFatalErrMsg(ctxt, XML_ERR_INTERNAL_ERROR,
793 ctxt->valid = 0;
794 if (ctxt->validate && ctxt->wellFormed &&
795 ctxt->myDoc && ctxt->myDoc->intSubset)
796 ctxt->valid &=
797 xmlValidateElementDecl(&ctxt->vctxt, ctxt->myDoc, elem);
814 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
817 if ((ctxt == NULL) || (ctxt->myDoc == NULL))
826 xmlFatalErrMsg(ctxt, XML_ERR_NOTATION_PROCESSING,
830 } else if (ctxt->inSubset == 1)
831 nota = xmlAddNotationDecl(&ctxt->vctxt, ctxt->myDoc->intSubset, name,
833 else if (ctxt->inSubset == 2)
834 nota = xmlAddNotationDecl(&ctxt->vctxt, ctxt->myDoc->extSubset, name,
837 xmlFatalErrMsg(ctxt, XML_ERR_NOTATION_PROCESSING,
843 if (nota == NULL) ctxt->valid = 0;
844 if ((ctxt->validate) && (ctxt->wellFormed) &&
845 (ctxt->myDoc->intSubset != NULL))
846 ctxt->valid &= xmlValidateNotationDecl(&ctxt->vctxt, ctxt->myDoc,
867 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
874 if (ctxt->inSubset == 1) {
875 ent = xmlAddDocEntity(ctxt->myDoc, name,
878 if ((ent == NULL) && (ctxt->pedantic) &&
879 (ctxt->sax != NULL) && (ctxt->sax->warning != NULL))
880 ctxt->sax->warning(ctxt->userData,
886 if (ctxt->input != NULL)
887 base = ctxt->input->filename;
889 base = ctxt->directory;
894 } else if (ctxt->inSubset == 2) {
895 ent = xmlAddDtdEntity(ctxt->myDoc, name,
898 if ((ent == NULL) && (ctxt->pedantic) &&
899 (ctxt->sax != NULL) && (ctxt->sax->warning != NULL))
900 ctxt->sax->warning(ctxt->userData,
906 if (ctxt->input != NULL)
907 base = ctxt->input->filename;
909 base = ctxt->directory;
915 xmlFatalErrMsg(ctxt, XML_ERR_INTERNAL_ERROR,
932 /* xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx; */
948 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
957 if (ctxt->html) {
959 if (ctxt->myDoc == NULL)
960 ctxt->myDoc = htmlNewDocNoDtD(NULL, NULL);
961 if (ctxt->myDoc == NULL) {
962 xmlSAX2ErrMemory(ctxt, "xmlSAX2StartDocument");
968 ctxt->errNo = XML_ERR_INTERNAL_ERROR;
969 ctxt->instate = XML_PARSER_EOF;
970 ctxt->disableSAX = 1;
974 doc = ctxt->myDoc = xmlNewDoc(ctxt->version);
976 if (ctxt->encoding != NULL)
977 doc->encoding = xmlStrdup(ctxt->encoding);
980 doc->standalone = ctxt->standalone;
982 xmlSAX2ErrMemory(ctxt, "xmlSAX2StartDocument");
985 if ((ctxt->dictNames) && (doc != NULL)) {
986 doc->dict = ctxt->dict;
990 if ((ctxt->myDoc != NULL) && (ctxt->myDoc->URL == NULL) &&
991 (ctxt->input != NULL) && (ctxt->input->filename != NULL)) {
992 ctxt->myDoc->URL = xmlPathToURI((const xmlChar *)ctxt->input->filename);
993 if (ctxt->myDoc->URL == NULL)
994 xmlSAX2ErrMemory(ctxt, "xmlSAX2StartDocument");
1007 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
1014 if (ctxt->validate && ctxt->wellFormed &&
1015 ctxt->myDoc && ctxt->myDoc->intSubset)
1016 ctxt->valid &= xmlValidateDocumentFinal(&ctxt->vctxt, ctxt->myDoc);
1022 if ((ctxt->encoding != NULL) && (ctxt->myDoc != NULL) &&
1023 (ctxt->myDoc->encoding == NULL)) {
1024 ctxt->myDoc->encoding = ctxt->encoding;
1025 ctxt->encoding = NULL;
1027 if ((ctxt->inputTab != NULL) &&
1028 (ctxt->inputNr > 0) && (ctxt->inputTab[0] != NULL) &&
1029 (ctxt->inputTab[0]->encoding != NULL) && (ctxt->myDoc != NULL) &&
1030 (ctxt->myDoc->encoding == NULL)) {
1031 ctxt->myDoc->encoding = xmlStrdup(ctxt->inputTab[0]->encoding);
1033 if ((ctxt->charset != XML_CHAR_ENCODING_NONE) && (ctxt->myDoc != NULL) &&
1034 (ctxt->myDoc->charset == XML_CHAR_ENCODING_NONE)) {
1035 ctxt->myDoc->charset = ctxt->charset;
1056 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
1063 if (ctxt->html) {
1071 name = xmlSplitQName(ctxt, fullname, &ns);
1074 xmlNsErrMsg(ctxt, XML_ERR_NS_DECL_ERROR,
1078 xmlNsWarnMsg(ctxt, XML_WAR_NS_COLUMN,
1090 xmlSAX2ErrMemory(ctxt, "xmlSAX2StartElement");
1102 ctxt->vctxt.valid = 1;
1103 nval = xmlValidCtxtNormalizeAttributeValue(&ctxt->vctxt,
1104 ctxt->myDoc, ctxt->node,
1106 if (ctxt->vctxt.valid != 1) {
1107 ctxt->valid = 0;
1118 if ((!ctxt->html) && (ns == NULL) &&
1124 if (!ctxt->replaceEntities) {
1125 ctxt->depth++;
1126 val = xmlStringDecodeEntities(ctxt, value, XML_SUBSTITUTE_REF,
1128 ctxt->depth--;
1138 if ((ctxt->sax != NULL) && (ctxt->sax->warning != NULL))
1139 ctxt->sax->warning(ctxt->userData,
1143 if ((ctxt->sax != NULL) && (ctxt->sax->warning != NULL))
1144 ctxt->sax->warning(ctxt->userData,
1152 nsret = xmlNewNs(ctxt->node, val, NULL);
1159 if (nsret != NULL && ctxt->validate && ctxt->wellFormed &&
1160 ctxt->myDoc && ctxt->myDoc->intSubset)
1161 ctxt->valid &= xmlValidateOneNamespace(&ctxt->vctxt, ctxt->myDoc,
1162 ctxt->node, prefix, nsret, val);
1172 if ((!ctxt->html) &&
1178 if (!ctxt->replaceEntities) {
1179 ctxt->depth++;
1180 val = xmlStringDecodeEntities(ctxt, value, XML_SUBSTITUTE_REF,
1182 ctxt->depth--;
1184 xmlSAX2ErrMemory(ctxt, "xmlSAX2StartElement");
1195 xmlNsErrMsg(ctxt, XML_NS_ERR_EMPTY,
1198 if ((ctxt->pedantic != 0) && (val[0] != 0)) {
1203 xmlNsWarnMsg(ctxt, XML_WAR_NS_URI,
1207 xmlNsWarnMsg(ctxt, XML_WAR_NS_URI_RELATIVE,
1215 nsret = xmlNewNs(ctxt->node, val, name);
1222 if (nsret != NULL && ctxt->validate && ctxt->wellFormed &&
1223 ctxt->myDoc && ctxt->myDoc->intSubset)
1224 ctxt->valid &= xmlValidateOneNamespace(&ctxt->vctxt, ctxt->myDoc,
1225 ctxt->node, prefix, nsret, value);
1238 namespace = xmlSearchNs(ctxt->myDoc, ctxt->node, ns);
1240 xmlNsErrMsg(ctxt, XML_NS_ERR_UNDEFINED_NAMESPACE,
1245 prop = ctxt->node->properties;
1251 xmlNsErrMsg(ctxt, XML_ERR_ATTRIBUTE_REDEFINED,
1254 ctxt->wellFormed = 0;
1255 if (ctxt->recovery == 0) ctxt->disableSAX = 1;
1266 ret = xmlNewNsPropEatName(ctxt->node, namespace, name, NULL);
1269 if ((ctxt->replaceEntities == 0) && (!ctxt->html)) {
1272 ret->children = xmlStringGetNodeList(ctxt->myDoc, value);
1281 ret->children = xmlNewDocText(ctxt->myDoc, value);
1289 if ((!ctxt->html) && ctxt->validate && ctxt->wellFormed &&
1290 ctxt->myDoc && ctxt->myDoc->intSubset) {
1296 if (!ctxt->replaceEntities) {
1299 ctxt->depth++;
1300 val = xmlStringDecodeEntities(ctxt, value, XML_SUBSTITUTE_REF,
1302 ctxt->depth--;
1305 ctxt->valid &= xmlValidateOneAttribute(&ctxt->vctxt,
1306 ctxt->myDoc, ctxt->node, ret, value);
1315 nvalnorm = xmlValidNormalizeAttributeValue(ctxt->myDoc,
1316 ctxt->node, fullname, val);
1322 ctxt->valid &= xmlValidateOneAttribute(&ctxt->vctxt,
1323 ctxt->myDoc, ctxt->node, ret, val);
1327 ctxt->valid &= xmlValidateOneAttribute(&ctxt->vctxt, ctxt->myDoc,
1328 ctxt->node, ret, value);
1332 if (((ctxt->loadsubset & XML_SKIP_IDS) == 0) &&
1333 (((ctxt->replaceEntities == 0) && (ctxt->external != 2)) ||
1334 ((ctxt->replaceEntities != 0) && (ctxt->inSubset == 0)))) {
1346 xmlErrValid(ctxt, XML_DTD_XMLID_VALUE,
1350 xmlAddID(&ctxt->vctxt, ctxt->myDoc, value, ret);
1351 } else if (xmlIsID(ctxt->myDoc, ctxt->node, ret))
1352 xmlAddID(&ctxt->vctxt, ctxt->myDoc, value, ret);
1353 else if (xmlIsRef(ctxt->myDoc, ctxt->node, ret))
1354 xmlAddRef(&ctxt->vctxt, ctxt->myDoc, value, ret);
1370 xmlCheckDefaultedAttributes(xmlParserCtxtPtr ctxt, const xmlChar *name,
1377 elemDecl = xmlGetDtdQElementDesc(ctxt->myDoc->intSubset, name, prefix);
1379 elemDecl = xmlGetDtdQElementDesc(ctxt->myDoc->extSubset, name, prefix);
1391 if ((ctxt->myDoc->standalone == 1) &&
1392 (ctxt->myDoc->extSubset != NULL) &&
1393 (ctxt->validate)) {
1396 (xmlGetDtdQAttrDesc(ctxt->myDoc->extSubset,
1399 (xmlGetDtdQAttrDesc(ctxt->myDoc->intSubset,
1428 xmlErrValid(ctxt, XML_DTD_STANDALONE_DEFAULTED,
1461 (ctxt->loadsubset & XML_COMPLETE_ATTRS)) {
1464 tst = xmlGetDtdQAttrDesc(ctxt->myDoc->intSubset,
1473 xmlSAX2ErrMemory(ctxt, "xmlSAX2StartElement");
1493 xmlSAX2AttributeInternal(ctxt, fulln,
1504 elemDecl = xmlGetDtdQElementDesc(ctxt->myDoc->extSubset,
1523 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
1533 if ((ctx == NULL) || (fullname == NULL) || (ctxt->myDoc == NULL)) return;
1534 parent = ctxt->node;
1543 if (ctxt->validate && (ctxt->myDoc->extSubset == NULL) &&
1544 ((ctxt->myDoc->intSubset == NULL) ||
1545 ((ctxt->myDoc->intSubset->notations == NULL) &&
1546 (ctxt->myDoc->intSubset->elements == NULL) &&
1547 (ctxt->myDoc->intSubset->attributes == NULL) &&
1548 (ctxt->myDoc->intSubset->entities == NULL)))) {
1549 xmlErrValid(ctxt, XML_ERR_NO_DTD,
1551 ctxt->validate = 0;
1558 name = xmlSplitQName(ctxt, fullname, &prefix);
1566 ret = xmlNewDocNodeEatName(ctxt->myDoc, NULL, name, NULL);
1570 xmlSAX2ErrMemory(ctxt, "xmlSAX2StartElement");
1573 if (ctxt->myDoc->children == NULL) {
1577 xmlAddChild((xmlNodePtr) ctxt->myDoc, (xmlNodePtr) ret);
1579 parent = ctxt->myDoc->children;
1581 ctxt->nodemem = -1;
1582 if (ctxt->linenumbers) {
1583 if (ctxt->input != NULL) {
1584 if (ctxt->input->line < 65535)
1585 ret->line = (short) ctxt->input->line;
1597 nodePush(ctxt, ret);
1622 if ((!ctxt->html) &&
1623 ((ctxt->myDoc->intSubset != NULL) ||
1624 (ctxt->myDoc->extSubset != NULL))) {
1625 xmlCheckDefaultedAttributes(ctxt, name, prefix, atts);
1635 if (!ctxt->html) {
1639 xmlSAX2AttributeInternal(ctxt, att, value, prefix);
1651 ns = xmlSearchNs(ctxt->myDoc, ret, prefix);
1653 ns = xmlSearchNs(ctxt->myDoc, parent, prefix);
1656 xmlNsWarnMsg(ctxt, XML_NS_ERR_UNDEFINED_NAMESPACE,
1676 if (ctxt->html) {
1678 xmlSAX2AttributeInternal(ctxt, att, value, NULL);
1686 xmlSAX2AttributeInternal(ctxt, att, value, NULL);
1702 if ((ctxt->validate) && (ctxt->vctxt.finishDtd == XML_CTXT_FINISH_DTD_0)) {
1705 chk = xmlValidateDtdFinal(&ctxt->vctxt, ctxt->myDoc);
1707 ctxt->valid = 0;
1709 ctxt->wellFormed = 0;
1710 ctxt->valid &= xmlValidateRoot(&ctxt->vctxt, ctxt->myDoc);
1711 ctxt->vctxt.finishDtd = XML_CTXT_FINISH_DTD_1;
1730 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
1735 cur = ctxt->node;
1744 if (cur != NULL && ctxt->record_info) {
1745 node_info.end_pos = ctxt->input->cur - ctxt->input->base;
1746 node_info.end_line = ctxt->input->line;
1748 xmlParserAddNodeInfo(ctxt, &node_info);
1750 ctxt->nodemem = -1;
1753 if (ctxt->validate && ctxt->wellFormed &&
1754 ctxt->myDoc && ctxt->myDoc->intSubset)
1755 ctxt->valid &= xmlValidateOneElement(&ctxt->vctxt, ctxt->myDoc,
1766 nodePop(ctxt);
1772 * @ctxt: the parser context
1781 xmlSAX2TextNode(xmlParserCtxtPtr ctxt, const xmlChar *str, int len) {
1788 if (ctxt->freeElems != NULL) {
1789 ret = ctxt->freeElems;
1790 ctxt->freeElems = ret->next;
1791 ctxt->freeElemsNr--;
1796 xmlErrMemory(ctxt, "xmlSAX2Characters");
1804 if (ctxt->dictNames) {
1808 (ctxt->options & XML_PARSE_COMPACT)) {
1816 intern = xmlDictLookup(ctxt->dict, str, len);
1824 intern = xmlDictLookup(ctxt->dict, str, len);
1834 xmlSAX2ErrMemory(ctxt, "xmlSAX2TextNode");
1849 * @ctxt: the parser context
1858 xmlSAX2DecodeAttrEntities(xmlParserCtxtPtr ctxt, const xmlChar *str,
1869 ctxt->depth++;
1870 ret = xmlStringLenDecodeEntities(ctxt, str, end - str,
1872 ctxt->depth--;
1892 xmlSAX2AttributeNs(xmlParserCtxtPtr ctxt,
1906 namespace = xmlSearchNs(ctxt->myDoc, ctxt->node, prefix);
1911 if (ctxt->freeAttrs != NULL) {
1912 ret = ctxt->freeAttrs;
1913 ctxt->freeAttrs = ret->next;
1914 ctxt->freeAttrsNr--;
1918 ret->parent = ctxt->node;
1919 ret->doc = ctxt->myDoc;
1922 if (ctxt->dictNames)
1928 if (ctxt->node->properties == NULL) {
1929 ctxt->node->properties = ret;
1931 xmlAttrPtr prev = ctxt->node->properties;
1941 if (ctxt->dictNames)
1942 ret = xmlNewNsPropEatName(ctxt->node, namespace,
1945 ret = xmlNewNsProp(ctxt->node, namespace, localname, NULL);
1947 xmlErrMemory(ctxt, "xmlSAX2AttributeNs");
1952 if ((ctxt->replaceEntities == 0) && (!ctxt->html)) {
1961 tmp = xmlSAX2TextNode(ctxt, value, valueend - value);
1969 ret->children = xmlStringLenGetNodeList(ctxt->myDoc, value,
1983 tmp = xmlSAX2TextNode(ctxt, value, valueend - value);
1993 if ((!ctxt->html) && ctxt->validate && ctxt->wellFormed &&
1994 ctxt->myDoc && ctxt->myDoc->intSubset) {
1999 if (!ctxt->replaceEntities) {
2000 dup = xmlSAX2DecodeAttrEntities(ctxt, value, valueend);
2003 ctxt->valid &= xmlValidateOneAttribute(&ctxt->vctxt,
2004 ctxt->myDoc, ctxt->node, ret, value);
2013 ctxt->valid &= xmlValidateOneAttribute(&ctxt->vctxt,
2014 ctxt->myDoc, ctxt->node, ret, dup);
2024 if (ctxt->attsSpecial != NULL) {
2031 ctxt->vctxt.valid = 1;
2033 &ctxt->vctxt, ctxt->myDoc,
2034 ctxt->node, fullname, dup);
2035 if (ctxt->vctxt.valid != 1)
2036 ctxt->valid = 0;
2047 ctxt->valid &= xmlValidateOneAttribute(&ctxt->vctxt,
2048 ctxt->myDoc, ctxt->node, ret, dup);
2057 ctxt->valid &= xmlValidateOneAttribute(&ctxt->vctxt,
2058 ctxt->myDoc, ctxt->node, ret, dup);
2062 if (((ctxt->loadsubset & XML_SKIP_IDS) == 0) &&
2063 (((ctxt->replaceEntities == 0) && (ctxt->external != 2)) ||
2064 ((ctxt->replaceEntities != 0) && (ctxt->inSubset == 0)))) {
2069 if ((prefix == ctxt->str_xml) &&
2081 xmlErrValid(ctxt, XML_DTD_XMLID_VALUE,
2086 xmlAddID(&ctxt->vctxt, ctxt->myDoc, dup, ret);
2087 } else if (xmlIsID(ctxt->myDoc, ctxt->node, ret)) {
2091 xmlAddID(&ctxt->vctxt, ctxt->myDoc, dup, ret);
2092 } else if (xmlIsRef(ctxt->myDoc, ctxt->node, ret)) {
2095 xmlAddRef(&ctxt->vctxt, ctxt->myDoc, dup, ret);
2130 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
2138 parent = ctxt->node;
2142 if (ctxt->validate && (ctxt->myDoc->extSubset == NULL) &&
2143 ((ctxt->myDoc->intSubset == NULL) ||
2144 ((ctxt->myDoc->intSubset->notations == NULL) &&
2145 (ctxt->myDoc->intSubset->elements == NULL) &&
2146 (ctxt->myDoc->intSubset->attributes == NULL) &&
2147 (ctxt->myDoc->intSubset->entities == NULL)))) {
2148 xmlErrValid(ctxt, XML_ERR_NO_DTD,
2150 ctxt->validate = 0;
2156 if (ctxt->freeElems != NULL) {
2157 ret = ctxt->freeElems;
2158 ctxt->freeElems = ret->next;
2159 ctxt->freeElemsNr--;
2163 if (ctxt->dictNames)
2168 xmlSAX2ErrMemory(ctxt, "xmlSAX2StartElementNs");
2175 if (ctxt->dictNames)
2176 ret = xmlNewDocNodeEatName(ctxt->myDoc, NULL,
2179 ret = xmlNewDocNode(ctxt->myDoc, NULL, localname, NULL);
2181 xmlSAX2ErrMemory(ctxt, "xmlSAX2StartElementNs");
2185 if (ctxt->linenumbers) {
2186 if (ctxt->input != NULL) {
2187 if (ctxt->input->line < 65535)
2188 ret->line = (short) ctxt->input->line;
2194 if ((ctxt->myDoc->children == NULL) || (parent == NULL)) {
2195 xmlAddChild((xmlNodePtr) ctxt->myDoc, (xmlNodePtr) ret);
2214 xmlSAX2ErrMemory(ctxt, "xmlSAX2StartElementNs");
2218 if ((!ctxt->html) && ctxt->validate && ctxt->wellFormed &&
2219 ctxt->myDoc && ctxt->myDoc->intSubset) {
2220 ctxt->valid &= xmlValidateOneNamespace(&ctxt->vctxt, ctxt->myDoc,
2225 ctxt->nodemem = -1;
2230 nodePush(ctxt, ret);
2247 ((ctxt->loadsubset & XML_COMPLETE_ATTRS) == 0))
2255 ret->ns = xmlSearchNs(ctxt->myDoc, parent, prefix);
2257 ret->ns = xmlSearchNs(ctxt->myDoc, ret, prefix);
2263 xmlSAX2ErrMemory(ctxt, "xmlSAX2StartElementNs");
2266 xmlNsWarnMsg(ctxt, XML_NS_ERR_UNDEFINED_NAMESPACE,
2277 xmlSAX2AttributeNs(ctxt, attributes[j], attributes[j+1],
2287 if ((ctxt->validate) && (ctxt->vctxt.finishDtd == XML_CTXT_FINISH_DTD_0)) {
2290 chk = xmlValidateDtdFinal(&ctxt->vctxt, ctxt->myDoc);
2292 ctxt->valid = 0;
2294 ctxt->wellFormed = 0;
2295 ctxt->valid &= xmlValidateRoot(&ctxt->vctxt, ctxt->myDoc);
2296 ctxt->vctxt.finishDtd = XML_CTXT_FINISH_DTD_1;
2317 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
2322 cur = ctxt->node;
2324 if ((ctxt->record_info) && (cur != NULL)) {
2325 node_info.end_pos = ctxt->input->cur - ctxt->input->base;
2326 node_info.end_line = ctxt->input->line;
2328 xmlParserAddNodeInfo(ctxt, &node_info);
2330 ctxt->nodemem = -1;
2333 if (ctxt->validate && ctxt->wellFormed &&
2334 ctxt->myDoc && ctxt->myDoc->intSubset)
2335 ctxt->valid &= xmlValidateOneElement(&ctxt->vctxt, ctxt->myDoc, cur);
2341 nodePop(ctxt);
2354 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
2363 ret = xmlNewCharRef(ctxt->myDoc, name);
2365 ret = xmlNewReference(ctxt->myDoc, name);
2368 "add xmlSAX2Reference %s to %s \n", name, ctxt->node->name);
2370 xmlAddChild(ctxt->node, ret);
2384 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
2398 if (ctxt->node == NULL) {
2401 "add chars: ctxt->node == NULL !\n");
2405 lastChild = ctxt->node->last;
2408 "add chars to %s \n", ctxt->node->name);
2416 lastChild = xmlSAX2TextNode(ctxt, ch, len);
2418 ctxt->node->children = lastChild;
2419 ctxt->node->last = lastChild;
2420 lastChild->parent = ctxt->node;
2421 lastChild->doc = ctxt->node->doc;
2422 ctxt->nodelen = len;
2423 ctxt->nodemem = len + 1;
2425 xmlSAX2ErrMemory(ctxt, "xmlSAX2Characters");
2432 if ((coalesceText) && (ctxt->nodemem != 0)) {
2443 } else if ((ctxt->nodemem == ctxt->nodelen + 1) &&
2444 (xmlDictOwns(ctxt->dict, lastChild->content))) {
2447 if (ctxt->nodelen > UINT_MAX - len ||
2448 ctxt->nodemem + len > UINT_MAX / 2) {
2449 xmlSAX2ErrMemory(ctxt, "xmlSAX2Characters overflow prevented");
2452 if (ctxt->nodelen + len >= ctxt->nodemem) {
2456 size = ctxt->nodemem + len;
2460 xmlSAX2ErrMemory(ctxt, "xmlSAX2Characters");
2463 ctxt->nodemem = size;
2466 memcpy(&lastChild->content[ctxt->nodelen], ch, len);
2467 ctxt->nodelen += len;
2468 lastChild->content[ctxt->nodelen] = 0;
2471 xmlSAX2ErrMemory(ctxt, "xmlSAX2Characters");
2473 if (ctxt->node->children != NULL) {
2474 ctxt->nodelen = xmlStrlen(lastChild->content);
2475 ctxt->nodemem = ctxt->nodelen + 1;
2479 lastChild = xmlSAX2TextNode(ctxt, ch, len);
2481 xmlAddChild(ctxt->node, lastChild);
2482 if (ctxt->node->children != NULL) {
2483 ctxt->nodelen = len;
2484 ctxt->nodemem = len + 1;
2503 /* xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx; */
2522 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
2527 parent = ctxt->node;
2533 ret = xmlNewDocPI(ctxt->myDoc, target, data);
2535 parent = ctxt->node;
2537 if (ctxt->linenumbers) {
2538 if (ctxt->input != NULL) {
2539 if (ctxt->input->line < 65535)
2540 ret->line = (short) ctxt->input->line;
2545 if (ctxt->inSubset == 1) {
2546 xmlAddChild((xmlNodePtr) ctxt->myDoc->intSubset, ret);
2548 } else if (ctxt->inSubset == 2) {
2549 xmlAddChild((xmlNodePtr) ctxt->myDoc->extSubset, ret);
2552 if ((ctxt->myDoc->children == NULL) || (parent == NULL)) {
2557 xmlAddChild((xmlNodePtr) ctxt->myDoc, (xmlNodePtr) ret);
2586 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
2591 parent = ctxt->node;
2595 ret = xmlNewDocComment(ctxt->myDoc, value);
2597 if (ctxt->linenumbers) {
2598 if (ctxt->input != NULL) {
2599 if (ctxt->input->line < 65535)
2600 ret->line = (short) ctxt->input->line;
2606 if (ctxt->inSubset == 1) {
2607 xmlAddChild((xmlNodePtr) ctxt->myDoc->intSubset, ret);
2609 } else if (ctxt->inSubset == 2) {
2610 xmlAddChild((xmlNodePtr) ctxt->myDoc->extSubset, ret);
2613 if ((ctxt->myDoc->children == NULL) || (parent == NULL)) {
2618 xmlAddChild((xmlNodePtr) ctxt->myDoc, (xmlNodePtr) ret);
2648 xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
2656 lastChild = xmlGetLastChild(ctxt->node);
2659 "add chars to %s \n", ctxt->node->name);
2665 ret = xmlNewCDataBlock(ctxt->myDoc, value, len);
2666 xmlAddChild(ctxt->node, ret);