Add built local::lib
[catagits/Gitalist.git] / local-lib5 / man / man3 / XML::SAX::ParserFactory.3pm
CommitLineData
3fea05b9 1.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.10)
2.\"
3.\" Standard preamble:
4.\" ========================================================================
5.de Sp \" Vertical space (when we can't use .PP)
6.if t .sp .5v
7.if n .sp
8..
9.de Vb \" Begin verbatim text
10.ft CW
11.nf
12.ne \\$1
13..
14.de Ve \" End verbatim text
15.ft R
16.fi
17..
18.\" Set up some character translations and predefined strings. \*(-- will
19.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
20.\" double quote, and \*(R" will give a right double quote. \*(C+ will
21.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
22.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
23.\" nothing in troff, for use with C<>.
24.tr \(*W-
25.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
26.ie n \{\
27. ds -- \(*W-
28. ds PI pi
29. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
30. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
31. ds L" ""
32. ds R" ""
33. ds C` ""
34. ds C' ""
35'br\}
36.el\{\
37. ds -- \|\(em\|
38. ds PI \(*p
39. ds L" ``
40. ds R" ''
41'br\}
42.\"
43.\" Escape single quotes in literal strings from groff's Unicode transform.
44.ie \n(.g .ds Aq \(aq
45.el .ds Aq '
46.\"
47.\" If the F register is turned on, we'll generate index entries on stderr for
48.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
49.\" entries marked with X<> in POD. Of course, you'll have to process the
50.\" output yourself in some meaningful fashion.
51.ie \nF \{\
52. de IX
53. tm Index:\\$1\t\\n%\t"\\$2"
54..
55. nr % 0
56. rr F
57.\}
58.el \{\
59. de IX
60..
61.\}
62.\"
63.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
64.\" Fear. Run. Save yourself. No user-serviceable parts.
65. \" fudge factors for nroff and troff
66.if n \{\
67. ds #H 0
68. ds #V .8m
69. ds #F .3m
70. ds #[ \f1
71. ds #] \fP
72.\}
73.if t \{\
74. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
75. ds #V .6m
76. ds #F 0
77. ds #[ \&
78. ds #] \&
79.\}
80. \" simple accents for nroff and troff
81.if n \{\
82. ds ' \&
83. ds ` \&
84. ds ^ \&
85. ds , \&
86. ds ~ ~
87. ds /
88.\}
89.if t \{\
90. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
91. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
92. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
93. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
94. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
95. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
96.\}
97. \" troff and (daisy-wheel) nroff accents
98.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
99.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
100.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
101.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
102.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
103.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
104.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
105.ds ae a\h'-(\w'a'u*4/10)'e
106.ds Ae A\h'-(\w'A'u*4/10)'E
107. \" corrections for vroff
108.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
109.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
110. \" for low resolution devices (crt and lpr)
111.if \n(.H>23 .if \n(.V>19 \
112\{\
113. ds : e
114. ds 8 ss
115. ds o a
116. ds d- d\h'-1'\(ga
117. ds D- D\h'-1'\(hy
118. ds th \o'bp'
119. ds Th \o'LP'
120. ds ae ae
121. ds Ae AE
122.\}
123.rm #[ #] #H #V #F C
124.\" ========================================================================
125.\"
126.IX Title "SAX::ParserFactory 3"
127.TH SAX::ParserFactory 3 "2008-08-04" "perl v5.8.7" "User Contributed Perl Documentation"
128.\" For nroff, turn off justification. Always turn off hyphenation; it makes
129.\" way too many mistakes in technical documents.
130.if n .ad l
131.nh
132.SH "NAME"
133XML::SAX::ParserFactory \- Obtain a SAX parser
134.SH "SYNOPSIS"
135.IX Header "SYNOPSIS"
136.Vb 6
137\& use XML::SAX::ParserFactory;
138\& use XML::SAX::XYZHandler;
139\& my $handler = XML::SAX::XYZHandler\->new();
140\& my $p = XML::SAX::ParserFactory\->parser(Handler => $handler);
141\& $p\->parse_uri("foo.xml");
142\& # or $p\->parse_string("<foo/>") or $p\->parse_file($fh);
143.Ve
144.SH "DESCRIPTION"
145.IX Header "DESCRIPTION"
146XML::SAX::ParserFactory is a factory class for providing an application
147with a Perl \s-1SAX2\s0 \s-1XML\s0 parser. It is akin to \s-1DBI\s0 \- a front end for other
148parser classes. Each new \s-1SAX2\s0 parser installed will register itself
149with \s-1XML::SAX\s0, and then it will become available to all applications
150that use XML::SAX::ParserFactory to obtain a \s-1SAX\s0 parser.
151.PP
152Unlike \s-1DBI\s0 however, \s-1XML/SAX\s0 parsers almost all work alike (especially
153if they subclass XML::SAX::Base, as they should), so rather than
154specifying the parser you want in the call to \f(CW\*(C`parser()\*(C'\fR, \s-1XML::SAX\s0
155has several ways to automatically choose which parser to use:
156.IP "\(bu" 4
157\&\f(CW$XML::SAX::ParserPackage\fR
158.Sp
159If this package variable is set, then this package is \f(CW\*(C`require()\*(C'\fRd
160and an instance of this package is returned by calling the \f(CW\*(C`new()\*(C'\fR
161class method in that package. If it cannot be loaded or there is
162an error, an exception will be thrown. The variable can also contain
163a version number:
164.Sp
165.Vb 1
166\& $XML::SAX::ParserPackage = "XML::SAX::Expat (0.72)";
167.Ve
168.Sp
169And the number will be treated as a minimum version number.
170.IP "\(bu" 4
171Required features
172.Sp
173It is possible to require features from the parsers. For example, you
174may wish for a parser that supports validation via a \s-1DTD\s0. To do that,
175use the following code:
176.Sp
177.Vb 4
178\& use XML::SAX::ParserFactory;
179\& my $factory = XML::SAX::ParserFactory\->new();
180\& $factory\->require_feature(\*(Aqhttp://xml.org/sax/features/validation\*(Aq);
181\& my $parser = $factory\->parser(...);
182.Ve
183.Sp
184Alternatively, specify the required features in the call to the
185ParserFactory constructor:
186.Sp
187.Vb 5
188\& my $factory = XML::SAX::ParserFactory\->new(
189\& RequiredFeatures => {
190\& \*(Aqhttp://xml.org/sax/features/validation\*(Aq => 1,
191\& }
192\& );
193.Ve
194.Sp
195If the features you have asked for are unavailable (for example the
196user might not have a validating parser installed), then an
197exception will be thrown.
198.Sp
199The list of known parsers is searched in reverse order, so it will
200always return the last installed parser that supports all of your
201requested features (Note: this is subject to change if someone
202comes up with a better way of making this work).
203.IP "\(bu" 4
204\&\s-1SAX\s0.ini
205.Sp
206ParserFactory will search \f(CW@INC\fR for a file called \s-1SAX\s0.ini, which
207is in a simple format:
208.Sp
209.Vb 3
210\& # a comment looks like this,
211\& ; or like this, and are stripped anywhere in the file
212\& key = value # SAX.in contains key/value pairs.
213.Ve
214.Sp
215All whitespace is non-significant.
216.Sp
217This file can contain either a line:
218.Sp
219.Vb 1
220\& ParserPackage = MyParserModule (1.02)
221.Ve
222.Sp
223Where MyParserModule is the module to load and use for the parser,
224and the number in brackets is a minimum version to load.
225.Sp
226Or you can list required features:
227.Sp
228.Vb 1
229\& http://xml.org/sax/features/validation = 1
230.Ve
231.Sp
232And each feature with a true value will be required.
233.IP "\(bu" 4
234Fallback
235.Sp
236If none of the above works, the last parser installed on the user's
237system will be used. The \s-1XML::SAX\s0 package ships with a pure perl
238\&\s-1XML\s0 parser, XML::SAX::PurePerl, so that there will always be a
239fallback parser.
240.SH "AUTHOR"
241.IX Header "AUTHOR"
242Matt Sergeant, matt@sergeant.org
243.SH "LICENSE"
244.IX Header "LICENSE"
245This is free software, you may use it and distribute it under the same
246terms as Perl itself.