Lines Matching full:reader
93 * The parser: maps the Text Reader API on top of the existing *
195 #define CONSTSTR(str) xmlDictLookup(reader->dict, (str), -1)
196 #define CONSTQSTR(p, str) xmlDictQLookup(reader->dict, (p), (str))
198 static int xmlTextReaderReadTree(xmlTextReaderPtr reader);
199 static int xmlTextReaderNextTree(xmlTextReaderPtr reader);
218 static void xmlTextReaderFreeNode(xmlTextReaderPtr reader, xmlNodePtr cur);
219 static void xmlTextReaderFreeNodeList(xmlTextReaderPtr reader, xmlNodePtr cur);
223 * @reader: the xmlTextReaderPtr used
229 xmlTextReaderFreeProp(xmlTextReaderPtr reader, xmlAttrPtr cur) { in xmlTextReaderFreeProp() argument
232 if ((reader != NULL) && (reader->ctxt != NULL)) in xmlTextReaderFreeProp()
233 dict = reader->ctxt->dict; in xmlTextReaderFreeProp()
242 xmlTextReaderFreeNodeList(reader, cur->children); in xmlTextReaderFreeProp()
245 if ((reader != NULL) && (reader->ctxt != NULL) && in xmlTextReaderFreeProp()
246 (reader->ctxt->freeAttrsNr < MAX_FREE_NODES)) { in xmlTextReaderFreeProp()
247 cur->next = reader->ctxt->freeAttrs; in xmlTextReaderFreeProp()
248 reader->ctxt->freeAttrs = cur; in xmlTextReaderFreeProp()
249 reader->ctxt->freeAttrsNr++; in xmlTextReaderFreeProp()
257 * @reader: the xmlTextReaderPtr used
263 xmlTextReaderFreePropList(xmlTextReaderPtr reader, xmlAttrPtr cur) { in xmlTextReaderFreePropList() argument
268 xmlTextReaderFreeProp(reader, cur); in xmlTextReaderFreePropList()
275 * @reader: the xmlTextReaderPtr used
282 xmlTextReaderFreeNodeList(xmlTextReaderPtr reader, xmlNodePtr cur) { in xmlTextReaderFreeNodeList() argument
288 if ((reader != NULL) && (reader->ctxt != NULL)) in xmlTextReaderFreeNodeList()
289 dict = reader->ctxt->dict; in xmlTextReaderFreeNodeList()
324 xmlTextReaderFreePropList(reader, cur->properties); in xmlTextReaderFreeNodeList()
346 (reader != NULL) && (reader->ctxt != NULL) && in xmlTextReaderFreeNodeList()
347 (reader->ctxt->freeElemsNr < MAX_FREE_NODES)) { in xmlTextReaderFreeNodeList()
348 cur->next = reader->ctxt->freeElems; in xmlTextReaderFreeNodeList()
349 reader->ctxt->freeElems = cur; in xmlTextReaderFreeNodeList()
350 reader->ctxt->freeElemsNr++; in xmlTextReaderFreeNodeList()
370 * @reader: the xmlTextReaderPtr used
377 xmlTextReaderFreeNode(xmlTextReaderPtr reader, xmlNodePtr cur) { in xmlTextReaderFreeNode() argument
380 if ((reader != NULL) && (reader->ctxt != NULL)) in xmlTextReaderFreeNode()
381 dict = reader->ctxt->dict; in xmlTextReaderFreeNode()
393 xmlTextReaderFreeProp(reader, (xmlAttrPtr) cur); in xmlTextReaderFreeNode()
400 xmlTextReaderFreeNodeList(reader, cur->children); in xmlTextReaderFreeNode()
411 xmlTextReaderFreePropList(reader, cur->properties); in xmlTextReaderFreeNode()
434 (reader != NULL) && (reader->ctxt != NULL) && in xmlTextReaderFreeNode()
435 (reader->ctxt->freeElemsNr < MAX_FREE_NODES)) { in xmlTextReaderFreeNode()
436 cur->next = reader->ctxt->freeElems; in xmlTextReaderFreeNode()
437 reader->ctxt->freeElems = cur; in xmlTextReaderFreeNode()
438 reader->ctxt->freeElemsNr++; in xmlTextReaderFreeNode()
446 * @reader: the xmlTextReaderPtr used
452 xmlTextReaderFreeDoc(xmlTextReaderPtr reader, xmlDocPtr cur) { in xmlTextReaderFreeDoc() argument
482 if (cur->children != NULL) xmlTextReaderFreeNodeList(reader, cur->children); in xmlTextReaderFreeDoc()
496 * The reader core parser *
502 * @reader: the xmlTextReaderPtr used
510 xmlTextReaderEntPush(xmlTextReaderPtr reader, xmlNodePtr value) in xmlTextReaderEntPush() argument
512 if (reader->entNr >= reader->entMax) { in xmlTextReaderEntPush()
513 size_t newSize = reader->entMax == 0 ? 10 : reader->entMax * 2; in xmlTextReaderEntPush()
516 tmp = (xmlNodePtr *) xmlRealloc(reader->entTab, in xmlTextReaderEntPush()
522 reader->entTab = tmp; in xmlTextReaderEntPush()
523 reader->entMax = newSize; in xmlTextReaderEntPush()
525 reader->entTab[reader->entNr] = value; in xmlTextReaderEntPush()
526 reader->ent = value; in xmlTextReaderEntPush()
527 return (reader->entNr++); in xmlTextReaderEntPush()
532 * @reader: the xmlTextReaderPtr used
539 xmlTextReaderEntPop(xmlTextReaderPtr reader) in xmlTextReaderEntPop() argument
543 if (reader->entNr <= 0) in xmlTextReaderEntPop()
545 reader->entNr--; in xmlTextReaderEntPop()
546 if (reader->entNr > 0) in xmlTextReaderEntPop()
547 reader->ent = reader->entTab[reader->entNr - 1]; in xmlTextReaderEntPop()
549 reader->ent = NULL; in xmlTextReaderEntPop()
550 ret = reader->entTab[reader->entNr]; in xmlTextReaderEntPop()
551 reader->entTab[reader->entNr] = NULL; in xmlTextReaderEntPop()
567 xmlTextReaderPtr reader = ctxt->_private; in xmlTextReaderStartElement() local
569 if ((reader != NULL) && (reader->startElement != NULL)) { in xmlTextReaderStartElement()
570 reader->startElement(ctx, fullname, atts); in xmlTextReaderStartElement()
576 if (reader != NULL) in xmlTextReaderStartElement()
577 reader->state = XML_TEXTREADER_ELEMENT; in xmlTextReaderStartElement()
590 xmlTextReaderPtr reader = ctxt->_private; in xmlTextReaderEndElement() local
592 if ((reader != NULL) && (reader->endElement != NULL)) { in xmlTextReaderEndElement()
593 reader->endElement(ctx, fullname); in xmlTextReaderEndElement()
624 xmlTextReaderPtr reader = ctxt->_private; in xmlTextReaderStartElementNs() local
626 if ((reader != NULL) && (reader->startElementNs != NULL)) { in xmlTextReaderStartElementNs()
627 reader->startElementNs(ctx, localname, prefix, URI, nb_namespaces, in xmlTextReaderStartElementNs()
635 if (reader != NULL) in xmlTextReaderStartElementNs()
636 reader->state = XML_TEXTREADER_ELEMENT; in xmlTextReaderStartElementNs()
655 xmlTextReaderPtr reader = ctxt->_private; in xmlTextReaderEndElementNs() local
657 if ((reader != NULL) && (reader->endElementNs != NULL)) { in xmlTextReaderEndElementNs()
658 reader->endElementNs(ctx, localname, prefix, URI); in xmlTextReaderEndElementNs()
675 xmlTextReaderPtr reader = ctxt->_private; in xmlTextReaderCharacters() local
677 if ((reader != NULL) && (reader->characters != NULL)) { in xmlTextReaderCharacters()
678 reader->characters(ctx, ch, len); in xmlTextReaderCharacters()
694 xmlTextReaderPtr reader = ctxt->_private; in xmlTextReaderCDataBlock() local
696 if ((reader != NULL) && (reader->cdataBlock != NULL)) { in xmlTextReaderCDataBlock()
697 reader->cdataBlock(ctx, ch, len); in xmlTextReaderCDataBlock()
703 * @reader: the xmlTextReaderPtr used
711 xmlTextReaderPushData(xmlTextReaderPtr reader) { in xmlTextReaderPushData() argument
716 if ((reader->input == NULL) || (reader->input->buffer == NULL)) in xmlTextReaderPushData()
719 oldstate = reader->state; in xmlTextReaderPushData()
720 reader->state = XML_TEXTREADER_NONE; in xmlTextReaderPushData()
721 inbuf = reader->input->buffer; in xmlTextReaderPushData()
723 while (reader->state == XML_TEXTREADER_NONE) { in xmlTextReaderPushData()
724 if (xmlBufUse(inbuf) < reader->cur + CHUNK_SIZE) { in xmlTextReaderPushData()
728 if (reader->mode != XML_TEXTREADER_MODE_EOF) { in xmlTextReaderPushData()
729 val = xmlParserInputBufferRead(reader->input, 4096); in xmlTextReaderPushData()
731 if (xmlBufUse(inbuf) == reader->cur) { in xmlTextReaderPushData()
732 reader->mode = XML_TEXTREADER_MODE_EOF; in xmlTextReaderPushData()
738 reader->mode = XML_TEXTREADER_MODE_EOF; in xmlTextReaderPushData()
739 reader->state = oldstate; in xmlTextReaderPushData()
750 if (xmlBufUse(inbuf) >= reader->cur + CHUNK_SIZE) { in xmlTextReaderPushData()
751 val = xmlParseChunk(reader->ctxt, in xmlTextReaderPushData()
752 (const char *) xmlBufContent(inbuf) + reader->cur, in xmlTextReaderPushData()
754 reader->cur += CHUNK_SIZE; in xmlTextReaderPushData()
756 reader->ctxt->wellFormed = 0; in xmlTextReaderPushData()
757 if (reader->ctxt->wellFormed == 0) in xmlTextReaderPushData()
760 s = xmlBufUse(inbuf) - reader->cur; in xmlTextReaderPushData()
761 val = xmlParseChunk(reader->ctxt, in xmlTextReaderPushData()
762 (const char *) xmlBufContent(inbuf) + reader->cur, in xmlTextReaderPushData()
764 reader->cur += s; in xmlTextReaderPushData()
766 reader->ctxt->wellFormed = 0; in xmlTextReaderPushData()
770 reader->state = oldstate; in xmlTextReaderPushData()
775 if (reader->mode == XML_TEXTREADER_MODE_INTERACTIVE) { in xmlTextReaderPushData()
776 if (reader->input->readcallback != NULL) { in xmlTextReaderPushData()
777 if ((reader->cur >= 4096) && in xmlTextReaderPushData()
778 (xmlBufUse(inbuf) - reader->cur <= CHUNK_SIZE)) { in xmlTextReaderPushData()
779 val = xmlBufShrink(inbuf, reader->cur); in xmlTextReaderPushData()
781 reader->cur -= val; in xmlTextReaderPushData()
791 else if (reader->mode == XML_TEXTREADER_MODE_EOF) { in xmlTextReaderPushData()
792 if (reader->state != XML_TEXTREADER_DONE) { in xmlTextReaderPushData()
793 s = xmlBufUse(inbuf) - reader->cur; in xmlTextReaderPushData()
794 val = xmlParseChunk(reader->ctxt, in xmlTextReaderPushData()
795 (const char *) xmlBufContent(inbuf) + reader->cur, in xmlTextReaderPushData()
797 reader->cur = xmlBufUse(inbuf); in xmlTextReaderPushData()
798 reader->state = XML_TEXTREADER_DONE; in xmlTextReaderPushData()
800 if (reader->ctxt->wellFormed) in xmlTextReaderPushData()
801 reader->ctxt->wellFormed = 0; in xmlTextReaderPushData()
807 if (reader->ctxt->wellFormed == 0) { in xmlTextReaderPushData()
808 reader->mode = XML_TEXTREADER_MODE_EOF; in xmlTextReaderPushData()
818 * @reader: the xmlTextReaderPtr used
823 xmlTextReaderValidatePush(xmlTextReaderPtr reader ATTRIBUTE_UNUSED) { in xmlTextReaderValidatePush()
824 xmlNodePtr node = reader->node; in xmlTextReaderValidatePush()
827 if ((reader->validate == XML_TEXTREADER_VALIDATE_DTD) && in xmlTextReaderValidatePush()
828 (reader->ctxt != NULL) && (reader->ctxt->validate == 1)) { in xmlTextReaderValidatePush()
830 reader->ctxt->valid &= xmlValidatePushElement(&reader->ctxt->vctxt, in xmlTextReaderValidatePush()
831 reader->ctxt->myDoc, node, node->name); in xmlTextReaderValidatePush()
839 reader->ctxt->valid &= xmlValidatePushElement(&reader->ctxt->vctxt, in xmlTextReaderValidatePush()
840 reader->ctxt->myDoc, node, qname); in xmlTextReaderValidatePush()
847 if ((reader->validate == XML_TEXTREADER_VALIDATE_RNG) && in xmlTextReaderValidatePush()
848 (reader->rngValidCtxt != NULL)) { in xmlTextReaderValidatePush()
851 if (reader->rngFullNode != NULL) return; in xmlTextReaderValidatePush()
852 ret = xmlRelaxNGValidatePushElement(reader->rngValidCtxt, in xmlTextReaderValidatePush()
853 reader->ctxt->myDoc, in xmlTextReaderValidatePush()
859 node = xmlTextReaderExpand(reader); in xmlTextReaderValidatePush()
863 ret = xmlRelaxNGValidateFullElement(reader->rngValidCtxt, in xmlTextReaderValidatePush()
864 reader->ctxt->myDoc, in xmlTextReaderValidatePush()
866 reader->rngFullNode = node; in xmlTextReaderValidatePush()
870 reader->rngValidErrors++; in xmlTextReaderValidatePush()
877 * @reader: the xmlTextReaderPtr used
884 xmlTextReaderValidateCData(xmlTextReaderPtr reader, in xmlTextReaderValidateCData() argument
887 if ((reader->validate == XML_TEXTREADER_VALIDATE_DTD) && in xmlTextReaderValidateCData()
888 (reader->ctxt != NULL) && (reader->ctxt->validate == 1)) { in xmlTextReaderValidateCData()
889 reader->ctxt->valid &= xmlValidatePushCData(&reader->ctxt->vctxt, in xmlTextReaderValidateCData()
894 if ((reader->validate == XML_TEXTREADER_VALIDATE_RNG) && in xmlTextReaderValidateCData()
895 (reader->rngValidCtxt != NULL)) { in xmlTextReaderValidateCData()
898 if (reader->rngFullNode != NULL) return; in xmlTextReaderValidateCData()
899 ret = xmlRelaxNGValidatePushCData(reader->rngValidCtxt, data, len); in xmlTextReaderValidateCData()
901 reader->rngValidErrors++; in xmlTextReaderValidateCData()
908 * @reader: the xmlTextReaderPtr used
913 xmlTextReaderValidatePop(xmlTextReaderPtr reader) { in xmlTextReaderValidatePop() argument
914 xmlNodePtr node = reader->node; in xmlTextReaderValidatePop()
917 if ((reader->validate == XML_TEXTREADER_VALIDATE_DTD) && in xmlTextReaderValidatePop()
918 (reader->ctxt != NULL) && (reader->ctxt->validate == 1)) { in xmlTextReaderValidatePop()
920 reader->ctxt->valid &= xmlValidatePopElement(&reader->ctxt->vctxt, in xmlTextReaderValidatePop()
921 reader->ctxt->myDoc, node, node->name); in xmlTextReaderValidatePop()
929 reader->ctxt->valid &= xmlValidatePopElement(&reader->ctxt->vctxt, in xmlTextReaderValidatePop()
930 reader->ctxt->myDoc, node, qname); in xmlTextReaderValidatePop()
937 if ((reader->validate == XML_TEXTREADER_VALIDATE_RNG) && in xmlTextReaderValidatePop()
938 (reader->rngValidCtxt != NULL)) { in xmlTextReaderValidatePop()
941 if (reader->rngFullNode != NULL) { in xmlTextReaderValidatePop()
942 if (node == reader->rngFullNode) in xmlTextReaderValidatePop()
943 reader->rngFullNode = NULL; in xmlTextReaderValidatePop()
946 ret = xmlRelaxNGValidatePopElement(reader->rngValidCtxt, in xmlTextReaderValidatePop()
947 reader->ctxt->myDoc, in xmlTextReaderValidatePop()
950 reader->rngValidErrors++; in xmlTextReaderValidatePop()
957 * @reader: the xmlTextReaderPtr used
964 xmlTextReaderValidateEntity(xmlTextReaderPtr reader) { in xmlTextReaderValidateEntity() argument
965 xmlNodePtr oldnode = reader->node; in xmlTextReaderValidateEntity()
966 xmlNodePtr node = reader->node; in xmlTextReaderValidateEntity()
973 if (xmlTextReaderEntPush(reader, node) < 0) { in xmlTextReaderValidateEntity()
990 reader->node = node; in xmlTextReaderValidateEntity()
991 xmlTextReaderValidatePush(reader); in xmlTextReaderValidateEntity()
994 xmlTextReaderValidateCData(reader, node->content, in xmlTextReaderValidateEntity()
1006 xmlTextReaderValidatePop(reader); in xmlTextReaderValidateEntity()
1017 if (reader->entNr == 0) { in xmlTextReaderValidateEntity()
1021 xmlTextReaderFreeNode(reader, tmp); in xmlTextReaderValidateEntity()
1026 reader->node = node; in xmlTextReaderValidateEntity()
1027 xmlTextReaderValidatePop(reader); in xmlTextReaderValidateEntity()
1030 (reader->ent != NULL) && (reader->ent->children == node)) { in xmlTextReaderValidateEntity()
1031 node = xmlTextReaderEntPop(reader); in xmlTextReaderValidateEntity()
1041 reader->node = oldnode; in xmlTextReaderValidateEntity()
1068 * @reader: the xmlTextReaderPtr used
1078 xmlTextReaderDoExpand(xmlTextReaderPtr reader) { in xmlTextReaderDoExpand() argument
1081 if ((reader == NULL) || (reader->node == NULL) || (reader->ctxt == NULL)) in xmlTextReaderDoExpand()
1084 if (reader->ctxt->instate == XML_PARSER_EOF) return(1); in xmlTextReaderDoExpand()
1086 if (xmlTextReaderGetSuccessor(reader->node) != NULL) in xmlTextReaderDoExpand()
1088 if (reader->ctxt->nodeNr < reader->depth) in xmlTextReaderDoExpand()
1090 if (reader->mode == XML_TEXTREADER_MODE_EOF) in xmlTextReaderDoExpand()
1092 val = xmlTextReaderPushData(reader); in xmlTextReaderDoExpand()
1094 reader->mode = XML_TEXTREADER_MODE_ERROR; in xmlTextReaderDoExpand()
1097 } while(reader->mode != XML_TEXTREADER_MODE_EOF); in xmlTextReaderDoExpand()
1151 * @reader: the xmlTextReaderPtr used
1160 xmlTextReaderRead(xmlTextReaderPtr reader) { in xmlTextReaderRead() argument
1166 if (reader == NULL) in xmlTextReaderRead()
1168 reader->curnode = NULL; in xmlTextReaderRead()
1169 if (reader->doc != NULL) in xmlTextReaderRead()
1170 return(xmlTextReaderReadTree(reader)); in xmlTextReaderRead()
1171 if (reader->ctxt == NULL) in xmlTextReaderRead()
1174 if (reader->mode == XML_TEXTREADER_MODE_INITIAL) { in xmlTextReaderRead()
1175 reader->mode = XML_TEXTREADER_MODE_INTERACTIVE; in xmlTextReaderRead()
1180 val = xmlTextReaderPushData(reader); in xmlTextReaderRead()
1182 reader->mode = XML_TEXTREADER_MODE_ERROR; in xmlTextReaderRead()
1183 reader->state = XML_TEXTREADER_ERROR; in xmlTextReaderRead()
1186 } while ((reader->ctxt->node == NULL) && in xmlTextReaderRead()
1187 ((reader->mode != XML_TEXTREADER_MODE_EOF) && in xmlTextReaderRead()
1188 (reader->state != XML_TEXTREADER_DONE))); in xmlTextReaderRead()
1189 if (reader->ctxt->node == NULL) { in xmlTextReaderRead()
1190 if (reader->ctxt->myDoc != NULL) { in xmlTextReaderRead()
1191 reader->node = reader->ctxt->myDoc->children; in xmlTextReaderRead()
1193 if (reader->node == NULL){ in xmlTextReaderRead()
1194 reader->mode = XML_TEXTREADER_MODE_ERROR; in xmlTextReaderRead()
1195 reader->state = XML_TEXTREADER_ERROR; in xmlTextReaderRead()
1198 reader->state = XML_TEXTREADER_ELEMENT; in xmlTextReaderRead()
1200 if (reader->ctxt->myDoc != NULL) { in xmlTextReaderRead()
1201 reader->node = reader->ctxt->myDoc->children; in xmlTextReaderRead()
1203 if (reader->node == NULL) in xmlTextReaderRead()
1204 reader->node = reader->ctxt->nodeTab[0]; in xmlTextReaderRead()
1205 reader->state = XML_TEXTREADER_ELEMENT; in xmlTextReaderRead()
1207 reader->depth = 0; in xmlTextReaderRead()
1208 reader->ctxt->parseMode = XML_PARSE_READER; in xmlTextReaderRead()
1211 oldstate = reader->state; in xmlTextReaderRead()
1212 olddepth = reader->ctxt->nodeNr; in xmlTextReaderRead()
1213 oldnode = reader->node; in xmlTextReaderRead()
1216 if (reader->node == NULL) { in xmlTextReaderRead()
1217 if (reader->mode == XML_TEXTREADER_MODE_EOF) in xmlTextReaderRead()
1228 while ((reader->node != NULL) && (reader->node->next == NULL) && in xmlTextReaderRead()
1229 (reader->ctxt->nodeNr == olddepth) && in xmlTextReaderRead()
1231 (reader->node->children == NULL) || in xmlTextReaderRead()
1232 (reader->node->type == XML_ENTITY_REF_NODE) || in xmlTextReaderRead()
1233 ((reader->node->children != NULL) && in xmlTextReaderRead()
1234 (reader->node->children->type == XML_TEXT_NODE) && in xmlTextReaderRead()
1235 (reader->node->children->next == NULL)) || in xmlTextReaderRead()
1236 (reader->node->type == XML_DTD_NODE) || in xmlTextReaderRead()
1237 (reader->node->type == XML_DOCUMENT_NODE) || in xmlTextReaderRead()
1238 (reader->node->type == XML_HTML_DOCUMENT_NODE)) && in xmlTextReaderRead()
1239 ((reader->ctxt->node == NULL) || in xmlTextReaderRead()
1240 (reader->ctxt->node == reader->node) || in xmlTextReaderRead()
1241 (reader->ctxt->node == reader->node->parent)) && in xmlTextReaderRead()
1242 (reader->ctxt->instate != XML_PARSER_EOF)) { in xmlTextReaderRead()
1243 val = xmlTextReaderPushData(reader); in xmlTextReaderRead()
1245 reader->mode = XML_TEXTREADER_MODE_ERROR; in xmlTextReaderRead()
1246 reader->state = XML_TEXTREADER_ERROR; in xmlTextReaderRead()
1249 if (reader->node == NULL) in xmlTextReaderRead()
1253 if ((reader->node->children != NULL) && in xmlTextReaderRead()
1254 (reader->node->type != XML_ENTITY_REF_NODE) && in xmlTextReaderRead()
1255 (reader->node->type != XML_XINCLUDE_START) && in xmlTextReaderRead()
1256 (reader->node->type != XML_DTD_NODE)) { in xmlTextReaderRead()
1257 reader->node = reader->node->children; in xmlTextReaderRead()
1258 reader->depth++; in xmlTextReaderRead()
1259 reader->state = XML_TEXTREADER_ELEMENT; in xmlTextReaderRead()
1263 if (reader->node->next != NULL) { in xmlTextReaderRead()
1265 (reader->node->type == XML_ELEMENT_NODE) && in xmlTextReaderRead()
1266 (reader->node->children == NULL) && in xmlTextReaderRead()
1267 ((reader->node->extra & NODE_IS_EMPTY) == 0) in xmlTextReaderRead()
1269 && (reader->in_xinclude <= 0) in xmlTextReaderRead()
1272 reader->state = XML_TEXTREADER_END; in xmlTextReaderRead()
1276 if ((reader->validate) && in xmlTextReaderRead()
1277 (reader->node->type == XML_ELEMENT_NODE)) in xmlTextReaderRead()
1278 xmlTextReaderValidatePop(reader); in xmlTextReaderRead()
1280 if ((reader->preserves > 0) && in xmlTextReaderRead()
1281 (reader->node->extra & NODE_IS_SPRESERVED)) in xmlTextReaderRead()
1282 reader->preserves--; in xmlTextReaderRead()
1283 reader->node = reader->node->next; in xmlTextReaderRead()
1284 reader->state = XML_TEXTREADER_ELEMENT; in xmlTextReaderRead()
1289 if ((reader->preserves == 0) && in xmlTextReaderRead()
1291 (reader->in_xinclude == 0) && in xmlTextReaderRead()
1293 (reader->entNr == 0) && in xmlTextReaderRead()
1294 (reader->node->prev != NULL) && in xmlTextReaderRead()
1295 (reader->node->prev->type != XML_DTD_NODE)) { in xmlTextReaderRead()
1296 xmlNodePtr tmp = reader->node->prev; in xmlTextReaderRead()
1301 xmlTextReaderFreeNode(reader, tmp); in xmlTextReaderRead()
1308 (reader->node->type == XML_ELEMENT_NODE) && in xmlTextReaderRead()
1309 (reader->node->children == NULL) && in xmlTextReaderRead()
1310 ((reader->node->extra & NODE_IS_EMPTY) == 0)) {; in xmlTextReaderRead()
1311 reader->state = XML_TEXTREADER_END; in xmlTextReaderRead()
1315 … if ((reader->validate != XML_TEXTREADER_NOT_VALIDATE) && (reader->node->type == XML_ELEMENT_NODE)) in xmlTextReaderRead()
1316 xmlTextReaderValidatePop(reader); in xmlTextReaderRead()
1318 if ((reader->preserves > 0) && in xmlTextReaderRead()
1319 (reader->node->extra & NODE_IS_SPRESERVED)) in xmlTextReaderRead()
1320 reader->preserves--; in xmlTextReaderRead()
1321 reader->node = reader->node->parent; in xmlTextReaderRead()
1322 if ((reader->node == NULL) || in xmlTextReaderRead()
1323 (reader->node->type == XML_DOCUMENT_NODE) || in xmlTextReaderRead()
1324 (reader->node->type == XML_HTML_DOCUMENT_NODE)) { in xmlTextReaderRead()
1325 if (reader->mode != XML_TEXTREADER_MODE_EOF) { in xmlTextReaderRead()
1326 val = xmlParseChunk(reader->ctxt, "", 0, 1); in xmlTextReaderRead()
1327 reader->state = XML_TEXTREADER_DONE; in xmlTextReaderRead()
1331 reader->node = NULL; in xmlTextReaderRead()
1332 reader->depth = -1; in xmlTextReaderRead()
1337 if ((oldnode != NULL) && (reader->preserves == 0) && in xmlTextReaderRead()
1339 (reader->in_xinclude == 0) && in xmlTextReaderRead()
1341 (reader->entNr == 0) && in xmlTextReaderRead()
1345 xmlTextReaderFreeNode(reader, oldnode); in xmlTextReaderRead()
1350 if ((reader->preserves == 0) && in xmlTextReaderRead()
1352 (reader->in_xinclude == 0) && in xmlTextReaderRead()
1354 (reader->entNr == 0) && in xmlTextReaderRead()
1355 (reader->node->last != NULL) && in xmlTextReaderRead()
1356 ((reader->node->last->extra & NODE_IS_PRESERVED) == 0)) { in xmlTextReaderRead()
1357 xmlNodePtr tmp = reader->node->last; in xmlTextReaderRead()
1359 xmlTextReaderFreeNode(reader, tmp); in xmlTextReaderRead()
1361 reader->depth--; in xmlTextReaderRead()
1362 reader->state = XML_TEXTREADER_BACKTRACK; in xmlTextReaderRead()
1368 if ((reader->node != NULL) && in xmlTextReaderRead()
1369 (reader->node->next == NULL) && in xmlTextReaderRead()
1370 ((reader->node->type == XML_TEXT_NODE) || in xmlTextReaderRead()
1371 (reader->node->type == XML_CDATA_SECTION_NODE))) { in xmlTextReaderRead()
1372 if (xmlTextReaderExpand(reader) == NULL) in xmlTextReaderRead()
1380 if ((reader->xinclude) && (reader->in_xinclude == 0) && in xmlTextReaderRead()
1381 (reader->node != NULL) && in xmlTextReaderRead()
1382 (reader->node->type == XML_ELEMENT_NODE) && in xmlTextReaderRead()
1383 (reader->node->ns != NULL) && in xmlTextReaderRead()
1384 ((xmlStrEqual(reader->node->ns->href, XINCLUDE_NS)) || in xmlTextReaderRead()
1385 (xmlStrEqual(reader->node->ns->href, XINCLUDE_OLD_NS)))) { in xmlTextReaderRead()
1386 if (reader->xincctxt == NULL) { in xmlTextReaderRead()
1387 reader->xincctxt = xmlXIncludeNewContext(reader->ctxt->myDoc); in xmlTextReaderRead()
1388 xmlXIncludeSetFlags(reader->xincctxt, in xmlTextReaderRead()
1389 reader->parserFlags & (~XML_PARSE_NOXINCNODE)); in xmlTextReaderRead()
1390 xmlXIncludeSetStreamingMode(reader->xincctxt, 1); in xmlTextReaderRead()
1395 if (xmlTextReaderExpand(reader) == NULL) in xmlTextReaderRead()
1397 xmlXIncludeProcessNode(reader->xincctxt, reader->node); in xmlTextReaderRead()
1399 if ((reader->node != NULL) && (reader->node->type == XML_XINCLUDE_START)) { in xmlTextReaderRead()
1400 reader->in_xinclude++; in xmlTextReaderRead()
1403 if ((reader->node != NULL) && (reader->node->type == XML_XINCLUDE_END)) { in xmlTextReaderRead()
1404 reader->in_xinclude--; in xmlTextReaderRead()
1411 if ((reader->node != NULL) && in xmlTextReaderRead()
1412 (reader->node->type == XML_ENTITY_REF_NODE) && in xmlTextReaderRead()
1413 (reader->ctxt != NULL) && (reader->ctxt->replaceEntities == 1)) { in xmlTextReaderRead()
1414 if ((reader->node->children != NULL) && in xmlTextReaderRead()
1415 (reader->node->children->type == XML_ENTITY_DECL) && in xmlTextReaderRead()
1416 (reader->node->children->children != NULL)) { in xmlTextReaderRead()
1417 if (xmlTextReaderEntPush(reader, reader->node) < 0) in xmlTextReaderRead()
1419 reader->node = reader->node->children->children; in xmlTextReaderRead()
1422 } else if ((reader->node != NULL) && in xmlTextReaderRead()
1423 (reader->node->type == XML_ENTITY_REF_NODE) && in xmlTextReaderRead()
1424 (reader->ctxt != NULL) && (reader->validate)) { in xmlTextReaderRead()
1425 xmlTextReaderValidateEntity(reader); in xmlTextReaderRead()
1428 if ((reader->node != NULL) && in xmlTextReaderRead()
1429 (reader->node->type == XML_ENTITY_DECL) && in xmlTextReaderRead()
1430 (reader->ent != NULL) && (reader->ent->children == reader->node)) { in xmlTextReaderRead()
1431 reader->node = xmlTextReaderEntPop(reader); in xmlTextReaderRead()
1432 reader->depth++; in xmlTextReaderRead()
1436 if ((reader->validate != XML_TEXTREADER_NOT_VALIDATE) && (reader->node != NULL)) { in xmlTextReaderRead()
1437 xmlNodePtr node = reader->node; in xmlTextReaderRead()
1440 ((reader->state != XML_TEXTREADER_END) && in xmlTextReaderRead()
1441 (reader->state != XML_TEXTREADER_BACKTRACK))) { in xmlTextReaderRead()
1442 xmlTextReaderValidatePush(reader); in xmlTextReaderRead()
1445 xmlTextReaderValidateCData(reader, node->content, in xmlTextReaderRead()
1451 if ((reader->patternNr > 0) && (reader->state != XML_TEXTREADER_END) && in xmlTextReaderRead()
1452 (reader->state != XML_TEXTREADER_BACKTRACK)) { in xmlTextReaderRead()
1454 for (i = 0;i < reader->patternNr;i++) { in xmlTextReaderRead()
1455 if (xmlPatternMatch(reader->patternTab[i], reader->node) == 1) { in xmlTextReaderRead()
1456 xmlTextReaderPreserve(reader); in xmlTextReaderRead()
1463 if ((reader->validate == XML_TEXTREADER_VALIDATE_XSD) && in xmlTextReaderRead()
1464 (reader->xsdValidErrors == 0) && in xmlTextReaderRead()
1465 (reader->xsdValidCtxt != NULL)) { in xmlTextReaderRead()
1466 reader->xsdValidErrors = !xmlSchemaIsValid(reader->xsdValidCtxt); in xmlTextReaderRead()
1471 reader->state = XML_TEXTREADER_DONE; in xmlTextReaderRead()
1477 * @reader: the xmlTextReaderPtr used
1479 * Gets the read state of the reader.
1484 xmlTextReaderReadState(xmlTextReaderPtr reader) { in xmlTextReaderReadState() argument
1485 if (reader == NULL) in xmlTextReaderReadState()
1487 return(reader->mode); in xmlTextReaderReadState()
1492 * @reader: the xmlTextReaderPtr used
1501 xmlTextReaderExpand(xmlTextReaderPtr reader) { in xmlTextReaderExpand() argument
1502 if ((reader == NULL) || (reader->node == NULL)) in xmlTextReaderExpand()
1504 if (reader->doc != NULL) in xmlTextReaderExpand()
1505 return(reader->node); in xmlTextReaderExpand()
1506 if (reader->ctxt == NULL) in xmlTextReaderExpand()
1508 if (xmlTextReaderDoExpand(reader) < 0) in xmlTextReaderExpand()
1510 return(reader->node); in xmlTextReaderExpand()
1515 * @reader: the xmlTextReaderPtr used
1524 xmlTextReaderNext(xmlTextReaderPtr reader) { in xmlTextReaderNext() argument
1528 if (reader == NULL) in xmlTextReaderNext()
1530 if (reader->doc != NULL) in xmlTextReaderNext()
1531 return(xmlTextReaderNextTree(reader)); in xmlTextReaderNext()
1532 cur = reader->node; in xmlTextReaderNext()
1534 return(xmlTextReaderRead(reader)); in xmlTextReaderNext()
1535 if (reader->state == XML_TEXTREADER_END || reader->state == XML_TEXTREADER_BACKTRACK) in xmlTextReaderNext()
1536 return(xmlTextReaderRead(reader)); in xmlTextReaderNext()
1538 return(xmlTextReaderRead(reader)); in xmlTextReaderNext()
1540 ret = xmlTextReaderRead(reader); in xmlTextReaderNext()
1543 } while (reader->node != cur); in xmlTextReaderNext()
1544 return(xmlTextReaderRead(reader)); in xmlTextReaderNext()
1550 * @reader: the xmlTextReaderPtr used
1559 xmlTextReaderReadInnerXml(xmlTextReaderPtr reader ATTRIBUTE_UNUSED) in xmlTextReaderReadInnerXml()
1566 if (xmlTextReaderExpand(reader) == NULL) { in xmlTextReaderReadInnerXml()
1569 doc = reader->node->doc; in xmlTextReaderReadInnerXml()
1574 for (cur_node = reader->node->children; cur_node != NULL; in xmlTextReaderReadInnerXml()
1602 * @reader: the xmlTextReaderPtr used
1611 xmlTextReaderReadOuterXml(xmlTextReaderPtr reader ATTRIBUTE_UNUSED) in xmlTextReaderReadOuterXml()
1618 if (xmlTextReaderExpand(reader) == NULL) { in xmlTextReaderReadOuterXml()
1621 node = reader->node; in xmlTextReaderReadOuterXml()
1648 * @reader: the xmlTextReaderPtr used
1653 * or NULL if the reader is positioned on any other type of node.
1657 xmlTextReaderReadString(xmlTextReaderPtr reader) in xmlTextReaderReadString() argument
1661 if ((reader == NULL) || (reader->node == NULL)) in xmlTextReaderReadString()
1664 node = (reader->curnode != NULL) ? reader->curnode : reader->node; in xmlTextReaderReadString()
1671 if (xmlTextReaderDoExpand(reader) != -1) { in xmlTextReaderReadString()
1687 * @reader: the xmlTextReaderPtr used
1700 xmlTextReaderReadBase64(xmlTextReaderPtr reader,
1704 if ((reader == NULL) || (reader->ctxt == NULL))
1706 if (reader->ctxt->wellFormed != 1)
1709 if ((reader->node == NULL) || (reader->node->type == XML_ELEMENT_NODE))
1717 * @reader: the xmlTextReaderPtr used
1730 xmlTextReaderReadBinHex(xmlTextReaderPtr reader,
1734 if ((reader == NULL) || (reader->ctxt == NULL))
1736 if (reader->ctxt->wellFormed != 1)
1739 if ((reader->node == NULL) || (reader->node->type == XML_ELEMENT_NODE))
1752 xmlTextReaderNextTree(xmlTextReaderPtr reader) in xmlTextReaderNextTree() argument
1754 if (reader == NULL) in xmlTextReaderNextTree()
1757 if (reader->state == XML_TEXTREADER_END) in xmlTextReaderNextTree()
1760 if (reader->node == NULL) { in xmlTextReaderNextTree()
1761 if (reader->doc->children == NULL) { in xmlTextReaderNextTree()
1762 reader->state = XML_TEXTREADER_END; in xmlTextReaderNextTree()
1766 reader->node = reader->doc->children; in xmlTextReaderNextTree()
1767 reader->state = XML_TEXTREADER_START; in xmlTextReaderNextTree()
1771 if (reader->state != XML_TEXTREADER_BACKTRACK) { in xmlTextReaderNextTree()
1774 if (reader->node->next != 0) { in xmlTextReaderNextTree()
1776 reader->node = reader->node->next; in xmlTextReaderNextTree()
1777 reader->state = XML_TEXTREADER_START; in xmlTextReaderNextTree()
1781 /* if reader->node->next is NULL mean no subtree for current node, in xmlTextReaderNextTree()
1783 reader->state = XML_TEXTREADER_BACKTRACK; in xmlTextReaderNextTree()
1785 xmlTextReaderRead(reader); in xmlTextReaderNextTree()
1788 if (reader->node->next != 0) { in xmlTextReaderNextTree()
1789 reader->node = reader->node->next; in xmlTextReaderNextTree()
1790 reader->state = XML_TEXTREADER_START; in xmlTextReaderNextTree()
1794 if (reader->node->parent != 0) { in xmlTextReaderNextTree()
1795 if (reader->node->parent->type == XML_DOCUMENT_NODE) { in xmlTextReaderNextTree()
1796 reader->state = XML_TEXTREADER_END; in xmlTextReaderNextTree()
1800 reader->node = reader->node->parent; in xmlTextReaderNextTree()
1801 reader->depth--; in xmlTextReaderNextTree()
1802 reader->state = XML_TEXTREADER_BACKTRACK; in xmlTextReaderNextTree()
1804 xmlTextReaderNextTree(reader); in xmlTextReaderNextTree()
1807 reader->state = XML_TEXTREADER_END; in xmlTextReaderNextTree()
1814 * @reader: the xmlTextReaderPtr used
1823 xmlTextReaderReadTree(xmlTextReaderPtr reader) { in xmlTextReaderReadTree() argument
1824 if (reader->state == XML_TEXTREADER_END) in xmlTextReaderReadTree()
1828 if (reader->node == NULL) { in xmlTextReaderReadTree()
1829 if (reader->doc->children == NULL) { in xmlTextReaderReadTree()
1830 reader->state = XML_TEXTREADER_END; in xmlTextReaderReadTree()
1834 reader->node = reader->doc->children; in xmlTextReaderReadTree()
1835 reader->state = XML_TEXTREADER_START; in xmlTextReaderReadTree()
1839 if ((reader->state != XML_TEXTREADER_BACKTRACK) && in xmlTextReaderReadTree()
1840 (reader->node->type != XML_DTD_NODE) && in xmlTextReaderReadTree()
1841 (reader->node->type != XML_XINCLUDE_START) && in xmlTextReaderReadTree()
1842 (reader->node->type != XML_ENTITY_REF_NODE)) { in xmlTextReaderReadTree()
1843 if (reader->node->children != NULL) { in xmlTextReaderReadTree()
1844 reader->node = reader->node->children; in xmlTextReaderReadTree()
1845 reader->depth++; in xmlTextReaderReadTree()
1846 reader->state = XML_TEXTREADER_START; in xmlTextReaderReadTree()
1850 if (reader->node->type == XML_ATTRIBUTE_NODE) { in xmlTextReaderReadTree()
1851 reader->state = XML_TEXTREADER_BACKTRACK; in xmlTextReaderReadTree()
1856 if (reader->node->next != NULL) { in xmlTextReaderReadTree()
1857 reader->node = reader->node->next; in xmlTextReaderReadTree()
1858 reader->state = XML_TEXTREADER_START; in xmlTextReaderReadTree()
1862 if (reader->node->parent != NULL) { in xmlTextReaderReadTree()
1863 if ((reader->node->parent->type == XML_DOCUMENT_NODE) || in xmlTextReaderReadTree()
1864 (reader->node->parent->type == XML_HTML_DOCUMENT_NODE)) { in xmlTextReaderReadTree()
1865 reader->state = XML_TEXTREADER_END; in xmlTextReaderReadTree()
1869 reader->node = reader->node->parent; in xmlTextReaderReadTree()
1870 reader->depth--; in xmlTextReaderReadTree()
1871 reader->state = XML_TEXTREADER_BACKTRACK; in xmlTextReaderReadTree()
1875 reader->state = XML_TEXTREADER_END; in xmlTextReaderReadTree()
1878 if ((reader->node->type == XML_XINCLUDE_START) || in xmlTextReaderReadTree()
1879 (reader->node->type == XML_XINCLUDE_END)) in xmlTextReaderReadTree()
1887 * @reader: the xmlTextReaderPtr used
1897 xmlTextReaderNextSibling(xmlTextReaderPtr reader) { in xmlTextReaderNextSibling() argument
1898 if (reader == NULL) in xmlTextReaderNextSibling()
1900 if (reader->doc == NULL) { in xmlTextReaderNextSibling()
1905 if (reader->state == XML_TEXTREADER_END) in xmlTextReaderNextSibling()
1908 if (reader->node == NULL) in xmlTextReaderNextSibling()
1909 return(xmlTextReaderNextTree(reader)); in xmlTextReaderNextSibling()
1911 if (reader->node->next != NULL) { in xmlTextReaderNextSibling()
1912 reader->node = reader->node->next; in xmlTextReaderNextSibling()
1913 reader->state = XML_TEXTREADER_START; in xmlTextReaderNextSibling()
1959 /* no operation on a reader should require a huge buffer */ in xmlNewTextReader()
2074 * @reader: the xmlTextReaderPtr
2076 * Deallocate all the resources associated to the reader
2079 xmlFreeTextReader(xmlTextReaderPtr reader) { in xmlFreeTextReader() argument
2080 if (reader == NULL) in xmlFreeTextReader()
2083 if (reader->rngSchemas != NULL) { in xmlFreeTextReader()
2084 xmlRelaxNGFree(reader->rngSchemas); in xmlFreeTextReader()
2085 reader->rngSchemas = NULL; in xmlFreeTextReader()
2087 if (reader->rngValidCtxt != NULL) { in xmlFreeTextReader()
2088 if (! reader->rngPreserveCtxt) in xmlFreeTextReader()
2089 xmlRelaxNGFreeValidCtxt(reader->rngValidCtxt); in xmlFreeTextReader()
2090 reader->rngValidCtxt = NULL; in xmlFreeTextReader()
2092 if (reader->xsdPlug != NULL) { in xmlFreeTextReader()
2093 xmlSchemaSAXUnplug(reader->xsdPlug); in xmlFreeTextReader()
2094 reader->xsdPlug = NULL; in xmlFreeTextReader()
2096 if (reader->xsdValidCtxt != NULL) { in xmlFreeTextReader()
2097 if (! reader->xsdPreserveCtxt) in xmlFreeTextReader()
2098 xmlSchemaFreeValidCtxt(reader->xsdValidCtxt); in xmlFreeTextReader()
2099 reader->xsdValidCtxt = NULL; in xmlFreeTextReader()
2101 if (reader->xsdSchemas != NULL) { in xmlFreeTextReader()
2102 xmlSchemaFree(reader->xsdSchemas); in xmlFreeTextReader()
2103 reader->xsdSchemas = NULL; in xmlFreeTextReader()
2107 if (reader->xincctxt != NULL) in xmlFreeTextReader()
2108 xmlXIncludeFreeContext(reader->xincctxt); in xmlFreeTextReader()
2111 if (reader->patternTab != NULL) { in xmlFreeTextReader()
2113 for (i = 0;i < reader->patternNr;i++) { in xmlFreeTextReader()
2114 if (reader->patternTab[i] != NULL) in xmlFreeTextReader()
2115 xmlFreePattern(reader->patternTab[i]); in xmlFreeTextReader()
2117 xmlFree(reader->patternTab); in xmlFreeTextReader()
2120 if (reader->mode != XML_TEXTREADER_MODE_CLOSED) in xmlFreeTextReader()
2121 xmlTextReaderClose(reader); in xmlFreeTextReader()
2122 if (reader->ctxt != NULL) { in xmlFreeTextReader()
2123 if (reader->dict == reader->ctxt->dict) in xmlFreeTextReader()
2124 reader->dict = NULL; in xmlFreeTextReader()
2125 if (reader->allocs & XML_TEXTREADER_CTXT) in xmlFreeTextReader()
2126 xmlFreeParserCtxt(reader->ctxt); in xmlFreeTextReader()
2128 if (reader->sax != NULL) in xmlFreeTextReader()
2129 xmlFree(reader->sax); in xmlFreeTextReader()
2130 if (reader->buffer != NULL) in xmlFreeTextReader()
2131 xmlBufFree(reader->buffer); in xmlFreeTextReader()
2132 if (reader->entTab != NULL) in xmlFreeTextReader()
2133 xmlFree(reader->entTab); in xmlFreeTextReader()
2134 if (reader->dict != NULL) in xmlFreeTextReader()
2135 xmlDictFree(reader->dict); in xmlFreeTextReader()
2136 xmlFree(reader); in xmlFreeTextReader()
2146 * @reader: the xmlTextReaderPtr used
2154 xmlTextReaderClose(xmlTextReaderPtr reader) { in xmlTextReaderClose() argument
2155 if (reader == NULL) in xmlTextReaderClose()
2157 reader->node = NULL; in xmlTextReaderClose()
2158 reader->curnode = NULL; in xmlTextReaderClose()
2159 reader->mode = XML_TEXTREADER_MODE_CLOSED; in xmlTextReaderClose()
2160 if (reader->faketext != NULL) { in xmlTextReaderClose()
2161 xmlFreeNode(reader->faketext); in xmlTextReaderClose()
2162 reader->faketext = NULL; in xmlTextReaderClose()
2164 if (reader->ctxt != NULL) { in xmlTextReaderClose()
2166 if ((reader->ctxt->vctxt.vstateTab != NULL) && in xmlTextReaderClose()
2167 (reader->ctxt->vctxt.vstateMax > 0)){ in xmlTextReaderClose()
2169 while (reader->ctxt->vctxt.vstateNr > 0) in xmlTextReaderClose()
2170 xmlValidatePopElement(&reader->ctxt->vctxt, NULL, NULL, NULL); in xmlTextReaderClose()
2172 xmlFree(reader->ctxt->vctxt.vstateTab); in xmlTextReaderClose()
2173 reader->ctxt->vctxt.vstateTab = NULL; in xmlTextReaderClose()
2174 reader->ctxt->vctxt.vstateMax = 0; in xmlTextReaderClose()
2177 xmlStopParser(reader->ctxt); in xmlTextReaderClose()
2178 if (reader->ctxt->myDoc != NULL) { in xmlTextReaderClose()
2179 if (reader->preserve == 0) in xmlTextReaderClose()
2180 xmlTextReaderFreeDoc(reader, reader->ctxt->myDoc); in xmlTextReaderClose()
2181 reader->ctxt->myDoc = NULL; in xmlTextReaderClose()
2184 if ((reader->input != NULL) && (reader->allocs & XML_TEXTREADER_INPUT)) { in xmlTextReaderClose()
2185 xmlFreeParserInputBuffer(reader->input); in xmlTextReaderClose()
2186 reader->allocs -= XML_TEXTREADER_INPUT; in xmlTextReaderClose()
2193 * @reader: the xmlTextReaderPtr used
2203 xmlTextReaderGetAttributeNo(xmlTextReaderPtr reader, int no) { in xmlTextReaderGetAttributeNo() argument
2209 if (reader == NULL) in xmlTextReaderGetAttributeNo()
2211 if (reader->node == NULL) in xmlTextReaderGetAttributeNo()
2213 if (reader->curnode != NULL) in xmlTextReaderGetAttributeNo()
2216 if (reader->node->type != XML_ELEMENT_NODE) in xmlTextReaderGetAttributeNo()
2219 ns = reader->node->nsDef; in xmlTextReaderGetAttributeNo()
2226 cur = reader->node->properties; in xmlTextReaderGetAttributeNo()
2236 ret = xmlNodeListGetString(reader->node->doc, cur->children, 1); in xmlTextReaderGetAttributeNo()
2243 * @reader: the xmlTextReaderPtr used
2252 xmlTextReaderGetAttribute(xmlTextReaderPtr reader, const xmlChar *name) { in xmlTextReaderGetAttribute() argument
2258 if ((reader == NULL) || (name == NULL)) in xmlTextReaderGetAttribute()
2260 if (reader->node == NULL) in xmlTextReaderGetAttribute()
2262 if (reader->curnode != NULL) in xmlTextReaderGetAttribute()
2266 if (reader->node->type != XML_ELEMENT_NODE) in xmlTextReaderGetAttribute()
2275 ns = reader->node->nsDef; in xmlTextReaderGetAttribute()
2284 return(xmlGetNoNsProp(reader->node, name)); in xmlTextReaderGetAttribute()
2291 ns = reader->node->nsDef; in xmlTextReaderGetAttribute()
2300 ns = xmlSearchNs(reader->node->doc, reader->node, prefix); in xmlTextReaderGetAttribute()
2302 ret = xmlGetNsProp(reader->node, localname, ns->href); in xmlTextReaderGetAttribute()
2314 * @reader: the xmlTextReaderPtr used
2324 xmlTextReaderGetAttributeNs(xmlTextReaderPtr reader, const xmlChar *localName, in xmlTextReaderGetAttributeNs() argument
2329 if ((reader == NULL) || (localName == NULL)) in xmlTextReaderGetAttributeNs()
2331 if (reader->node == NULL) in xmlTextReaderGetAttributeNs()
2333 if (reader->curnode != NULL) in xmlTextReaderGetAttributeNs()
2337 if (reader->node->type != XML_ELEMENT_NODE) in xmlTextReaderGetAttributeNs()
2344 ns = reader->node->nsDef; in xmlTextReaderGetAttributeNs()
2355 return(xmlGetNsProp(reader->node, localName, namespaceURI)); in xmlTextReaderGetAttributeNs()
2360 * @reader: the xmlTextReaderPtr used
2367 * what's left in reader->input, and there is an allocation problem. Best
2374 xmlTextReaderGetRemainder(xmlTextReaderPtr reader) { in xmlTextReaderGetRemainder() argument
2377 if (reader == NULL) in xmlTextReaderGetRemainder()
2379 if (reader->node == NULL) in xmlTextReaderGetRemainder()
2382 reader->node = NULL; in xmlTextReaderGetRemainder()
2383 reader->curnode = NULL; in xmlTextReaderGetRemainder()
2384 reader->mode = XML_TEXTREADER_MODE_EOF; in xmlTextReaderGetRemainder()
2385 if (reader->ctxt != NULL) { in xmlTextReaderGetRemainder()
2386 xmlStopParser(reader->ctxt); in xmlTextReaderGetRemainder()
2387 if (reader->ctxt->myDoc != NULL) { in xmlTextReaderGetRemainder()
2388 if (reader->preserve == 0) in xmlTextReaderGetRemainder()
2389 xmlTextReaderFreeDoc(reader, reader->ctxt->myDoc); in xmlTextReaderGetRemainder()
2390 reader->ctxt->myDoc = NULL; in xmlTextReaderGetRemainder()
2393 if (reader->allocs & XML_TEXTREADER_INPUT) { in xmlTextReaderGetRemainder()
2394 ret = reader->input; in xmlTextReaderGetRemainder()
2395 reader->input = NULL; in xmlTextReaderGetRemainder()
2396 reader->allocs -= XML_TEXTREADER_INPUT; in xmlTextReaderGetRemainder()
2412 * @reader: the xmlTextReaderPtr used
2422 xmlTextReaderLookupNamespace(xmlTextReaderPtr reader, const xmlChar *prefix) { in xmlTextReaderLookupNamespace() argument
2425 if (reader == NULL) in xmlTextReaderLookupNamespace()
2427 if (reader->node == NULL) in xmlTextReaderLookupNamespace()
2430 ns = xmlSearchNs(reader->node->doc, reader->node, prefix); in xmlTextReaderLookupNamespace()
2438 * @reader: the xmlTextReaderPtr used
2448 xmlTextReaderMoveToAttributeNo(xmlTextReaderPtr reader, int no) { in xmlTextReaderMoveToAttributeNo() argument
2453 if (reader == NULL) in xmlTextReaderMoveToAttributeNo()
2455 if (reader->node == NULL) in xmlTextReaderMoveToAttributeNo()
2458 if (reader->node->type != XML_ELEMENT_NODE) in xmlTextReaderMoveToAttributeNo()
2461 reader->curnode = NULL; in xmlTextReaderMoveToAttributeNo()
2463 ns = reader->node->nsDef; in xmlTextReaderMoveToAttributeNo()
2468 reader->curnode = (xmlNodePtr) ns; in xmlTextReaderMoveToAttributeNo()
2472 cur = reader->node->properties; in xmlTextReaderMoveToAttributeNo()
2482 reader->curnode = (xmlNodePtr) cur; in xmlTextReaderMoveToAttributeNo()
2488 * @reader: the xmlTextReaderPtr used
2497 xmlTextReaderMoveToAttribute(xmlTextReaderPtr reader, const xmlChar *name) { in xmlTextReaderMoveToAttribute() argument
2503 if ((reader == NULL) || (name == NULL)) in xmlTextReaderMoveToAttribute()
2505 if (reader->node == NULL) in xmlTextReaderMoveToAttribute()
2509 if (reader->node->type != XML_ELEMENT_NODE) in xmlTextReaderMoveToAttribute()
2518 ns = reader->node->nsDef; in xmlTextReaderMoveToAttribute()
2521 reader->curnode = (xmlNodePtr) ns; in xmlTextReaderMoveToAttribute()
2529 prop = reader->node->properties; in xmlTextReaderMoveToAttribute()
2538 reader->curnode = (xmlNodePtr) prop; in xmlTextReaderMoveToAttribute()
2550 ns = reader->node->nsDef; in xmlTextReaderMoveToAttribute()
2553 reader->curnode = (xmlNodePtr) ns; in xmlTextReaderMoveToAttribute()
2560 prop = reader->node->properties; in xmlTextReaderMoveToAttribute()
2569 reader->curnode = (xmlNodePtr) prop; in xmlTextReaderMoveToAttribute()
2591 * @reader: the xmlTextReaderPtr used
2601 xmlTextReaderMoveToAttributeNs(xmlTextReaderPtr reader, in xmlTextReaderMoveToAttributeNs() argument
2608 if ((reader == NULL) || (localName == NULL) || (namespaceURI == NULL)) in xmlTextReaderMoveToAttributeNs()
2610 if (reader->node == NULL) in xmlTextReaderMoveToAttributeNs()
2612 if (reader->node->type != XML_ELEMENT_NODE) in xmlTextReaderMoveToAttributeNs()
2614 node = reader->node; in xmlTextReaderMoveToAttributeNs()
2620 ns = reader->node->nsDef; in xmlTextReaderMoveToAttributeNs()
2624 reader->curnode = (xmlNodePtr) ns; in xmlTextReaderMoveToAttributeNs()
2642 reader->curnode = (xmlNodePtr) prop; in xmlTextReaderMoveToAttributeNs()
2652 * @reader: the xmlTextReaderPtr used
2660 xmlTextReaderMoveToFirstAttribute(xmlTextReaderPtr reader) { in xmlTextReaderMoveToFirstAttribute() argument
2661 if (reader == NULL) in xmlTextReaderMoveToFirstAttribute()
2663 if (reader->node == NULL) in xmlTextReaderMoveToFirstAttribute()
2665 if (reader->node->type != XML_ELEMENT_NODE) in xmlTextReaderMoveToFirstAttribute()
2668 if (reader->node->nsDef != NULL) { in xmlTextReaderMoveToFirstAttribute()
2669 reader->curnode = (xmlNodePtr) reader->node->nsDef; in xmlTextReaderMoveToFirstAttribute()
2672 if (reader->node->properties != NULL) { in xmlTextReaderMoveToFirstAttribute()
2673 reader->curnode = (xmlNodePtr) reader->node->properties; in xmlTextReaderMoveToFirstAttribute()
2681 * @reader: the xmlTextReaderPtr used
2689 xmlTextReaderMoveToNextAttribute(xmlTextReaderPtr reader) { in xmlTextReaderMoveToNextAttribute() argument
2690 if (reader == NULL) in xmlTextReaderMoveToNextAttribute()
2692 if (reader->node == NULL) in xmlTextReaderMoveToNextAttribute()
2694 if (reader->node->type != XML_ELEMENT_NODE) in xmlTextReaderMoveToNextAttribute()
2696 if (reader->curnode == NULL) in xmlTextReaderMoveToNextAttribute()
2697 return(xmlTextReaderMoveToFirstAttribute(reader)); in xmlTextReaderMoveToNextAttribute()
2699 if (reader->curnode->type == XML_NAMESPACE_DECL) { in xmlTextReaderMoveToNextAttribute()
2700 xmlNsPtr ns = (xmlNsPtr) reader->curnode; in xmlTextReaderMoveToNextAttribute()
2702 reader->curnode = (xmlNodePtr) ns->next; in xmlTextReaderMoveToNextAttribute()
2705 if (reader->node->properties != NULL) { in xmlTextReaderMoveToNextAttribute()
2706 reader->curnode = (xmlNodePtr) reader->node->properties; in xmlTextReaderMoveToNextAttribute()
2710 } else if ((reader->curnode->type == XML_ATTRIBUTE_NODE) && in xmlTextReaderMoveToNextAttribute()
2711 (reader->curnode->next != NULL)) { in xmlTextReaderMoveToNextAttribute()
2712 reader->curnode = reader->curnode->next; in xmlTextReaderMoveToNextAttribute()
2720 * @reader: the xmlTextReaderPtr used
2728 xmlTextReaderMoveToElement(xmlTextReaderPtr reader) { in xmlTextReaderMoveToElement() argument
2729 if (reader == NULL) in xmlTextReaderMoveToElement()
2731 if (reader->node == NULL) in xmlTextReaderMoveToElement()
2733 if (reader->node->type != XML_ELEMENT_NODE) in xmlTextReaderMoveToElement()
2735 if (reader->curnode != NULL) { in xmlTextReaderMoveToElement()
2736 reader->curnode = NULL; in xmlTextReaderMoveToElement()
2744 * @reader: the xmlTextReaderPtr used
2748 * Returns 1 in case of success, 0 if the reader was not positioned on an
2753 xmlTextReaderReadAttributeValue(xmlTextReaderPtr reader) { in xmlTextReaderReadAttributeValue() argument
2754 if (reader == NULL) in xmlTextReaderReadAttributeValue()
2756 if (reader->node == NULL) in xmlTextReaderReadAttributeValue()
2758 if (reader->curnode == NULL) in xmlTextReaderReadAttributeValue()
2760 if (reader->curnode->type == XML_ATTRIBUTE_NODE) { in xmlTextReaderReadAttributeValue()
2761 if (reader->curnode->children == NULL) in xmlTextReaderReadAttributeValue()
2763 reader->curnode = reader->curnode->children; in xmlTextReaderReadAttributeValue()
2764 } else if (reader->curnode->type == XML_NAMESPACE_DECL) { in xmlTextReaderReadAttributeValue()
2765 xmlNsPtr ns = (xmlNsPtr) reader->curnode; in xmlTextReaderReadAttributeValue()
2767 if (reader->faketext == NULL) { in xmlTextReaderReadAttributeValue()
2768 reader->faketext = xmlNewDocText(reader->node->doc, in xmlTextReaderReadAttributeValue()
2771 if ((reader->faketext->content != NULL) && in xmlTextReaderReadAttributeValue()
2772 (reader->faketext->content != in xmlTextReaderReadAttributeValue()
2773 (xmlChar *) &(reader->faketext->properties))) in xmlTextReaderReadAttributeValue()
2774 xmlFree(reader->faketext->content); in xmlTextReaderReadAttributeValue()
2775 reader->faketext->content = xmlStrdup(ns->href); in xmlTextReaderReadAttributeValue()
2777 reader->curnode = reader->faketext; in xmlTextReaderReadAttributeValue()
2779 if (reader->curnode->next == NULL) in xmlTextReaderReadAttributeValue()
2781 reader->curnode = reader->curnode->next; in xmlTextReaderReadAttributeValue()
2788 * @reader: the xmlTextReaderPtr used
2793 * case of error. The string is deallocated with the reader.
2796 xmlTextReaderConstEncoding(xmlTextReaderPtr reader) { in xmlTextReaderConstEncoding() argument
2798 if (reader == NULL) in xmlTextReaderConstEncoding()
2800 if (reader->doc != NULL) in xmlTextReaderConstEncoding()
2801 doc = reader->doc; in xmlTextReaderConstEncoding()
2802 else if (reader->ctxt != NULL) in xmlTextReaderConstEncoding()
2803 doc = reader->ctxt->myDoc; in xmlTextReaderConstEncoding()
2821 * @reader: the xmlTextReaderPtr used
2828 xmlTextReaderAttributeCount(xmlTextReaderPtr reader) { in xmlTextReaderAttributeCount() argument
2834 if (reader == NULL) in xmlTextReaderAttributeCount()
2836 if (reader->node == NULL) in xmlTextReaderAttributeCount()
2839 if (reader->curnode != NULL) in xmlTextReaderAttributeCount()
2840 node = reader->curnode; in xmlTextReaderAttributeCount()
2842 node = reader->node; in xmlTextReaderAttributeCount()
2846 if ((reader->state == XML_TEXTREADER_END) || in xmlTextReaderAttributeCount()
2847 (reader->state == XML_TEXTREADER_BACKTRACK)) in xmlTextReaderAttributeCount()
2865 * @reader: the xmlTextReaderPtr used
2874 xmlTextReaderNodeType(xmlTextReaderPtr reader) { in xmlTextReaderNodeType() argument
2877 if (reader == NULL) in xmlTextReaderNodeType()
2879 if (reader->node == NULL) in xmlTextReaderNodeType()
2881 if (reader->curnode != NULL) in xmlTextReaderNodeType()
2882 node = reader->curnode; in xmlTextReaderNodeType()
2884 node = reader->node; in xmlTextReaderNodeType()
2887 if ((reader->state == XML_TEXTREADER_END) || in xmlTextReaderNodeType()
2888 (reader->state == XML_TEXTREADER_BACKTRACK)) in xmlTextReaderNodeType()
2895 if (xmlIsBlankNode(reader->node)) { in xmlTextReaderNodeType()
2896 if (xmlNodeGetSpacePreserve(reader->node)) in xmlTextReaderNodeType()
2936 * @reader: the xmlTextReaderPtr used
2943 xmlTextReaderIsEmptyElement(xmlTextReaderPtr reader) { in xmlTextReaderIsEmptyElement() argument
2944 if ((reader == NULL) || (reader->node == NULL)) in xmlTextReaderIsEmptyElement()
2946 if (reader->node->type != XML_ELEMENT_NODE) in xmlTextReaderIsEmptyElement()
2948 if (reader->curnode != NULL) in xmlTextReaderIsEmptyElement()
2950 if (reader->node->children != NULL) in xmlTextReaderIsEmptyElement()
2952 if (reader->state == XML_TEXTREADER_END) in xmlTextReaderIsEmptyElement()
2954 if (reader->doc != NULL) in xmlTextReaderIsEmptyElement()
2957 if (reader->in_xinclude > 0) in xmlTextReaderIsEmptyElement()
2960 return((reader->node->extra & NODE_IS_EMPTY) != 0); in xmlTextReaderIsEmptyElement()
2965 * @reader: the xmlTextReaderPtr used
2973 xmlTextReaderLocalName(xmlTextReaderPtr reader) { in xmlTextReaderLocalName() argument
2975 if ((reader == NULL) || (reader->node == NULL)) in xmlTextReaderLocalName()
2977 if (reader->curnode != NULL) in xmlTextReaderLocalName()
2978 node = reader->curnode; in xmlTextReaderLocalName()
2980 node = reader->node; in xmlTextReaderLocalName()
2990 return(xmlTextReaderName(reader)); in xmlTextReaderLocalName()
2996 * @reader: the xmlTextReaderPtr used
3001 * string will be deallocated with the reader.
3004 xmlTextReaderConstLocalName(xmlTextReaderPtr reader) { in xmlTextReaderConstLocalName() argument
3006 if ((reader == NULL) || (reader->node == NULL)) in xmlTextReaderConstLocalName()
3008 if (reader->curnode != NULL) in xmlTextReaderConstLocalName()
3009 node = reader->curnode; in xmlTextReaderConstLocalName()
3011 node = reader->node; in xmlTextReaderConstLocalName()
3021 return(xmlTextReaderConstName(reader)); in xmlTextReaderConstLocalName()
3027 * @reader: the xmlTextReaderPtr used
3035 xmlTextReaderName(xmlTextReaderPtr reader) { in xmlTextReaderName() argument
3039 if ((reader == NULL) || (reader->node == NULL)) in xmlTextReaderName()
3041 if (reader->curnode != NULL) in xmlTextReaderName()
3042 node = reader->curnode; in xmlTextReaderName()
3044 node = reader->node; in xmlTextReaderName()
3100 * @reader: the xmlTextReaderPtr used
3105 * deallocated with the reader.
3108 xmlTextReaderConstName(xmlTextReaderPtr reader) { in xmlTextReaderConstName() argument
3111 if ((reader == NULL) || (reader->node == NULL)) in xmlTextReaderConstName()
3113 if (reader->curnode != NULL) in xmlTextReaderConstName()
3114 node = reader->curnode; in xmlTextReaderConstName()
3116 node = reader->node; in xmlTextReaderConstName()
3165 * @reader: the xmlTextReaderPtr used
3173 xmlTextReaderPrefix(xmlTextReaderPtr reader) { in xmlTextReaderPrefix() argument
3175 if ((reader == NULL) || (reader->node == NULL)) in xmlTextReaderPrefix()
3177 if (reader->curnode != NULL) in xmlTextReaderPrefix()
3178 node = reader->curnode; in xmlTextReaderPrefix()
3180 node = reader->node; in xmlTextReaderPrefix()
3197 * @reader: the xmlTextReaderPtr used
3202 * with the reader.
3205 xmlTextReaderConstPrefix(xmlTextReaderPtr reader) { in xmlTextReaderConstPrefix() argument
3207 if ((reader == NULL) || (reader->node == NULL)) in xmlTextReaderConstPrefix()
3209 if (reader->curnode != NULL) in xmlTextReaderConstPrefix()
3210 node = reader->curnode; in xmlTextReaderConstPrefix()
3212 node = reader->node; in xmlTextReaderConstPrefix()
3229 * @reader: the xmlTextReaderPtr used
3237 xmlTextReaderNamespaceUri(xmlTextReaderPtr reader) { in xmlTextReaderNamespaceUri() argument
3239 if ((reader == NULL) || (reader->node == NULL)) in xmlTextReaderNamespaceUri()
3241 if (reader->curnode != NULL) in xmlTextReaderNamespaceUri()
3242 node = reader->curnode; in xmlTextReaderNamespaceUri()
3244 node = reader->node; in xmlTextReaderNamespaceUri()
3257 * @reader: the xmlTextReaderPtr used
3262 * will be deallocated with the reader
3265 xmlTextReaderConstNamespaceUri(xmlTextReaderPtr reader) { in xmlTextReaderConstNamespaceUri() argument
3267 if ((reader == NULL) || (reader->node == NULL)) in xmlTextReaderConstNamespaceUri()
3269 if (reader->curnode != NULL) in xmlTextReaderConstNamespaceUri()
3270 node = reader->curnode; in xmlTextReaderConstNamespaceUri()
3272 node = reader->node; in xmlTextReaderConstNamespaceUri()
3285 * @reader: the xmlTextReaderPtr used
3293 xmlTextReaderBaseUri(xmlTextReaderPtr reader) { in xmlTextReaderBaseUri() argument
3294 if ((reader == NULL) || (reader->node == NULL)) in xmlTextReaderBaseUri()
3296 return(xmlNodeGetBase(NULL, reader->node)); in xmlTextReaderBaseUri()
3301 * @reader: the xmlTextReaderPtr used
3306 * will be deallocated with the reader
3309 xmlTextReaderConstBaseUri(xmlTextReaderPtr reader) { in xmlTextReaderConstBaseUri() argument
3313 if ((reader == NULL) || (reader->node == NULL)) in xmlTextReaderConstBaseUri()
3315 tmp = xmlNodeGetBase(NULL, reader->node); in xmlTextReaderConstBaseUri()
3325 * @reader: the xmlTextReaderPtr used
3332 xmlTextReaderDepth(xmlTextReaderPtr reader) { in xmlTextReaderDepth() argument
3333 if (reader == NULL) in xmlTextReaderDepth()
3335 if (reader->node == NULL) in xmlTextReaderDepth()
3338 if (reader->curnode != NULL) { in xmlTextReaderDepth()
3339 if ((reader->curnode->type == XML_ATTRIBUTE_NODE) || in xmlTextReaderDepth()
3340 (reader->curnode->type == XML_NAMESPACE_DECL)) in xmlTextReaderDepth()
3341 return(reader->depth + 1); in xmlTextReaderDepth()
3342 return(reader->depth + 2); in xmlTextReaderDepth()
3344 return(reader->depth); in xmlTextReaderDepth()
3349 * @reader: the xmlTextReaderPtr used
3356 xmlTextReaderHasAttributes(xmlTextReaderPtr reader) { in xmlTextReaderHasAttributes() argument
3358 if (reader == NULL) in xmlTextReaderHasAttributes()
3360 if (reader->node == NULL) in xmlTextReaderHasAttributes()
3362 if (reader->curnode != NULL) in xmlTextReaderHasAttributes()
3363 node = reader->curnode; in xmlTextReaderHasAttributes()
3365 node = reader->node; in xmlTextReaderHasAttributes()
3376 * @reader: the xmlTextReaderPtr used
3383 xmlTextReaderHasValue(xmlTextReaderPtr reader) { in xmlTextReaderHasValue() argument
3385 if (reader == NULL) in xmlTextReaderHasValue()
3387 if (reader->node == NULL) in xmlTextReaderHasValue()
3389 if (reader->curnode != NULL) in xmlTextReaderHasValue()
3390 node = reader->curnode; in xmlTextReaderHasValue()
3392 node = reader->node; in xmlTextReaderHasValue()
3410 * @reader: the xmlTextReaderPtr used
3418 xmlTextReaderValue(xmlTextReaderPtr reader) { in xmlTextReaderValue() argument
3420 if (reader == NULL) in xmlTextReaderValue()
3422 if (reader->node == NULL) in xmlTextReaderValue()
3424 if (reader->curnode != NULL) in xmlTextReaderValue()
3425 node = reader->curnode; in xmlTextReaderValue()
3427 node = reader->node; in xmlTextReaderValue()
3456 * @reader: the xmlTextReaderPtr used
3464 xmlTextReaderConstValue(xmlTextReaderPtr reader) { in xmlTextReaderConstValue() argument
3466 if (reader == NULL) in xmlTextReaderConstValue()
3468 if (reader->node == NULL) in xmlTextReaderConstValue()
3470 if (reader->curnode != NULL) in xmlTextReaderConstValue()
3471 node = reader->curnode; in xmlTextReaderConstValue()
3473 node = reader->node; in xmlTextReaderConstValue()
3487 if (reader->buffer == NULL) { in xmlTextReaderConstValue()
3488 reader->buffer = xmlBufCreateSize(100); in xmlTextReaderConstValue()
3489 if (reader->buffer == NULL) { in xmlTextReaderConstValue()
3494 xmlBufSetAllocationScheme(reader->buffer, in xmlTextReaderConstValue()
3497 xmlBufEmpty(reader->buffer); in xmlTextReaderConstValue()
3498 xmlBufGetNodeContent(reader->buffer, node); in xmlTextReaderConstValue()
3499 ret = xmlBufContent(reader->buffer); in xmlTextReaderConstValue()
3502 xmlBufFree(reader->buffer); in xmlTextReaderConstValue()
3503 reader->buffer = xmlBufCreateSize(100); in xmlTextReaderConstValue()
3504 xmlBufSetAllocationScheme(reader->buffer, in xmlTextReaderConstValue()
3525 * @reader: the xmlTextReaderPtr used
3533 xmlTextReaderIsDefault(xmlTextReaderPtr reader) { in xmlTextReaderIsDefault() argument
3534 if (reader == NULL) in xmlTextReaderIsDefault()
3541 * @reader: the xmlTextReaderPtr used
3548 xmlTextReaderQuoteChar(xmlTextReaderPtr reader) { in xmlTextReaderQuoteChar() argument
3549 if (reader == NULL) in xmlTextReaderQuoteChar()
3557 * @reader: the xmlTextReaderPtr used
3565 xmlTextReaderXmlLang(xmlTextReaderPtr reader) { in xmlTextReaderXmlLang() argument
3566 if (reader == NULL) in xmlTextReaderXmlLang()
3568 if (reader->node == NULL) in xmlTextReaderXmlLang()
3570 return(xmlNodeGetLang(reader->node)); in xmlTextReaderXmlLang()
3575 * @reader: the xmlTextReaderPtr used
3582 xmlTextReaderConstXmlLang(xmlTextReaderPtr reader) { in xmlTextReaderConstXmlLang() argument
3586 if (reader == NULL) in xmlTextReaderConstXmlLang()
3588 if (reader->node == NULL) in xmlTextReaderConstXmlLang()
3590 tmp = xmlNodeGetLang(reader->node); in xmlTextReaderConstXmlLang()
3600 * @reader: the xmlTextReaderPtr used
3603 * Get an interned string from the reader, allows for example to
3607 * string will be deallocated with the reader.
3610 xmlTextReaderConstString(xmlTextReaderPtr reader, const xmlChar *str) { in xmlTextReaderConstString() argument
3611 if (reader == NULL) in xmlTextReaderConstString()
3618 * @reader: the xmlTextReaderPtr used
3629 xmlTextReaderNormalization(xmlTextReaderPtr reader) { in xmlTextReaderNormalization() argument
3630 if (reader == NULL) in xmlTextReaderNormalization()
3643 * @reader: the xmlTextReaderPtr used
3654 xmlTextReaderSetParserProp(xmlTextReaderPtr reader, int prop, int value) { in xmlTextReaderSetParserProp() argument
3658 if ((reader == NULL) || (reader->ctxt == NULL)) in xmlTextReaderSetParserProp()
3660 ctxt = reader->ctxt; in xmlTextReaderSetParserProp()
3666 if (reader->mode != XML_TEXTREADER_MODE_INITIAL) in xmlTextReaderSetParserProp()
3686 reader->validate = XML_TEXTREADER_VALIDATE_DTD; in xmlTextReaderSetParserProp()
3707 * @reader: the xmlTextReaderPtr used
3715 xmlTextReaderGetParserProp(xmlTextReaderPtr reader, int prop) { in xmlTextReaderGetParserProp() argument
3719 if ((reader == NULL) || (reader->ctxt == NULL)) in xmlTextReaderGetParserProp()
3721 ctxt = reader->ctxt; in xmlTextReaderGetParserProp()
3733 return(reader->validate); in xmlTextReaderGetParserProp()
3743 * @reader: the user data (XML reader context)
3750 xmlTextReaderGetParserLineNumber(xmlTextReaderPtr reader) in xmlTextReaderGetParserLineNumber() argument
3752 if ((reader == NULL) || (reader->ctxt == NULL) || in xmlTextReaderGetParserLineNumber()
3753 (reader->ctxt->input == NULL)) { in xmlTextReaderGetParserLineNumber()
3756 return (reader->ctxt->input->line); in xmlTextReaderGetParserLineNumber()
3761 * @reader: the user data (XML reader context)
3768 xmlTextReaderGetParserColumnNumber(xmlTextReaderPtr reader) in xmlTextReaderGetParserColumnNumber() argument
3770 if ((reader == NULL) || (reader->ctxt == NULL) || in xmlTextReaderGetParserColumnNumber()
3771 (reader->ctxt->input == NULL)) { in xmlTextReaderGetParserColumnNumber()
3774 return (reader->ctxt->input->col); in xmlTextReaderGetParserColumnNumber()
3779 * @reader: the xmlTextReaderPtr used
3788 xmlTextReaderCurrentNode(xmlTextReaderPtr reader) { in xmlTextReaderCurrentNode() argument
3789 if (reader == NULL) in xmlTextReaderCurrentNode()
3792 if (reader->curnode != NULL) in xmlTextReaderCurrentNode()
3793 return(reader->curnode); in xmlTextReaderCurrentNode()
3794 return(reader->node); in xmlTextReaderCurrentNode()
3799 * @reader: the xmlTextReaderPtr used
3801 * This tells the XML Reader to preserve the current node.
3808 xmlTextReaderPreserve(xmlTextReaderPtr reader) { in xmlTextReaderPreserve() argument
3811 if (reader == NULL) in xmlTextReaderPreserve()
3814 if (reader->curnode != NULL) in xmlTextReaderPreserve()
3815 cur = reader->curnode; in xmlTextReaderPreserve()
3817 cur = reader->node; in xmlTextReaderPreserve()
3825 reader->preserves++; in xmlTextReaderPreserve()
3839 * @reader: the xmlTextReaderPtr used
3843 * This tells the XML Reader to preserve all nodes matched by the
3850 xmlTextReaderPreservePattern(xmlTextReaderPtr reader, const xmlChar *pattern, in xmlTextReaderPreservePattern() argument
3855 if ((reader == NULL) || (pattern == NULL)) in xmlTextReaderPreservePattern()
3858 comp = xmlPatterncompile(pattern, reader->dict, 0, namespaces); in xmlTextReaderPreservePattern()
3862 if (reader->patternMax <= 0) { in xmlTextReaderPreservePattern()
3863 reader->patternMax = 4; in xmlTextReaderPreservePattern()
3864 reader->patternTab = (xmlPatternPtr *) xmlMalloc(reader->patternMax * in xmlTextReaderPreservePattern()
3865 sizeof(reader->patternTab[0])); in xmlTextReaderPreservePattern()
3866 if (reader->patternTab == NULL) { in xmlTextReaderPreservePattern()
3871 if (reader->patternNr >= reader->patternMax) { in xmlTextReaderPreservePattern()
3873 reader->patternMax *= 2; in xmlTextReaderPreservePattern()
3874 tmp = (xmlPatternPtr *) xmlRealloc(reader->patternTab, in xmlTextReaderPreservePattern()
3875 reader->patternMax * in xmlTextReaderPreservePattern()
3876 sizeof(reader->patternTab[0])); in xmlTextReaderPreservePattern()
3879 reader->patternMax /= 2; in xmlTextReaderPreservePattern()
3882 reader->patternTab = tmp; in xmlTextReaderPreservePattern()
3884 reader->patternTab[reader->patternNr] = comp; in xmlTextReaderPreservePattern()
3885 return(reader->patternNr++); in xmlTextReaderPreservePattern()
3891 * @reader: the xmlTextReaderPtr used
3895 * NOTE: as a result of this call, the reader will not destroy the
3897 * is needed once the reader parsing has finished.
3902 xmlTextReaderCurrentDoc(xmlTextReaderPtr reader) { in xmlTextReaderCurrentDoc() argument
3903 if (reader == NULL) in xmlTextReaderCurrentDoc()
3905 if (reader->doc != NULL) in xmlTextReaderCurrentDoc()
3906 return(reader->doc); in xmlTextReaderCurrentDoc()
3907 if ((reader->ctxt == NULL) || (reader->ctxt->myDoc == NULL)) in xmlTextReaderCurrentDoc()
3910 reader->preserve = 1; in xmlTextReaderCurrentDoc()
3911 return(reader->ctxt->myDoc); in xmlTextReaderCurrentDoc()
3932 xmlTextReaderPtr reader = (xmlTextReaderPtr) ctx; in xmlTextReaderValidityErrorRelay() local
3940 if (!reader->errorFunc) { in xmlTextReaderValidityErrorRelay()
3943 reader->errorFunc(reader->errorFuncArg, str, in xmlTextReaderValidityErrorRelay()
3955 xmlTextReaderPtr reader = (xmlTextReaderPtr) ctx; in xmlTextReaderValidityWarningRelay() local
3963 if (!reader->errorFunc) { in xmlTextReaderValidityWarningRelay()
3966 reader->errorFunc(reader->errorFuncArg, str, in xmlTextReaderValidityWarningRelay()
3981 xmlTextReaderPtr reader = (xmlTextReaderPtr) userData; in xmlTextReaderValidityStructuredRelay() local
3983 if (reader->sErrorFunc) { in xmlTextReaderValidityStructuredRelay()
3984 reader->sErrorFunc(reader->errorFuncArg, error); in xmlTextReaderValidityStructuredRelay()
3986 xmlTextReaderStructuredError(reader, error); in xmlTextReaderValidityStructuredRelay()
3991 * @reader: the xmlTextReaderPtr used
3997 @ The @schema should not be freed until the reader is deallocated
4004 xmlTextReaderRelaxNGSetSchema(xmlTextReaderPtr reader, xmlRelaxNGPtr schema) { in xmlTextReaderRelaxNGSetSchema() argument
4005 if (reader == NULL) in xmlTextReaderRelaxNGSetSchema()
4008 if (reader->rngSchemas != NULL) { in xmlTextReaderRelaxNGSetSchema()
4009 xmlRelaxNGFree(reader->rngSchemas); in xmlTextReaderRelaxNGSetSchema()
4010 reader->rngSchemas = NULL; in xmlTextReaderRelaxNGSetSchema()
4012 if (reader->rngValidCtxt != NULL) { in xmlTextReaderRelaxNGSetSchema()
4013 if (! reader->rngPreserveCtxt) in xmlTextReaderRelaxNGSetSchema()
4014 xmlRelaxNGFreeValidCtxt(reader->rngValidCtxt); in xmlTextReaderRelaxNGSetSchema()
4015 reader->rngValidCtxt = NULL; in xmlTextReaderRelaxNGSetSchema()
4017 reader->rngPreserveCtxt = 0; in xmlTextReaderRelaxNGSetSchema()
4020 if (reader->mode != XML_TEXTREADER_MODE_INITIAL) in xmlTextReaderRelaxNGSetSchema()
4022 if (reader->rngSchemas != NULL) { in xmlTextReaderRelaxNGSetSchema()
4023 xmlRelaxNGFree(reader->rngSchemas); in xmlTextReaderRelaxNGSetSchema()
4024 reader->rngSchemas = NULL; in xmlTextReaderRelaxNGSetSchema()
4026 if (reader->rngValidCtxt != NULL) { in xmlTextReaderRelaxNGSetSchema()
4027 if (! reader->rngPreserveCtxt) in xmlTextReaderRelaxNGSetSchema()
4028 xmlRelaxNGFreeValidCtxt(reader->rngValidCtxt); in xmlTextReaderRelaxNGSetSchema()
4029 reader->rngValidCtxt = NULL; in xmlTextReaderRelaxNGSetSchema()
4031 reader->rngPreserveCtxt = 0; in xmlTextReaderRelaxNGSetSchema()
4032 reader->rngValidCtxt = xmlRelaxNGNewValidCtxt(schema); in xmlTextReaderRelaxNGSetSchema()
4033 if (reader->rngValidCtxt == NULL) in xmlTextReaderRelaxNGSetSchema()
4035 if (reader->errorFunc != NULL) { in xmlTextReaderRelaxNGSetSchema()
4036 xmlRelaxNGSetValidErrors(reader->rngValidCtxt, in xmlTextReaderRelaxNGSetSchema()
4039 reader); in xmlTextReaderRelaxNGSetSchema()
4041 if (reader->sErrorFunc != NULL) { in xmlTextReaderRelaxNGSetSchema()
4042 xmlRelaxNGSetValidStructuredErrors(reader->rngValidCtxt, in xmlTextReaderRelaxNGSetSchema()
4044 reader); in xmlTextReaderRelaxNGSetSchema()
4046 reader->rngValidErrors = 0; in xmlTextReaderRelaxNGSetSchema()
4047 reader->rngFullNode = NULL; in xmlTextReaderRelaxNGSetSchema()
4048 reader->validate = XML_TEXTREADER_VALIDATE_RNG; in xmlTextReaderRelaxNGSetSchema()
4065 xmlTextReaderPtr reader; in xmlTextReaderLocator() local
4075 reader = (xmlTextReaderPtr) ctx; in xmlTextReaderLocator()
4076 if ((reader->ctxt != NULL) && (reader->ctxt->input != NULL)) { in xmlTextReaderLocator()
4078 *file = reader->ctxt->input->filename; in xmlTextReaderLocator()
4080 *line = reader->ctxt->input->line; in xmlTextReaderLocator()
4083 if (reader->node != NULL) { in xmlTextReaderLocator()
4088 res = xmlGetLineNo(reader->node); in xmlTextReaderLocator()
4095 xmlDocPtr doc = reader->node->doc; in xmlTextReaderLocator()
4108 * @reader: the xmlTextReaderPtr used
4114 * The @schema should not be freed until the reader is deallocated
4121 xmlTextReaderSetSchema(xmlTextReaderPtr reader, xmlSchemaPtr schema) { in xmlTextReaderSetSchema() argument
4122 if (reader == NULL) in xmlTextReaderSetSchema()
4125 if (reader->xsdPlug != NULL) { in xmlTextReaderSetSchema()
4126 xmlSchemaSAXUnplug(reader->xsdPlug); in xmlTextReaderSetSchema()
4127 reader->xsdPlug = NULL; in xmlTextReaderSetSchema()
4129 if (reader->xsdValidCtxt != NULL) { in xmlTextReaderSetSchema()
4130 if (! reader->xsdPreserveCtxt) in xmlTextReaderSetSchema()
4131 xmlSchemaFreeValidCtxt(reader->xsdValidCtxt); in xmlTextReaderSetSchema()
4132 reader->xsdValidCtxt = NULL; in xmlTextReaderSetSchema()
4134 reader->xsdPreserveCtxt = 0; in xmlTextReaderSetSchema()
4135 if (reader->xsdSchemas != NULL) { in xmlTextReaderSetSchema()
4136 xmlSchemaFree(reader->xsdSchemas); in xmlTextReaderSetSchema()
4137 reader->xsdSchemas = NULL; in xmlTextReaderSetSchema()
4141 if (reader->mode != XML_TEXTREADER_MODE_INITIAL) in xmlTextReaderSetSchema()
4143 if (reader->xsdPlug != NULL) { in xmlTextReaderSetSchema()
4144 xmlSchemaSAXUnplug(reader->xsdPlug); in xmlTextReaderSetSchema()
4145 reader->xsdPlug = NULL; in xmlTextReaderSetSchema()
4147 if (reader->xsdValidCtxt != NULL) { in xmlTextReaderSetSchema()
4148 if (! reader->xsdPreserveCtxt) in xmlTextReaderSetSchema()
4149 xmlSchemaFreeValidCtxt(reader->xsdValidCtxt); in xmlTextReaderSetSchema()
4150 reader->xsdValidCtxt = NULL; in xmlTextReaderSetSchema()
4152 reader->xsdPreserveCtxt = 0; in xmlTextReaderSetSchema()
4153 if (reader->xsdSchemas != NULL) { in xmlTextReaderSetSchema()
4154 xmlSchemaFree(reader->xsdSchemas); in xmlTextReaderSetSchema()
4155 reader->xsdSchemas = NULL; in xmlTextReaderSetSchema()
4157 reader->xsdValidCtxt = xmlSchemaNewValidCtxt(schema); in xmlTextReaderSetSchema()
4158 if (reader->xsdValidCtxt == NULL) { in xmlTextReaderSetSchema()
4159 xmlSchemaFree(reader->xsdSchemas); in xmlTextReaderSetSchema()
4160 reader->xsdSchemas = NULL; in xmlTextReaderSetSchema()
4163 reader->xsdPlug = xmlSchemaSAXPlug(reader->xsdValidCtxt, in xmlTextReaderSetSchema()
4164 &(reader->ctxt->sax), in xmlTextReaderSetSchema()
4165 &(reader->ctxt->userData)); in xmlTextReaderSetSchema()
4166 if (reader->xsdPlug == NULL) { in xmlTextReaderSetSchema()
4167 xmlSchemaFree(reader->xsdSchemas); in xmlTextReaderSetSchema()
4168 reader->xsdSchemas = NULL; in xmlTextReaderSetSchema()
4169 xmlSchemaFreeValidCtxt(reader->xsdValidCtxt); in xmlTextReaderSetSchema()
4170 reader->xsdValidCtxt = NULL; in xmlTextReaderSetSchema()
4173 xmlSchemaValidateSetLocator(reader->xsdValidCtxt, in xmlTextReaderSetSchema()
4175 (void *) reader); in xmlTextReaderSetSchema()
4177 if (reader->errorFunc != NULL) { in xmlTextReaderSetSchema()
4178 xmlSchemaSetValidErrors(reader->xsdValidCtxt, in xmlTextReaderSetSchema()
4181 reader); in xmlTextReaderSetSchema()
4183 if (reader->sErrorFunc != NULL) { in xmlTextReaderSetSchema()
4184 xmlSchemaSetValidStructuredErrors(reader->xsdValidCtxt, in xmlTextReaderSetSchema()
4186 reader); in xmlTextReaderSetSchema()
4188 reader->xsdValidErrors = 0; in xmlTextReaderSetSchema()
4189 reader->validate = XML_TEXTREADER_VALIDATE_XSD; in xmlTextReaderSetSchema()
4195 * @reader: the xmlTextReaderPtr used
4208 xmlTextReaderRelaxNGValidateInternal(xmlTextReaderPtr reader, in xmlTextReaderRelaxNGValidateInternal() argument
4213 if (reader == NULL) in xmlTextReaderRelaxNGValidateInternal()
4220 ((reader->mode != XML_TEXTREADER_MODE_INITIAL) || in xmlTextReaderRelaxNGValidateInternal()
4221 (reader->ctxt == NULL))) in xmlTextReaderRelaxNGValidateInternal()
4225 if (reader->rngValidCtxt != NULL) { in xmlTextReaderRelaxNGValidateInternal()
4226 if ( !reader->rngPreserveCtxt) in xmlTextReaderRelaxNGValidateInternal()
4227 xmlRelaxNGFreeValidCtxt(reader->rngValidCtxt); in xmlTextReaderRelaxNGValidateInternal()
4228 reader->rngValidCtxt = NULL; in xmlTextReaderRelaxNGValidateInternal()
4230 reader->rngPreserveCtxt = 0; in xmlTextReaderRelaxNGValidateInternal()
4231 if (reader->rngSchemas != NULL) { in xmlTextReaderRelaxNGValidateInternal()
4232 xmlRelaxNGFree(reader->rngSchemas); in xmlTextReaderRelaxNGValidateInternal()
4233 reader->rngSchemas = NULL; in xmlTextReaderRelaxNGValidateInternal()
4247 if (reader->errorFunc != NULL) { in xmlTextReaderRelaxNGValidateInternal()
4251 reader); in xmlTextReaderRelaxNGValidateInternal()
4253 if (reader->sErrorFunc != NULL) { in xmlTextReaderRelaxNGValidateInternal()
4254 xmlRelaxNGSetValidStructuredErrors(reader->rngValidCtxt, in xmlTextReaderRelaxNGValidateInternal()
4256 reader); in xmlTextReaderRelaxNGValidateInternal()
4258 reader->rngSchemas = xmlRelaxNGParse(pctxt); in xmlTextReaderRelaxNGValidateInternal()
4260 if (reader->rngSchemas == NULL) in xmlTextReaderRelaxNGValidateInternal()
4262 reader->rngValidCtxt = xmlRelaxNGNewValidCtxt(reader->rngSchemas); in xmlTextReaderRelaxNGValidateInternal()
4263 if (reader->rngValidCtxt == NULL) { in xmlTextReaderRelaxNGValidateInternal()
4264 xmlRelaxNGFree(reader->rngSchemas); in xmlTextReaderRelaxNGValidateInternal()
4265 reader->rngSchemas = NULL; in xmlTextReaderRelaxNGValidateInternal()
4270 reader->rngValidCtxt = ctxt; in xmlTextReaderRelaxNGValidateInternal()
4271 reader->rngPreserveCtxt = 1; in xmlTextReaderRelaxNGValidateInternal()
4275 * the reader channels. in xmlTextReaderRelaxNGValidateInternal()
4279 if (reader->errorFunc != NULL) { in xmlTextReaderRelaxNGValidateInternal()
4280 xmlRelaxNGSetValidErrors(reader->rngValidCtxt, in xmlTextReaderRelaxNGValidateInternal()
4283 reader); in xmlTextReaderRelaxNGValidateInternal()
4285 if (reader->sErrorFunc != NULL) { in xmlTextReaderRelaxNGValidateInternal()
4286 xmlRelaxNGSetValidStructuredErrors(reader->rngValidCtxt, in xmlTextReaderRelaxNGValidateInternal()
4288 reader); in xmlTextReaderRelaxNGValidateInternal()
4290 reader->rngValidErrors = 0; in xmlTextReaderRelaxNGValidateInternal()
4291 reader->rngFullNode = NULL; in xmlTextReaderRelaxNGValidateInternal()
4292 reader->validate = XML_TEXTREADER_VALIDATE_RNG; in xmlTextReaderRelaxNGValidateInternal()
4298 * @reader: the xmlTextReaderPtr used
4311 xmlTextReaderSchemaValidateInternal(xmlTextReaderPtr reader, in xmlTextReaderSchemaValidateInternal() argument
4316 if (reader == NULL) in xmlTextReaderSchemaValidateInternal()
4323 ((reader->mode != XML_TEXTREADER_MODE_INITIAL) || in xmlTextReaderSchemaValidateInternal()
4324 (reader->ctxt == NULL))) in xmlTextReaderSchemaValidateInternal()
4328 if (reader->xsdPlug != NULL) { in xmlTextReaderSchemaValidateInternal()
4329 xmlSchemaSAXUnplug(reader->xsdPlug); in xmlTextReaderSchemaValidateInternal()
4330 reader->xsdPlug = NULL; in xmlTextReaderSchemaValidateInternal()
4332 if (reader->xsdValidCtxt != NULL) { in xmlTextReaderSchemaValidateInternal()
4333 if (! reader->xsdPreserveCtxt) in xmlTextReaderSchemaValidateInternal()
4334 xmlSchemaFreeValidCtxt(reader->xsdValidCtxt); in xmlTextReaderSchemaValidateInternal()
4335 reader->xsdValidCtxt = NULL; in xmlTextReaderSchemaValidateInternal()
4337 reader->xsdPreserveCtxt = 0; in xmlTextReaderSchemaValidateInternal()
4338 if (reader->xsdSchemas != NULL) { in xmlTextReaderSchemaValidateInternal()
4339 xmlSchemaFree(reader->xsdSchemas); in xmlTextReaderSchemaValidateInternal()
4340 reader->xsdSchemas = NULL; in xmlTextReaderSchemaValidateInternal()
4352 if (reader->errorFunc != NULL) { in xmlTextReaderSchemaValidateInternal()
4356 reader); in xmlTextReaderSchemaValidateInternal()
4358 reader->xsdSchemas = xmlSchemaParse(pctxt); in xmlTextReaderSchemaValidateInternal()
4360 if (reader->xsdSchemas == NULL) in xmlTextReaderSchemaValidateInternal()
4362 reader->xsdValidCtxt = xmlSchemaNewValidCtxt(reader->xsdSchemas); in xmlTextReaderSchemaValidateInternal()
4363 if (reader->xsdValidCtxt == NULL) { in xmlTextReaderSchemaValidateInternal()
4364 xmlSchemaFree(reader->xsdSchemas); in xmlTextReaderSchemaValidateInternal()
4365 reader->xsdSchemas = NULL; in xmlTextReaderSchemaValidateInternal()
4368 reader->xsdPlug = xmlSchemaSAXPlug(reader->xsdValidCtxt, in xmlTextReaderSchemaValidateInternal()
4369 &(reader->ctxt->sax), in xmlTextReaderSchemaValidateInternal()
4370 &(reader->ctxt->userData)); in xmlTextReaderSchemaValidateInternal()
4371 if (reader->xsdPlug == NULL) { in xmlTextReaderSchemaValidateInternal()
4372 xmlSchemaFree(reader->xsdSchemas); in xmlTextReaderSchemaValidateInternal()
4373 reader->xsdSchemas = NULL; in xmlTextReaderSchemaValidateInternal()
4374 xmlSchemaFreeValidCtxt(reader->xsdValidCtxt); in xmlTextReaderSchemaValidateInternal()
4375 reader->xsdValidCtxt = NULL; in xmlTextReaderSchemaValidateInternal()
4380 reader->xsdValidCtxt = ctxt; in xmlTextReaderSchemaValidateInternal()
4381 reader->xsdPreserveCtxt = 1; in xmlTextReaderSchemaValidateInternal()
4382 reader->xsdPlug = xmlSchemaSAXPlug(reader->xsdValidCtxt, in xmlTextReaderSchemaValidateInternal()
4383 &(reader->ctxt->sax), in xmlTextReaderSchemaValidateInternal()
4384 &(reader->ctxt->userData)); in xmlTextReaderSchemaValidateInternal()
4385 if (reader->xsdPlug == NULL) { in xmlTextReaderSchemaValidateInternal()
4386 reader->xsdValidCtxt = NULL; in xmlTextReaderSchemaValidateInternal()
4387 reader->xsdPreserveCtxt = 0; in xmlTextReaderSchemaValidateInternal()
4391 xmlSchemaValidateSetLocator(reader->xsdValidCtxt, in xmlTextReaderSchemaValidateInternal()
4393 (void *) reader); in xmlTextReaderSchemaValidateInternal()
4396 * the reader channels. in xmlTextReaderSchemaValidateInternal()
4400 if (reader->errorFunc != NULL) { in xmlTextReaderSchemaValidateInternal()
4401 xmlSchemaSetValidErrors(reader->xsdValidCtxt, in xmlTextReaderSchemaValidateInternal()
4404 reader); in xmlTextReaderSchemaValidateInternal()
4406 if (reader->sErrorFunc != NULL) { in xmlTextReaderSchemaValidateInternal()
4407 xmlSchemaSetValidStructuredErrors(reader->xsdValidCtxt, in xmlTextReaderSchemaValidateInternal()
4409 reader); in xmlTextReaderSchemaValidateInternal()
4411 reader->xsdValidErrors = 0; in xmlTextReaderSchemaValidateInternal()
4412 reader->validate = XML_TEXTREADER_VALIDATE_XSD; in xmlTextReaderSchemaValidateInternal()
4418 * @reader: the xmlTextReaderPtr used
4430 xmlTextReaderSchemaValidateCtxt(xmlTextReaderPtr reader, in xmlTextReaderSchemaValidateCtxt() argument
4434 return(xmlTextReaderSchemaValidateInternal(reader, NULL, ctxt, options)); in xmlTextReaderSchemaValidateCtxt()
4439 * @reader: the xmlTextReaderPtr used
4450 xmlTextReaderSchemaValidate(xmlTextReaderPtr reader, const char *xsd) in xmlTextReaderSchemaValidate() argument
4452 return(xmlTextReaderSchemaValidateInternal(reader, xsd, NULL, 0)); in xmlTextReaderSchemaValidate()
4457 * @reader: the xmlTextReaderPtr used
4469 xmlTextReaderRelaxNGValidateCtxt(xmlTextReaderPtr reader, in xmlTextReaderRelaxNGValidateCtxt() argument
4473 return(xmlTextReaderRelaxNGValidateInternal(reader, NULL, ctxt, options)); in xmlTextReaderRelaxNGValidateCtxt()
4478 * @reader: the xmlTextReaderPtr used
4489 xmlTextReaderRelaxNGValidate(xmlTextReaderPtr reader, const char *rng) in xmlTextReaderRelaxNGValidate() argument
4491 return(xmlTextReaderRelaxNGValidateInternal(reader, rng, NULL, 0)); in xmlTextReaderRelaxNGValidate()
4498 * @reader: the xmlTextReaderPtr used
4508 xmlTextReaderIsNamespaceDecl(xmlTextReaderPtr reader) { in xmlTextReaderIsNamespaceDecl() argument
4510 if (reader == NULL) in xmlTextReaderIsNamespaceDecl()
4512 if (reader->node == NULL) in xmlTextReaderIsNamespaceDecl()
4514 if (reader->curnode != NULL) in xmlTextReaderIsNamespaceDecl()
4515 node = reader->curnode; in xmlTextReaderIsNamespaceDecl()
4517 node = reader->node; in xmlTextReaderIsNamespaceDecl()
4527 * @reader: the xmlTextReaderPtr used
4532 * in case of error. The string is deallocated with the reader.
4535 xmlTextReaderConstXmlVersion(xmlTextReaderPtr reader) { in xmlTextReaderConstXmlVersion() argument
4537 if (reader == NULL) in xmlTextReaderConstXmlVersion()
4539 if (reader->doc != NULL) in xmlTextReaderConstXmlVersion()
4540 doc = reader->doc; in xmlTextReaderConstXmlVersion()
4541 else if (reader->ctxt != NULL) in xmlTextReaderConstXmlVersion()
4542 doc = reader->ctxt->myDoc; in xmlTextReaderConstXmlVersion()
4554 * @reader: the xmlTextReaderPtr used
4563 xmlTextReaderStandalone(xmlTextReaderPtr reader) { in xmlTextReaderStandalone() argument
4565 if (reader == NULL) in xmlTextReaderStandalone()
4567 if (reader->doc != NULL) in xmlTextReaderStandalone()
4568 doc = reader->doc; in xmlTextReaderStandalone()
4569 else if (reader->ctxt != NULL) in xmlTextReaderStandalone()
4570 doc = reader->ctxt->myDoc; in xmlTextReaderStandalone()
4699 xmlTextReaderPtr reader = (xmlTextReaderPtr) ctx->_private; in xmlTextReaderGenericError() local
4702 if (reader->errorFunc) in xmlTextReaderGenericError()
4703 reader->errorFunc(reader->errorFuncArg, str, severity, in xmlTextReaderGenericError()
4714 xmlTextReaderPtr reader = (xmlTextReaderPtr) ctx->_private; in xmlTextReaderStructuredError() local
4716 if (error && reader->sErrorFunc) { in xmlTextReaderStructuredError()
4717 reader->sErrorFunc(reader->errorFuncArg, (xmlErrorPtr) error); in xmlTextReaderStructuredError()
4788 * @reader: the xmlTextReaderPtr used
4797 xmlTextReaderSetErrorHandler(xmlTextReaderPtr reader, in xmlTextReaderSetErrorHandler() argument
4801 reader->ctxt->sax->error = xmlTextReaderError; in xmlTextReaderSetErrorHandler()
4802 reader->ctxt->sax->serror = NULL; in xmlTextReaderSetErrorHandler()
4803 reader->ctxt->vctxt.error = xmlTextReaderValidityError; in xmlTextReaderSetErrorHandler()
4804 reader->ctxt->sax->warning = xmlTextReaderWarning; in xmlTextReaderSetErrorHandler()
4805 reader->ctxt->vctxt.warning = xmlTextReaderValidityWarning; in xmlTextReaderSetErrorHandler()
4806 reader->errorFunc = f; in xmlTextReaderSetErrorHandler()
4807 reader->sErrorFunc = NULL; in xmlTextReaderSetErrorHandler()
4808 reader->errorFuncArg = arg; in xmlTextReaderSetErrorHandler()
4810 if (reader->rngValidCtxt) { in xmlTextReaderSetErrorHandler()
4811 xmlRelaxNGSetValidErrors(reader->rngValidCtxt, in xmlTextReaderSetErrorHandler()
4814 reader); in xmlTextReaderSetErrorHandler()
4815 xmlRelaxNGSetValidStructuredErrors(reader->rngValidCtxt, NULL, in xmlTextReaderSetErrorHandler()
4816 reader); in xmlTextReaderSetErrorHandler()
4818 if (reader->xsdValidCtxt) { in xmlTextReaderSetErrorHandler()
4819 xmlSchemaSetValidErrors(reader->xsdValidCtxt, in xmlTextReaderSetErrorHandler()
4822 reader); in xmlTextReaderSetErrorHandler()
4823 xmlSchemaSetValidStructuredErrors(reader->xsdValidCtxt, NULL, in xmlTextReaderSetErrorHandler()
4824 reader); in xmlTextReaderSetErrorHandler()
4829 reader->ctxt->sax->error = xmlParserError; in xmlTextReaderSetErrorHandler()
4830 reader->ctxt->vctxt.error = xmlParserValidityError; in xmlTextReaderSetErrorHandler()
4831 reader->ctxt->sax->warning = xmlParserWarning; in xmlTextReaderSetErrorHandler()
4832 reader->ctxt->vctxt.warning = xmlParserValidityWarning; in xmlTextReaderSetErrorHandler()
4833 reader->errorFunc = NULL; in xmlTextReaderSetErrorHandler()
4834 reader->sErrorFunc = NULL; in xmlTextReaderSetErrorHandler()
4835 reader->errorFuncArg = NULL; in xmlTextReaderSetErrorHandler()
4837 if (reader->rngValidCtxt) { in xmlTextReaderSetErrorHandler()
4838 xmlRelaxNGSetValidErrors(reader->rngValidCtxt, NULL, NULL, in xmlTextReaderSetErrorHandler()
4839 reader); in xmlTextReaderSetErrorHandler()
4840 xmlRelaxNGSetValidStructuredErrors(reader->rngValidCtxt, NULL, in xmlTextReaderSetErrorHandler()
4841 reader); in xmlTextReaderSetErrorHandler()
4843 if (reader->xsdValidCtxt) { in xmlTextReaderSetErrorHandler()
4844 xmlSchemaSetValidErrors(reader->xsdValidCtxt, NULL, NULL, in xmlTextReaderSetErrorHandler()
4845 reader); in xmlTextReaderSetErrorHandler()
4846 xmlSchemaSetValidStructuredErrors(reader->xsdValidCtxt, NULL, in xmlTextReaderSetErrorHandler()
4847 reader); in xmlTextReaderSetErrorHandler()
4855 * @reader: the xmlTextReaderPtr used
4864 xmlTextReaderSetStructuredErrorHandler(xmlTextReaderPtr reader, in xmlTextReaderSetStructuredErrorHandler() argument
4868 reader->ctxt->sax->error = NULL; in xmlTextReaderSetStructuredErrorHandler()
4869 reader->ctxt->sax->serror = xmlTextReaderStructuredError; in xmlTextReaderSetStructuredErrorHandler()
4870 reader->ctxt->vctxt.error = xmlTextReaderValidityError; in xmlTextReaderSetStructuredErrorHandler()
4871 reader->ctxt->sax->warning = xmlTextReaderWarning; in xmlTextReaderSetStructuredErrorHandler()
4872 reader->ctxt->vctxt.warning = xmlTextReaderValidityWarning; in xmlTextReaderSetStructuredErrorHandler()
4873 reader->sErrorFunc = f; in xmlTextReaderSetStructuredErrorHandler()
4874 reader->errorFunc = NULL; in xmlTextReaderSetStructuredErrorHandler()
4875 reader->errorFuncArg = arg; in xmlTextReaderSetStructuredErrorHandler()
4877 if (reader->rngValidCtxt) { in xmlTextReaderSetStructuredErrorHandler()
4878 xmlRelaxNGSetValidErrors(reader->rngValidCtxt, NULL, NULL, in xmlTextReaderSetStructuredErrorHandler()
4879 reader); in xmlTextReaderSetStructuredErrorHandler()
4880 xmlRelaxNGSetValidStructuredErrors(reader->rngValidCtxt, in xmlTextReaderSetStructuredErrorHandler()
4882 reader); in xmlTextReaderSetStructuredErrorHandler()
4884 if (reader->xsdValidCtxt) { in xmlTextReaderSetStructuredErrorHandler()
4885 xmlSchemaSetValidErrors(reader->xsdValidCtxt, NULL, NULL, in xmlTextReaderSetStructuredErrorHandler()
4886 reader); in xmlTextReaderSetStructuredErrorHandler()
4887 xmlSchemaSetValidStructuredErrors(reader->xsdValidCtxt, in xmlTextReaderSetStructuredErrorHandler()
4889 reader); in xmlTextReaderSetStructuredErrorHandler()
4894 reader->ctxt->sax->error = xmlParserError; in xmlTextReaderSetStructuredErrorHandler()
4895 reader->ctxt->sax->serror = NULL; in xmlTextReaderSetStructuredErrorHandler()
4896 reader->ctxt->vctxt.error = xmlParserValidityError; in xmlTextReaderSetStructuredErrorHandler()
4897 reader->ctxt->sax->warning = xmlParserWarning; in xmlTextReaderSetStructuredErrorHandler()
4898 reader->ctxt->vctxt.warning = xmlParserValidityWarning; in xmlTextReaderSetStructuredErrorHandler()
4899 reader->errorFunc = NULL; in xmlTextReaderSetStructuredErrorHandler()
4900 reader->sErrorFunc = NULL; in xmlTextReaderSetStructuredErrorHandler()
4901 reader->errorFuncArg = NULL; in xmlTextReaderSetStructuredErrorHandler()
4903 if (reader->rngValidCtxt) { in xmlTextReaderSetStructuredErrorHandler()
4904 xmlRelaxNGSetValidErrors(reader->rngValidCtxt, NULL, NULL, in xmlTextReaderSetStructuredErrorHandler()
4905 reader); in xmlTextReaderSetStructuredErrorHandler()
4906 xmlRelaxNGSetValidStructuredErrors(reader->rngValidCtxt, NULL, in xmlTextReaderSetStructuredErrorHandler()
4907 reader); in xmlTextReaderSetStructuredErrorHandler()
4909 if (reader->xsdValidCtxt) { in xmlTextReaderSetStructuredErrorHandler()
4910 xmlSchemaSetValidErrors(reader->xsdValidCtxt, NULL, NULL, in xmlTextReaderSetStructuredErrorHandler()
4911 reader); in xmlTextReaderSetStructuredErrorHandler()
4912 xmlSchemaSetValidStructuredErrors(reader->xsdValidCtxt, NULL, in xmlTextReaderSetStructuredErrorHandler()
4913 reader); in xmlTextReaderSetStructuredErrorHandler()
4921 * @reader: the xmlTextReaderPtr used
4928 xmlTextReaderIsValid(xmlTextReaderPtr reader) in xmlTextReaderIsValid() argument
4930 if (reader == NULL) in xmlTextReaderIsValid()
4933 if (reader->validate == XML_TEXTREADER_VALIDATE_RNG) in xmlTextReaderIsValid()
4934 return (reader->rngValidErrors == 0); in xmlTextReaderIsValid()
4935 if (reader->validate == XML_TEXTREADER_VALIDATE_XSD) in xmlTextReaderIsValid()
4936 return (reader->xsdValidErrors == 0); in xmlTextReaderIsValid()
4938 if ((reader->ctxt != NULL) && (reader->ctxt->validate == 1)) in xmlTextReaderIsValid()
4939 return (reader->ctxt->valid); in xmlTextReaderIsValid()
4945 * @reader: the xmlTextReaderPtr used
4952 xmlTextReaderGetErrorHandler(xmlTextReaderPtr reader, in xmlTextReaderGetErrorHandler() argument
4956 *f = reader->errorFunc; in xmlTextReaderGetErrorHandler()
4958 *arg = reader->errorFuncArg; in xmlTextReaderGetErrorHandler()
4968 * @reader: an XML reader
4969 * @input: xmlParserInputBufferPtr used to feed the reader, will
4975 * Setup an XML reader with new options
4980 xmlTextReaderSetup(xmlTextReaderPtr reader, in xmlTextReaderSetup() argument
4984 if (reader == NULL) { in xmlTextReaderSetup()
4991 * we force the generation of compact text nodes on the reader in xmlTextReaderSetup()
4996 reader->doc = NULL; in xmlTextReaderSetup()
4997 reader->entNr = 0; in xmlTextReaderSetup()
4998 reader->parserFlags = options; in xmlTextReaderSetup()
4999 reader->validate = XML_TEXTREADER_NOT_VALIDATE; in xmlTextReaderSetup()
5000 if ((input != NULL) && (reader->input != NULL) && in xmlTextReaderSetup()
5001 (reader->allocs & XML_TEXTREADER_INPUT)) { in xmlTextReaderSetup()
5002 xmlFreeParserInputBuffer(reader->input); in xmlTextReaderSetup()
5003 reader->input = NULL; in xmlTextReaderSetup()
5004 reader->allocs -= XML_TEXTREADER_INPUT; in xmlTextReaderSetup()
5007 reader->input = input; in xmlTextReaderSetup()
5008 reader->allocs |= XML_TEXTREADER_INPUT; in xmlTextReaderSetup()
5010 if (reader->buffer == NULL) in xmlTextReaderSetup()
5011 reader->buffer = xmlBufCreateSize(100); in xmlTextReaderSetup()
5012 if (reader->buffer == NULL) { in xmlTextReaderSetup()
5017 /* no operation on a reader should require a huge buffer */ in xmlTextReaderSetup()
5018 xmlBufSetAllocationScheme(reader->buffer, in xmlTextReaderSetup()
5020 if (reader->sax == NULL) in xmlTextReaderSetup()
5021 reader->sax = (xmlSAXHandler *) xmlMalloc(sizeof(xmlSAXHandler)); in xmlTextReaderSetup()
5022 if (reader->sax == NULL) { in xmlTextReaderSetup()
5027 xmlSAXVersion(reader->sax, 2); in xmlTextReaderSetup()
5028 reader->startElement = reader->sax->startElement; in xmlTextReaderSetup()
5029 reader->sax->startElement = xmlTextReaderStartElement; in xmlTextReaderSetup()
5030 reader->endElement = reader->sax->endElement; in xmlTextReaderSetup()
5031 reader->sax->endElement = xmlTextReaderEndElement; in xmlTextReaderSetup()
5033 if (reader->sax->initialized == XML_SAX2_MAGIC) { in xmlTextReaderSetup()
5035 reader->startElementNs = reader->sax->startElementNs; in xmlTextReaderSetup()
5036 reader->sax->startElementNs = xmlTextReaderStartElementNs; in xmlTextReaderSetup()
5037 reader->endElementNs = reader->sax->endElementNs; in xmlTextReaderSetup()
5038 reader->sax->endElementNs = xmlTextReaderEndElementNs; in xmlTextReaderSetup()
5041 reader->startElementNs = NULL; in xmlTextReaderSetup()
5042 reader->endElementNs = NULL; in xmlTextReaderSetup()
5045 reader->characters = reader->sax->characters; in xmlTextReaderSetup()
5046 reader->sax->characters = xmlTextReaderCharacters; in xmlTextReaderSetup()
5047 reader->sax->ignorableWhitespace = xmlTextReaderCharacters; in xmlTextReaderSetup()
5048 reader->cdataBlock = reader->sax->cdataBlock; in xmlTextReaderSetup()
5049 reader->sax->cdataBlock = xmlTextReaderCDataBlock; in xmlTextReaderSetup()
5051 reader->mode = XML_TEXTREADER_MODE_INITIAL; in xmlTextReaderSetup()
5052 reader->node = NULL; in xmlTextReaderSetup()
5053 reader->curnode = NULL; in xmlTextReaderSetup()
5055 if (xmlBufUse(reader->input->buffer) < 4) { in xmlTextReaderSetup()
5058 if (reader->ctxt == NULL) { in xmlTextReaderSetup()
5059 if (xmlBufUse(reader->input->buffer) >= 4) { in xmlTextReaderSetup()
5060 reader->ctxt = xmlCreatePushParserCtxt(reader->sax, NULL, in xmlTextReaderSetup()
5061 (const char *) xmlBufContent(reader->input->buffer), in xmlTextReaderSetup()
5063 reader->base = 0; in xmlTextReaderSetup()
5064 reader->cur = 4; in xmlTextReaderSetup()
5066 reader->ctxt = in xmlTextReaderSetup()
5067 xmlCreatePushParserCtxt(reader->sax, NULL, NULL, 0, URL); in xmlTextReaderSetup()
5068 reader->base = 0; in xmlTextReaderSetup()
5069 reader->cur = 0; in xmlTextReaderSetup()
5076 xmlCtxtReset(reader->ctxt); in xmlTextReaderSetup()
5079 inputStream = xmlNewInputStream(reader->ctxt); in xmlTextReaderSetup()
5093 inputPush(reader->ctxt, inputStream); in xmlTextReaderSetup()
5094 reader->cur = 0; in xmlTextReaderSetup()
5096 if (reader->ctxt == NULL) { in xmlTextReaderSetup()
5102 if (reader->dict != NULL) { in xmlTextReaderSetup()
5103 if (reader->ctxt->dict != NULL) { in xmlTextReaderSetup()
5104 if (reader->dict != reader->ctxt->dict) { in xmlTextReaderSetup()
5105 xmlDictFree(reader->dict); in xmlTextReaderSetup()
5106 reader->dict = reader->ctxt->dict; in xmlTextReaderSetup()
5109 reader->ctxt->dict = reader->dict; in xmlTextReaderSetup()
5112 if (reader->ctxt->dict == NULL) in xmlTextReaderSetup()
5113 reader->ctxt->dict = xmlDictCreate(); in xmlTextReaderSetup()
5114 reader->dict = reader->ctxt->dict; in xmlTextReaderSetup()
5116 reader->ctxt->_private = reader; in xmlTextReaderSetup()
5117 reader->ctxt->linenumbers = 1; in xmlTextReaderSetup()
5118 reader->ctxt->dictNames = 1; in xmlTextReaderSetup()
5122 reader->ctxt->docdict = 1; in xmlTextReaderSetup()
5123 reader->ctxt->parseMode = XML_PARSE_READER; in xmlTextReaderSetup()
5126 if (reader->xincctxt != NULL) { in xmlTextReaderSetup()
5127 xmlXIncludeFreeContext(reader->xincctxt); in xmlTextReaderSetup()
5128 reader->xincctxt = NULL; in xmlTextReaderSetup()
5131 reader->xinclude = 1; in xmlTextReaderSetup()
5132 reader->xinclude_name = xmlDictLookup(reader->dict, XINCLUDE_NODE, -1); in xmlTextReaderSetup()
5135 reader->xinclude = 0; in xmlTextReaderSetup()
5136 reader->in_xinclude = 0; in xmlTextReaderSetup()
5139 if (reader->patternTab == NULL) { in xmlTextReaderSetup()
5140 reader->patternNr = 0; in xmlTextReaderSetup()
5141 reader->patternMax = 0; in xmlTextReaderSetup()
5143 while (reader->patternNr > 0) { in xmlTextReaderSetup()
5144 reader->patternNr--; in xmlTextReaderSetup()
5145 if (reader->patternTab[reader->patternNr] != NULL) { in xmlTextReaderSetup()
5146 xmlFreePattern(reader->patternTab[reader->patternNr]); in xmlTextReaderSetup()
5147 reader->patternTab[reader->patternNr] = NULL; in xmlTextReaderSetup()
5153 reader->validate = XML_TEXTREADER_VALIDATE_DTD; in xmlTextReaderSetup()
5155 xmlCtxtUseOptions(reader->ctxt, options); in xmlTextReaderSetup()
5161 xmlSwitchToEncoding(reader->ctxt, hdlr); in xmlTextReaderSetup()
5163 if ((URL != NULL) && (reader->ctxt->input != NULL) && in xmlTextReaderSetup()
5164 (reader->ctxt->input->filename == NULL)) in xmlTextReaderSetup()
5165 reader->ctxt->input->filename = (char *) in xmlTextReaderSetup()
5168 reader->doc = NULL; in xmlTextReaderSetup()
5175 * @reader: an XML reader
5181 xmlTextReaderSetMaxAmplification(xmlTextReaderPtr reader, unsigned maxAmpl) in xmlTextReaderSetMaxAmplification() argument
5183 xmlCtxtSetMaxAmplification(reader->ctxt, maxAmpl); in xmlTextReaderSetMaxAmplification()
5188 * @reader: an XML reader
5191 * by the reader, relative to the start of the current entity.
5193 * for the parser context associated with the reader.
5200 xmlTextReaderByteConsumed(xmlTextReaderPtr reader) { in xmlTextReaderByteConsumed() argument
5201 if ((reader == NULL) || (reader->ctxt == NULL)) in xmlTextReaderByteConsumed()
5203 return(xmlByteConsumed(reader->ctxt)); in xmlTextReaderByteConsumed()
5213 * Returns the new reader or NULL in case of error.
5254 * Returns the new reader or NULL in case of error.
5279 * Returns the new reader or NULL in case of error.
5284 xmlTextReaderPtr reader; in xmlReaderForFile() local
5286 reader = xmlNewTextReaderFilename(filename); in xmlReaderForFile()
5287 if (reader == NULL) in xmlReaderForFile()
5289 xmlTextReaderSetup(reader, NULL, NULL, encoding, options); in xmlReaderForFile()
5290 return (reader); in xmlReaderForFile()
5304 * Returns the new reader or NULL in case of error.
5310 xmlTextReaderPtr reader; in xmlReaderForMemory() local
5317 reader = xmlNewTextReader(buf, URL); in xmlReaderForMemory()
5318 if (reader == NULL) { in xmlReaderForMemory()
5322 reader->allocs |= XML_TEXTREADER_INPUT; in xmlReaderForMemory()
5323 xmlTextReaderSetup(reader, NULL, URL, encoding, options); in xmlReaderForMemory()
5324 return (reader); in xmlReaderForMemory()
5337 * reader is closed or reset.
5339 * Returns the new reader or NULL in case of error.
5344 xmlTextReaderPtr reader; in xmlReaderForFd() local
5354 reader = xmlNewTextReader(input, URL); in xmlReaderForFd()
5355 if (reader == NULL) { in xmlReaderForFd()
5359 reader->allocs |= XML_TEXTREADER_INPUT; in xmlReaderForFd()
5360 xmlTextReaderSetup(reader, NULL, URL, encoding, options); in xmlReaderForFd()
5361 return (reader); in xmlReaderForFd()
5376 * Returns the new reader or NULL in case of error.
5383 xmlTextReaderPtr reader; in xmlReaderForIO() local
5396 reader = xmlNewTextReader(input, URL); in xmlReaderForIO()
5397 if (reader == NULL) { in xmlReaderForIO()
5401 reader->allocs |= XML_TEXTREADER_INPUT; in xmlReaderForIO()
5402 xmlTextReaderSetup(reader, NULL, URL, encoding, options); in xmlReaderForIO()
5403 return (reader); in xmlReaderForIO()
5408 * @reader: an XML reader
5412 * This reuses the existing @reader xmlTextReader.
5417 xmlReaderNewWalker(xmlTextReaderPtr reader, xmlDocPtr doc) in xmlReaderNewWalker() argument
5421 if (reader == NULL) in xmlReaderNewWalker()
5424 if (reader->input != NULL) { in xmlReaderNewWalker()
5425 xmlFreeParserInputBuffer(reader->input); in xmlReaderNewWalker()
5427 if (reader->ctxt != NULL) { in xmlReaderNewWalker()
5428 xmlCtxtReset(reader->ctxt); in xmlReaderNewWalker()
5431 reader->entNr = 0; in xmlReaderNewWalker()
5432 reader->input = NULL; in xmlReaderNewWalker()
5433 reader->mode = XML_TEXTREADER_MODE_INITIAL; in xmlReaderNewWalker()
5434 reader->node = NULL; in xmlReaderNewWalker()
5435 reader->curnode = NULL; in xmlReaderNewWalker()
5436 reader->base = 0; in xmlReaderNewWalker()
5437 reader->cur = 0; in xmlReaderNewWalker()
5438 reader->allocs = XML_TEXTREADER_CTXT; in xmlReaderNewWalker()
5439 reader->doc = doc; in xmlReaderNewWalker()
5440 reader->state = XML_TEXTREADER_START; in xmlReaderNewWalker()
5441 if (reader->dict == NULL) { in xmlReaderNewWalker()
5442 if ((reader->ctxt != NULL) && (reader->ctxt->dict != NULL)) in xmlReaderNewWalker()
5443 reader->dict = reader->ctxt->dict; in xmlReaderNewWalker()
5445 reader->dict = xmlDictCreate(); in xmlReaderNewWalker()
5452 * @reader: an XML reader
5460 * This reuses the existing @reader xmlTextReader.
5465 xmlReaderNewDoc(xmlTextReaderPtr reader, const xmlChar * cur, in xmlReaderNewDoc() argument
5473 if (reader == NULL) in xmlReaderNewDoc()
5477 return (xmlReaderNewMemory(reader, (const char *)cur, len, in xmlReaderNewDoc()
5483 * @reader: an XML reader
5490 * This reuses the existing @reader xmlTextReader.
5495 xmlReaderNewFile(xmlTextReaderPtr reader, const char *filename, in xmlReaderNewFile() argument
5502 if (reader == NULL) in xmlReaderNewFile()
5510 return (xmlTextReaderSetup(reader, input, filename, encoding, options)); in xmlReaderNewFile()
5515 * @reader: an XML reader
5524 * This reuses the existing @reader xmlTextReader.
5529 xmlReaderNewMemory(xmlTextReaderPtr reader, const char *buffer, int size, in xmlReaderNewMemory() argument
5534 if (reader == NULL) in xmlReaderNewMemory()
5544 return (xmlTextReaderSetup(reader, input, URL, encoding, options)); in xmlReaderNewMemory()
5549 * @reader: an XML reader
5557 * reader is closed or reset.
5559 * This reuses the existing @reader xmlTextReader.
5564 xmlReaderNewFd(xmlTextReaderPtr reader, int fd, in xmlReaderNewFd() argument
5571 if (reader == NULL) in xmlReaderNewFd()
5578 return (xmlTextReaderSetup(reader, input, URL, encoding, options)); in xmlReaderNewFd()
5583 * @reader: an XML reader
5594 * This reuses the existing @reader xmlTextReader.
5599 xmlReaderNewIO(xmlTextReaderPtr reader, xmlInputReadCallback ioread, in xmlReaderNewIO() argument
5607 if (reader == NULL) in xmlReaderNewIO()
5617 return (xmlTextReaderSetup(reader, input, URL, encoding, options)); in xmlReaderNewIO()