Apache::MimeXML - mod_perl mime encoding sniffer for XML files
Simply add this line to srm.conf or httpd.conf:
PerlTypeHandler +Apache::MimeXML
Alternatively add it only for certain files or directories using the standard Apache methods. There is about a 30% slowdown for files using this module, so you probably want to restrict it to certain XML locations only.
An XML Content-Type sniffer. This module reads the encoding attribute in the xml declaration and returns an appropriate content-type heading. If no encoding declaration is found it returns utf-8 or utf-16 depending on the specific encoding.
There are a few small configuration options for this module, allowing you to set various parameters.
Allows you to set the mime type for XML files:
PerlSetVar XMLMimeType application/xml
That changes the mime type from the default text/xml to application/xml. You can use this on a per-directory basis.
Allows you to set the encoding of big-endian (read: normal) utf 16 (unicode) documents. The default is 'utf-16'
PerlSetVar XMLUtf16EncodingBE utf-16-be
Allows you to set the encoding of little-endian utf-16 encoded documents. The default is 'utf-16-le'
PerlSetVar XMLUtf16EncodingLE utf-16-wierd
If you want to use Apache::MimeXML's detection routines from other modules, you can manually call the check_for_xml() function yourself, passing in either a filename, or an open filehandle. The function returns the encoding if it finds that the file contains XML, otherwise it returns nothing:
my $encoding; if ($encoding = Apache::MimeXML::check_for_xml($filename)) { print "$filename is XML in $encoding encoding\n"; }
Matt Sergeant matt@sergeant.org
This module is distributed under the same terms as perl itself
To install AxKit, copy and paste the appropriate command in to your terminal.
cpanm
cpanm AxKit
CPAN shell
perl -MCPAN -e shell install AxKit
For more information on module installation, please visit the detailed CPAN module installation guide.