31
we must call CLEAR_SERROR_HANDLER upon each excurse from
37
#define CLEAR_SERROR_HANDLER /*xmlSetStructuredErrorFunc(NULL,NULL);*/
39
#define CLEAR_SERROR_HANDLER
29
42
#define NSDELIM ':'
30
43
/* #define NSDEFAULTURI "http://www.w3.org/XML/1998/namespace" */
31
44
#define NSDEFAULTURI "http://www.w3.org/2000/xmlns/"
207
hv_store(param, "NamespaceURI", 12,
221
(void) hv_store(param, "NamespaceURI", 12,
208
222
_C2Sv(uri, NULL), NsURIHash);
210
224
if ( prefix != NULL ) {
211
hv_store(param, "Prefix", 6,
225
(void) hv_store(param, "Prefix", 6,
212
226
_C2Sv(prefix, NULL), PrefixHash);
215
hv_store(param, "Prefix", 6,
229
(void) hv_store(param, "Prefix", 6,
216
230
_C2Sv((const xmlChar*)"", NULL), PrefixHash);
250
hv_store(param, "NamespaceURI", 12,
265
(void) hv_store(param, "NamespaceURI", 12,
251
266
_C2Sv(uri, NULL), NsURIHash);
253
268
if ( prefix != NULL ) {
254
hv_store(param, "Prefix", 6,
269
(void) hv_store(param, "Prefix", 6,
255
270
_C2Sv(prefix, NULL), PrefixHash);
258
hv_store(param, "Prefix", 6,
273
(void) hv_store(param, "Prefix", 6,
259
274
_C2Sv((const xmlChar *)"", NULL), PrefixHash);
382
398
xmlNsPtr ns = NULL;
384
400
if ( name != NULL && xmlStrlen( name ) ) {
385
hv_store(retval, "Name", 4,
401
(void) hv_store(retval, "Name", 4,
386
402
_C2Sv(name, NULL), NameHash);
388
404
localname = xmlSplitQName(NULL, name, &prefix);
391
407
if (prefix != NULL) xmlFree(prefix);
393
409
if ( ns != NULL ) {
394
hv_store(retval, "NamespaceURI", 12,
410
(void) hv_store(retval, "NamespaceURI", 12,
395
411
_C2Sv(ns->href, NULL), NsURIHash);
396
412
if ( ns->prefix ) {
397
hv_store(retval, "Prefix", 6,
413
(void) hv_store(retval, "Prefix", 6,
398
414
_C2Sv(ns->prefix, NULL), PrefixHash);
401
hv_store(retval, "Prefix", 6,
417
(void) hv_store(retval, "Prefix", 6,
402
418
_C2Sv((const xmlChar *)"",NULL), PrefixHash);
405
hv_store(retval, "LocalName", 9,
421
(void) hv_store(retval, "LocalName", 9,
406
422
_C2Sv(sax->ns_stack->name, NULL), LocalNameHash);
409
hv_store(retval, "NamespaceURI", 12,
425
(void) hv_store(retval, "NamespaceURI", 12,
410
426
_C2Sv((const xmlChar *)"",NULL), NsURIHash);
411
hv_store(retval, "Prefix", 6,
427
(void) hv_store(retval, "Prefix", 6,
412
428
_C2Sv((const xmlChar *)"",NULL), PrefixHash);
413
hv_store(retval, "LocalName", 9,
429
(void) hv_store(retval, "LocalName", 9,
414
430
_C2Sv(name, NULL), LocalNameHash);
471
487
if ( name != NULL && xmlStrlen( name ) ) {
472
488
localname = xmlSplitQName(NULL, name, &prefix);
474
hv_store(atV, "Name", 4,
490
(void) hv_store(atV, "Name", 4,
475
491
_C2Sv(name, NULL), NameHash);
476
492
if ( value != NULL ) {
477
hv_store(atV, "Value", 5,
493
(void) hv_store(atV, "Value", 5,
478
494
_C2Sv(value, NULL), ValueHash);
483
499
PmmAddNamespace( sax, NULL, value, handler);
484
500
/* nsURI = (const xmlChar*)NSDEFAULTURI; */
486
hv_store(atV, "Name", 4,
502
(void) hv_store(atV, "Name", 4,
487
503
_C2Sv(name, NULL), NameHash);
489
hv_store(atV, "Prefix", 6,
505
(void) hv_store(atV, "Prefix", 6,
490
506
_C2Sv((const xmlChar *)"", NULL), PrefixHash);
491
hv_store(atV, "LocalName", 9,
507
(void) hv_store(atV, "LocalName", 9,
492
508
_C2Sv(name,NULL), LocalNameHash);
493
hv_store(atV, "NamespaceURI", 12,
509
(void) hv_store(atV, "NamespaceURI", 12,
494
510
_C2Sv((const xmlChar *)"", NULL), NsURIHash);
503
519
nsURI = (const xmlChar*)NSDEFAULTURI;
505
hv_store(atV, "Prefix", 6,
521
(void) hv_store(atV, "Prefix", 6,
506
522
_C2Sv(prefix, NULL), PrefixHash);
507
hv_store(atV, "LocalName", 9,
523
(void) hv_store(atV, "LocalName", 9,
508
524
_C2Sv(localname, NULL), LocalNameHash);
509
hv_store(atV, "NamespaceURI", 12,
525
(void) hv_store(atV, "NamespaceURI", 12,
510
526
_C2Sv((const xmlChar *)NSDEFAULTURI,NULL),
514
530
&& (ns = PmmGetNsMapping( sax->ns_stack, prefix ) ) ) {
515
531
nsURI = ns->href;
517
hv_store(atV, "NamespaceURI", 12,
533
(void) hv_store(atV, "NamespaceURI", 12,
518
534
_C2Sv(ns->href, NULL), NsURIHash);
519
hv_store(atV, "Prefix", 6,
535
(void) hv_store(atV, "Prefix", 6,
520
536
_C2Sv(ns->prefix, NULL), PrefixHash);
521
hv_store(atV, "LocalName", 9,
537
(void) hv_store(atV, "LocalName", 9,
522
538
_C2Sv(localname, NULL), LocalNameHash);
526
hv_store(atV, "NamespaceURI", 12,
542
(void) hv_store(atV, "NamespaceURI", 12,
527
543
_C2Sv((const xmlChar *)"", NULL), NsURIHash);
528
hv_store(atV, "Prefix", 6,
544
(void) hv_store(atV, "Prefix", 6,
529
545
_C2Sv((const xmlChar *)"", NULL), PrefixHash);
530
hv_store(atV, "LocalName", 9,
546
(void) hv_store(atV, "LocalName", 9,
531
547
_C2Sv(name, NULL), LocalNameHash);
567
583
HV * retval = newHV();
569
585
if ( data != NULL && xmlStrlen( data ) ) {
570
hv_store(retval, "Data", 4,
586
(void) hv_store(retval, "Data", 4,
571
587
_C2Sv_len(data, len), DataHash);
582
598
HV * retval = newHV();
584
600
if ( target != NULL && xmlStrlen( target ) ) {
585
hv_store(retval, "Target", 6,
601
(void) hv_store(retval, "Target", 6,
586
602
_C2Sv(target, NULL), TargetHash);
588
604
if ( data != NULL && xmlStrlen( data ) ) {
589
hv_store(retval, "Data", 4,
605
(void) hv_store(retval, "Data", 4,
590
606
_C2Sv(data, NULL), DataHash);
593
hv_store(retval, "Data", 4,
609
(void) hv_store(retval, "Data", 4,
594
610
_C2Sv((const xmlChar *)"", NULL), DataHash);
607
623
HV * retval = newHV();
608
624
if ( name != NULL && xmlStrlen( name ) ) {
609
hv_store(retval, "Name", 4,
625
(void) hv_store(retval, "Name", 4,
610
626
_C2Sv(name, NULL), NameHash);
612
628
if ( publicId != NULL && xmlStrlen( publicId ) ) {
613
hv_store(retval, "PublicId", 8,
629
(void) hv_store(retval, "PublicId", 8,
614
630
_C2Sv(publicId, NULL), PublicIdHash);
616
632
if ( systemId != NULL && xmlStrlen( systemId ) ) {
617
hv_store(retval, "SystemId", 8,
633
(void) hv_store(retval, "SystemId", 8,
618
634
_C2Sv(systemId, NULL), SystemIdHash);
660
676
if ( ctxt->version != NULL ) {
661
hv_store(empty, "Version", 7,
677
(void) hv_store(empty, "Version", 7,
662
678
_C2Sv(ctxt->version, NULL), VersionHash);
665
hv_store(empty, "Version", 7,
681
(void) hv_store(empty, "Version", 7,
666
682
_C2Sv((const xmlChar *)"1.0", NULL), VersionHash);
669
685
if ( ctxt->input->encoding != NULL ) {
670
hv_store(empty, "Encoding", 8,
686
(void) hv_store(empty, "Encoding", 8,
671
687
_C2Sv(ctxt->input->encoding, NULL), EncodingHash);
1191
1210
va_start(args, msg);
1192
1211
sv_vsetpvfn(svMessage, msg, xmlStrlen((const xmlChar *)msg), &args, NULL, 0, NULL);
1195
sv_catsv( sax->saved_error, svMessage );
1213
if (SvOK(sax->saved_error)) {
1214
sv_catsv( sax->saved_error, svMessage );
1216
sv_setsv( sax->saved_error, svMessage );
1197
1218
XPUSHs(sv_2mortal(svMessage));
1198
1219
XPUSHs(sv_2mortal(newSViv(ctxt->input->line)));
1199
1220
XPUSHs(sv_2mortal(newSViv(ctxt->input->col)));
1249
1271
XPUSHs(sax->parser);
1251
sv_catsv( sax->saved_error, svMessage );
1273
if (SvOK(sax->saved_error)) {
1274
sv_catsv( sax->saved_error, svMessage );
1276
sv_setsv( sax->saved_error, svMessage );
1253
1279
XPUSHs(sv_2mortal(svMessage));
1254
1280
XPUSHs(sv_2mortal(newSViv(ctxt->input->line)));