Lines Matching full:reader
68 * The parser: maps the Text Reader API on top of the existing *
168 static int xmlTextReaderReadTree(xmlTextReaderPtr reader);
169 static int xmlTextReaderNextTree(xmlTextReaderPtr reader);
183 static void xmlTextReaderFreeNode(xmlTextReaderPtr reader, xmlNodePtr cur);
184 static void xmlTextReaderFreeNodeList(xmlTextReaderPtr reader, xmlNodePtr cur);
187 xmlTextReaderErrMemory(xmlTextReaderPtr reader) { in xmlTextReaderErrMemory() argument
188 if (reader->ctxt != NULL) in xmlTextReaderErrMemory()
189 xmlCtxtErrMemory(reader->ctxt); in xmlTextReaderErrMemory()
192 reader->mode = XML_TEXTREADER_MODE_ERROR; in xmlTextReaderErrMemory()
193 reader->state = XML_TEXTREADER_ERROR; in xmlTextReaderErrMemory()
197 readerStrdup(xmlTextReaderPtr reader, const xmlChar *string) { in readerStrdup() argument
205 xmlTextReaderErrMemory(reader); in readerStrdup()
211 constString(xmlTextReaderPtr reader, const xmlChar *string) { in constString() argument
217 dictString = xmlDictLookup(reader->dict, string, -1); in constString()
219 xmlTextReaderErrMemory(reader); in constString()
225 constQString(xmlTextReaderPtr reader, const xmlChar *prefix, in constQString() argument
232 dictString = xmlDictQLookup(reader->dict, prefix, name); in constQString()
234 xmlTextReaderErrMemory(reader); in constQString()
247 * @reader: the xmlTextReaderPtr used
253 xmlTextReaderFreeProp(xmlTextReaderPtr reader, xmlAttrPtr cur) { in xmlTextReaderFreeProp() argument
256 if ((reader != NULL) && (reader->ctxt != NULL)) in xmlTextReaderFreeProp()
257 dict = reader->ctxt->dict; in xmlTextReaderFreeProp()
266 xmlTextReaderFreeNodeList(reader, cur->children); in xmlTextReaderFreeProp()
281 if ((reader != NULL) && (reader->ctxt != NULL) && in xmlTextReaderFreeProp()
282 (reader->ctxt->freeAttrsNr < MAX_FREE_NODES)) { in xmlTextReaderFreeProp()
283 cur->next = reader->ctxt->freeAttrs; in xmlTextReaderFreeProp()
284 reader->ctxt->freeAttrs = cur; in xmlTextReaderFreeProp()
285 reader->ctxt->freeAttrsNr++; in xmlTextReaderFreeProp()
293 * @reader: the xmlTextReaderPtr used
299 xmlTextReaderFreePropList(xmlTextReaderPtr reader, xmlAttrPtr cur) { in xmlTextReaderFreePropList() argument
304 xmlTextReaderFreeProp(reader, cur); in xmlTextReaderFreePropList()
311 * @reader: the xmlTextReaderPtr used
318 xmlTextReaderFreeNodeList(xmlTextReaderPtr reader, xmlNodePtr cur) { in xmlTextReaderFreeNodeList() argument
324 if ((reader != NULL) && (reader->ctxt != NULL)) in xmlTextReaderFreeNodeList()
325 dict = reader->ctxt->dict; in xmlTextReaderFreeNodeList()
360 xmlTextReaderFreePropList(reader, cur->properties); in xmlTextReaderFreeNodeList()
382 (reader != NULL) && (reader->ctxt != NULL) && in xmlTextReaderFreeNodeList()
383 (reader->ctxt->freeElemsNr < MAX_FREE_NODES)) { in xmlTextReaderFreeNodeList()
384 cur->next = reader->ctxt->freeElems; in xmlTextReaderFreeNodeList()
385 reader->ctxt->freeElems = cur; in xmlTextReaderFreeNodeList()
386 reader->ctxt->freeElemsNr++; in xmlTextReaderFreeNodeList()
406 * @reader: the xmlTextReaderPtr used
413 xmlTextReaderFreeNode(xmlTextReaderPtr reader, xmlNodePtr cur) { in xmlTextReaderFreeNode() argument
416 if ((reader != NULL) && (reader->ctxt != NULL)) in xmlTextReaderFreeNode()
417 dict = reader->ctxt->dict; in xmlTextReaderFreeNode()
429 xmlTextReaderFreeProp(reader, (xmlAttrPtr) cur); in xmlTextReaderFreeNode()
436 xmlTextReaderFreeNodeList(reader, cur->children); in xmlTextReaderFreeNode()
447 xmlTextReaderFreePropList(reader, cur->properties); in xmlTextReaderFreeNode()
470 (reader != NULL) && (reader->ctxt != NULL) && in xmlTextReaderFreeNode()
471 (reader->ctxt->freeElemsNr < MAX_FREE_NODES)) { in xmlTextReaderFreeNode()
472 cur->next = reader->ctxt->freeElems; in xmlTextReaderFreeNode()
473 reader->ctxt->freeElems = cur; in xmlTextReaderFreeNode()
474 reader->ctxt->freeElemsNr++; in xmlTextReaderFreeNode()
482 * @reader: the xmlTextReaderPtr used
488 xmlTextReaderFreeDoc(xmlTextReaderPtr reader, xmlDocPtr cur) { in xmlTextReaderFreeDoc() argument
518 if (cur->children != NULL) xmlTextReaderFreeNodeList(reader, cur->children); in xmlTextReaderFreeDoc()
532 * The reader core parser *
539 xmlTextReaderPtr reader = (xmlTextReaderPtr) userData; in xmlTextReaderStructuredRelay() local
541 if (reader->sErrorFunc != NULL) { in xmlTextReaderStructuredRelay()
542 reader->sErrorFunc(reader->errorFuncArg, error); in xmlTextReaderStructuredRelay()
543 } else if (reader->errorFunc != NULL) { in xmlTextReaderStructuredRelay()
559 reader->errorFunc(reader->errorFuncArg, error->message, severity, in xmlTextReaderStructuredRelay()
560 reader->ctxt); in xmlTextReaderStructuredRelay()
566 * @reader: the xmlTextReaderPtr used
574 xmlTextReaderEntPush(xmlTextReaderPtr reader, xmlNodePtr value) in xmlTextReaderEntPush() argument
576 if (reader->entNr >= reader->entMax) { in xmlTextReaderEntPush()
577 size_t newSize = reader->entMax == 0 ? 10 : reader->entMax * 2; in xmlTextReaderEntPush()
580 tmp = (xmlNodePtr *) xmlRealloc(reader->entTab, in xmlTextReaderEntPush()
583 xmlTextReaderErrMemory(reader); in xmlTextReaderEntPush()
586 reader->entTab = tmp; in xmlTextReaderEntPush()
587 reader->entMax = newSize; in xmlTextReaderEntPush()
589 reader->entTab[reader->entNr] = value; in xmlTextReaderEntPush()
590 reader->ent = value; in xmlTextReaderEntPush()
591 return (reader->entNr++); in xmlTextReaderEntPush()
596 * @reader: the xmlTextReaderPtr used
603 xmlTextReaderEntPop(xmlTextReaderPtr reader) in xmlTextReaderEntPop() argument
607 if (reader->entNr <= 0) in xmlTextReaderEntPop()
609 reader->entNr--; in xmlTextReaderEntPop()
610 if (reader->entNr > 0) in xmlTextReaderEntPop()
611 reader->ent = reader->entTab[reader->entNr - 1]; in xmlTextReaderEntPop()
613 reader->ent = NULL; in xmlTextReaderEntPop()
614 ret = reader->entTab[reader->entNr]; in xmlTextReaderEntPop()
615 reader->entTab[reader->entNr] = NULL; in xmlTextReaderEntPop()
631 xmlTextReaderPtr reader = ctxt->_private; in xmlTextReaderStartElement() local
633 if ((reader != NULL) && (reader->startElement != NULL)) { in xmlTextReaderStartElement()
634 reader->startElement(ctx, fullname, atts); in xmlTextReaderStartElement()
640 if (reader != NULL) in xmlTextReaderStartElement()
641 reader->state = XML_TEXTREADER_ELEMENT; in xmlTextReaderStartElement()
654 xmlTextReaderPtr reader = ctxt->_private; in xmlTextReaderEndElement() local
656 if ((reader != NULL) && (reader->endElement != NULL)) { in xmlTextReaderEndElement()
657 reader->endElement(ctx, fullname); in xmlTextReaderEndElement()
688 xmlTextReaderPtr reader = ctxt->_private; in xmlTextReaderStartElementNs() local
690 if ((reader != NULL) && (reader->startElementNs != NULL)) { in xmlTextReaderStartElementNs()
691 reader->startElementNs(ctx, localname, prefix, URI, nb_namespaces, in xmlTextReaderStartElementNs()
699 if (reader != NULL) in xmlTextReaderStartElementNs()
700 reader->state = XML_TEXTREADER_ELEMENT; in xmlTextReaderStartElementNs()
719 xmlTextReaderPtr reader = ctxt->_private; in xmlTextReaderEndElementNs() local
721 if ((reader != NULL) && (reader->endElementNs != NULL)) { in xmlTextReaderEndElementNs()
722 reader->endElementNs(ctx, localname, prefix, URI); in xmlTextReaderEndElementNs()
739 xmlTextReaderPtr reader = ctxt->_private; in xmlTextReaderCharacters() local
741 if ((reader != NULL) && (reader->characters != NULL)) { in xmlTextReaderCharacters()
742 reader->characters(ctx, ch, len); in xmlTextReaderCharacters()
758 xmlTextReaderPtr reader = ctxt->_private; in xmlTextReaderCDataBlock() local
760 if ((reader != NULL) && (reader->cdataBlock != NULL)) { in xmlTextReaderCDataBlock()
761 reader->cdataBlock(ctx, ch, len); in xmlTextReaderCDataBlock()
767 * @reader: the xmlTextReaderPtr used
775 xmlTextReaderPushData(xmlTextReaderPtr reader) { in xmlTextReaderPushData() argument
780 if ((reader->input == NULL) || (reader->input->buffer == NULL)) in xmlTextReaderPushData()
783 oldstate = reader->state; in xmlTextReaderPushData()
784 reader->state = XML_TEXTREADER_NONE; in xmlTextReaderPushData()
785 inbuf = reader->input->buffer; in xmlTextReaderPushData()
787 while (reader->state == XML_TEXTREADER_NONE) { in xmlTextReaderPushData()
788 if (xmlBufUse(inbuf) < reader->cur + CHUNK_SIZE) { in xmlTextReaderPushData()
792 if (reader->mode != XML_TEXTREADER_MODE_EOF) { in xmlTextReaderPushData()
793 val = xmlParserInputBufferRead(reader->input, 4096); in xmlTextReaderPushData()
795 if (xmlBufUse(inbuf) == reader->cur) { in xmlTextReaderPushData()
796 reader->mode = XML_TEXTREADER_MODE_EOF; in xmlTextReaderPushData()
800 xmlCtxtErrIO(reader->ctxt, reader->input->error, NULL); in xmlTextReaderPushData()
801 reader->mode = XML_TEXTREADER_MODE_ERROR; in xmlTextReaderPushData()
802 reader->state = XML_TEXTREADER_ERROR; in xmlTextReaderPushData()
813 if (xmlBufUse(inbuf) >= reader->cur + CHUNK_SIZE) { in xmlTextReaderPushData()
814 val = xmlParseChunk(reader->ctxt, in xmlTextReaderPushData()
815 (const char *) xmlBufContent(inbuf) + reader->cur, in xmlTextReaderPushData()
817 reader->cur += CHUNK_SIZE; in xmlTextReaderPushData()
819 reader->ctxt->wellFormed = 0; in xmlTextReaderPushData()
820 if (reader->ctxt->wellFormed == 0) in xmlTextReaderPushData()
823 s = xmlBufUse(inbuf) - reader->cur; in xmlTextReaderPushData()
824 val = xmlParseChunk(reader->ctxt, in xmlTextReaderPushData()
825 (const char *) xmlBufContent(inbuf) + reader->cur, in xmlTextReaderPushData()
827 reader->cur += s; in xmlTextReaderPushData()
829 reader->ctxt->wellFormed = 0; in xmlTextReaderPushData()
833 reader->state = oldstate; in xmlTextReaderPushData()
838 if (reader->mode == XML_TEXTREADER_MODE_INTERACTIVE) { in xmlTextReaderPushData()
839 if (reader->input->readcallback != NULL) { in xmlTextReaderPushData()
840 if ((reader->cur >= 4096) && in xmlTextReaderPushData()
841 (xmlBufUse(inbuf) - reader->cur <= CHUNK_SIZE)) { in xmlTextReaderPushData()
842 val = xmlBufShrink(inbuf, reader->cur); in xmlTextReaderPushData()
844 reader->cur -= val; in xmlTextReaderPushData()
854 else if (reader->mode == XML_TEXTREADER_MODE_EOF) { in xmlTextReaderPushData()
855 if (reader->state != XML_TEXTREADER_DONE) { in xmlTextReaderPushData()
856 s = xmlBufUse(inbuf) - reader->cur; in xmlTextReaderPushData()
857 val = xmlParseChunk(reader->ctxt, in xmlTextReaderPushData()
858 (const char *) xmlBufContent(inbuf) + reader->cur, in xmlTextReaderPushData()
860 reader->cur = xmlBufUse(inbuf); in xmlTextReaderPushData()
861 reader->state = XML_TEXTREADER_DONE; in xmlTextReaderPushData()
863 if (reader->ctxt->wellFormed) in xmlTextReaderPushData()
864 reader->ctxt->wellFormed = 0; in xmlTextReaderPushData()
870 if (reader->ctxt->wellFormed == 0) { in xmlTextReaderPushData()
871 reader->mode = XML_TEXTREADER_MODE_EOF; in xmlTextReaderPushData()
881 * @reader: the xmlTextReaderPtr used
886 xmlTextReaderValidatePush(xmlTextReaderPtr reader) { in xmlTextReaderValidatePush() argument
887 xmlNodePtr node = reader->node; in xmlTextReaderValidatePush()
890 if ((reader->validate == XML_TEXTREADER_VALIDATE_DTD) && in xmlTextReaderValidatePush()
891 (reader->ctxt != NULL) && (reader->ctxt->validate == 1)) { in xmlTextReaderValidatePush()
893 reader->ctxt->valid &= xmlValidatePushElement(&reader->ctxt->vctxt, in xmlTextReaderValidatePush()
894 reader->ctxt->myDoc, node, node->name); in xmlTextReaderValidatePush()
901 xmlTextReaderErrMemory(reader); in xmlTextReaderValidatePush()
904 reader->ctxt->valid &= xmlValidatePushElement(&reader->ctxt->vctxt, in xmlTextReaderValidatePush()
905 reader->ctxt->myDoc, node, qname); in xmlTextReaderValidatePush()
909 /*if (reader->ctxt->errNo == XML_ERR_NO_MEMORY) { in xmlTextReaderValidatePush()
910 reader->mode = XML_TEXTREADER_MODE_ERROR; in xmlTextReaderValidatePush()
911 reader->state = XML_TEXTREADER_ERROR; in xmlTextReaderValidatePush()
917 if ((reader->validate == XML_TEXTREADER_VALIDATE_RNG) && in xmlTextReaderValidatePush()
918 (reader->rngValidCtxt != NULL)) { in xmlTextReaderValidatePush()
921 if (reader->rngFullNode != NULL) return(0); in xmlTextReaderValidatePush()
922 ret = xmlRelaxNGValidatePushElement(reader->rngValidCtxt, in xmlTextReaderValidatePush()
923 reader->ctxt->myDoc, in xmlTextReaderValidatePush()
929 node = xmlTextReaderExpand(reader); in xmlTextReaderValidatePush()
933 ret = xmlRelaxNGValidateFullElement(reader->rngValidCtxt, in xmlTextReaderValidatePush()
934 reader->ctxt->myDoc, in xmlTextReaderValidatePush()
936 reader->rngFullNode = node; in xmlTextReaderValidatePush()
940 reader->rngValidErrors++; in xmlTextReaderValidatePush()
949 * @reader: the xmlTextReaderPtr used
956 xmlTextReaderValidateCData(xmlTextReaderPtr reader, in xmlTextReaderValidateCData() argument
959 if ((reader->validate == XML_TEXTREADER_VALIDATE_DTD) && in xmlTextReaderValidateCData()
960 (reader->ctxt != NULL) && (reader->ctxt->validate == 1)) { in xmlTextReaderValidateCData()
961 reader->ctxt->valid &= xmlValidatePushCData(&reader->ctxt->vctxt, in xmlTextReaderValidateCData()
966 if ((reader->validate == XML_TEXTREADER_VALIDATE_RNG) && in xmlTextReaderValidateCData()
967 (reader->rngValidCtxt != NULL)) { in xmlTextReaderValidateCData()
970 if (reader->rngFullNode != NULL) return; in xmlTextReaderValidateCData()
971 ret = xmlRelaxNGValidatePushCData(reader->rngValidCtxt, data, len); in xmlTextReaderValidateCData()
973 reader->rngValidErrors++; in xmlTextReaderValidateCData()
980 * @reader: the xmlTextReaderPtr used
985 xmlTextReaderValidatePop(xmlTextReaderPtr reader) { in xmlTextReaderValidatePop() argument
986 xmlNodePtr node = reader->node; in xmlTextReaderValidatePop()
989 if ((reader->validate == XML_TEXTREADER_VALIDATE_DTD) && in xmlTextReaderValidatePop()
990 (reader->ctxt != NULL) && (reader->ctxt->validate == 1)) { in xmlTextReaderValidatePop()
992 reader->ctxt->valid &= xmlValidatePopElement(&reader->ctxt->vctxt, in xmlTextReaderValidatePop()
993 reader->ctxt->myDoc, node, node->name); in xmlTextReaderValidatePop()
1000 xmlTextReaderErrMemory(reader); in xmlTextReaderValidatePop()
1003 reader->ctxt->valid &= xmlValidatePopElement(&reader->ctxt->vctxt, in xmlTextReaderValidatePop()
1004 reader->ctxt->myDoc, node, qname); in xmlTextReaderValidatePop()
1008 /*if (reader->ctxt->errNo == XML_ERR_NO_MEMORY) { in xmlTextReaderValidatePop()
1009 reader->mode = XML_TEXTREADER_MODE_ERROR; in xmlTextReaderValidatePop()
1010 reader->state = XML_TEXTREADER_ERROR; in xmlTextReaderValidatePop()
1016 if ((reader->validate == XML_TEXTREADER_VALIDATE_RNG) && in xmlTextReaderValidatePop()
1017 (reader->rngValidCtxt != NULL)) { in xmlTextReaderValidatePop()
1020 if (reader->rngFullNode != NULL) { in xmlTextReaderValidatePop()
1021 if (node == reader->rngFullNode) in xmlTextReaderValidatePop()
1022 reader->rngFullNode = NULL; in xmlTextReaderValidatePop()
1025 ret = xmlRelaxNGValidatePopElement(reader->rngValidCtxt, in xmlTextReaderValidatePop()
1026 reader->ctxt->myDoc, in xmlTextReaderValidatePop()
1029 reader->rngValidErrors++; in xmlTextReaderValidatePop()
1038 * @reader: the xmlTextReaderPtr used
1045 xmlTextReaderValidateEntity(xmlTextReaderPtr reader) { in xmlTextReaderValidateEntity() argument
1046 xmlNodePtr oldnode = reader->node; in xmlTextReaderValidateEntity()
1047 xmlNodePtr node = reader->node; in xmlTextReaderValidateEntity()
1054 if (xmlTextReaderEntPush(reader, node) < 0) { in xmlTextReaderValidateEntity()
1071 reader->node = node; in xmlTextReaderValidateEntity()
1072 if (xmlTextReaderValidatePush(reader) < 0) in xmlTextReaderValidateEntity()
1076 xmlTextReaderValidateCData(reader, node->content, in xmlTextReaderValidateEntity()
1088 if (xmlTextReaderValidatePop(reader) < 0) in xmlTextReaderValidateEntity()
1100 if (reader->entNr == 0) { in xmlTextReaderValidateEntity()
1104 xmlTextReaderFreeNode(reader, tmp); in xmlTextReaderValidateEntity()
1109 reader->node = node; in xmlTextReaderValidateEntity()
1110 if (xmlTextReaderValidatePop(reader) < 0) in xmlTextReaderValidateEntity()
1114 (reader->ent != NULL) && (reader->ent->children == node)) { in xmlTextReaderValidateEntity()
1115 node = xmlTextReaderEntPop(reader); in xmlTextReaderValidateEntity()
1125 reader->node = oldnode; in xmlTextReaderValidateEntity()
1154 * @reader: the xmlTextReaderPtr used
1164 xmlTextReaderDoExpand(xmlTextReaderPtr reader) { in xmlTextReaderDoExpand() argument
1167 if ((reader == NULL) || (reader->node == NULL) || (reader->ctxt == NULL)) in xmlTextReaderDoExpand()
1170 if (PARSER_STOPPED(reader->ctxt)) in xmlTextReaderDoExpand()
1173 if (xmlTextReaderGetSuccessor(reader->node) != NULL) in xmlTextReaderDoExpand()
1175 if (reader->ctxt->nodeNr < reader->depth) in xmlTextReaderDoExpand()
1177 if (reader->mode == XML_TEXTREADER_MODE_EOF) in xmlTextReaderDoExpand()
1179 val = xmlTextReaderPushData(reader); in xmlTextReaderDoExpand()
1181 reader->mode = XML_TEXTREADER_MODE_ERROR; in xmlTextReaderDoExpand()
1182 reader->state = XML_TEXTREADER_ERROR; in xmlTextReaderDoExpand()
1185 } while(reader->mode != XML_TEXTREADER_MODE_EOF); in xmlTextReaderDoExpand()
1191 * @reader: the xmlTextReaderPtr used
1200 xmlTextReaderRead(xmlTextReaderPtr reader) { in xmlTextReaderRead() argument
1205 if (reader == NULL) in xmlTextReaderRead()
1207 if (reader->state == XML_TEXTREADER_ERROR) in xmlTextReaderRead()
1210 reader->curnode = NULL; in xmlTextReaderRead()
1211 if (reader->doc != NULL) in xmlTextReaderRead()
1212 return(xmlTextReaderReadTree(reader)); in xmlTextReaderRead()
1213 if (reader->ctxt == NULL) in xmlTextReaderRead()
1216 if (reader->mode == XML_TEXTREADER_MODE_INITIAL) { in xmlTextReaderRead()
1217 reader->mode = XML_TEXTREADER_MODE_INTERACTIVE; in xmlTextReaderRead()
1222 val = xmlTextReaderPushData(reader); in xmlTextReaderRead()
1224 reader->mode = XML_TEXTREADER_MODE_ERROR; in xmlTextReaderRead()
1225 reader->state = XML_TEXTREADER_ERROR; in xmlTextReaderRead()
1228 } while ((reader->ctxt->node == NULL) && in xmlTextReaderRead()
1229 ((reader->mode != XML_TEXTREADER_MODE_EOF) && in xmlTextReaderRead()
1230 (reader->state != XML_TEXTREADER_DONE))); in xmlTextReaderRead()
1231 if (reader->ctxt->node == NULL) { in xmlTextReaderRead()
1232 if (reader->ctxt->myDoc != NULL) { in xmlTextReaderRead()
1233 reader->node = reader->ctxt->myDoc->children; in xmlTextReaderRead()
1235 if (reader->node == NULL) { in xmlTextReaderRead()
1236 reader->mode = XML_TEXTREADER_MODE_ERROR; in xmlTextReaderRead()
1237 reader->state = XML_TEXTREADER_ERROR; in xmlTextReaderRead()
1240 reader->state = XML_TEXTREADER_ELEMENT; in xmlTextReaderRead()
1242 if (reader->ctxt->myDoc != NULL) { in xmlTextReaderRead()
1243 reader->node = reader->ctxt->myDoc->children; in xmlTextReaderRead()
1245 if (reader->node == NULL) in xmlTextReaderRead()
1246 reader->node = reader->ctxt->nodeTab[0]; in xmlTextReaderRead()
1247 reader->state = XML_TEXTREADER_ELEMENT; in xmlTextReaderRead()
1249 reader->depth = 0; in xmlTextReaderRead()
1250 reader->ctxt->parseMode = XML_PARSE_READER; in xmlTextReaderRead()
1253 oldstate = reader->state; in xmlTextReaderRead()
1254 olddepth = reader->ctxt->nodeNr; in xmlTextReaderRead()
1255 oldnode = reader->node; in xmlTextReaderRead()
1258 if (reader->node == NULL) { in xmlTextReaderRead()
1259 if (reader->mode == XML_TEXTREADER_MODE_EOF) { in xmlTextReaderRead()
1262 reader->mode = XML_TEXTREADER_MODE_ERROR; in xmlTextReaderRead()
1263 reader->state = XML_TEXTREADER_ERROR; in xmlTextReaderRead()
1273 while ((reader->node != NULL) && (reader->node->next == NULL) && in xmlTextReaderRead()
1274 (reader->ctxt->nodeNr == olddepth) && in xmlTextReaderRead()
1276 (reader->node->children == NULL) || in xmlTextReaderRead()
1277 (reader->node->type == XML_ENTITY_REF_NODE) || in xmlTextReaderRead()
1278 ((reader->node->children != NULL) && in xmlTextReaderRead()
1279 (reader->node->children->type == XML_TEXT_NODE) && in xmlTextReaderRead()
1280 (reader->node->children->next == NULL)) || in xmlTextReaderRead()
1281 (reader->node->type == XML_DTD_NODE) || in xmlTextReaderRead()
1282 (reader->node->type == XML_DOCUMENT_NODE) || in xmlTextReaderRead()
1283 (reader->node->type == XML_HTML_DOCUMENT_NODE)) && in xmlTextReaderRead()
1284 ((reader->ctxt->node == NULL) || in xmlTextReaderRead()
1285 (reader->ctxt->node == reader->node) || in xmlTextReaderRead()
1286 (reader->ctxt->node == reader->node->parent)) && in xmlTextReaderRead()
1287 (reader->ctxt->instate != XML_PARSER_EOF) && in xmlTextReaderRead()
1288 (PARSER_STOPPED(reader->ctxt) == 0)) { in xmlTextReaderRead()
1289 val = xmlTextReaderPushData(reader); in xmlTextReaderRead()
1291 reader->mode = XML_TEXTREADER_MODE_ERROR; in xmlTextReaderRead()
1292 reader->state = XML_TEXTREADER_ERROR; in xmlTextReaderRead()
1295 if (reader->node == NULL) in xmlTextReaderRead()
1299 if ((reader->node->children != NULL) && in xmlTextReaderRead()
1300 (reader->node->type != XML_ENTITY_REF_NODE) && in xmlTextReaderRead()
1301 (reader->node->type != XML_XINCLUDE_START) && in xmlTextReaderRead()
1302 (reader->node->type != XML_DTD_NODE)) { in xmlTextReaderRead()
1303 reader->node = reader->node->children; in xmlTextReaderRead()
1304 reader->depth++; in xmlTextReaderRead()
1305 reader->state = XML_TEXTREADER_ELEMENT; in xmlTextReaderRead()
1309 if (reader->node->next != NULL) { in xmlTextReaderRead()
1311 (reader->node->type == XML_ELEMENT_NODE) && in xmlTextReaderRead()
1312 (reader->node->children == NULL) && in xmlTextReaderRead()
1313 ((reader->node->extra & NODE_IS_EMPTY) == 0) in xmlTextReaderRead()
1315 && (reader->in_xinclude <= 0) in xmlTextReaderRead()
1318 reader->state = XML_TEXTREADER_END; in xmlTextReaderRead()
1322 if ((reader->validate) && in xmlTextReaderRead()
1323 (reader->node->type == XML_ELEMENT_NODE)) in xmlTextReaderRead()
1324 if (xmlTextReaderValidatePop(reader) < 0) in xmlTextReaderRead()
1327 if ((reader->preserves > 0) && in xmlTextReaderRead()
1328 (reader->node->extra & NODE_IS_SPRESERVED)) in xmlTextReaderRead()
1329 reader->preserves--; in xmlTextReaderRead()
1330 reader->node = reader->node->next; in xmlTextReaderRead()
1331 reader->state = XML_TEXTREADER_ELEMENT; in xmlTextReaderRead()
1336 if ((reader->preserves == 0) && in xmlTextReaderRead()
1338 (reader->in_xinclude == 0) && in xmlTextReaderRead()
1340 (reader->entNr == 0) && in xmlTextReaderRead()
1341 (reader->node->prev != NULL) && in xmlTextReaderRead()
1342 (reader->node->prev->type != XML_DTD_NODE)) { in xmlTextReaderRead()
1343 xmlNodePtr tmp = reader->node->prev; in xmlTextReaderRead()
1348 xmlTextReaderFreeNode(reader, tmp); in xmlTextReaderRead()
1355 (reader->node->type == XML_ELEMENT_NODE) && in xmlTextReaderRead()
1356 (reader->node->children == NULL) && in xmlTextReaderRead()
1357 ((reader->node->extra & NODE_IS_EMPTY) == 0)) {; in xmlTextReaderRead()
1358 reader->state = XML_TEXTREADER_END; in xmlTextReaderRead()
1362 if ((reader->validate != XML_TEXTREADER_NOT_VALIDATE) && in xmlTextReaderRead()
1363 (reader->node->type == XML_ELEMENT_NODE)) { in xmlTextReaderRead()
1364 if (xmlTextReaderValidatePop(reader) < 0) in xmlTextReaderRead()
1368 if ((reader->preserves > 0) && in xmlTextReaderRead()
1369 (reader->node->extra & NODE_IS_SPRESERVED)) in xmlTextReaderRead()
1370 reader->preserves--; in xmlTextReaderRead()
1371 reader->node = reader->node->parent; in xmlTextReaderRead()
1372 if ((reader->node == NULL) || in xmlTextReaderRead()
1373 (reader->node->type == XML_DOCUMENT_NODE) || in xmlTextReaderRead()
1374 (reader->node->type == XML_HTML_DOCUMENT_NODE)) { in xmlTextReaderRead()
1375 if (reader->mode != XML_TEXTREADER_MODE_EOF) { in xmlTextReaderRead()
1376 val = xmlParseChunk(reader->ctxt, "", 0, 1); in xmlTextReaderRead()
1377 reader->state = XML_TEXTREADER_DONE; in xmlTextReaderRead()
1379 reader->mode = XML_TEXTREADER_MODE_ERROR; in xmlTextReaderRead()
1380 reader->state = XML_TEXTREADER_ERROR; in xmlTextReaderRead()
1384 reader->node = NULL; in xmlTextReaderRead()
1385 reader->depth = -1; in xmlTextReaderRead()
1390 if ((oldnode != NULL) && (reader->preserves == 0) && in xmlTextReaderRead()
1392 (reader->in_xinclude == 0) && in xmlTextReaderRead()
1394 (reader->entNr == 0) && in xmlTextReaderRead()
1398 xmlTextReaderFreeNode(reader, oldnode); in xmlTextReaderRead()
1403 if ((reader->preserves == 0) && in xmlTextReaderRead()
1405 (reader->in_xinclude == 0) && in xmlTextReaderRead()
1407 (reader->entNr == 0) && in xmlTextReaderRead()
1408 (reader->node->last != NULL) && in xmlTextReaderRead()
1409 ((reader->node->last->extra & NODE_IS_PRESERVED) == 0)) { in xmlTextReaderRead()
1410 xmlNodePtr tmp = reader->node->last; in xmlTextReaderRead()
1412 xmlTextReaderFreeNode(reader, tmp); in xmlTextReaderRead()
1414 reader->depth--; in xmlTextReaderRead()
1415 reader->state = XML_TEXTREADER_BACKTRACK; in xmlTextReaderRead()
1421 if ((reader->node != NULL) && in xmlTextReaderRead()
1422 (reader->node->next == NULL) && in xmlTextReaderRead()
1423 ((reader->node->type == XML_TEXT_NODE) || in xmlTextReaderRead()
1424 (reader->node->type == XML_CDATA_SECTION_NODE))) { in xmlTextReaderRead()
1425 if (xmlTextReaderExpand(reader) == NULL) in xmlTextReaderRead()
1433 if ((reader->xinclude) && (reader->in_xinclude == 0) && in xmlTextReaderRead()
1434 (reader->state != XML_TEXTREADER_BACKTRACK) && in xmlTextReaderRead()
1435 (reader->node != NULL) && in xmlTextReaderRead()
1436 (reader->node->type == XML_ELEMENT_NODE) && in xmlTextReaderRead()
1437 (reader->node->ns != NULL) && in xmlTextReaderRead()
1438 ((xmlStrEqual(reader->node->ns->href, XINCLUDE_NS)) || in xmlTextReaderRead()
1439 (xmlStrEqual(reader->node->ns->href, XINCLUDE_OLD_NS)))) { in xmlTextReaderRead()
1440 if (reader->xincctxt == NULL) { in xmlTextReaderRead()
1441 reader->xincctxt = xmlXIncludeNewContext(reader->ctxt->myDoc); in xmlTextReaderRead()
1442 if (reader->xincctxt == NULL) { in xmlTextReaderRead()
1443 xmlTextReaderErrMemory(reader); in xmlTextReaderRead()
1446 xmlXIncludeSetFlags(reader->xincctxt, in xmlTextReaderRead()
1447 reader->parserFlags & (~XML_PARSE_NOXINCNODE)); in xmlTextReaderRead()
1448 xmlXIncludeSetStreamingMode(reader->xincctxt, 1); in xmlTextReaderRead()
1449 if ((reader->errorFunc != NULL) || (reader->sErrorFunc != NULL)) in xmlTextReaderRead()
1450 xmlXIncludeSetErrorHandler(reader->xincctxt, in xmlTextReaderRead()
1451 xmlTextReaderStructuredRelay, reader); in xmlTextReaderRead()
1452 if (reader->resourceLoader != NULL) in xmlTextReaderRead()
1453 xmlXIncludeSetResourceLoader(reader->xincctxt, in xmlTextReaderRead()
1454 reader->resourceLoader, reader->resourceCtxt); in xmlTextReaderRead()
1459 if (xmlTextReaderExpand(reader) == NULL) in xmlTextReaderRead()
1461 if (xmlXIncludeProcessNode(reader->xincctxt, reader->node) < 0) { in xmlTextReaderRead()
1462 int err = xmlXIncludeGetLastError(reader->xincctxt); in xmlTextReaderRead()
1465 xmlTextReaderErrMemory(reader); in xmlTextReaderRead()
1469 if ((reader->node != NULL) && (reader->node->type == XML_XINCLUDE_START)) { in xmlTextReaderRead()
1470 reader->in_xinclude++; in xmlTextReaderRead()
1473 if ((reader->node != NULL) && (reader->node->type == XML_XINCLUDE_END)) { in xmlTextReaderRead()
1474 reader->in_xinclude--; in xmlTextReaderRead()
1481 if ((reader->node != NULL) && in xmlTextReaderRead()
1482 (reader->node->type == XML_ENTITY_REF_NODE) && in xmlTextReaderRead()
1483 (reader->ctxt != NULL) && (reader->ctxt->replaceEntities == 1)) { in xmlTextReaderRead()
1484 if ((reader->node->children != NULL) && in xmlTextReaderRead()
1485 (reader->node->children->type == XML_ENTITY_DECL) && in xmlTextReaderRead()
1486 (reader->node->children->children != NULL)) { in xmlTextReaderRead()
1487 if (xmlTextReaderEntPush(reader, reader->node) < 0) in xmlTextReaderRead()
1489 reader->node = reader->node->children->children; in xmlTextReaderRead()
1492 } else if ((reader->node != NULL) && in xmlTextReaderRead()
1493 (reader->node->type == XML_ENTITY_REF_NODE) && in xmlTextReaderRead()
1494 (reader->ctxt != NULL) && (reader->validate)) { in xmlTextReaderRead()
1495 if (xmlTextReaderValidateEntity(reader) < 0) in xmlTextReaderRead()
1499 if ((reader->node != NULL) && in xmlTextReaderRead()
1500 (reader->node->type == XML_ENTITY_DECL) && in xmlTextReaderRead()
1501 (reader->ent != NULL) && (reader->ent->children == reader->node)) { in xmlTextReaderRead()
1502 reader->node = xmlTextReaderEntPop(reader); in xmlTextReaderRead()
1503 reader->depth++; in xmlTextReaderRead()
1507 if ((reader->validate != XML_TEXTREADER_NOT_VALIDATE) && (reader->node != NULL)) { in xmlTextReaderRead()
1508 xmlNodePtr node = reader->node; in xmlTextReaderRead()
1511 ((reader->state != XML_TEXTREADER_END) && in xmlTextReaderRead()
1512 (reader->state != XML_TEXTREADER_BACKTRACK))) { in xmlTextReaderRead()
1513 if (xmlTextReaderValidatePush(reader) < 0) in xmlTextReaderRead()
1517 xmlTextReaderValidateCData(reader, node->content, in xmlTextReaderRead()
1523 if ((reader->patternNr > 0) && (reader->state != XML_TEXTREADER_END) && in xmlTextReaderRead()
1524 (reader->state != XML_TEXTREADER_BACKTRACK)) { in xmlTextReaderRead()
1526 for (i = 0;i < reader->patternNr;i++) { in xmlTextReaderRead()
1527 if (xmlPatternMatch(reader->patternTab[i], reader->node) == 1) { in xmlTextReaderRead()
1528 xmlTextReaderPreserve(reader); in xmlTextReaderRead()
1535 if ((reader->validate == XML_TEXTREADER_VALIDATE_XSD) && in xmlTextReaderRead()
1536 (reader->xsdValidErrors == 0) && in xmlTextReaderRead()
1537 (reader->xsdValidCtxt != NULL)) { in xmlTextReaderRead()
1538 reader->xsdValidErrors = !xmlSchemaIsValid(reader->xsdValidCtxt); in xmlTextReaderRead()
1543 reader->state = XML_TEXTREADER_DONE; in xmlTextReaderRead()
1549 * @reader: the xmlTextReaderPtr used
1551 * Gets the read state of the reader.
1556 xmlTextReaderReadState(xmlTextReaderPtr reader) { in xmlTextReaderReadState() argument
1557 if (reader == NULL) in xmlTextReaderReadState()
1559 return(reader->mode); in xmlTextReaderReadState()
1564 * @reader: the xmlTextReaderPtr used
1573 xmlTextReaderExpand(xmlTextReaderPtr reader) { in xmlTextReaderExpand() argument
1574 if ((reader == NULL) || (reader->node == NULL)) in xmlTextReaderExpand()
1576 if (reader->doc != NULL) in xmlTextReaderExpand()
1577 return(reader->node); in xmlTextReaderExpand()
1578 if (reader->ctxt == NULL) in xmlTextReaderExpand()
1580 if (xmlTextReaderDoExpand(reader) < 0) in xmlTextReaderExpand()
1582 return(reader->node); in xmlTextReaderExpand()
1587 * @reader: the xmlTextReaderPtr used
1596 xmlTextReaderNext(xmlTextReaderPtr reader) { in xmlTextReaderNext() argument
1600 if (reader == NULL) in xmlTextReaderNext()
1602 if (reader->doc != NULL) in xmlTextReaderNext()
1603 return(xmlTextReaderNextTree(reader)); in xmlTextReaderNext()
1604 cur = reader->node; in xmlTextReaderNext()
1606 return(xmlTextReaderRead(reader)); in xmlTextReaderNext()
1607 if (reader->state == XML_TEXTREADER_END || reader->state == XML_TEXTREADER_BACKTRACK) in xmlTextReaderNext()
1608 return(xmlTextReaderRead(reader)); in xmlTextReaderNext()
1610 return(xmlTextReaderRead(reader)); in xmlTextReaderNext()
1612 ret = xmlTextReaderRead(reader); in xmlTextReaderNext()
1615 } while (reader->node != cur); in xmlTextReaderNext()
1616 return(xmlTextReaderRead(reader)); in xmlTextReaderNext()
1621 xmlTextReaderDumpCopy(xmlTextReaderPtr reader, xmlOutputBufferPtr output, in xmlTextReaderDumpCopy() argument
1641 xmlTextReaderErrMemory(reader); in xmlTextReaderDumpCopy()
1653 * @reader: the xmlTextReaderPtr used
1662 xmlTextReaderReadInnerXml(xmlTextReaderPtr reader) in xmlTextReaderReadInnerXml() argument
1668 if (xmlTextReaderExpand(reader) == NULL) in xmlTextReaderReadInnerXml()
1671 if (reader->node == NULL) in xmlTextReaderReadInnerXml()
1676 xmlTextReaderErrMemory(reader); in xmlTextReaderReadInnerXml()
1680 for (cur = reader->node->children; cur != NULL; cur = cur->next) in xmlTextReaderReadInnerXml()
1681 xmlTextReaderDumpCopy(reader, output, cur); in xmlTextReaderReadInnerXml()
1684 xmlCtxtErrIO(reader->ctxt, output->error, NULL); in xmlTextReaderReadInnerXml()
1694 * @reader: the xmlTextReaderPtr used
1703 xmlTextReaderReadOuterXml(xmlTextReaderPtr reader) in xmlTextReaderReadOuterXml() argument
1709 if (xmlTextReaderExpand(reader) == NULL) in xmlTextReaderReadOuterXml()
1712 node = reader->node; in xmlTextReaderReadOuterXml()
1718 xmlTextReaderErrMemory(reader); in xmlTextReaderReadOuterXml()
1722 xmlTextReaderDumpCopy(reader, output, node); in xmlTextReaderReadOuterXml()
1724 xmlCtxtErrIO(reader->ctxt, output->error, NULL); in xmlTextReaderReadOuterXml()
1735 * @reader: the xmlTextReaderPtr used
1740 * or NULL if the reader is positioned on any other type of node.
1744 xmlTextReaderReadString(xmlTextReaderPtr reader) in xmlTextReaderReadString() argument
1750 if ((reader == NULL) || (reader->node == NULL)) in xmlTextReaderReadString()
1753 node = (reader->curnode != NULL) ? reader->curnode : reader->node; in xmlTextReaderReadString()
1768 xmlTextReaderErrMemory(reader); in xmlTextReaderReadString()
1806 xmlTextReaderErrMemory(reader); in xmlTextReaderReadString()
1815 * @reader: the xmlTextReaderPtr used
1828 xmlTextReaderReadBase64(xmlTextReaderPtr reader,
1832 if ((reader == NULL) || (reader->ctxt == NULL))
1834 if (reader->ctxt->wellFormed != 1)
1837 if ((reader->node == NULL) || (reader->node->type == XML_ELEMENT_NODE))
1844 * @reader: the xmlTextReaderPtr used
1857 xmlTextReaderReadBinHex(xmlTextReaderPtr reader,
1861 if ((reader == NULL) || (reader->ctxt == NULL))
1863 if (reader->ctxt->wellFormed != 1)
1866 if ((reader->node == NULL) || (reader->node->type == XML_ELEMENT_NODE))
1878 xmlTextReaderNextTree(xmlTextReaderPtr reader) in xmlTextReaderNextTree() argument
1880 if (reader == NULL) in xmlTextReaderNextTree()
1883 if (reader->state == XML_TEXTREADER_END) in xmlTextReaderNextTree()
1886 if (reader->node == NULL) { in xmlTextReaderNextTree()
1887 if (reader->doc->children == NULL) { in xmlTextReaderNextTree()
1888 reader->state = XML_TEXTREADER_END; in xmlTextReaderNextTree()
1892 reader->node = reader->doc->children; in xmlTextReaderNextTree()
1893 reader->state = XML_TEXTREADER_START; in xmlTextReaderNextTree()
1897 if (reader->state != XML_TEXTREADER_BACKTRACK) { in xmlTextReaderNextTree()
1900 if (reader->node->next != 0) { in xmlTextReaderNextTree()
1902 reader->node = reader->node->next; in xmlTextReaderNextTree()
1903 reader->state = XML_TEXTREADER_START; in xmlTextReaderNextTree()
1907 /* if reader->node->next is NULL mean no subtree for current node, in xmlTextReaderNextTree()
1909 reader->state = XML_TEXTREADER_BACKTRACK; in xmlTextReaderNextTree()
1911 xmlTextReaderRead(reader); in xmlTextReaderNextTree()
1914 if (reader->node->next != 0) { in xmlTextReaderNextTree()
1915 reader->node = reader->node->next; in xmlTextReaderNextTree()
1916 reader->state = XML_TEXTREADER_START; in xmlTextReaderNextTree()
1920 if (reader->node->parent != 0) { in xmlTextReaderNextTree()
1921 if (reader->node->parent->type == XML_DOCUMENT_NODE) { in xmlTextReaderNextTree()
1922 reader->state = XML_TEXTREADER_END; in xmlTextReaderNextTree()
1926 reader->node = reader->node->parent; in xmlTextReaderNextTree()
1927 reader->depth--; in xmlTextReaderNextTree()
1928 reader->state = XML_TEXTREADER_BACKTRACK; in xmlTextReaderNextTree()
1930 xmlTextReaderNextTree(reader); in xmlTextReaderNextTree()
1933 reader->state = XML_TEXTREADER_END; in xmlTextReaderNextTree()
1940 * @reader: the xmlTextReaderPtr used
1949 xmlTextReaderReadTree(xmlTextReaderPtr reader) { in xmlTextReaderReadTree() argument
1950 if (reader->state == XML_TEXTREADER_END) in xmlTextReaderReadTree()
1954 if (reader->node == NULL) { in xmlTextReaderReadTree()
1955 if (reader->doc->children == NULL) { in xmlTextReaderReadTree()
1956 reader->state = XML_TEXTREADER_END; in xmlTextReaderReadTree()
1960 reader->node = reader->doc->children; in xmlTextReaderReadTree()
1961 reader->state = XML_TEXTREADER_START; in xmlTextReaderReadTree()
1965 if ((reader->state != XML_TEXTREADER_BACKTRACK) && in xmlTextReaderReadTree()
1966 (reader->node->type != XML_DTD_NODE) && in xmlTextReaderReadTree()
1967 (reader->node->type != XML_XINCLUDE_START) && in xmlTextReaderReadTree()
1968 (reader->node->type != XML_ENTITY_REF_NODE)) { in xmlTextReaderReadTree()
1969 if (reader->node->children != NULL) { in xmlTextReaderReadTree()
1970 reader->node = reader->node->children; in xmlTextReaderReadTree()
1971 reader->depth++; in xmlTextReaderReadTree()
1972 reader->state = XML_TEXTREADER_START; in xmlTextReaderReadTree()
1976 if (reader->node->type == XML_ATTRIBUTE_NODE) { in xmlTextReaderReadTree()
1977 reader->state = XML_TEXTREADER_BACKTRACK; in xmlTextReaderReadTree()
1982 if (reader->node->next != NULL) { in xmlTextReaderReadTree()
1983 reader->node = reader->node->next; in xmlTextReaderReadTree()
1984 reader->state = XML_TEXTREADER_START; in xmlTextReaderReadTree()
1988 if (reader->node->parent != NULL) { in xmlTextReaderReadTree()
1989 if ((reader->node->parent->type == XML_DOCUMENT_NODE) || in xmlTextReaderReadTree()
1990 (reader->node->parent->type == XML_HTML_DOCUMENT_NODE)) { in xmlTextReaderReadTree()
1991 reader->state = XML_TEXTREADER_END; in xmlTextReaderReadTree()
1995 reader->node = reader->node->parent; in xmlTextReaderReadTree()
1996 reader->depth--; in xmlTextReaderReadTree()
1997 reader->state = XML_TEXTREADER_BACKTRACK; in xmlTextReaderReadTree()
2001 reader->state = XML_TEXTREADER_END; in xmlTextReaderReadTree()
2004 if ((reader->node->type == XML_XINCLUDE_START) || in xmlTextReaderReadTree()
2005 (reader->node->type == XML_XINCLUDE_END)) in xmlTextReaderReadTree()
2013 * @reader: the xmlTextReaderPtr used
2023 xmlTextReaderNextSibling(xmlTextReaderPtr reader) { in xmlTextReaderNextSibling() argument
2024 if (reader == NULL) in xmlTextReaderNextSibling()
2026 if (reader->doc == NULL) { in xmlTextReaderNextSibling()
2031 if (reader->state == XML_TEXTREADER_END) in xmlTextReaderNextSibling()
2034 if (reader->node == NULL) in xmlTextReaderNextSibling()
2035 return(xmlTextReaderNextTree(reader)); in xmlTextReaderNextSibling()
2037 if (reader->node->next != NULL) { in xmlTextReaderNextSibling()
2038 reader->node = reader->node->next; in xmlTextReaderNextSibling()
2039 reader->state = XML_TEXTREADER_START; in xmlTextReaderNextSibling()
2080 /* no operation on a reader should require a huge buffer */ in xmlNewTextReader()
2183 * @reader: the xmlTextReaderPtr
2185 * Deallocate all the resources associated to the reader
2188 xmlFreeTextReader(xmlTextReaderPtr reader) { in xmlFreeTextReader() argument
2189 if (reader == NULL) in xmlFreeTextReader()
2192 if (reader->rngSchemas != NULL) { in xmlFreeTextReader()
2193 xmlRelaxNGFree(reader->rngSchemas); in xmlFreeTextReader()
2194 reader->rngSchemas = NULL; in xmlFreeTextReader()
2196 if (reader->rngValidCtxt != NULL) { in xmlFreeTextReader()
2197 if (! reader->rngPreserveCtxt) in xmlFreeTextReader()
2198 xmlRelaxNGFreeValidCtxt(reader->rngValidCtxt); in xmlFreeTextReader()
2199 reader->rngValidCtxt = NULL; in xmlFreeTextReader()
2201 if (reader->xsdPlug != NULL) { in xmlFreeTextReader()
2202 xmlSchemaSAXUnplug(reader->xsdPlug); in xmlFreeTextReader()
2203 reader->xsdPlug = NULL; in xmlFreeTextReader()
2205 if (reader->xsdValidCtxt != NULL) { in xmlFreeTextReader()
2206 if (! reader->xsdPreserveCtxt) in xmlFreeTextReader()
2207 xmlSchemaFreeValidCtxt(reader->xsdValidCtxt); in xmlFreeTextReader()
2208 reader->xsdValidCtxt = NULL; in xmlFreeTextReader()
2210 if (reader->xsdSchemas != NULL) { in xmlFreeTextReader()
2211 xmlSchemaFree(reader->xsdSchemas); in xmlFreeTextReader()
2212 reader->xsdSchemas = NULL; in xmlFreeTextReader()
2216 if (reader->xincctxt != NULL) in xmlFreeTextReader()
2217 xmlXIncludeFreeContext(reader->xincctxt); in xmlFreeTextReader()
2220 if (reader->patternTab != NULL) { in xmlFreeTextReader()
2222 for (i = 0;i < reader->patternNr;i++) { in xmlFreeTextReader()
2223 if (reader->patternTab[i] != NULL) in xmlFreeTextReader()
2224 xmlFreePattern(reader->patternTab[i]); in xmlFreeTextReader()
2226 xmlFree(reader->patternTab); in xmlFreeTextReader()
2229 if (reader->mode != XML_TEXTREADER_MODE_CLOSED) in xmlFreeTextReader()
2230 xmlTextReaderClose(reader); in xmlFreeTextReader()
2231 if (reader->ctxt != NULL) { in xmlFreeTextReader()
2232 if (reader->dict == reader->ctxt->dict) in xmlFreeTextReader()
2233 reader->dict = NULL; in xmlFreeTextReader()
2234 if (reader->allocs & XML_TEXTREADER_CTXT) in xmlFreeTextReader()
2235 xmlFreeParserCtxt(reader->ctxt); in xmlFreeTextReader()
2237 if (reader->sax != NULL) in xmlFreeTextReader()
2238 xmlFree(reader->sax); in xmlFreeTextReader()
2239 if (reader->buffer != NULL) in xmlFreeTextReader()
2240 xmlBufFree(reader->buffer); in xmlFreeTextReader()
2241 if (reader->entTab != NULL) in xmlFreeTextReader()
2242 xmlFree(reader->entTab); in xmlFreeTextReader()
2243 if (reader->dict != NULL) in xmlFreeTextReader()
2244 xmlDictFree(reader->dict); in xmlFreeTextReader()
2245 xmlFree(reader); in xmlFreeTextReader()
2256 * @reader: the xmlTextReaderPtr used
2264 xmlTextReaderClose(xmlTextReaderPtr reader) { in xmlTextReaderClose() argument
2265 if (reader == NULL) in xmlTextReaderClose()
2267 reader->node = NULL; in xmlTextReaderClose()
2268 reader->curnode = NULL; in xmlTextReaderClose()
2269 reader->mode = XML_TEXTREADER_MODE_CLOSED; in xmlTextReaderClose()
2270 if (reader->faketext != NULL) { in xmlTextReaderClose()
2271 xmlFreeNode(reader->faketext); in xmlTextReaderClose()
2272 reader->faketext = NULL; in xmlTextReaderClose()
2274 if (reader->ctxt != NULL) { in xmlTextReaderClose()
2276 if ((reader->ctxt->vctxt.vstateTab != NULL) && in xmlTextReaderClose()
2277 (reader->ctxt->vctxt.vstateMax > 0)){ in xmlTextReaderClose()
2279 while (reader->ctxt->vctxt.vstateNr > 0) in xmlTextReaderClose()
2280 xmlValidatePopElement(&reader->ctxt->vctxt, NULL, NULL, NULL); in xmlTextReaderClose()
2282 xmlFree(reader->ctxt->vctxt.vstateTab); in xmlTextReaderClose()
2283 reader->ctxt->vctxt.vstateTab = NULL; in xmlTextReaderClose()
2284 reader->ctxt->vctxt.vstateMax = 0; in xmlTextReaderClose()
2287 xmlStopParser(reader->ctxt); in xmlTextReaderClose()
2288 if (reader->ctxt->myDoc != NULL) { in xmlTextReaderClose()
2289 if (reader->preserve == 0) in xmlTextReaderClose()
2290 xmlTextReaderFreeDoc(reader, reader->ctxt->myDoc); in xmlTextReaderClose()
2291 reader->ctxt->myDoc = NULL; in xmlTextReaderClose()
2294 if ((reader->input != NULL) && (reader->allocs & XML_TEXTREADER_INPUT)) { in xmlTextReaderClose()
2295 xmlFreeParserInputBuffer(reader->input); in xmlTextReaderClose()
2296 reader->allocs -= XML_TEXTREADER_INPUT; in xmlTextReaderClose()
2303 * @reader: the xmlTextReaderPtr used
2313 xmlTextReaderGetAttributeNo(xmlTextReaderPtr reader, int no) { in xmlTextReaderGetAttributeNo() argument
2319 if (reader == NULL) in xmlTextReaderGetAttributeNo()
2321 if (reader->node == NULL) in xmlTextReaderGetAttributeNo()
2323 if (reader->curnode != NULL) in xmlTextReaderGetAttributeNo()
2326 if (reader->node->type != XML_ELEMENT_NODE) in xmlTextReaderGetAttributeNo()
2329 ns = reader->node->nsDef; in xmlTextReaderGetAttributeNo()
2334 return(readerStrdup(reader, ns->href)); in xmlTextReaderGetAttributeNo()
2336 cur = reader->node->properties; in xmlTextReaderGetAttributeNo()
2346 ret = xmlNodeListGetString(reader->node->doc, cur->children, 1); in xmlTextReaderGetAttributeNo()
2348 xmlTextReaderErrMemory(reader); in xmlTextReaderGetAttributeNo()
2354 * @reader: the xmlTextReaderPtr used
2363 xmlTextReaderGetAttribute(xmlTextReaderPtr reader, const xmlChar *name) { in xmlTextReaderGetAttribute() argument
2370 if ((reader == NULL) || (name == NULL)) in xmlTextReaderGetAttribute()
2372 if (reader->node == NULL) in xmlTextReaderGetAttribute()
2374 if (reader->curnode != NULL) in xmlTextReaderGetAttribute()
2378 if (reader->node->type != XML_ELEMENT_NODE) in xmlTextReaderGetAttribute()
2383 xmlTextReaderErrMemory(reader); in xmlTextReaderGetAttribute()
2391 ns = reader->node->nsDef; in xmlTextReaderGetAttribute()
2394 return(readerStrdup(reader, ns->href)); in xmlTextReaderGetAttribute()
2401 result = xmlNodeGetAttrValue(reader->node, name, NULL, &ret); in xmlTextReaderGetAttribute()
2403 xmlTextReaderErrMemory(reader); in xmlTextReaderGetAttribute()
2411 ns = reader->node->nsDef; in xmlTextReaderGetAttribute()
2414 ret = readerStrdup(reader, ns->href); in xmlTextReaderGetAttribute()
2420 result = xmlSearchNsSafe(reader->node, prefix, &ns); in xmlTextReaderGetAttribute()
2422 xmlTextReaderErrMemory(reader); in xmlTextReaderGetAttribute()
2424 result = xmlNodeGetAttrValue(reader->node, localname, ns->href, in xmlTextReaderGetAttribute()
2427 xmlTextReaderErrMemory(reader); in xmlTextReaderGetAttribute()
2439 * @reader: the xmlTextReaderPtr used
2449 xmlTextReaderGetAttributeNs(xmlTextReaderPtr reader, const xmlChar *localName, in xmlTextReaderGetAttributeNs() argument
2456 if ((reader == NULL) || (localName == NULL)) in xmlTextReaderGetAttributeNs()
2458 if (reader->node == NULL) in xmlTextReaderGetAttributeNs()
2460 if (reader->curnode != NULL) in xmlTextReaderGetAttributeNs()
2464 if (reader->node->type != XML_ELEMENT_NODE) in xmlTextReaderGetAttributeNs()
2471 ns = reader->node->nsDef; in xmlTextReaderGetAttributeNs()
2475 return readerStrdup(reader, ns->href); in xmlTextReaderGetAttributeNs()
2482 result = xmlNodeGetAttrValue(reader->node, localName, namespaceURI, &ret); in xmlTextReaderGetAttributeNs()
2484 xmlTextReaderErrMemory(reader); in xmlTextReaderGetAttributeNs()
2491 * @reader: the xmlTextReaderPtr used
2498 * what's left in reader->input, and there is an allocation problem. Best
2505 xmlTextReaderGetRemainder(xmlTextReaderPtr reader) { in xmlTextReaderGetRemainder() argument
2508 if (reader == NULL) in xmlTextReaderGetRemainder()
2510 if (reader->node == NULL) in xmlTextReaderGetRemainder()
2513 reader->node = NULL; in xmlTextReaderGetRemainder()
2514 reader->curnode = NULL; in xmlTextReaderGetRemainder()
2515 reader->mode = XML_TEXTREADER_MODE_EOF; in xmlTextReaderGetRemainder()
2516 if (reader->ctxt != NULL) { in xmlTextReaderGetRemainder()
2517 xmlStopParser(reader->ctxt); in xmlTextReaderGetRemainder()
2518 if (reader->ctxt->myDoc != NULL) { in xmlTextReaderGetRemainder()
2519 if (reader->preserve == 0) in xmlTextReaderGetRemainder()
2520 xmlTextReaderFreeDoc(reader, reader->ctxt->myDoc); in xmlTextReaderGetRemainder()
2521 reader->ctxt->myDoc = NULL; in xmlTextReaderGetRemainder()
2524 if (reader->allocs & XML_TEXTREADER_INPUT) { in xmlTextReaderGetRemainder()
2525 ret = reader->input; in xmlTextReaderGetRemainder()
2526 reader->input = NULL; in xmlTextReaderGetRemainder()
2527 reader->allocs -= XML_TEXTREADER_INPUT; in xmlTextReaderGetRemainder()
2542 * @reader: the xmlTextReaderPtr used
2552 xmlTextReaderLookupNamespace(xmlTextReaderPtr reader, const xmlChar *prefix) { in xmlTextReaderLookupNamespace() argument
2556 if (reader == NULL) in xmlTextReaderLookupNamespace()
2558 if (reader->node == NULL) in xmlTextReaderLookupNamespace()
2561 result = xmlSearchNsSafe(reader->node, prefix, &ns); in xmlTextReaderLookupNamespace()
2563 xmlTextReaderErrMemory(reader); in xmlTextReaderLookupNamespace()
2568 return(readerStrdup(reader, ns->href)); in xmlTextReaderLookupNamespace()
2573 * @reader: the xmlTextReaderPtr used
2583 xmlTextReaderMoveToAttributeNo(xmlTextReaderPtr reader, int no) { in xmlTextReaderMoveToAttributeNo() argument
2588 if (reader == NULL) in xmlTextReaderMoveToAttributeNo()
2590 if (reader->node == NULL) in xmlTextReaderMoveToAttributeNo()
2593 if (reader->node->type != XML_ELEMENT_NODE) in xmlTextReaderMoveToAttributeNo()
2596 reader->curnode = NULL; in xmlTextReaderMoveToAttributeNo()
2598 ns = reader->node->nsDef; in xmlTextReaderMoveToAttributeNo()
2603 reader->curnode = (xmlNodePtr) ns; in xmlTextReaderMoveToAttributeNo()
2607 cur = reader->node->properties; in xmlTextReaderMoveToAttributeNo()
2617 reader->curnode = (xmlNodePtr) cur; in xmlTextReaderMoveToAttributeNo()
2623 * @reader: the xmlTextReaderPtr used
2632 xmlTextReaderMoveToAttribute(xmlTextReaderPtr reader, const xmlChar *name) { in xmlTextReaderMoveToAttribute() argument
2638 if ((reader == NULL) || (name == NULL)) in xmlTextReaderMoveToAttribute()
2640 if (reader->node == NULL) in xmlTextReaderMoveToAttribute()
2644 if (reader->node->type != XML_ELEMENT_NODE) in xmlTextReaderMoveToAttribute()
2649 xmlTextReaderErrMemory(reader); in xmlTextReaderMoveToAttribute()
2657 ns = reader->node->nsDef; in xmlTextReaderMoveToAttribute()
2660 reader->curnode = (xmlNodePtr) ns; in xmlTextReaderMoveToAttribute()
2668 prop = reader->node->properties; in xmlTextReaderMoveToAttribute()
2677 reader->curnode = (xmlNodePtr) prop; in xmlTextReaderMoveToAttribute()
2689 ns = reader->node->nsDef; in xmlTextReaderMoveToAttribute()
2692 reader->curnode = (xmlNodePtr) ns; in xmlTextReaderMoveToAttribute()
2699 prop = reader->node->properties; in xmlTextReaderMoveToAttribute()
2708 reader->curnode = (xmlNodePtr) prop; in xmlTextReaderMoveToAttribute()
2726 * @reader: the xmlTextReaderPtr used
2736 xmlTextReaderMoveToAttributeNs(xmlTextReaderPtr reader, in xmlTextReaderMoveToAttributeNs() argument
2743 if ((reader == NULL) || (localName == NULL) || (namespaceURI == NULL)) in xmlTextReaderMoveToAttributeNs()
2745 if (reader->node == NULL) in xmlTextReaderMoveToAttributeNs()
2747 if (reader->node->type != XML_ELEMENT_NODE) in xmlTextReaderMoveToAttributeNs()
2749 node = reader->node; in xmlTextReaderMoveToAttributeNs()
2755 ns = reader->node->nsDef; in xmlTextReaderMoveToAttributeNs()
2759 reader->curnode = (xmlNodePtr) ns; in xmlTextReaderMoveToAttributeNs()
2777 reader->curnode = (xmlNodePtr) prop; in xmlTextReaderMoveToAttributeNs()
2787 * @reader: the xmlTextReaderPtr used
2795 xmlTextReaderMoveToFirstAttribute(xmlTextReaderPtr reader) { in xmlTextReaderMoveToFirstAttribute() argument
2796 if (reader == NULL) in xmlTextReaderMoveToFirstAttribute()
2798 if (reader->node == NULL) in xmlTextReaderMoveToFirstAttribute()
2800 if (reader->node->type != XML_ELEMENT_NODE) in xmlTextReaderMoveToFirstAttribute()
2803 if (reader->node->nsDef != NULL) { in xmlTextReaderMoveToFirstAttribute()
2804 reader->curnode = (xmlNodePtr) reader->node->nsDef; in xmlTextReaderMoveToFirstAttribute()
2807 if (reader->node->properties != NULL) { in xmlTextReaderMoveToFirstAttribute()
2808 reader->curnode = (xmlNodePtr) reader->node->properties; in xmlTextReaderMoveToFirstAttribute()
2816 * @reader: the xmlTextReaderPtr used
2824 xmlTextReaderMoveToNextAttribute(xmlTextReaderPtr reader) { in xmlTextReaderMoveToNextAttribute() argument
2825 if (reader == NULL) in xmlTextReaderMoveToNextAttribute()
2827 if (reader->node == NULL) in xmlTextReaderMoveToNextAttribute()
2829 if (reader->node->type != XML_ELEMENT_NODE) in xmlTextReaderMoveToNextAttribute()
2831 if (reader->curnode == NULL) in xmlTextReaderMoveToNextAttribute()
2832 return(xmlTextReaderMoveToFirstAttribute(reader)); in xmlTextReaderMoveToNextAttribute()
2834 if (reader->curnode->type == XML_NAMESPACE_DECL) { in xmlTextReaderMoveToNextAttribute()
2835 xmlNsPtr ns = (xmlNsPtr) reader->curnode; in xmlTextReaderMoveToNextAttribute()
2837 reader->curnode = (xmlNodePtr) ns->next; in xmlTextReaderMoveToNextAttribute()
2840 if (reader->node->properties != NULL) { in xmlTextReaderMoveToNextAttribute()
2841 reader->curnode = (xmlNodePtr) reader->node->properties; in xmlTextReaderMoveToNextAttribute()
2845 } else if ((reader->curnode->type == XML_ATTRIBUTE_NODE) && in xmlTextReaderMoveToNextAttribute()
2846 (reader->curnode->next != NULL)) { in xmlTextReaderMoveToNextAttribute()
2847 reader->curnode = reader->curnode->next; in xmlTextReaderMoveToNextAttribute()
2855 * @reader: the xmlTextReaderPtr used
2863 xmlTextReaderMoveToElement(xmlTextReaderPtr reader) { in xmlTextReaderMoveToElement() argument
2864 if (reader == NULL) in xmlTextReaderMoveToElement()
2866 if (reader->node == NULL) in xmlTextReaderMoveToElement()
2868 if (reader->node->type != XML_ELEMENT_NODE) in xmlTextReaderMoveToElement()
2870 if (reader->curnode != NULL) { in xmlTextReaderMoveToElement()
2871 reader->curnode = NULL; in xmlTextReaderMoveToElement()
2879 * @reader: the xmlTextReaderPtr used
2883 * Returns 1 in case of success, 0 if the reader was not positioned on an
2888 xmlTextReaderReadAttributeValue(xmlTextReaderPtr reader) { in xmlTextReaderReadAttributeValue() argument
2889 if (reader == NULL) in xmlTextReaderReadAttributeValue()
2891 if (reader->node == NULL) in xmlTextReaderReadAttributeValue()
2893 if (reader->curnode == NULL) in xmlTextReaderReadAttributeValue()
2895 if (reader->curnode->type == XML_ATTRIBUTE_NODE) { in xmlTextReaderReadAttributeValue()
2896 if (reader->curnode->children == NULL) in xmlTextReaderReadAttributeValue()
2898 reader->curnode = reader->curnode->children; in xmlTextReaderReadAttributeValue()
2899 } else if (reader->curnode->type == XML_NAMESPACE_DECL) { in xmlTextReaderReadAttributeValue()
2900 xmlNsPtr ns = (xmlNsPtr) reader->curnode; in xmlTextReaderReadAttributeValue()
2902 if (reader->faketext == NULL) { in xmlTextReaderReadAttributeValue()
2903 reader->faketext = xmlNewDocText(reader->node->doc, in xmlTextReaderReadAttributeValue()
2905 if (reader->faketext == NULL) { in xmlTextReaderReadAttributeValue()
2906 xmlTextReaderErrMemory(reader); in xmlTextReaderReadAttributeValue()
2910 if ((reader->faketext->content != NULL) && in xmlTextReaderReadAttributeValue()
2911 (reader->faketext->content != in xmlTextReaderReadAttributeValue()
2912 (xmlChar *) &(reader->faketext->properties))) in xmlTextReaderReadAttributeValue()
2913 xmlFree(reader->faketext->content); in xmlTextReaderReadAttributeValue()
2915 reader->faketext->content = NULL; in xmlTextReaderReadAttributeValue()
2917 reader->faketext->content = xmlStrdup(ns->href); in xmlTextReaderReadAttributeValue()
2918 if (reader->faketext->content == NULL) { in xmlTextReaderReadAttributeValue()
2919 xmlTextReaderErrMemory(reader); in xmlTextReaderReadAttributeValue()
2924 reader->curnode = reader->faketext; in xmlTextReaderReadAttributeValue()
2926 if (reader->curnode->next == NULL) in xmlTextReaderReadAttributeValue()
2928 reader->curnode = reader->curnode->next; in xmlTextReaderReadAttributeValue()
2935 * @reader: the xmlTextReaderPtr used
2940 * case of error. The string is deallocated with the reader.
2943 xmlTextReaderConstEncoding(xmlTextReaderPtr reader) { in xmlTextReaderConstEncoding() argument
2946 if (reader == NULL) in xmlTextReaderConstEncoding()
2949 if (reader->ctxt != NULL) in xmlTextReaderConstEncoding()
2950 encoding = xmlGetActualEncoding(reader->ctxt); in xmlTextReaderConstEncoding()
2951 else if (reader->doc != NULL) in xmlTextReaderConstEncoding()
2952 encoding = reader->doc->encoding; in xmlTextReaderConstEncoding()
2954 return(constString(reader, encoding)); in xmlTextReaderConstEncoding()
2965 * @reader: the xmlTextReaderPtr used
2972 xmlTextReaderAttributeCount(xmlTextReaderPtr reader) { in xmlTextReaderAttributeCount() argument
2978 if (reader == NULL) in xmlTextReaderAttributeCount()
2980 if (reader->node == NULL) in xmlTextReaderAttributeCount()
2983 if (reader->curnode != NULL) in xmlTextReaderAttributeCount()
2984 node = reader->curnode; in xmlTextReaderAttributeCount()
2986 node = reader->node; in xmlTextReaderAttributeCount()
2990 if ((reader->state == XML_TEXTREADER_END) || in xmlTextReaderAttributeCount()
2991 (reader->state == XML_TEXTREADER_BACKTRACK)) in xmlTextReaderAttributeCount()
3009 * @reader: the xmlTextReaderPtr used
3018 xmlTextReaderNodeType(xmlTextReaderPtr reader) { in xmlTextReaderNodeType() argument
3021 if (reader == NULL) in xmlTextReaderNodeType()
3023 if (reader->node == NULL) in xmlTextReaderNodeType()
3025 if (reader->curnode != NULL) in xmlTextReaderNodeType()
3026 node = reader->curnode; in xmlTextReaderNodeType()
3028 node = reader->node; in xmlTextReaderNodeType()
3031 if ((reader->state == XML_TEXTREADER_END) || in xmlTextReaderNodeType()
3032 (reader->state == XML_TEXTREADER_BACKTRACK)) in xmlTextReaderNodeType()
3039 if (xmlIsBlankNode(reader->node)) { in xmlTextReaderNodeType()
3040 if (xmlNodeGetSpacePreserve(reader->node)) in xmlTextReaderNodeType()
3080 * @reader: the xmlTextReaderPtr used
3087 xmlTextReaderIsEmptyElement(xmlTextReaderPtr reader) { in xmlTextReaderIsEmptyElement() argument
3088 if ((reader == NULL) || (reader->node == NULL)) in xmlTextReaderIsEmptyElement()
3090 if (reader->node->type != XML_ELEMENT_NODE) in xmlTextReaderIsEmptyElement()
3092 if (reader->curnode != NULL) in xmlTextReaderIsEmptyElement()
3094 if (reader->node->children != NULL) in xmlTextReaderIsEmptyElement()
3096 if (reader->state == XML_TEXTREADER_END) in xmlTextReaderIsEmptyElement()
3098 if (reader->doc != NULL) in xmlTextReaderIsEmptyElement()
3101 if (reader->in_xinclude > 0) in xmlTextReaderIsEmptyElement()
3104 return((reader->node->extra & NODE_IS_EMPTY) != 0); in xmlTextReaderIsEmptyElement()
3109 * @reader: the xmlTextReaderPtr used
3117 xmlTextReaderLocalName(xmlTextReaderPtr reader) { in xmlTextReaderLocalName() argument
3119 if ((reader == NULL) || (reader->node == NULL)) in xmlTextReaderLocalName()
3121 if (reader->curnode != NULL) in xmlTextReaderLocalName()
3122 node = reader->curnode; in xmlTextReaderLocalName()
3124 node = reader->node; in xmlTextReaderLocalName()
3128 return(readerStrdup(reader, BAD_CAST "xmlns")); in xmlTextReaderLocalName()
3130 return(readerStrdup(reader, ns->prefix)); in xmlTextReaderLocalName()
3134 return(xmlTextReaderName(reader)); in xmlTextReaderLocalName()
3135 return(readerStrdup(reader, node->name)); in xmlTextReaderLocalName()
3140 * @reader: the xmlTextReaderPtr used
3145 * string will be deallocated with the reader.
3148 xmlTextReaderConstLocalName(xmlTextReaderPtr reader) { in xmlTextReaderConstLocalName() argument
3150 if ((reader == NULL) || (reader->node == NULL)) in xmlTextReaderConstLocalName()
3152 if (reader->curnode != NULL) in xmlTextReaderConstLocalName()
3153 node = reader->curnode; in xmlTextReaderConstLocalName()
3155 node = reader->node; in xmlTextReaderConstLocalName()
3159 return(constString(reader, BAD_CAST "xmlns")); in xmlTextReaderConstLocalName()
3165 return(xmlTextReaderConstName(reader)); in xmlTextReaderConstLocalName()
3171 * @reader: the xmlTextReaderPtr used
3179 xmlTextReaderName(xmlTextReaderPtr reader) { in xmlTextReaderName() argument
3183 if ((reader == NULL) || (reader->node == NULL)) in xmlTextReaderName()
3185 if (reader->curnode != NULL) in xmlTextReaderName()
3186 node = reader->curnode; in xmlTextReaderName()
3188 node = reader->node; in xmlTextReaderName()
3194 return(readerStrdup(reader, node->name)); in xmlTextReaderName()
3198 xmlTextReaderErrMemory(reader); in xmlTextReaderName()
3201 return(readerStrdup(reader, BAD_CAST "#text")); in xmlTextReaderName()
3203 return(readerStrdup(reader, BAD_CAST "#cdata-section")); in xmlTextReaderName()
3206 return(readerStrdup(reader, node->name)); in xmlTextReaderName()
3208 return(readerStrdup(reader, node->name)); in xmlTextReaderName()
3210 return(readerStrdup(reader, BAD_CAST "#comment")); in xmlTextReaderName()
3213 return(readerStrdup(reader, BAD_CAST "#document")); in xmlTextReaderName()
3215 return(readerStrdup(reader, BAD_CAST "#document-fragment")); in xmlTextReaderName()
3217 return(readerStrdup(reader, node->name)); in xmlTextReaderName()
3220 return(readerStrdup(reader, node->name)); in xmlTextReaderName()
3225 return(readerStrdup(reader, BAD_CAST "xmlns")); in xmlTextReaderName()
3228 xmlTextReaderErrMemory(reader); in xmlTextReaderName()
3244 * @reader: the xmlTextReaderPtr used
3249 * deallocated with the reader.
3252 xmlTextReaderConstName(xmlTextReaderPtr reader) { in xmlTextReaderConstName() argument
3255 if ((reader == NULL) || (reader->node == NULL)) in xmlTextReaderConstName()
3257 if (reader->curnode != NULL) in xmlTextReaderConstName()
3258 node = reader->curnode; in xmlTextReaderConstName()
3260 node = reader->node; in xmlTextReaderConstName()
3267 return(constQString(reader, node->ns->prefix, node->name)); in xmlTextReaderConstName()
3269 return(constString(reader, BAD_CAST "#text")); in xmlTextReaderConstName()
3271 return(constString(reader, BAD_CAST "#cdata-section")); in xmlTextReaderConstName()
3274 return(constString(reader, node->name)); in xmlTextReaderConstName()
3276 return(constString(reader, node->name)); in xmlTextReaderConstName()
3278 return(constString(reader, BAD_CAST "#comment")); in xmlTextReaderConstName()
3281 return(constString(reader, BAD_CAST "#document")); in xmlTextReaderConstName()
3283 return(constString(reader, BAD_CAST "#document-fragment")); in xmlTextReaderConstName()
3285 return(constString(reader, node->name)); in xmlTextReaderConstName()
3288 return(constString(reader, node->name)); in xmlTextReaderConstName()
3293 return(constString(reader, BAD_CAST "xmlns")); in xmlTextReaderConstName()
3294 return(constQString(reader, BAD_CAST "xmlns", ns->prefix)); in xmlTextReaderConstName()
3309 * @reader: the xmlTextReaderPtr used
3317 xmlTextReaderPrefix(xmlTextReaderPtr reader) { in xmlTextReaderPrefix() argument
3319 if ((reader == NULL) || (reader->node == NULL)) in xmlTextReaderPrefix()
3321 if (reader->curnode != NULL) in xmlTextReaderPrefix()
3322 node = reader->curnode; in xmlTextReaderPrefix()
3324 node = reader->node; in xmlTextReaderPrefix()
3329 return(readerStrdup(reader, BAD_CAST "xmlns")); in xmlTextReaderPrefix()
3335 return(readerStrdup(reader, node->ns->prefix)); in xmlTextReaderPrefix()
3341 * @reader: the xmlTextReaderPtr used
3346 * with the reader.
3349 xmlTextReaderConstPrefix(xmlTextReaderPtr reader) { in xmlTextReaderConstPrefix() argument
3351 if ((reader == NULL) || (reader->node == NULL)) in xmlTextReaderConstPrefix()
3353 if (reader->curnode != NULL) in xmlTextReaderConstPrefix()
3354 node = reader->curnode; in xmlTextReaderConstPrefix()
3356 node = reader->node; in xmlTextReaderConstPrefix()
3361 return(constString(reader, BAD_CAST "xmlns")); in xmlTextReaderConstPrefix()
3367 return(constString(reader, node->ns->prefix)); in xmlTextReaderConstPrefix()
3373 * @reader: the xmlTextReaderPtr used
3381 xmlTextReaderNamespaceUri(xmlTextReaderPtr reader) { in xmlTextReaderNamespaceUri() argument
3383 if ((reader == NULL) || (reader->node == NULL)) in xmlTextReaderNamespaceUri()
3385 if (reader->curnode != NULL) in xmlTextReaderNamespaceUri()
3386 node = reader->curnode; in xmlTextReaderNamespaceUri()
3388 node = reader->node; in xmlTextReaderNamespaceUri()
3390 return(readerStrdup(reader, BAD_CAST "http://www.w3.org/2000/xmlns/")); in xmlTextReaderNamespaceUri()
3395 return(readerStrdup(reader, node->ns->href)); in xmlTextReaderNamespaceUri()
3401 * @reader: the xmlTextReaderPtr used
3406 * will be deallocated with the reader
3409 xmlTextReaderConstNamespaceUri(xmlTextReaderPtr reader) { in xmlTextReaderConstNamespaceUri() argument
3411 if ((reader == NULL) || (reader->node == NULL)) in xmlTextReaderConstNamespaceUri()
3413 if (reader->curnode != NULL) in xmlTextReaderConstNamespaceUri()
3414 node = reader->curnode; in xmlTextReaderConstNamespaceUri()
3416 node = reader->node; in xmlTextReaderConstNamespaceUri()
3418 return(constString(reader, BAD_CAST "http://www.w3.org/2000/xmlns/")); in xmlTextReaderConstNamespaceUri()
3423 return(constString(reader, node->ns->href)); in xmlTextReaderConstNamespaceUri()
3429 * @reader: the xmlTextReaderPtr used
3437 xmlTextReaderBaseUri(xmlTextReaderPtr reader) { in xmlTextReaderBaseUri() argument
3441 if ((reader == NULL) || (reader->node == NULL)) in xmlTextReaderBaseUri()
3443 result = xmlNodeGetBaseSafe(NULL, reader->node, &ret); in xmlTextReaderBaseUri()
3445 xmlTextReaderErrMemory(reader); in xmlTextReaderBaseUri()
3452 * @reader: the xmlTextReaderPtr used
3457 * will be deallocated with the reader
3460 xmlTextReaderConstBaseUri(xmlTextReaderPtr reader) { in xmlTextReaderConstBaseUri() argument
3465 if ((reader == NULL) || (reader->node == NULL)) in xmlTextReaderConstBaseUri()
3467 result = xmlNodeGetBaseSafe(NULL, reader->node, &tmp); in xmlTextReaderConstBaseUri()
3469 xmlTextReaderErrMemory(reader); in xmlTextReaderConstBaseUri()
3472 ret = constString(reader, tmp); in xmlTextReaderConstBaseUri()
3479 * @reader: the xmlTextReaderPtr used
3486 xmlTextReaderDepth(xmlTextReaderPtr reader) { in xmlTextReaderDepth() argument
3487 if (reader == NULL) in xmlTextReaderDepth()
3489 if (reader->node == NULL) in xmlTextReaderDepth()
3492 if (reader->curnode != NULL) { in xmlTextReaderDepth()
3493 if ((reader->curnode->type == XML_ATTRIBUTE_NODE) || in xmlTextReaderDepth()
3494 (reader->curnode->type == XML_NAMESPACE_DECL)) in xmlTextReaderDepth()
3495 return(reader->depth + 1); in xmlTextReaderDepth()
3496 return(reader->depth + 2); in xmlTextReaderDepth()
3498 return(reader->depth); in xmlTextReaderDepth()
3503 * @reader: the xmlTextReaderPtr used
3510 xmlTextReaderHasAttributes(xmlTextReaderPtr reader) { in xmlTextReaderHasAttributes() argument
3512 if (reader == NULL) in xmlTextReaderHasAttributes()
3514 if (reader->node == NULL) in xmlTextReaderHasAttributes()
3516 if (reader->curnode != NULL) in xmlTextReaderHasAttributes()
3517 node = reader->curnode; in xmlTextReaderHasAttributes()
3519 node = reader->node; in xmlTextReaderHasAttributes()
3530 * @reader: the xmlTextReaderPtr used
3537 xmlTextReaderHasValue(xmlTextReaderPtr reader) { in xmlTextReaderHasValue() argument
3539 if (reader == NULL) in xmlTextReaderHasValue()
3541 if (reader->node == NULL) in xmlTextReaderHasValue()
3543 if (reader->curnode != NULL) in xmlTextReaderHasValue()
3544 node = reader->curnode; in xmlTextReaderHasValue()
3546 node = reader->node; in xmlTextReaderHasValue()
3564 * @reader: the xmlTextReaderPtr used
3572 xmlTextReaderValue(xmlTextReaderPtr reader) { in xmlTextReaderValue() argument
3574 if (reader == NULL) in xmlTextReaderValue()
3576 if (reader->node == NULL) in xmlTextReaderValue()
3578 if (reader->curnode != NULL) in xmlTextReaderValue()
3579 node = reader->curnode; in xmlTextReaderValue()
3581 node = reader->node; in xmlTextReaderValue()
3585 return(readerStrdup(reader, ((xmlNsPtr) node)->href)); in xmlTextReaderValue()
3595 xmlTextReaderErrMemory(reader); in xmlTextReaderValue()
3602 return(readerStrdup(reader, node->content)); in xmlTextReaderValue()
3611 * @reader: the xmlTextReaderPtr used
3619 xmlTextReaderConstValue(xmlTextReaderPtr reader) { in xmlTextReaderConstValue() argument
3621 if (reader == NULL) in xmlTextReaderConstValue()
3623 if (reader->node == NULL) in xmlTextReaderConstValue()
3625 if (reader->curnode != NULL) in xmlTextReaderConstValue()
3626 node = reader->curnode; in xmlTextReaderConstValue()
3628 node = reader->node; in xmlTextReaderConstValue()
3642 if (reader->buffer == NULL) { in xmlTextReaderConstValue()
3643 reader->buffer = xmlBufCreateSize(100); in xmlTextReaderConstValue()
3644 if (reader->buffer == NULL) in xmlTextReaderConstValue()
3646 xmlBufSetAllocationScheme(reader->buffer, in xmlTextReaderConstValue()
3649 xmlBufEmpty(reader->buffer); in xmlTextReaderConstValue()
3650 xmlBufGetNodeContent(reader->buffer, node); in xmlTextReaderConstValue()
3651 ret = xmlBufContent(reader->buffer); in xmlTextReaderConstValue()
3653 xmlTextReaderErrMemory(reader); in xmlTextReaderConstValue()
3655 xmlBufFree(reader->buffer); in xmlTextReaderConstValue()
3656 reader->buffer = xmlBufCreateSize(100); in xmlTextReaderConstValue()
3657 xmlBufSetAllocationScheme(reader->buffer, in xmlTextReaderConstValue()
3677 * @reader: the xmlTextReaderPtr used
3685 xmlTextReaderIsDefault(xmlTextReaderPtr reader) { in xmlTextReaderIsDefault() argument
3686 if (reader == NULL) in xmlTextReaderIsDefault()
3693 * @reader: the xmlTextReaderPtr used
3700 xmlTextReaderQuoteChar(xmlTextReaderPtr reader) { in xmlTextReaderQuoteChar() argument
3701 if (reader == NULL) in xmlTextReaderQuoteChar()
3709 * @reader: the xmlTextReaderPtr used
3717 xmlTextReaderXmlLang(xmlTextReaderPtr reader) { in xmlTextReaderXmlLang() argument
3718 if (reader == NULL) in xmlTextReaderXmlLang()
3720 if (reader->node == NULL) in xmlTextReaderXmlLang()
3722 return(xmlNodeGetLang(reader->node)); in xmlTextReaderXmlLang()
3727 * @reader: the xmlTextReaderPtr used
3734 xmlTextReaderConstXmlLang(xmlTextReaderPtr reader) { in xmlTextReaderConstXmlLang() argument
3738 if (reader == NULL) in xmlTextReaderConstXmlLang()
3740 if (reader->node == NULL) in xmlTextReaderConstXmlLang()
3742 tmp = xmlNodeGetLang(reader->node); in xmlTextReaderConstXmlLang()
3745 ret = constString(reader, tmp); in xmlTextReaderConstXmlLang()
3752 * @reader: the xmlTextReaderPtr used
3755 * Get an interned string from the reader, allows for example to
3759 * string will be deallocated with the reader.
3762 xmlTextReaderConstString(xmlTextReaderPtr reader, const xmlChar *str) { in xmlTextReaderConstString() argument
3763 if (reader == NULL) in xmlTextReaderConstString()
3765 return(constString(reader, str)); in xmlTextReaderConstString()
3770 * @reader: the xmlTextReaderPtr used
3781 xmlTextReaderNormalization(xmlTextReaderPtr reader) { in xmlTextReaderNormalization() argument
3782 if (reader == NULL) in xmlTextReaderNormalization()
3795 * @reader: the xmlTextReaderPtr used
3806 xmlTextReaderSetParserProp(xmlTextReaderPtr reader, int prop, int value) { in xmlTextReaderSetParserProp() argument
3810 if ((reader == NULL) || (reader->ctxt == NULL)) in xmlTextReaderSetParserProp()
3812 ctxt = reader->ctxt; in xmlTextReaderSetParserProp()
3818 if (reader->mode != XML_TEXTREADER_MODE_INITIAL) in xmlTextReaderSetParserProp()
3841 reader->validate = XML_TEXTREADER_VALIDATE_DTD; in xmlTextReaderSetParserProp()
3862 * @reader: the xmlTextReaderPtr used
3870 xmlTextReaderGetParserProp(xmlTextReaderPtr reader, int prop) { in xmlTextReaderGetParserProp() argument
3874 if ((reader == NULL) || (reader->ctxt == NULL)) in xmlTextReaderGetParserProp()
3876 ctxt = reader->ctxt; in xmlTextReaderGetParserProp()
3888 return(reader->validate); in xmlTextReaderGetParserProp()
3898 * @reader: the user data (XML reader context)
3905 xmlTextReaderGetParserLineNumber(xmlTextReaderPtr reader) in xmlTextReaderGetParserLineNumber() argument
3907 if ((reader == NULL) || (reader->ctxt == NULL) || in xmlTextReaderGetParserLineNumber()
3908 (reader->ctxt->input == NULL)) { in xmlTextReaderGetParserLineNumber()
3911 return (reader->ctxt->input->line); in xmlTextReaderGetParserLineNumber()
3916 * @reader: the user data (XML reader context)
3923 xmlTextReaderGetParserColumnNumber(xmlTextReaderPtr reader) in xmlTextReaderGetParserColumnNumber() argument
3925 if ((reader == NULL) || (reader->ctxt == NULL) || in xmlTextReaderGetParserColumnNumber()
3926 (reader->ctxt->input == NULL)) { in xmlTextReaderGetParserColumnNumber()
3929 return (reader->ctxt->input->col); in xmlTextReaderGetParserColumnNumber()
3934 * @reader: the xmlTextReaderPtr used
3943 xmlTextReaderCurrentNode(xmlTextReaderPtr reader) { in xmlTextReaderCurrentNode() argument
3944 if (reader == NULL) in xmlTextReaderCurrentNode()
3947 if (reader->curnode != NULL) in xmlTextReaderCurrentNode()
3948 return(reader->curnode); in xmlTextReaderCurrentNode()
3949 return(reader->node); in xmlTextReaderCurrentNode()
3954 * @reader: the xmlTextReaderPtr used
3956 * This tells the XML Reader to preserve the current node.
3963 xmlTextReaderPreserve(xmlTextReaderPtr reader) { in xmlTextReaderPreserve() argument
3966 if (reader == NULL) in xmlTextReaderPreserve()
3969 cur = reader->node; in xmlTextReaderPreserve()
3977 reader->preserves++; in xmlTextReaderPreserve()
3991 * @reader: the xmlTextReaderPtr used
3995 * This tells the XML Reader to preserve all nodes matched by the
4002 xmlTextReaderPreservePattern(xmlTextReaderPtr reader, const xmlChar *pattern, in xmlTextReaderPreservePattern() argument
4007 if ((reader == NULL) || (pattern == NULL)) in xmlTextReaderPreservePattern()
4010 comp = xmlPatterncompile(pattern, reader->dict, 0, namespaces); in xmlTextReaderPreservePattern()
4014 if (reader->patternMax <= 0) { in xmlTextReaderPreservePattern()
4015 reader->patternMax = 4; in xmlTextReaderPreservePattern()
4016 reader->patternTab = (xmlPatternPtr *) xmlMalloc(reader->patternMax * in xmlTextReaderPreservePattern()
4017 sizeof(reader->patternTab[0])); in xmlTextReaderPreservePattern()
4018 if (reader->patternTab == NULL) { in xmlTextReaderPreservePattern()
4019 xmlTextReaderErrMemory(reader); in xmlTextReaderPreservePattern()
4023 if (reader->patternNr >= reader->patternMax) { in xmlTextReaderPreservePattern()
4025 reader->patternMax *= 2; in xmlTextReaderPreservePattern()
4026 tmp = (xmlPatternPtr *) xmlRealloc(reader->patternTab, in xmlTextReaderPreservePattern()
4027 reader->patternMax * in xmlTextReaderPreservePattern()
4028 sizeof(reader->patternTab[0])); in xmlTextReaderPreservePattern()
4030 xmlTextReaderErrMemory(reader); in xmlTextReaderPreservePattern()
4031 reader->patternMax /= 2; in xmlTextReaderPreservePattern()
4034 reader->patternTab = tmp; in xmlTextReaderPreservePattern()
4036 reader->patternTab[reader->patternNr] = comp; in xmlTextReaderPreservePattern()
4037 return(reader->patternNr++); in xmlTextReaderPreservePattern()
4043 * @reader: the xmlTextReaderPtr used
4047 * NOTE: as a result of this call, the reader will not destroy the
4049 * is needed once the reader parsing has finished.
4054 xmlTextReaderCurrentDoc(xmlTextReaderPtr reader) { in xmlTextReaderCurrentDoc() argument
4055 if (reader == NULL) in xmlTextReaderCurrentDoc()
4057 if (reader->doc != NULL) in xmlTextReaderCurrentDoc()
4058 return(reader->doc); in xmlTextReaderCurrentDoc()
4059 if ((reader->ctxt == NULL) || (reader->ctxt->myDoc == NULL)) in xmlTextReaderCurrentDoc()
4062 reader->preserve = 1; in xmlTextReaderCurrentDoc()
4063 return(reader->ctxt->myDoc); in xmlTextReaderCurrentDoc()
4069 * @reader: the xmlTextReaderPtr used
4075 @ The @schema should not be freed until the reader is deallocated
4082 xmlTextReaderRelaxNGSetSchema(xmlTextReaderPtr reader, xmlRelaxNGPtr schema) { in xmlTextReaderRelaxNGSetSchema() argument
4083 if (reader == NULL) in xmlTextReaderRelaxNGSetSchema()
4086 if (reader->rngSchemas != NULL) { in xmlTextReaderRelaxNGSetSchema()
4087 xmlRelaxNGFree(reader->rngSchemas); in xmlTextReaderRelaxNGSetSchema()
4088 reader->rngSchemas = NULL; in xmlTextReaderRelaxNGSetSchema()
4090 if (reader->rngValidCtxt != NULL) { in xmlTextReaderRelaxNGSetSchema()
4091 if (! reader->rngPreserveCtxt) in xmlTextReaderRelaxNGSetSchema()
4092 xmlRelaxNGFreeValidCtxt(reader->rngValidCtxt); in xmlTextReaderRelaxNGSetSchema()
4093 reader->rngValidCtxt = NULL; in xmlTextReaderRelaxNGSetSchema()
4095 reader->rngPreserveCtxt = 0; in xmlTextReaderRelaxNGSetSchema()
4098 if (reader->mode != XML_TEXTREADER_MODE_INITIAL) in xmlTextReaderRelaxNGSetSchema()
4100 if (reader->rngSchemas != NULL) { in xmlTextReaderRelaxNGSetSchema()
4101 xmlRelaxNGFree(reader->rngSchemas); in xmlTextReaderRelaxNGSetSchema()
4102 reader->rngSchemas = NULL; in xmlTextReaderRelaxNGSetSchema()
4104 if (reader->rngValidCtxt != NULL) { in xmlTextReaderRelaxNGSetSchema()
4105 if (! reader->rngPreserveCtxt) in xmlTextReaderRelaxNGSetSchema()
4106 xmlRelaxNGFreeValidCtxt(reader->rngValidCtxt); in xmlTextReaderRelaxNGSetSchema()
4107 reader->rngValidCtxt = NULL; in xmlTextReaderRelaxNGSetSchema()
4109 reader->rngPreserveCtxt = 0; in xmlTextReaderRelaxNGSetSchema()
4110 reader->rngValidCtxt = xmlRelaxNGNewValidCtxt(schema); in xmlTextReaderRelaxNGSetSchema()
4111 if (reader->rngValidCtxt == NULL) in xmlTextReaderRelaxNGSetSchema()
4113 if ((reader->errorFunc != NULL) || (reader->sErrorFunc != NULL)) in xmlTextReaderRelaxNGSetSchema()
4114 xmlRelaxNGSetValidStructuredErrors(reader->rngValidCtxt, in xmlTextReaderRelaxNGSetSchema()
4115 xmlTextReaderStructuredRelay, reader); in xmlTextReaderRelaxNGSetSchema()
4116 reader->rngValidErrors = 0; in xmlTextReaderRelaxNGSetSchema()
4117 reader->rngFullNode = NULL; in xmlTextReaderRelaxNGSetSchema()
4118 reader->validate = XML_TEXTREADER_VALIDATE_RNG; in xmlTextReaderRelaxNGSetSchema()
4135 xmlTextReaderPtr reader; in xmlTextReaderLocator() local
4145 reader = (xmlTextReaderPtr) ctx; in xmlTextReaderLocator()
4146 if ((reader->ctxt != NULL) && (reader->ctxt->input != NULL)) { in xmlTextReaderLocator()
4148 *file = reader->ctxt->input->filename; in xmlTextReaderLocator()
4150 *line = reader->ctxt->input->line; in xmlTextReaderLocator()
4153 if (reader->node != NULL) { in xmlTextReaderLocator()
4158 res = xmlGetLineNo(reader->node); in xmlTextReaderLocator()
4165 xmlDocPtr doc = reader->node->doc; in xmlTextReaderLocator()
4178 * @reader: the xmlTextReaderPtr used
4184 * The @schema should not be freed until the reader is deallocated
4191 xmlTextReaderSetSchema(xmlTextReaderPtr reader, xmlSchemaPtr schema) { in xmlTextReaderSetSchema() argument
4192 if (reader == NULL) in xmlTextReaderSetSchema()
4195 if (reader->xsdPlug != NULL) { in xmlTextReaderSetSchema()
4196 xmlSchemaSAXUnplug(reader->xsdPlug); in xmlTextReaderSetSchema()
4197 reader->xsdPlug = NULL; in xmlTextReaderSetSchema()
4199 if (reader->xsdValidCtxt != NULL) { in xmlTextReaderSetSchema()
4200 if (! reader->xsdPreserveCtxt) in xmlTextReaderSetSchema()
4201 xmlSchemaFreeValidCtxt(reader->xsdValidCtxt); in xmlTextReaderSetSchema()
4202 reader->xsdValidCtxt = NULL; in xmlTextReaderSetSchema()
4204 reader->xsdPreserveCtxt = 0; in xmlTextReaderSetSchema()
4205 if (reader->xsdSchemas != NULL) { in xmlTextReaderSetSchema()
4206 xmlSchemaFree(reader->xsdSchemas); in xmlTextReaderSetSchema()
4207 reader->xsdSchemas = NULL; in xmlTextReaderSetSchema()
4211 if (reader->mode != XML_TEXTREADER_MODE_INITIAL) in xmlTextReaderSetSchema()
4213 if (reader->xsdPlug != NULL) { in xmlTextReaderSetSchema()
4214 xmlSchemaSAXUnplug(reader->xsdPlug); in xmlTextReaderSetSchema()
4215 reader->xsdPlug = NULL; in xmlTextReaderSetSchema()
4217 if (reader->xsdValidCtxt != NULL) { in xmlTextReaderSetSchema()
4218 if (! reader->xsdPreserveCtxt) in xmlTextReaderSetSchema()
4219 xmlSchemaFreeValidCtxt(reader->xsdValidCtxt); in xmlTextReaderSetSchema()
4220 reader->xsdValidCtxt = NULL; in xmlTextReaderSetSchema()
4222 reader->xsdPreserveCtxt = 0; in xmlTextReaderSetSchema()
4223 if (reader->xsdSchemas != NULL) { in xmlTextReaderSetSchema()
4224 xmlSchemaFree(reader->xsdSchemas); in xmlTextReaderSetSchema()
4225 reader->xsdSchemas = NULL; in xmlTextReaderSetSchema()
4227 reader->xsdValidCtxt = xmlSchemaNewValidCtxt(schema); in xmlTextReaderSetSchema()
4228 if (reader->xsdValidCtxt == NULL) { in xmlTextReaderSetSchema()
4229 xmlSchemaFree(reader->xsdSchemas); in xmlTextReaderSetSchema()
4230 reader->xsdSchemas = NULL; in xmlTextReaderSetSchema()
4233 reader->xsdPlug = xmlSchemaSAXPlug(reader->xsdValidCtxt, in xmlTextReaderSetSchema()
4234 &(reader->ctxt->sax), in xmlTextReaderSetSchema()
4235 &(reader->ctxt->userData)); in xmlTextReaderSetSchema()
4236 if (reader->xsdPlug == NULL) { in xmlTextReaderSetSchema()
4237 xmlSchemaFree(reader->xsdSchemas); in xmlTextReaderSetSchema()
4238 reader->xsdSchemas = NULL; in xmlTextReaderSetSchema()
4239 xmlSchemaFreeValidCtxt(reader->xsdValidCtxt); in xmlTextReaderSetSchema()
4240 reader->xsdValidCtxt = NULL; in xmlTextReaderSetSchema()
4243 xmlSchemaValidateSetLocator(reader->xsdValidCtxt, in xmlTextReaderSetSchema()
4245 (void *) reader); in xmlTextReaderSetSchema()
4247 if ((reader->errorFunc != NULL) || (reader->sErrorFunc != NULL)) in xmlTextReaderSetSchema()
4248 xmlSchemaSetValidStructuredErrors(reader->xsdValidCtxt, in xmlTextReaderSetSchema()
4249 xmlTextReaderStructuredRelay, reader); in xmlTextReaderSetSchema()
4250 reader->xsdValidErrors = 0; in xmlTextReaderSetSchema()
4251 reader->validate = XML_TEXTREADER_VALIDATE_XSD; in xmlTextReaderSetSchema()
4257 * @reader: the xmlTextReaderPtr used
4270 xmlTextReaderRelaxNGValidateInternal(xmlTextReaderPtr reader, in xmlTextReaderRelaxNGValidateInternal() argument
4275 if (reader == NULL) in xmlTextReaderRelaxNGValidateInternal()
4282 ((reader->mode != XML_TEXTREADER_MODE_INITIAL) || in xmlTextReaderRelaxNGValidateInternal()
4283 (reader->ctxt == NULL))) in xmlTextReaderRelaxNGValidateInternal()
4287 if (reader->rngValidCtxt != NULL) { in xmlTextReaderRelaxNGValidateInternal()
4288 if ( !reader->rngPreserveCtxt) in xmlTextReaderRelaxNGValidateInternal()
4289 xmlRelaxNGFreeValidCtxt(reader->rngValidCtxt); in xmlTextReaderRelaxNGValidateInternal()
4290 reader->rngValidCtxt = NULL; in xmlTextReaderRelaxNGValidateInternal()
4292 reader->rngPreserveCtxt = 0; in xmlTextReaderRelaxNGValidateInternal()
4293 if (reader->rngSchemas != NULL) { in xmlTextReaderRelaxNGValidateInternal()
4294 xmlRelaxNGFree(reader->rngSchemas); in xmlTextReaderRelaxNGValidateInternal()
4295 reader->rngSchemas = NULL; in xmlTextReaderRelaxNGValidateInternal()
4309 if ((reader->errorFunc != NULL) || (reader->sErrorFunc != NULL)) in xmlTextReaderRelaxNGValidateInternal()
4311 xmlTextReaderStructuredRelay, reader); in xmlTextReaderRelaxNGValidateInternal()
4312 reader->rngSchemas = xmlRelaxNGParse(pctxt); in xmlTextReaderRelaxNGValidateInternal()
4314 if (reader->rngSchemas == NULL) in xmlTextReaderRelaxNGValidateInternal()
4317 reader->rngValidCtxt = xmlRelaxNGNewValidCtxt(reader->rngSchemas); in xmlTextReaderRelaxNGValidateInternal()
4318 if (reader->rngValidCtxt == NULL) { in xmlTextReaderRelaxNGValidateInternal()
4319 xmlRelaxNGFree(reader->rngSchemas); in xmlTextReaderRelaxNGValidateInternal()
4320 reader->rngSchemas = NULL; in xmlTextReaderRelaxNGValidateInternal()
4325 reader->rngValidCtxt = ctxt; in xmlTextReaderRelaxNGValidateInternal()
4326 reader->rngPreserveCtxt = 1; in xmlTextReaderRelaxNGValidateInternal()
4330 * the reader channels. in xmlTextReaderRelaxNGValidateInternal()
4334 if ((reader->errorFunc != NULL) || (reader->sErrorFunc != NULL)) in xmlTextReaderRelaxNGValidateInternal()
4335 xmlRelaxNGSetValidStructuredErrors(reader->rngValidCtxt, in xmlTextReaderRelaxNGValidateInternal()
4336 xmlTextReaderStructuredRelay, reader); in xmlTextReaderRelaxNGValidateInternal()
4337 reader->rngValidErrors = 0; in xmlTextReaderRelaxNGValidateInternal()
4338 reader->rngFullNode = NULL; in xmlTextReaderRelaxNGValidateInternal()
4339 reader->validate = XML_TEXTREADER_VALIDATE_RNG; in xmlTextReaderRelaxNGValidateInternal()
4345 * @reader: the xmlTextReaderPtr used
4358 xmlTextReaderSchemaValidateInternal(xmlTextReaderPtr reader, in xmlTextReaderSchemaValidateInternal() argument
4363 if (reader == NULL) in xmlTextReaderSchemaValidateInternal()
4370 ((reader->mode != XML_TEXTREADER_MODE_INITIAL) || in xmlTextReaderSchemaValidateInternal()
4371 (reader->ctxt == NULL))) in xmlTextReaderSchemaValidateInternal()
4375 if (reader->xsdPlug != NULL) { in xmlTextReaderSchemaValidateInternal()
4376 xmlSchemaSAXUnplug(reader->xsdPlug); in xmlTextReaderSchemaValidateInternal()
4377 reader->xsdPlug = NULL; in xmlTextReaderSchemaValidateInternal()
4379 if (reader->xsdValidCtxt != NULL) { in xmlTextReaderSchemaValidateInternal()
4380 if (! reader->xsdPreserveCtxt) in xmlTextReaderSchemaValidateInternal()
4381 xmlSchemaFreeValidCtxt(reader->xsdValidCtxt); in xmlTextReaderSchemaValidateInternal()
4382 reader->xsdValidCtxt = NULL; in xmlTextReaderSchemaValidateInternal()
4384 reader->xsdPreserveCtxt = 0; in xmlTextReaderSchemaValidateInternal()
4385 if (reader->xsdSchemas != NULL) { in xmlTextReaderSchemaValidateInternal()
4386 xmlSchemaFree(reader->xsdSchemas); in xmlTextReaderSchemaValidateInternal()
4387 reader->xsdSchemas = NULL; in xmlTextReaderSchemaValidateInternal()
4399 if ((reader->errorFunc != NULL) || (reader->sErrorFunc != NULL)) in xmlTextReaderSchemaValidateInternal()
4401 xmlTextReaderStructuredRelay, reader); in xmlTextReaderSchemaValidateInternal()
4402 reader->xsdSchemas = xmlSchemaParse(pctxt); in xmlTextReaderSchemaValidateInternal()
4404 if (reader->xsdSchemas == NULL) in xmlTextReaderSchemaValidateInternal()
4406 reader->xsdValidCtxt = xmlSchemaNewValidCtxt(reader->xsdSchemas); in xmlTextReaderSchemaValidateInternal()
4407 if (reader->xsdValidCtxt == NULL) { in xmlTextReaderSchemaValidateInternal()
4408 xmlSchemaFree(reader->xsdSchemas); in xmlTextReaderSchemaValidateInternal()
4409 reader->xsdSchemas = NULL; in xmlTextReaderSchemaValidateInternal()
4412 reader->xsdPlug = xmlSchemaSAXPlug(reader->xsdValidCtxt, in xmlTextReaderSchemaValidateInternal()
4413 &(reader->ctxt->sax), in xmlTextReaderSchemaValidateInternal()
4414 &(reader->ctxt->userData)); in xmlTextReaderSchemaValidateInternal()
4415 if (reader->xsdPlug == NULL) { in xmlTextReaderSchemaValidateInternal()
4416 xmlSchemaFree(reader->xsdSchemas); in xmlTextReaderSchemaValidateInternal()
4417 reader->xsdSchemas = NULL; in xmlTextReaderSchemaValidateInternal()
4418 xmlSchemaFreeValidCtxt(reader->xsdValidCtxt); in xmlTextReaderSchemaValidateInternal()
4419 reader->xsdValidCtxt = NULL; in xmlTextReaderSchemaValidateInternal()
4424 reader->xsdValidCtxt = ctxt; in xmlTextReaderSchemaValidateInternal()
4425 reader->xsdPreserveCtxt = 1; in xmlTextReaderSchemaValidateInternal()
4426 reader->xsdPlug = xmlSchemaSAXPlug(reader->xsdValidCtxt, in xmlTextReaderSchemaValidateInternal()
4427 &(reader->ctxt->sax), in xmlTextReaderSchemaValidateInternal()
4428 &(reader->ctxt->userData)); in xmlTextReaderSchemaValidateInternal()
4429 if (reader->xsdPlug == NULL) { in xmlTextReaderSchemaValidateInternal()
4430 reader->xsdValidCtxt = NULL; in xmlTextReaderSchemaValidateInternal()
4431 reader->xsdPreserveCtxt = 0; in xmlTextReaderSchemaValidateInternal()
4435 xmlSchemaValidateSetLocator(reader->xsdValidCtxt, in xmlTextReaderSchemaValidateInternal()
4437 (void *) reader); in xmlTextReaderSchemaValidateInternal()
4440 * the reader channels. in xmlTextReaderSchemaValidateInternal()
4444 if ((reader->errorFunc != NULL) || (reader->sErrorFunc != NULL)) in xmlTextReaderSchemaValidateInternal()
4445 xmlSchemaSetValidStructuredErrors(reader->xsdValidCtxt, in xmlTextReaderSchemaValidateInternal()
4446 xmlTextReaderStructuredRelay, reader); in xmlTextReaderSchemaValidateInternal()
4447 reader->xsdValidErrors = 0; in xmlTextReaderSchemaValidateInternal()
4448 reader->validate = XML_TEXTREADER_VALIDATE_XSD; in xmlTextReaderSchemaValidateInternal()
4454 * @reader: the xmlTextReaderPtr used
4466 xmlTextReaderSchemaValidateCtxt(xmlTextReaderPtr reader, in xmlTextReaderSchemaValidateCtxt() argument
4470 return(xmlTextReaderSchemaValidateInternal(reader, NULL, ctxt, options)); in xmlTextReaderSchemaValidateCtxt()
4475 * @reader: the xmlTextReaderPtr used
4486 xmlTextReaderSchemaValidate(xmlTextReaderPtr reader, const char *xsd) in xmlTextReaderSchemaValidate() argument
4488 return(xmlTextReaderSchemaValidateInternal(reader, xsd, NULL, 0)); in xmlTextReaderSchemaValidate()
4493 * @reader: the xmlTextReaderPtr used
4505 xmlTextReaderRelaxNGValidateCtxt(xmlTextReaderPtr reader, in xmlTextReaderRelaxNGValidateCtxt() argument
4509 return(xmlTextReaderRelaxNGValidateInternal(reader, NULL, ctxt, options)); in xmlTextReaderRelaxNGValidateCtxt()
4514 * @reader: the xmlTextReaderPtr used
4525 xmlTextReaderRelaxNGValidate(xmlTextReaderPtr reader, const char *rng) in xmlTextReaderRelaxNGValidate() argument
4527 return(xmlTextReaderRelaxNGValidateInternal(reader, rng, NULL, 0)); in xmlTextReaderRelaxNGValidate()
4534 * @reader: the xmlTextReaderPtr used
4544 xmlTextReaderIsNamespaceDecl(xmlTextReaderPtr reader) { in xmlTextReaderIsNamespaceDecl() argument
4546 if (reader == NULL) in xmlTextReaderIsNamespaceDecl()
4548 if (reader->node == NULL) in xmlTextReaderIsNamespaceDecl()
4550 if (reader->curnode != NULL) in xmlTextReaderIsNamespaceDecl()
4551 node = reader->curnode; in xmlTextReaderIsNamespaceDecl()
4553 node = reader->node; in xmlTextReaderIsNamespaceDecl()
4563 * @reader: the xmlTextReaderPtr used
4568 * in case of error. The string is deallocated with the reader.
4571 xmlTextReaderConstXmlVersion(xmlTextReaderPtr reader) { in xmlTextReaderConstXmlVersion() argument
4573 if (reader == NULL) in xmlTextReaderConstXmlVersion()
4575 if (reader->doc != NULL) in xmlTextReaderConstXmlVersion()
4576 doc = reader->doc; in xmlTextReaderConstXmlVersion()
4577 else if (reader->ctxt != NULL) in xmlTextReaderConstXmlVersion()
4578 doc = reader->ctxt->myDoc; in xmlTextReaderConstXmlVersion()
4585 return(constString(reader, doc->version)); in xmlTextReaderConstXmlVersion()
4590 * @reader: the xmlTextReaderPtr used
4599 xmlTextReaderStandalone(xmlTextReaderPtr reader) { in xmlTextReaderStandalone() argument
4601 if (reader == NULL) in xmlTextReaderStandalone()
4603 if (reader->doc != NULL) in xmlTextReaderStandalone()
4604 doc = reader->doc; in xmlTextReaderStandalone()
4605 else if (reader->ctxt != NULL) in xmlTextReaderStandalone()
4606 doc = reader->ctxt->myDoc; in xmlTextReaderStandalone()
4694 * @reader: the xmlTextReaderPtr used
4705 xmlTextReaderSetErrorHandler(xmlTextReaderPtr reader, in xmlTextReaderSetErrorHandler() argument
4709 reader->errorFunc = f; in xmlTextReaderSetErrorHandler()
4710 reader->sErrorFunc = NULL; in xmlTextReaderSetErrorHandler()
4711 reader->errorFuncArg = arg; in xmlTextReaderSetErrorHandler()
4712 xmlCtxtSetErrorHandler(reader->ctxt, in xmlTextReaderSetErrorHandler()
4713 xmlTextReaderStructuredRelay, reader); in xmlTextReaderSetErrorHandler()
4715 if (reader->rngValidCtxt) { in xmlTextReaderSetErrorHandler()
4716 xmlRelaxNGSetValidStructuredErrors(reader->rngValidCtxt, in xmlTextReaderSetErrorHandler()
4717 xmlTextReaderStructuredRelay, reader); in xmlTextReaderSetErrorHandler()
4719 if (reader->xsdValidCtxt) { in xmlTextReaderSetErrorHandler()
4720 xmlSchemaSetValidStructuredErrors(reader->xsdValidCtxt, in xmlTextReaderSetErrorHandler()
4721 xmlTextReaderStructuredRelay, reader); in xmlTextReaderSetErrorHandler()
4726 reader->errorFunc = NULL; in xmlTextReaderSetErrorHandler()
4727 reader->sErrorFunc = NULL; in xmlTextReaderSetErrorHandler()
4728 reader->errorFuncArg = NULL; in xmlTextReaderSetErrorHandler()
4729 xmlCtxtSetErrorHandler(reader->ctxt, NULL, NULL); in xmlTextReaderSetErrorHandler()
4731 if (reader->rngValidCtxt) { in xmlTextReaderSetErrorHandler()
4732 xmlRelaxNGSetValidStructuredErrors(reader->rngValidCtxt, NULL, in xmlTextReaderSetErrorHandler()
4735 if (reader->xsdValidCtxt) { in xmlTextReaderSetErrorHandler()
4736 xmlSchemaSetValidStructuredErrors(reader->xsdValidCtxt, NULL, in xmlTextReaderSetErrorHandler()
4745 * @reader: the xmlTextReaderPtr used
4754 xmlTextReaderSetStructuredErrorHandler(xmlTextReaderPtr reader, in xmlTextReaderSetStructuredErrorHandler() argument
4758 reader->sErrorFunc = f; in xmlTextReaderSetStructuredErrorHandler()
4759 reader->errorFunc = NULL; in xmlTextReaderSetStructuredErrorHandler()
4760 reader->errorFuncArg = arg; in xmlTextReaderSetStructuredErrorHandler()
4761 xmlCtxtSetErrorHandler(reader->ctxt, in xmlTextReaderSetStructuredErrorHandler()
4762 xmlTextReaderStructuredRelay, reader); in xmlTextReaderSetStructuredErrorHandler()
4764 if (reader->rngValidCtxt) { in xmlTextReaderSetStructuredErrorHandler()
4765 xmlRelaxNGSetValidStructuredErrors(reader->rngValidCtxt, in xmlTextReaderSetStructuredErrorHandler()
4766 xmlTextReaderStructuredRelay, reader); in xmlTextReaderSetStructuredErrorHandler()
4768 if (reader->xsdValidCtxt) { in xmlTextReaderSetStructuredErrorHandler()
4769 xmlSchemaSetValidStructuredErrors(reader->xsdValidCtxt, in xmlTextReaderSetStructuredErrorHandler()
4770 xmlTextReaderStructuredRelay, reader); in xmlTextReaderSetStructuredErrorHandler()
4775 reader->errorFunc = NULL; in xmlTextReaderSetStructuredErrorHandler()
4776 reader->sErrorFunc = NULL; in xmlTextReaderSetStructuredErrorHandler()
4777 reader->errorFuncArg = NULL; in xmlTextReaderSetStructuredErrorHandler()
4778 xmlCtxtSetErrorHandler(reader->ctxt, NULL, NULL); in xmlTextReaderSetStructuredErrorHandler()
4780 if (reader->rngValidCtxt) { in xmlTextReaderSetStructuredErrorHandler()
4781 xmlRelaxNGSetValidStructuredErrors(reader->rngValidCtxt, NULL, in xmlTextReaderSetStructuredErrorHandler()
4784 if (reader->xsdValidCtxt) { in xmlTextReaderSetStructuredErrorHandler()
4785 xmlSchemaSetValidStructuredErrors(reader->xsdValidCtxt, NULL, in xmlTextReaderSetStructuredErrorHandler()
4794 * @reader: the xmlTextReaderPtr used
4801 xmlTextReaderGetErrorHandler(xmlTextReaderPtr reader, in xmlTextReaderGetErrorHandler() argument
4805 *f = reader->errorFunc; in xmlTextReaderGetErrorHandler()
4807 *arg = reader->errorFuncArg; in xmlTextReaderGetErrorHandler()
4812 * @reader: thr reader
4822 xmlTextReaderSetResourceLoader(xmlTextReaderPtr reader, in xmlTextReaderSetResourceLoader() argument
4824 if ((reader == NULL) || (reader->ctxt == NULL)) in xmlTextReaderSetResourceLoader()
4827 reader->resourceLoader = loader; in xmlTextReaderSetResourceLoader()
4828 reader->resourceCtxt = data; in xmlTextReaderSetResourceLoader()
4830 xmlCtxtSetResourceLoader(reader->ctxt, loader, data); in xmlTextReaderSetResourceLoader()
4835 * @reader: the xmlTextReaderPtr used
4842 xmlTextReaderIsValid(xmlTextReaderPtr reader) in xmlTextReaderIsValid() argument
4844 if (reader == NULL) in xmlTextReaderIsValid()
4847 if (reader->validate == XML_TEXTREADER_VALIDATE_RNG) in xmlTextReaderIsValid()
4848 return (reader->rngValidErrors == 0); in xmlTextReaderIsValid()
4849 if (reader->validate == XML_TEXTREADER_VALIDATE_XSD) in xmlTextReaderIsValid()
4850 return (reader->xsdValidErrors == 0); in xmlTextReaderIsValid()
4852 if ((reader->ctxt != NULL) && (reader->ctxt->validate == 1)) in xmlTextReaderIsValid()
4853 return (reader->ctxt->valid); in xmlTextReaderIsValid()
4865 * @reader: an XML reader
4866 * @input: xmlParserInputBufferPtr used to feed the reader, will
4872 * Setup an XML reader with new options
4877 xmlTextReaderSetup(xmlTextReaderPtr reader, in xmlTextReaderSetup() argument
4881 if (reader == NULL) { in xmlTextReaderSetup()
4888 * we force the generation of compact text nodes on the reader in xmlTextReaderSetup()
4893 reader->doc = NULL; in xmlTextReaderSetup()
4894 reader->entNr = 0; in xmlTextReaderSetup()
4895 reader->parserFlags = options; in xmlTextReaderSetup()
4896 reader->validate = XML_TEXTREADER_NOT_VALIDATE; in xmlTextReaderSetup()
4897 if ((input != NULL) && (reader->input != NULL) && in xmlTextReaderSetup()
4898 (reader->allocs & XML_TEXTREADER_INPUT)) { in xmlTextReaderSetup()
4899 xmlFreeParserInputBuffer(reader->input); in xmlTextReaderSetup()
4900 reader->input = NULL; in xmlTextReaderSetup()
4901 reader->allocs -= XML_TEXTREADER_INPUT; in xmlTextReaderSetup()
4904 reader->input = input; in xmlTextReaderSetup()
4905 reader->allocs |= XML_TEXTREADER_INPUT; in xmlTextReaderSetup()
4907 if (reader->buffer == NULL) in xmlTextReaderSetup()
4908 reader->buffer = xmlBufCreateSize(100); in xmlTextReaderSetup()
4909 if (reader->buffer == NULL) { in xmlTextReaderSetup()
4912 /* no operation on a reader should require a huge buffer */ in xmlTextReaderSetup()
4913 xmlBufSetAllocationScheme(reader->buffer, in xmlTextReaderSetup()
4915 if (reader->sax == NULL) in xmlTextReaderSetup()
4916 reader->sax = (xmlSAXHandler *) xmlMalloc(sizeof(xmlSAXHandler)); in xmlTextReaderSetup()
4917 if (reader->sax == NULL) { in xmlTextReaderSetup()
4920 xmlSAXVersion(reader->sax, 2); in xmlTextReaderSetup()
4921 reader->startElement = reader->sax->startElement; in xmlTextReaderSetup()
4922 reader->sax->startElement = xmlTextReaderStartElement; in xmlTextReaderSetup()
4923 reader->endElement = reader->sax->endElement; in xmlTextReaderSetup()
4924 reader->sax->endElement = xmlTextReaderEndElement; in xmlTextReaderSetup()
4926 if (reader->sax->initialized == XML_SAX2_MAGIC) { in xmlTextReaderSetup()
4928 reader->startElementNs = reader->sax->startElementNs; in xmlTextReaderSetup()
4929 reader->sax->startElementNs = xmlTextReaderStartElementNs; in xmlTextReaderSetup()
4930 reader->endElementNs = reader->sax->endElementNs; in xmlTextReaderSetup()
4931 reader->sax->endElementNs = xmlTextReaderEndElementNs; in xmlTextReaderSetup()
4934 reader->startElementNs = NULL; in xmlTextReaderSetup()
4935 reader->endElementNs = NULL; in xmlTextReaderSetup()
4938 reader->characters = reader->sax->characters; in xmlTextReaderSetup()
4939 reader->sax->characters = xmlTextReaderCharacters; in xmlTextReaderSetup()
4940 reader->sax->ignorableWhitespace = xmlTextReaderCharacters; in xmlTextReaderSetup()
4941 reader->cdataBlock = reader->sax->cdataBlock; in xmlTextReaderSetup()
4942 reader->sax->cdataBlock = xmlTextReaderCDataBlock; in xmlTextReaderSetup()
4944 reader->mode = XML_TEXTREADER_MODE_INITIAL; in xmlTextReaderSetup()
4945 reader->node = NULL; in xmlTextReaderSetup()
4946 reader->curnode = NULL; in xmlTextReaderSetup()
4948 if (xmlBufUse(reader->input->buffer) < 4) { in xmlTextReaderSetup()
4951 if (reader->ctxt == NULL) { in xmlTextReaderSetup()
4952 if (xmlBufUse(reader->input->buffer) >= 4) { in xmlTextReaderSetup()
4953 reader->ctxt = xmlCreatePushParserCtxt(reader->sax, NULL, in xmlTextReaderSetup()
4954 (const char *) xmlBufContent(reader->input->buffer), in xmlTextReaderSetup()
4956 reader->base = 0; in xmlTextReaderSetup()
4957 reader->cur = 4; in xmlTextReaderSetup()
4959 reader->ctxt = in xmlTextReaderSetup()
4960 xmlCreatePushParserCtxt(reader->sax, NULL, NULL, 0, URL); in xmlTextReaderSetup()
4961 reader->base = 0; in xmlTextReaderSetup()
4962 reader->cur = 0; in xmlTextReaderSetup()
4964 if (reader->ctxt == NULL) { in xmlTextReaderSetup()
4971 xmlCtxtReset(reader->ctxt); in xmlTextReaderSetup()
4974 inputStream = xmlNewInputStream(reader->ctxt); in xmlTextReaderSetup()
4988 inputPush(reader->ctxt, inputStream); in xmlTextReaderSetup()
4989 reader->cur = 0; in xmlTextReaderSetup()
4992 if (reader->dict != NULL) { in xmlTextReaderSetup()
4993 if (reader->ctxt->dict != NULL) { in xmlTextReaderSetup()
4994 if (reader->dict != reader->ctxt->dict) { in xmlTextReaderSetup()
4995 xmlDictFree(reader->dict); in xmlTextReaderSetup()
4996 reader->dict = reader->ctxt->dict; in xmlTextReaderSetup()
4999 reader->ctxt->dict = reader->dict; in xmlTextReaderSetup()
5002 if (reader->ctxt->dict == NULL) in xmlTextReaderSetup()
5003 reader->ctxt->dict = xmlDictCreate(); in xmlTextReaderSetup()
5004 reader->dict = reader->ctxt->dict; in xmlTextReaderSetup()
5006 reader->ctxt->_private = reader; in xmlTextReaderSetup()
5007 reader->ctxt->linenumbers = 1; in xmlTextReaderSetup()
5008 reader->ctxt->dictNames = 1; in xmlTextReaderSetup()
5012 reader->ctxt->parseMode = XML_PARSE_READER; in xmlTextReaderSetup()
5015 if (reader->xincctxt != NULL) { in xmlTextReaderSetup()
5016 xmlXIncludeFreeContext(reader->xincctxt); in xmlTextReaderSetup()
5017 reader->xincctxt = NULL; in xmlTextReaderSetup()
5020 reader->xinclude = 1; in xmlTextReaderSetup()
5021 reader->xinclude_name = xmlDictLookup(reader->dict, XINCLUDE_NODE, -1); in xmlTextReaderSetup()
5022 if (reader->xinclude_name == NULL) in xmlTextReaderSetup()
5026 reader->xinclude = 0; in xmlTextReaderSetup()
5027 reader->in_xinclude = 0; in xmlTextReaderSetup()
5030 if (reader->patternTab == NULL) { in xmlTextReaderSetup()
5031 reader->patternNr = 0; in xmlTextReaderSetup()
5032 reader->patternMax = 0; in xmlTextReaderSetup()
5034 while (reader->patternNr > 0) { in xmlTextReaderSetup()
5035 reader->patternNr--; in xmlTextReaderSetup()
5036 if (reader->patternTab[reader->patternNr] != NULL) { in xmlTextReaderSetup()
5037 xmlFreePattern(reader->patternTab[reader->patternNr]); in xmlTextReaderSetup()
5038 reader->patternTab[reader->patternNr] = NULL; in xmlTextReaderSetup()
5044 reader->validate = XML_TEXTREADER_VALIDATE_DTD; in xmlTextReaderSetup()
5046 xmlCtxtUseOptions(reader->ctxt, options); in xmlTextReaderSetup()
5048 xmlSwitchEncodingName(reader->ctxt, encoding); in xmlTextReaderSetup()
5049 if ((URL != NULL) && (reader->ctxt->input != NULL) && in xmlTextReaderSetup()
5050 (reader->ctxt->input->filename == NULL)) { in xmlTextReaderSetup()
5051 reader->ctxt->input->filename = (char *) in xmlTextReaderSetup()
5053 if (reader->ctxt->input->filename == NULL) in xmlTextReaderSetup()
5057 reader->doc = NULL; in xmlTextReaderSetup()
5064 * @reader: an XML reader
5070 xmlTextReaderSetMaxAmplification(xmlTextReaderPtr reader, unsigned maxAmpl) in xmlTextReaderSetMaxAmplification() argument
5072 xmlCtxtSetMaxAmplification(reader->ctxt, maxAmpl); in xmlTextReaderSetMaxAmplification()
5077 * @reader: an XML reader
5084 xmlTextReaderGetLastError(xmlTextReaderPtr reader) in xmlTextReaderGetLastError() argument
5086 if (reader == NULL) in xmlTextReaderGetLastError()
5088 return(&reader->ctxt->lastError); in xmlTextReaderGetLastError()
5093 * @reader: an XML reader
5096 * by the reader, relative to the start of the current entity.
5098 * for the parser context associated with the reader.
5105 xmlTextReaderByteConsumed(xmlTextReaderPtr reader) { in xmlTextReaderByteConsumed() argument
5106 if ((reader == NULL) || (reader->ctxt == NULL)) in xmlTextReaderByteConsumed()
5108 return(xmlByteConsumed(reader->ctxt)); in xmlTextReaderByteConsumed()
5118 * Returns the new reader or NULL in case of error.
5157 * Returns the new reader or NULL in case of error.
5182 * Returns the new reader or NULL in case of error.
5187 xmlTextReaderPtr reader; in xmlReaderForFile() local
5189 reader = xmlNewTextReaderFilename(filename); in xmlReaderForFile()
5190 if (reader == NULL) in xmlReaderForFile()
5192 if (xmlTextReaderSetup(reader, NULL, NULL, encoding, options) < 0) { in xmlReaderForFile()
5193 xmlFreeTextReader(reader); in xmlReaderForFile()
5196 return (reader); in xmlReaderForFile()
5210 * Returns the new reader or NULL in case of error.
5216 xmlTextReaderPtr reader; in xmlReaderForMemory() local
5223 reader = xmlNewTextReader(buf, URL); in xmlReaderForMemory()
5224 if (reader == NULL) { in xmlReaderForMemory()
5228 reader->allocs |= XML_TEXTREADER_INPUT; in xmlReaderForMemory()
5229 if (xmlTextReaderSetup(reader, NULL, URL, encoding, options) < 0) { in xmlReaderForMemory()
5230 xmlFreeTextReader(reader); in xmlReaderForMemory()
5233 return (reader); in xmlReaderForMemory()
5246 * reader is closed or reset.
5248 * Returns the new reader or NULL in case of error.
5253 xmlTextReaderPtr reader; in xmlReaderForFd() local
5263 reader = xmlNewTextReader(input, URL); in xmlReaderForFd()
5264 if (reader == NULL) { in xmlReaderForFd()
5268 reader->allocs |= XML_TEXTREADER_INPUT; in xmlReaderForFd()
5269 if (xmlTextReaderSetup(reader, NULL, URL, encoding, options) < 0) { in xmlReaderForFd()
5270 xmlFreeTextReader(reader); in xmlReaderForFd()
5273 return (reader); in xmlReaderForFd()
5288 * Returns the new reader or NULL in case of error.
5295 xmlTextReaderPtr reader; in xmlReaderForIO() local
5308 reader = xmlNewTextReader(input, URL); in xmlReaderForIO()
5309 if (reader == NULL) { in xmlReaderForIO()
5313 reader->allocs |= XML_TEXTREADER_INPUT; in xmlReaderForIO()
5314 if (xmlTextReaderSetup(reader, NULL, URL, encoding, options) < 0) { in xmlReaderForIO()
5315 xmlFreeTextReader(reader); in xmlReaderForIO()
5318 return (reader); in xmlReaderForIO()
5323 * @reader: an XML reader
5327 * This reuses the existing @reader xmlTextReader.
5332 xmlReaderNewWalker(xmlTextReaderPtr reader, xmlDocPtr doc) in xmlReaderNewWalker() argument
5336 if (reader == NULL) in xmlReaderNewWalker()
5339 if (reader->input != NULL) { in xmlReaderNewWalker()
5340 xmlFreeParserInputBuffer(reader->input); in xmlReaderNewWalker()
5342 if (reader->ctxt != NULL) { in xmlReaderNewWalker()
5343 xmlCtxtReset(reader->ctxt); in xmlReaderNewWalker()
5346 reader->entNr = 0; in xmlReaderNewWalker()
5347 reader->input = NULL; in xmlReaderNewWalker()
5348 reader->mode = XML_TEXTREADER_MODE_INITIAL; in xmlReaderNewWalker()
5349 reader->node = NULL; in xmlReaderNewWalker()
5350 reader->curnode = NULL; in xmlReaderNewWalker()
5351 reader->base = 0; in xmlReaderNewWalker()
5352 reader->cur = 0; in xmlReaderNewWalker()
5353 reader->allocs = XML_TEXTREADER_CTXT; in xmlReaderNewWalker()
5354 reader->doc = doc; in xmlReaderNewWalker()
5355 reader->state = XML_TEXTREADER_START; in xmlReaderNewWalker()
5356 if (reader->dict == NULL) { in xmlReaderNewWalker()
5357 if ((reader->ctxt != NULL) && (reader->ctxt->dict != NULL)) in xmlReaderNewWalker()
5358 reader->dict = reader->ctxt->dict; in xmlReaderNewWalker()
5360 reader->dict = xmlDictCreate(); in xmlReaderNewWalker()
5367 * @reader: an XML reader
5375 * This reuses the existing @reader xmlTextReader.
5380 xmlReaderNewDoc(xmlTextReaderPtr reader, const xmlChar * cur, in xmlReaderNewDoc() argument
5388 if (reader == NULL) in xmlReaderNewDoc()
5392 return (xmlReaderNewMemory(reader, (const char *)cur, len, in xmlReaderNewDoc()
5398 * @reader: an XML reader
5405 * This reuses the existing @reader xmlTextReader.
5410 xmlReaderNewFile(xmlTextReaderPtr reader, const char *filename, in xmlReaderNewFile() argument
5417 if (reader == NULL) in xmlReaderNewFile()
5425 return (xmlTextReaderSetup(reader, input, filename, encoding, options)); in xmlReaderNewFile()
5430 * @reader: an XML reader
5439 * This reuses the existing @reader xmlTextReader.
5444 xmlReaderNewMemory(xmlTextReaderPtr reader, const char *buffer, int size, in xmlReaderNewMemory() argument
5449 if (reader == NULL) in xmlReaderNewMemory()
5459 return (xmlTextReaderSetup(reader, input, URL, encoding, options)); in xmlReaderNewMemory()
5464 * @reader: an XML reader
5472 * reader is closed or reset.
5474 * This reuses the existing @reader xmlTextReader.
5479 xmlReaderNewFd(xmlTextReaderPtr reader, int fd, in xmlReaderNewFd() argument
5486 if (reader == NULL) in xmlReaderNewFd()
5493 return (xmlTextReaderSetup(reader, input, URL, encoding, options)); in xmlReaderNewFd()
5498 * @reader: an XML reader
5509 * This reuses the existing @reader xmlTextReader.
5514 xmlReaderNewIO(xmlTextReaderPtr reader, xmlInputReadCallback ioread, in xmlReaderNewIO() argument
5522 if (reader == NULL) in xmlReaderNewIO()
5532 return (xmlTextReaderSetup(reader, input, URL, encoding, options)); in xmlReaderNewIO()