> Try 1.6rc3 - the 1.6 release fixes some xinclude bugs.
Now, I'm getting a compilation error on a script that was running at least
occasionally before....
See lines 36-39, where it seems to my untrained eye, that at the end of the
function (line 41) there's still an unanswered left brace from line 36.
The xsp code that generates lines 14-41 is below.
Thanks,
Kevin
[Tue Jun 4 13:38:02 2002] [warn] [client 192.168.92.56] [AxKit] fast handler
called for /datatapes/info/DataFileList.xsp
[Tue Jun 4 13:38:02 2002] [warn] [client 192.168.92.56] [AxKit] Content
Provider Override: Apache::AxKit::Provider::File
[Tue Jun 4 13:38:02 2002] [warn] [client 192.168.92.56] [AxKit] [req] File
Provider given $r: /home/httpd/html/datatapes/info/DataFileList.xsp
[Tue Jun 4 13:38:02 2002] [warn] [client 192.168.92.56] [AxKit] checking if
we process this resource
[Tue Jun 4 13:38:02 2002] [warn] [client 192.168.92.56] [AxKit] media:
screen, preferred style: #default
[Tue Jun 4 13:38:02 2002] [warn] [client 192.168.92.56] [AxKit] Cache: key =
22188da1315b644d5a6aa8064befe022
[Tue Jun 4 13:38:02 2002] [warn] [client 192.168.92.56] [AxKit] getting
styles and external entities from the XML
[Tue Jun 4 13:38:02 2002] [warn] [client 192.168.92.56] [AxKit] styles not
cached - calling $provider->get_styles()
[Tue Jun 4 13:38:02 2002] [warn] [client 192.168.92.56] [AxKit] using XS
get_styles (libxml2)
[Tue Jun 4 13:38:02 2002] [warn] [client 192.168.92.56] [AxKit] calling
xs_get_styles_fh()
[Tue Jun 4 13:38:03 2002] [warn] [client 192.168.92.56] [AxKit] calling
xs_get_styles_str()
[Tue Jun 4 13:38:03 2002] [warn] [client 192.168.92.56] [AxKit] parse_pi:
href = .
[Tue Jun 4 13:38:03 2002] [warn] [client 192.168.92.56] [AxKit] parse_pi:
type = application/x-xsp
[Tue Jun 4 13:38:03 2002] [warn] [client 192.168.92.56] [AxKit] parse_pi:
href = /datatapes/directorycontents.xsl
[Tue Jun 4 13:38:03 2002] [warn] [client 192.168.92.56] [AxKit] parse_pi:
type = text/xsl
[Tue Jun 4 13:38:03 2002] [warn] [client 192.168.92.56] [AxKit] xs_get_styles
returned: , , {http://www.apache.org/1999/XSP/Core}page
[Tue Jun 4 13:38:03 2002] [warn] [client 192.168.92.56] [AxKit] Calling
GetMatchingProcessors with (screen, , , ,
{http://www.apache.org/1999/XSP/Core}page)
[Tue Jun 4 13:38:03 2002] [warn] [client 192.168.92.56] [AxKit] get_styles:
loading style modules
[Tue Jun 4 13:38:03 2002] [warn] [client 192.168.92.56] [AxKit] get_styles:
looking for mapping for style type: 'application/x-xsp'
[Tue Jun 4 13:38:03 2002] [warn] [client 192.168.92.56] [AxKit] get_styles:
looking for mapping for style type: 'text/xsl'
[Tue Jun 4 13:38:03 2002] [warn] [client 192.168.92.56] [AxKit] cache doesn't
exist
[Tue Jun 4 13:38:03 2002] [warn] [client 192.168.92.56] [AxKit] some
condition failed. recreating output
[Tue Jun 4 13:38:03 2002] [warn] [client 192.168.92.56] [AxKit] styles:
Apache::AxKit::Language::XSP(.)
[Tue Jun 4 13:38:03 2002] [warn] [client 192.168.92.56] [AxKit] styles:
Apache::AxKit::Language::LibXSLT(/datatapes/directorycontents.xsl)
[Tue Jun 4 13:38:03 2002] [warn] [client 192.168.92.56] [AxKit] Style
Provider Override: Apache::AxKit::Provider::File
[Tue Jun 4 13:38:03 2002] [warn] [client 192.168.92.56] [AxKit] [uri] File
Provider looking up uri .
[Tue Jun 4 13:38:03 2002] [warn] [client 192.168.92.56] [AxKit] [uri] File
Provider set filename to /home/httpd/html/datatapes/info
[Tue Jun 4 13:38:03 2002] [warn] [client 192.168.92.56] [AxKit] about to
execute: Apache::AxKit::Language::XSP::handler
[Tue Jun 4 13:38:03 2002] [warn] [client 192.168.92.56] [AxKit] XSP: parsing
fh
[Tue Jun 4 13:38:03 2002] [warn] [client 192.168.92.56] [AxKit] Recompiling
XSP script
[Tue Jun 4 13:38:03 2002] [warn] [client 192.168.92.56] [AxKit] package
Apache::AxKit::Language::XSP::ROOT::home::httpd::html::datatapes::info::DataFileList_2exsp;
@Apache::AxKit::Language::XSP::ROOT::home::httpd::html::datatapes::info::DataFileList_2exsp::ISA
= ('Apache::AxKit::Language::XSP::Page');
use Apache;
use Apache::Constants qw(:common);
use XML::LibXML;#initialize xsp namespace
#initialize xsp namespace
sub handler {
my ($r, $cgi, $document) = @_;
my ($parent);
my $elem; { $elem =
$document->createElement(q|DirectoryContents|);#$document->setDocumentElement($elem);
my $parent = $elem;
my $dir=$cgi->param('dir');
if($dir=="") {
$dir="/datatapes/info";
}
{ my $text = $document->createTextNode("". do {$dir});
$parent->appendChild($text); }
my $fs_base="/home/httpd/html";
sub include_files {
my ($dir,$pattern)=@_;
my $datafile;
opendir(DIR, $fs_base.$dir);
while( defined( $datafile = readdir DIR) ) {
if($datafile=~/$pattern/) {
include_file($dir."/".$datafile);
}
}
closedir(DIR);
}
sub include_file {
my ($filename)=@_;
my $elem; { $elem = $document->createElement(q|xi:include|);my
$parent = $elem;
$parent->setAttribute(q|xmlns:xi|, "". q|http://www.w3.org/2001/XInclude|);
$parent->setAttribute(q|href|, "". do {$filename});
$parent = $parent->getParentNode;
}
my $elem; { $elem = $document->createElement(q|CurrentDirectory|); my $parent
= $elem;
include_file($dir."/DirectoryInfo.xml");
} $parent->appendChild($elem);
my $elem; { $elem = $document->createElement(q|DataFileSubDirectoryList|); my
$parent = $elem;
my $nextfile;
opendir(DIR,$fs_base.$dir);
while( defined( $nextfile = readdir DIR) ) {
if ( -d $fs_base.$dir."/".$nextfile && $nextfile !~ /^\./ && -f
$fs_base.$dir."/".$nextfile."/DirectoryInfo.xml") {
include_file($dir."/".$nextfile."/DirectoryInfo.xml");
}
}
closedir(DIR);
} $parent->appendChild($elem);
my $elem; { $elem = $document->createElement(q|DataFileList|); my $parent =
$elem;
include_files($dir,"^DataFile-[0-9]*.xml");
} $parent->appendChild($elem);
my $elem; { $elem = $document->createElement(q|FileInfoEntryList|); my
$parent = $elem;
include_files($dir,"^Info--[0-9]*--.xml");
} $parent->appendChild($elem);
} $document->setDocumentElement($elem);
return OK;
}
Script:
1 package
Apache::AxKit::Language::XSP::ROOT::home::httpd::html::datatapes::info::DataFileList_2exsp;
@Apache::AxKit::Language::XSP::ROOT::home::httpd::html::datatapes::info::DataFileList_2exsp::ISA
= ('Apache::AxKit::Language::XSP::Page');
2 use Apache;
3 use Apache::Constants qw(:common);
4 use XML::LibXML;#initialize xsp namespace
5 #initialize xsp namespace
6
7
8 sub handler {
9 my ($r, $cgi, $document) = @_;
10 my ($parent);
11
12 my $elem; { $elem =
$document->createElement(q|DirectoryContents|);#$document->setDocumentElement($elem);
13 my $parent = $elem;
14
15 my $dir=$cgi->param('dir');
16 if($dir=="") {
17 $dir="/datatapes/info";
18 }
19 { my $text = $document->createTextNode("". do {$dir});
$parent->appendChild($text); }
20
21 my $fs_base="/home/httpd/html";
22
23 sub include_files {
24 my ($dir,$pattern)=@_;
25 my $datafile;
26 opendir(DIR, $fs_base.$dir);
27 while( defined( $datafile = readdir DIR) ) {
28 if($datafile=~/$pattern/) {
29 include_file($dir."/".$datafile);
30 }
31 }
32 closedir(DIR);
33 }
34 sub include_file {
35 my ($filename)=@_;
36 my $elem; { $elem = $document->createElement(q|xi:include|);my
$parent = $elem;
37 $parent->setAttribute(q|xmlns:xi|, "". q|http://www.w3.org/2001/XInclude|);
38 $parent->setAttribute(q|href|, "". do {$filename});
39 $parent = $parent->getParentNode;
40
41 }
42 my $elem; { $elem = $document->createElement(q|CurrentDirectory|); my
$parent = $elem;
43
44 include_file($dir."/DirectoryInfo.xml");
45 } $parent->appendChild($elem);
46 my $elem; { $elem = $document->createElement(q|DataFileSubDirectoryList|);
my $parent = $elem;
47
48 my $nextfile;
49 opendir(DIR,$fs_base.$dir);
50 while( defined( $nextfile = readdir DIR) ) {
51 if ( -d $fs_base.$dir."/".$nextfile && $nextfile !~ /^\./ && -f
$fs_base.$dir."/".$nextfile."/DirectoryInfo.xml") {
52 include_file($dir."/".$nextfile."/DirectoryInfo.xml");
53 }
54 }
55 closedir(DIR);
56 } $parent->appendChild($elem);
57 my $elem; { $elem = $document->createElement(q|DataFileList|); my $parent
= $elem;
58
59 include_files($dir,"^DataFile-[0-9]*.xml");
60 } $parent->appendChild($elem);
61 my $elem; { $elem = $document->createElement(q|FileInfoEntryList|); my
$parent = $elem;
62
63 include_files($dir,"^Info--[0-9]*--.xml");
64 } $parent->appendChild($elem);
65 } $document->setDocumentElement($elem);
66
67 return OK;
68 }
69
[Tue Jun 4 13:38:03 2002] [warn] [client 192.168.92.56] [AxKit] Caught an
exception
[Tue Jun 4 13:38:03 2002] [error] [client 192.168.92.56] [AxKit] [Error]
Compilation failed: Missing right curly or square bracket at (eval 9) line
70, at end of line
syntax error at (eval 9) line 70, at EOF
[Tue Jun 4 13:38:03 2002] [error] [client 192.168.92.56] [AxKit] From:
/usr/lib/perl5/site_perl/5.6.1/Error.pm : 148
[Tue Jun 4 13:38:03 2002] [error] [client 192.168.92.56] [AxKit] [Backtrace]
Compilation failed: Missing right curly or square bracket at (eval 9) line
70, at end of line
syntax error at (eval 9) line 70, at EOF
Error::throw('Apache::AxKit::Exception::Error', '-text', 'Compilation
failed: Missing right curly or square bracket at (ev...') called at
/usr/lib/perl5/site_perl/5.6.1/i386-linux/Apache/AxKit/Language/XSP.pm line
114
Apache::AxKit::Language::XSP::handler('Apache::AxKit::Language::XSP',
'AxKit::Apache=SCALAR(0x81f34d4)',
'Apache::AxKit::Provider::File=HASH(0x81f35b8)',
'Apache::AxKit::Provider::File=HASH(0x82e0110)', '') called at
/usr/lib/perl5/site_perl/5.6.1/i386-linux/AxKit.pm line 612
AxKit::process_request('AxKit::Apache=SCALAR(0x81f34d4)',
'Apache::AxKit::Provider::File=HASH(0x81f35b8)', 'ARRAY(0x8194ab4)') called
at /usr/lib/perl5/site_perl/5.6.1/i386-linux/AxKit.pm line 435
AxKit::run_axkit_engine('AxKit::Apache=SCALAR(0x81f34d4)',
'Apache::AxKit::Provider::File=HASH(0x81f35b8)') called at
/usr/lib/perl5/site_perl/5.6.1/i386-linux/AxKit.pm line 263
eval {...} called at
/usr/lib/perl5/site_perl/5.6.1/i386-linux/AxKit.pm line 254
AxKit::main_handler('AxKit::Apache=SCALAR(0x81f34d4)',
'Apache::AxKit::Provider::File=HASH(0x81f35b8)') called at
/usr/lib/perl5/site_perl/5.6.1/i386-linux/AxKit.pm line 171
AxKit::fast_handler('AxKit::Apache=SCALAR(0x81f34d4)') called at
/dev/null line 0
eval {...} called at /dev/null line 0
---------------------
The code that generates lines 14-41:
<xsp:logic>
my $dir=$cgi->param('dir');
if($dir=="") {
$dir="/datatapes/info";
}
<xsp:text><xsp:expr>$dir</xsp:expr></xsp:text>
my $fs_base="/home/httpd/html";
sub include_files {
my ($dir,$pattern)=@_;
my $datafile;
opendir(DIR, $fs_base.$dir);
while( defined( $datafile = readdir DIR) ) {
if($datafile=~/$pattern/) {
include_file($dir."/".$datafile);
}
}
closedir(DIR);
}
sub include_file {
my ($filename)=@_;
<xsp:element name="xi:include">
<xsp:attribute
name="xmlns:xi">http://www.w3.org/2001/XInclude</xsp:attribute>
<xsp:attribute
name="href"><xsp:expr>$filename</xsp:expr></xsp:attribute>
</xsp:element>
}
</xsp:logic>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]