Lines Matching refs:ctxt
90 xmlXIncludeDoProcess(xmlXIncludeCtxtPtr ctxt, xmlDocPtr doc, xmlNodePtr tree);
106 xmlXIncludeErrMemory(xmlXIncludeCtxtPtr ctxt, xmlNodePtr node,
109 if (ctxt != NULL)
110 ctxt->nbErrors++;
111 __xmlRaiseError(NULL, NULL, NULL, ctxt, node, XML_FROM_XINCLUDE,
119 * @ctxt: the XInclude context
127 xmlXIncludeErr(xmlXIncludeCtxtPtr ctxt, xmlNodePtr node, int error,
130 if (ctxt != NULL)
131 ctxt->nbErrors++;
132 __xmlRaiseError(NULL, NULL, NULL, ctxt, node, XML_FROM_XINCLUDE,
141 * @ctxt: the XInclude context
149 xmlXIncludeWarn(xmlXIncludeCtxtPtr ctxt, xmlNodePtr node, int error,
152 __xmlRaiseError(NULL, NULL, NULL, ctxt, node, XML_FROM_XINCLUDE,
161 * @ctxt: the XInclude context
170 xmlXIncludeGetProp(xmlXIncludeCtxtPtr ctxt, xmlNodePtr cur,
177 if (ctxt->legacy != 0) {
215 * @ctxt: the XInclude context
223 xmlXIncludeNewRef(xmlXIncludeCtxtPtr ctxt, const xmlChar *URI,
232 xmlXIncludeErrMemory(ctxt, ref, "growing XInclude context");
246 if (ctxt->incMax == 0) {
247 ctxt->incMax = 4;
248 ctxt->incTab = (xmlXIncludeRefPtr *) xmlMalloc(ctxt->incMax *
249 sizeof(ctxt->incTab[0]));
250 if (ctxt->incTab == NULL) {
251 xmlXIncludeErrMemory(ctxt, ref, "growing XInclude context");
256 if (ctxt->incNr >= ctxt->incMax) {
257 ctxt->incMax *= 2;
258 ctxt->incTab = (xmlXIncludeRefPtr *) xmlRealloc(ctxt->incTab,
259 ctxt->incMax * sizeof(ctxt->incTab[0]));
260 if (ctxt->incTab == NULL) {
261 xmlXIncludeErrMemory(ctxt, ref, "growing XInclude context");
266 ctxt->incTab[ctxt->incNr++] = ret;
305 * @ctxt: the parser context
313 xmlXIncludeURLPush(xmlXIncludeCtxtPtr ctxt,
316 if (ctxt->urlNr > XINCLUDE_MAX_DEPTH) {
317 xmlXIncludeErr(ctxt, NULL, XML_XINCLUDE_RECURSION,
321 if (ctxt->urlTab == NULL) {
322 ctxt->urlMax = 4;
323 ctxt->urlNr = 0;
324 ctxt->urlTab = (xmlChar * *) xmlMalloc(
325 ctxt->urlMax * sizeof(ctxt->urlTab[0]));
326 if (ctxt->urlTab == NULL) {
327 xmlXIncludeErrMemory(ctxt, NULL, "adding URL");
331 if (ctxt->urlNr >= ctxt->urlMax) {
332 ctxt->urlMax *= 2;
333 ctxt->urlTab =
334 (xmlChar * *) xmlRealloc(ctxt->urlTab,
335 ctxt->urlMax *
336 sizeof(ctxt->urlTab[0]));
337 if (ctxt->urlTab == NULL) {
338 xmlXIncludeErrMemory(ctxt, NULL, "adding URL");
342 ctxt->url = ctxt->urlTab[ctxt->urlNr] = xmlStrdup(value);
343 return (ctxt->urlNr++);
348 * @ctxt: the parser context
353 xmlXIncludeURLPop(xmlXIncludeCtxtPtr ctxt)
357 if (ctxt->urlNr <= 0)
359 ctxt->urlNr--;
360 if (ctxt->urlNr > 0)
361 ctxt->url = ctxt->urlTab[ctxt->urlNr - 1];
363 ctxt->url = NULL;
364 ret = ctxt->urlTab[ctxt->urlNr];
365 ctxt->urlTab[ctxt->urlNr] = NULL;
372 * @ctxt: the XInclude context
377 xmlXIncludeFreeContext(xmlXIncludeCtxtPtr ctxt) {
383 if (ctxt == NULL)
385 while (ctxt->urlNr > 0)
386 xmlXIncludeURLPop(ctxt);
387 if (ctxt->urlTab != NULL)
388 xmlFree(ctxt->urlTab);
389 for (i = 0;i < ctxt->incNr;i++) {
390 if (ctxt->incTab[i] != NULL)
391 xmlXIncludeFreeRef(ctxt->incTab[i]);
393 if (ctxt->txturlTab != NULL) {
394 for (i = 0;i < ctxt->txtNr;i++) {
395 if (ctxt->txturlTab[i] != NULL)
396 xmlFree(ctxt->txturlTab[i]);
399 if (ctxt->incTab != NULL)
400 xmlFree(ctxt->incTab);
401 if (ctxt->txtTab != NULL)
402 xmlFree(ctxt->txtTab);
403 if (ctxt->txturlTab != NULL)
404 xmlFree(ctxt->txturlTab);
405 if (ctxt->base != NULL) {
406 xmlFree(ctxt->base);
408 xmlFree(ctxt);
413 * @ctxt: the XInclude context
419 xmlXIncludeParseFile(xmlXIncludeCtxtPtr ctxt, const char *URL) {
429 xmlXIncludeErrMemory(ctxt, NULL, "cannot allocate parser context");
436 pctxt->_private = ctxt->_private;
442 if ((ctxt->doc != NULL) && (ctxt->doc->dict != NULL) &&
445 pctxt->dict = ctxt->doc->dict;
449 xmlCtxtUseOptions(pctxt, ctxt->parseFlags | XML_PARSE_DTDLOAD);
484 * @ctxt: the XInclude context
490 xmlXIncludeAddNode(xmlXIncludeCtxtPtr ctxt, xmlNodePtr cur) {
503 if (ctxt == NULL)
514 href = xmlXIncludeGetProp(ctxt, cur, XINCLUDE_HREF);
523 parse = xmlXIncludeGetProp(ctxt, cur, XINCLUDE_PARSE);
530 xmlXIncludeErr(ctxt, cur, XML_XINCLUDE_PARSE_VALUE,
543 base = xmlNodeGetBase(ctxt->doc, cur);
545 URI = xmlBuildURI(href, ctxt->doc->URL);
570 xmlXIncludeErr(ctxt, cur, XML_XINCLUDE_HREF_URI,
574 fragment = xmlXIncludeGetProp(ctxt, cur, XINCLUDE_PARSE_XPOINTER);
581 xmlXIncludeErr(ctxt, cur, XML_XINCLUDE_HREF_URI,
590 if (ctxt->legacy != 0) {
597 xmlXIncludeErr(ctxt, cur, XML_XINCLUDE_FRAGMENT_ID,
612 xmlXIncludeErr(ctxt, cur, XML_XINCLUDE_HREF_URI,
623 for (i = 0;i < ctxt->urlNr;i++) {
624 if (xmlStrEqual(URL, ctxt->urlTab[i])) {
625 xmlXIncludeErr(ctxt, cur, XML_XINCLUDE_RECURSION,
632 ref = xmlXIncludeNewRef(ctxt, URL, cur);
646 * @ctxt: the XInclude context
653 xmlXIncludeRecurseDoc(xmlXIncludeCtxtPtr ctxt, xmlDocPtr doc,
660 for (i = 0;i < ctxt->urlNr;i++) {
661 if (xmlStrEqual(doc->URL, ctxt->urlTab[i]))
678 newctxt->_private = ctxt->_private;
682 newctxt->incMax = ctxt->incMax;
683 newctxt->incNr = ctxt->incNr;
687 xmlXIncludeErrMemory(ctxt, (xmlNodePtr) doc, "processing doc");
694 newctxt->urlMax = ctxt->urlMax;
695 newctxt->urlNr = ctxt->urlNr;
696 newctxt->urlTab = ctxt->urlTab;
701 newctxt->base = xmlStrdup(ctxt->base);
706 newctxt->incBase = ctxt->incNr;
707 for (i = 0;i < ctxt->incNr;i++) {
708 newctxt->incTab[i] = ctxt->incTab[i];
716 newctxt->parseFlags = ctxt->parseFlags;
718 for (i = 0;i < ctxt->incNr;i++) {
724 ctxt->urlTab = newctxt->urlTab;
725 ctxt->urlMax = newctxt->urlMax;
740 * @ctxt: the XInclude context
747 xmlXIncludeAddTxt(xmlXIncludeCtxtPtr ctxt, xmlNodePtr txt, const xmlURL url) {
751 if (ctxt->txtMax == 0) {
752 ctxt->txtMax = 4;
753 ctxt->txtTab = (xmlNodePtr *) xmlMalloc(ctxt->txtMax *
754 sizeof(ctxt->txtTab[0]));
755 if (ctxt->txtTab == NULL) {
756 xmlXIncludeErrMemory(ctxt, NULL, "processing text");
759 ctxt->txturlTab = (xmlURL *) xmlMalloc(ctxt->txtMax *
760 sizeof(ctxt->txturlTab[0]));
761 if (ctxt->txturlTab == NULL) {
762 xmlXIncludeErrMemory(ctxt, NULL, "processing text");
766 if (ctxt->txtNr >= ctxt->txtMax) {
767 ctxt->txtMax *= 2;
768 ctxt->txtTab = (xmlNodePtr *) xmlRealloc(ctxt->txtTab,
769 ctxt->txtMax * sizeof(ctxt->txtTab[0]));
770 if (ctxt->txtTab == NULL) {
771 xmlXIncludeErrMemory(ctxt, NULL, "processing text");
774 ctxt->txturlTab = (xmlURL *) xmlRealloc(ctxt->txturlTab,
775 ctxt->txtMax * sizeof(ctxt->txturlTab[0]));
776 if (ctxt->txturlTab == NULL) {
777 xmlXIncludeErrMemory(ctxt, NULL, "processing text");
781 ctxt->txtTab[ctxt->txtNr] = txt;
782 ctxt->txturlTab[ctxt->txtNr] = xmlStrdup(url);
783 ctxt->txtNr++;
794 * @ctxt: the XInclude context
803 xmlXIncludeCopyNode(xmlXIncludeCtxtPtr ctxt, xmlDocPtr target,
807 if ((ctxt == NULL) || (target == NULL) || (source == NULL) ||
818 * @ctxt: the XInclude context
827 xmlXIncludeCopyNodeList(xmlXIncludeCtxtPtr ctxt, xmlDocPtr target,
831 if ((ctxt == NULL) || (target == NULL) || (source == NULL) ||
836 res = xmlXIncludeCopyNode(ctxt, target, source, cur);
881 * @ctxt: the XInclude context
892 xmlXIncludeCopyRange(xmlXIncludeCtxtPtr ctxt, xmlDocPtr target,
902 if ((ctxt == NULL) || (target == NULL) || (source == NULL) ||
1093 * @ctxt: the XInclude context
1105 xmlXIncludeCopyXPointer(xmlXIncludeCtxtPtr ctxt, xmlDocPtr target,
1111 source = ctxt->doc;
1112 if ((ctxt == NULL) || (target == NULL) || (source == NULL) ||
1151 tmp = xmlXIncludeCopyNode(ctxt, target,
1180 list = last = xmlXIncludeCopyNode(ctxt, target, source,
1184 xmlXIncludeCopyNode(ctxt, target, source,
1198 list = last = xmlXIncludeCopyXPointer(ctxt, target, source,
1202 xmlXIncludeCopyXPointer(ctxt, target, source,
1213 return(xmlXIncludeCopyRange(ctxt, target, source, obj));
1233 xmlXIncludeCtxtPtr ctxt;
1249 xmlXIncludeCtxtPtr ctxt;
1253 ctxt = data->ctxt;
1255 if ((ctxt == NULL) || (doc == NULL))
1306 xmlXIncludeErr(ctxt, (xmlNodePtr) ent, XML_XINCLUDE_ENTITY_DEF_MISMATCH,
1313 * @ctxt: an XInclude context
1322 xmlXIncludeMergeEntities(xmlXIncludeCtxtPtr ctxt, xmlDocPtr doc,
1327 if (ctxt == NULL)
1347 data.ctxt = ctxt;
1357 data.ctxt = ctxt;
1374 * @ctxt: the XInclude context
1383 xmlXIncludeLoadDoc(xmlXIncludeCtxtPtr ctxt, const xmlChar *url, int nr) {
1401 xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref,
1410 if ((ctxt->incTab != NULL) && (ctxt->incTab[nr] != NULL) &&
1411 (ctxt->incTab[nr]->fragment != NULL)) {
1413 fragment = xmlStrdup(ctxt->incTab[nr]->fragment);
1418 if (ctxt->incTab != NULL)
1419 xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref,
1423 xmlXIncludeErr(ctxt, NULL,
1433 * directly through ctxt->doc.
1436 ((ctxt->doc != NULL) && (xmlStrEqual(URL, ctxt->doc->URL)))) {
1444 for (i = 0; i < ctxt->incNr; i++) {
1445 if ((xmlStrEqual(URL, ctxt->incTab[i]->URI)) &&
1446 (ctxt->incTab[i]->doc != NULL)) {
1447 doc = ctxt->incTab[i]->doc;
1467 saveFlags = ctxt->parseFlags;
1469 ctxt->parseFlags |= XML_PARSE_NOENT;
1473 doc = xmlXIncludeParseFile(ctxt, (const char *)URL);
1475 ctxt->parseFlags = saveFlags;
1483 ctxt->incTab[nr]->doc = doc;
1494 for (i = nr + 1; i < ctxt->incNr; i++) {
1495 if (xmlStrEqual(URL, ctxt->incTab[i]->URI)) {
1496 ctxt->incTab[nr]->count++;
1507 xmlXIncludeMergeEntities(ctxt, ctxt->doc, doc);
1522 xmlXIncludeRecurseDoc(ctxt, doc, URL);
1533 ctxt->incTab[nr]->inc = xmlCopyNodeList(ctxt->doc->children);
1535 ctxt->incTab[nr]->inc = xmlXIncludeCopyNodeList(ctxt, ctxt->doc,
1550 xptrctxt = xmlXPtrNewContext(ctxt->doc, ctxt->incTab[nr]->ref,
1556 xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref,
1565 xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref,
1582 xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref,
1624 xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref,
1631 xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref,
1646 xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref,
1657 ctxt->incTab[nr]->xptr = xptr;
1658 ctxt->incTab[nr]->inc = NULL;
1660 ctxt->incTab[nr]->inc =
1661 xmlXIncludeCopyXPointer(ctxt, ctxt->doc, doc, xptr);
1681 base = xmlGetNsProp(ctxt->incTab[nr]->ref, BAD_CAST "base",
1688 curBase = xmlBuildRelativeURI(URL, ctxt->base);
1690 xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref,
1702 node = ctxt->incTab[nr]->inc;
1731 xmlXIncludeErr(ctxt,
1732 ctxt->incTab[nr]->ref,
1751 if ((nr < ctxt->incNr) && (ctxt->incTab[nr]->doc != NULL) &&
1752 (ctxt->incTab[nr]->count <= 1)) {
1754 printf("freeing %s\n", ctxt->incTab[nr]->doc->URL);
1756 xmlFreeDoc(ctxt->incTab[nr]->doc);
1757 ctxt->incTab[nr]->doc = NULL;
1765 * @ctxt: the XInclude context
1774 xmlXIncludeLoadTxt(xmlXIncludeCtxtPtr ctxt, const xmlChar *url, int nr) {
1788 xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref, XML_XINCLUDE_HREF_URI,
1793 xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref, XML_XINCLUDE_TEXT_FRAGMENT,
1802 xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref, XML_XINCLUDE_HREF_URI,
1809 * directly through ctxt->doc.
1812 xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref,
1822 for (i = 0; i < ctxt->txtNr; i++) {
1823 if (xmlStrEqual(URL, ctxt->txturlTab[i])) {
1824 node = xmlCopyNode(ctxt->txtTab[i], 1);
1831 if ((ctxt->incTab[nr] != NULL) && (ctxt->incTab[nr]->ref != NULL)) {
1832 encoding = xmlGetProp(ctxt->incTab[nr]->ref, XINCLUDE_PARSE_ENCODING);
1843 xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref,
1878 xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref,
1892 xmlXIncludeAddTxt(ctxt, node, URL);
1898 ctxt->incTab[nr]->inc = node;
1905 * @ctxt: the XInclude context
1915 xmlXIncludeLoadFallback(xmlXIncludeCtxtPtr ctxt, xmlNodePtr fallback, int nr) {
1919 if ((fallback == NULL) || (ctxt == NULL))
1926 newctxt = xmlXIncludeNewContext(ctxt->doc);
1929 newctxt->_private = ctxt->_private;
1930 newctxt->base = xmlStrdup(ctxt->base); /* Inherit the base from the existing context */
1931 xmlXIncludeSetFlags(newctxt, ctxt->parseFlags);
1932 ret = xmlXIncludeDoProcess(newctxt, ctxt->doc, fallback->children);
1933 if (ctxt->nbErrors > 0)
1939 ctxt->incTab[nr]->inc = xmlDocCopyNodeList(ctxt->doc,
1942 ctxt->incTab[nr]->inc = NULL;
1943 ctxt->incTab[nr]->emptyFb = 1; /* flag empty callback */
1956 * @ctxt: an XInclude context
1965 xmlXIncludePreProcessNode(xmlXIncludeCtxtPtr ctxt, xmlNodePtr node) {
1966 xmlXIncludeAddNode(ctxt, node);
1972 * @ctxt: an XInclude context
1980 xmlXIncludeLoadNode(xmlXIncludeCtxtPtr ctxt, int nr) {
1990 if (ctxt == NULL)
1992 if ((nr < 0) || (nr >= ctxt->incNr))
1994 cur = ctxt->incTab[nr]->ref;
2001 href = xmlXIncludeGetProp(ctxt, cur, XINCLUDE_HREF);
2007 parse = xmlXIncludeGetProp(ctxt, cur, XINCLUDE_PARSE);
2014 xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref,
2028 base = xmlNodeGetBase(ctxt->doc, cur);
2030 URI = xmlBuildURI(href, ctxt->doc->URL);
2049 xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref,
2068 oldBase = ctxt->base;
2069 ctxt->base = base;
2072 ret = xmlXIncludeLoadDoc(ctxt, URI, nr);
2073 /* xmlXIncludeGetFragment(ctxt, cur, URI); */
2075 ret = xmlXIncludeLoadTxt(ctxt, URI, nr);
2081 ctxt->base = oldBase;
2099 ret = xmlXIncludeLoadFallback(ctxt, children, nr);
2107 xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref,
2129 * @ctxt: an XInclude context
2137 xmlXIncludeIncludeNode(xmlXIncludeCtxtPtr ctxt, int nr) {
2140 if (ctxt == NULL)
2142 if ((nr < 0) || (nr >= ctxt->incNr))
2144 cur = ctxt->incTab[nr]->ref;
2151 if ((ctxt->incTab[nr]->inc == NULL) &&
2152 (ctxt->incTab[nr]->xptr != NULL)) {
2153 ctxt->incTab[nr]->inc =
2154 xmlXIncludeCopyXPointer(ctxt, ctxt->doc, ctxt->doc,
2155 ctxt->incTab[nr]->xptr);
2156 xmlXPathFreeObject(ctxt->incTab[nr]->xptr);
2157 ctxt->incTab[nr]->xptr = NULL;
2159 list = ctxt->incTab[nr]->inc;
2160 ctxt->incTab[nr]->inc = NULL;
2176 xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref,
2184 if (ctxt->parseFlags & XML_PARSE_NOXINCNODE) {
2204 xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref,
2229 * @ctxt: the XInclude processing context
2237 xmlXIncludeTestNode(xmlXIncludeCtxtPtr ctxt, xmlNodePtr node) {
2247 if (ctxt->legacy == 0) {
2249 xmlXIncludeWarn(ctxt, node, XML_XINCLUDE_DEPRECATED_NS,
2253 ctxt->legacy = 1;
2266 xmlXIncludeErr(ctxt, node,
2279 xmlXIncludeErr(ctxt, node, XML_XINCLUDE_FALLBACKS_IN_INCLUDE,
2293 xmlXIncludeErr(ctxt, node,
2305 * @ctxt: the XInclude processing context
2315 xmlXIncludeDoProcess(xmlXIncludeCtxtPtr ctxt, xmlDocPtr doc, xmlNodePtr tree) {
2322 if (ctxt == NULL)
2326 ret = xmlXIncludeURLPush(ctxt, doc->URL);
2330 start = ctxt->incNr;
2336 if (xmlXIncludeTestNode(ctxt, cur) == 1)
2337 xmlXIncludePreProcessNode(ctxt, cur);
2345 if (xmlXIncludeTestNode(ctxt, cur))
2346 xmlXIncludePreProcessNode(ctxt, cur);
2349 if (xmlXIncludeTestNode(ctxt, cur))
2350 xmlXIncludePreProcessNode(ctxt, cur);
2360 if (xmlXIncludeTestNode(ctxt, cur))
2361 xmlXIncludePreProcessNode(ctxt, cur);
2371 for (i = start;i < ctxt->incNr; i++) {
2372 xmlXIncludeLoadNode(ctxt, i);
2387 for (i = ctxt->incBase;i < ctxt->incNr; i++) {
2388 if ((ctxt->incTab[i]->inc != NULL) ||
2389 (ctxt->incTab[i]->xptr != NULL) ||
2390 (ctxt->incTab[i]->emptyFb != 0)) /* (empty fallback) */
2391 xmlXIncludeIncludeNode(ctxt, i);
2395 xmlXIncludeURLPop(ctxt);
2401 * @ctxt: an XInclude processing context
2409 xmlXIncludeSetFlags(xmlXIncludeCtxtPtr ctxt, int flags) {
2410 if (ctxt == NULL)
2412 ctxt->parseFlags = flags;
2430 xmlXIncludeCtxtPtr ctxt;
2439 ctxt = xmlXIncludeNewContext(doc);
2440 if (ctxt == NULL)
2442 ctxt->_private = data;
2443 ctxt->base = xmlStrdup((xmlChar *)doc->URL);
2444 xmlXIncludeSetFlags(ctxt, flags);
2445 ret = xmlXIncludeDoProcess(ctxt, doc, tree);
2446 if ((ret >= 0) && (ctxt->nbErrors > 0))
2449 xmlXIncludeFreeContext(ctxt);
2494 xmlXIncludeCtxtPtr ctxt;
2499 ctxt = xmlXIncludeNewContext(tree->doc);
2500 if (ctxt == NULL)
2502 ctxt->base = xmlNodeGetBase(tree->doc, tree);
2503 xmlXIncludeSetFlags(ctxt, flags);
2504 ret = xmlXIncludeDoProcess(ctxt, tree->doc, tree);
2505 if ((ret >= 0) && (ctxt->nbErrors > 0))
2508 xmlXIncludeFreeContext(ctxt);
2528 * @ctxt: an existing XInclude context
2538 xmlXIncludeProcessNode(xmlXIncludeCtxtPtr ctxt, xmlNodePtr node) {
2541 if ((node == NULL) || (node->doc == NULL) || (ctxt == NULL))
2543 ret = xmlXIncludeDoProcess(ctxt, node->doc, node);
2544 if ((ret >= 0) && (ctxt->nbErrors > 0))