encoding(3)
NAME
XML::Encoding - A perl module for parsing XML encoding
maps.
SYNOPSIS
use XML::Encoding;
my $em_parser = new XML::Encoding(ErrorContext => 2,
ExpatRequired => 1,
PushPrefixFcn =>
push_prefix,
PopPrefixFcn =>
pop_prefix,
RangeSetFcn =>
range_set);
my $encmap_name = $em_parser->parsefile($ARGV[0]);
DESCRIPTION
This module, which is built as a subclass of XML::Parser,
provides a parser for encoding map files, which are XML
files. The file maps/encmap.dtd in the distribution
describes the structure of these files. Calling a parse
method returns the name of the encoding map (obtained from
the name attribute of the root element). The contents of
the map are processed through the callback functions
push_prefix, pop_prefix, and range_set.
METHODS
This module provides no additional methods to those pro
vided by XML::Parser, but it does take the following addi
tional options.
- · ExpatRequired
- When this has a true value, then an error occurs
unless the encmap "expat" attribute is set to "yes".
Whether or not the ExpatRequired option is given, the
parser enters expat mode if this attribute is set. In
expat mode, the parser checks if the encoding violates
expat restrictions. - · PushPrefixFcn
- The corresponding value should be a code reference to
be called when a prefix element starts. The single
argument to the callback is an integer which is the
byte value of the prefix. An undef value should be
returned if successful. If in expat mode, a defined
value causes an error and is used as the message
string. - · PopPrefixFcn
- The corresponding value should be a code reference to
be called when a prefix element ends. No arguments are
passed to this function. An undef value should be
returned if successful. If in expat mode, a defined
value causes an error and is used as the message
string. - · RangeSetFcn
- The corresponding value should be a code reference to
be called when a "range" or "ch" element is seen. The
3 arguments passed to this function are: (byte, uni
code_scalar, length) The byte is the starting byte of
a range or the byte being mapped by a "ch" element.
The unicode_scalar is the Unicode value that this byte
(with the current prefix) maps to. The length of the
range is the last argument. This will be 1 for the
"ch" element. An undef value should be returned if
successful. If in expat mode, a defined value causes
an error and is used as the message string.
AUTHOR
Clark Cooper <coopercc@netheaven.com>
SEE ALSO
- XML::Parser