Howdy.

I am wondering if anyone here has encountered problems doing a "Progressive
Parse"
with the SAX2 parser using Xerces.pm.  When I call parseFirst( ), the
following error
crops up:0

  "Could not determine base pathname of the file
   at sax2fun.pl line 126."

The weird thing about the error is that it doesn't occur if I do a regular
(non-progressive) parse (this simply entails replacing the parseFirst( )
call
with a plain parse( ) call), or if I do the progressive parse with the SAX 1
parser.

Furthermore, the error even crops up when I use a memBuffer
inputsource, hence skipping the local file stuff altogther.

What's happening here?  Why should a "Progressive Parse" behave differently
from a regular parse with regard to finding/not finding the input source?
And
why should SAX2 progressive parse behave differently from a SAX1 progressive
parse with regard to finding/not finding the input source? Me thinks
something
bigger is afoot.

Perhaps someone out there could grant some enlightenment?

I am using xerces-c-src1_7_0 with Xerces Perl XML-Xerces-1.7.0_0.
I built the sources on a Redhat linux 7.0 platform.  The Xerces C++ dist
was built with the following autoconf parameters:

 runConfigure -plinux -cgcc -xg++ -minmem -nsocket -tnative -rpthread


Thanks for ANY and ALL help with this.

My perl code is below.
-DJ Special Ed

[EMAIL PROTECTED]


-----------------------------

 #!/usr/bin/perl -w
 use strict;
 use XML::Xerces;

 @ARGV or die "please provide the name of an XML file\n";
 my $file = shift(@ARGV);
 -e $file or die "Couldn't find `$file'\n";

 # ------------------------
 package MyContentHandler;
 use vars qw(@ISA);
 @ISA = qw(XML::Xerces::PerlContentHandler);

 # Just include some empty handlers for now:

 sub start_element
 {
    my ($self,$uri,$localname,$qname,$attrs) = @_;
 }

 sub end_element
 {
    my ($self,$name) = @_;
 }

 sub characters
 {
    my ($self,$str,$len) = @_;
 }

 sub ignorable_whitespace
 {
    my ($self,$str,$len) = @_;
 }

 # -------------
 package main;

 my $parser = XML::Xerces::XMLReaderFactory::createXMLReader();

 $@ and ( ref($@) ? die($@->getMessage) : die($@) );

 my $error_handler = XML::Xerces::PerlErrorHandler->new();
 $parser->setErrorHandler($error_handler);

 my $CONTENT_HANDLER = MyContentHandler->new();
 $parser->setContentHandler($CONTENT_HANDLER);

 my $scantoken = XML::Xerces::XMLPScanToken->new();

 eval { $parser->parseFirst(
           XML::Xerces::LocalFileInputSource->new($file),
           XML::Xerces::XMLPScanToken->new());
 };

 $@ and ( ref($@) ? die($@->getMessage) : die($@) );
 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 #      Here's line 126 where we die.



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to