/
package.xml
197 lines (189 loc) · 9.82 KB
/
package.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
<?xml version="1.0" encoding="UTF-8"?>
<package packagerversion="1.9.4" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd">
<name>XML_SaxFilters</name>
<channel>pear.php.net</channel>
<summary>A framework for building XML filters using the SAX API</summary>
<description>XML_SaxFilters provides a foundation for using Sax filters in PHP.
The original code base was developed by Luis Argerich and published at
phpxmlclasses.sourceforge.net/show_doc.php?class=class_sax_filters.html.
Luis discussed how SaxFilters work, using the Sourceforge classes as
an example, in Chapter 10 of Wrox "PHP 4 XML".
Luis kindly gave permission to modify the code and license for
inclusion in PEAR.
This version of the Sax Filters makes significant changes to Luis's
original code (backwards compatibility is definately broken), seperating
abstract classes from interfaces, providing interfaces for data readers
and writers and providing methods to help parse XML documents recursively
with filters (for example AbstractFilter::setParent()) for documents where
the structure can vary significantly.
Sax Filtering is an approach to making parsing XML documents with Sax modular
and easy to maintain. The parser delegates events to a child filter which may
in turn delegate events to another filter. In general it's possible to implement
filters for a document which are as flexible and powerful as DOM.
For some discussions on Sax filtering try;
http://www.cafeconleche.org/books/xmljava/chapters/ch08.html (Java)
http://www-106.ibm.com/developerworks/xml/library/x-tipsaxflex.html (Python)
http://www.xml.com/pub/a/2001/10/10/sax-filters.html (Perl)
The API provided by XML_SaxFilters is a little different from that commonly
used in other languages, providing the concepts of "parent" and "child".
A parent of the current filter is the filter (or parser) "upsteam" which
receive XML event notifications before the current filter.
A "child" is a filter "downstream" of the current filter (or parser) to
which XML events are delegated.
The top of the "family tree" of filters is always the parser itself, which
can have children but cannot have parents. Filters can have parents and
children.
The parsers themselves never handle any XML events personally but always
delegate to a filter.
The parser accepts an object implementing the reader interface from which
it streams the XML.
The filters can be given an object implementing the writer interface
to write output to.
For an example of SAX filters in action with PHP try;
http://www.phppatterns.com/index.php/article/articleview/48/1/2/
(example uses Luis Argerich original Sax Filters).</description>
<lead>
<name>Harry Fuecks</name>
<user>hfuecks</user>
<email>hfuecks@phppatterns.com</email>
<active>yes</active>
</lead>
<date>2011-12-27</date>
<time>16:28:04</time>
<version>
<release>0.3.0</release>
<api>0.3.0</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<license uri="http://www.php.net/license">PHP</license>
<notes>
WARNING: lots of API breakage!
* API breakage to conform to PEAR namespacing standards
* API breakage to remove dependance of base PEAR class. PEAR.php is now only included on error
* API breakage on handler names - shortened for easier use
* API breaking on IO classes to add correct PEAR namespace
* Renamed StructReader and StructWriter to ListReader and ListWriter
* Added startDoc and endDoc handlers for start and end of parsing
* Added handler for processing instructions
* Added utility function for building filter chains
* HTMLSaxParser open handler leakiness to allow third empty argument
* HTMLSaxParser gets two additional handlers, escape and jasp
* HTMLSaxParser should now behave the same as Expat, for linefeed and entities
* FilterBuilder and FilterMap modifications
</notes>
<contents>
<dir baseinstalldir="/" name="/">
<file baseinstalldir="XML" md5sum="606344a4d3edae0b248850d7ec4d6dd8" name="docs/Readme" role="doc" />
<file baseinstalldir="XML" md5sum="bf88770e5838db89f1f6e82144a4b8af" name="docs/SaxFiltersGuide" role="doc" />
<file baseinstalldir="XML" md5sum="e6cfe0a537fd992f5603e0a367981396" name="docs/examples/chained.php" role="doc" />
<file baseinstalldir="XML" md5sum="5c9599e2176e3130c57605b50c4023f4" name="docs/examples/errorlog.xml" role="doc" />
<file baseinstalldir="XML" md5sum="eded20a74ffda089304d61263d1063c3" name="docs/examples/errorlogviewer.php" role="doc" />
<file baseinstalldir="XML" md5sum="ed5e8684f253441d71d75275f4e76ba4" name="docs/examples/example.html" role="doc" />
<file baseinstalldir="XML" md5sum="cc950b95c17a86a1315422e5b37a77cb" name="docs/examples/founding_fathers.xml" role="doc" />
<file baseinstalldir="XML" md5sum="e99d53d13cd5aa282b53f87ce2707bbf" name="docs/examples/htmlfilter.php" role="doc" />
<file baseinstalldir="XML" md5sum="19b751dea876ce2e76037588569c23ff" name="docs/examples/simple.php" role="doc" />
<file baseinstalldir="XML" md5sum="11bc1cdbeffc8961693fe27b317ba32a" name="docs/examples/xml2html.php" role="doc" />
<file baseinstalldir="XML" md5sum="2d312bbbde88854ab5d437ee791a1051" name="docs/examples/formfilter/FormFilters.php" role="doc" />
<file baseinstalldir="XML" md5sum="d231a82a0183f25235beeec78f5cc2c2" name="docs/examples/formfilter/index.php" role="doc" />
<file baseinstalldir="/" md5sum="8a3e74a017b61e05a904a183e85ecc2c" name="XML/SaxFilters.php" role="php" />
<file baseinstalldir="/" md5sum="a9e8d62c08b61e1109485ec871c417e5" name="XML/SaxFilters/AbstractFilter.php" role="php" />
<file baseinstalldir="/" md5sum="2ab8c937d31506851609e251e22487bc" name="XML/SaxFilters/AbstractParser.php" role="php" />
<file baseinstalldir="/" md5sum="e587712df8fb16f8b623b2b5461d14d9" name="XML/SaxFilters/ExpatParser.php" role="php" />
<file baseinstalldir="/" md5sum="4d5ebadddf48b182aeb753b8ada0a11c" name="XML/SaxFilters/FilterBuilder.php" role="php" />
<file baseinstalldir="/" md5sum="be9d8e0d0123377e9358cb768cee420c" name="XML/SaxFilters/FilterInterface.php" role="php" />
<file baseinstalldir="/" md5sum="84b9897686d36642025d8be89be8bb47" name="XML/SaxFilters/HTMLSaxParser.php" role="php" />
<file baseinstalldir="/" md5sum="4632de7b539eef92f6237ac02dc13622" name="XML/SaxFilters/ParserInterface.php" role="php" />
<file baseinstalldir="/" md5sum="0512df2107e472b1dc96560cfc559c22" name="XML/SaxFilters/IO/FileReader.php" role="php" />
<file baseinstalldir="/" md5sum="591224bb843fb8a676602f990f3f532a" name="XML/SaxFilters/IO/FileWriter.php" role="php" />
<file baseinstalldir="/" md5sum="532cd3eeb49be6e7ac5ca95a576d4cbc" name="XML/SaxFilters/IO/ListReader.php" role="php" />
<file baseinstalldir="/" md5sum="7e4fade47d2004471068fd0eab6b9e9b" name="XML/SaxFilters/IO/ListWriter.php" role="php" />
<file baseinstalldir="/" md5sum="6c89a0b14257a4bb83d6d05008faf6d9" name="XML/SaxFilters/IO/ReaderInterface.php" role="php" />
<file baseinstalldir="/" md5sum="026f2bce31b377976f8f6890c6efb28b" name="XML/SaxFilters/IO/StringReader.php" role="php" />
<file baseinstalldir="/" md5sum="48af5318e699dc63a7dea681b60136c4" name="XML/SaxFilters/IO/StringWriter.php" role="php" />
<file baseinstalldir="/" md5sum="1ecd2d32e5aece515ca8b1d74dc71c66" name="XML/SaxFilters/IO/WriterInterface.php" role="php" />
</dir>
</contents>
<dependencies>
<required>
<php>
<min>4.1.0</min>
</php>
<pearinstaller>
<min>1.4.0b1</min>
</pearinstaller>
<package>
<name>XML_HTMLSax</name>
<channel>pear.php.net</channel>
</package>
</required>
</dependencies>
<phprelease />
<changelog>
<release>
<version>
<release>0.1.0</release>
<api>0.1.0</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2003-06-25</date>
<license uri="http://www.php.net/license">PHP</license>
<notes>
To use the HTMLSaxParser provided by XML_SaxFilters you need to install
PEAR::XML_HTMLSax.
</notes>
</release>
<release>
<version>
<release>0.2.0</release>
<api>0.2.0</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2003-09-12</date>
<license uri="http://www.php.net/license">PHP</license>
<notes>
To use the HTMLSaxParser provided by XML_SaxFilters you need to install
PEAR::XML_HTMLSax.
* Fixed bug in StructWriter
* New parser factory function for ease of use
* Moved IO classes to seperate directory
* Experimental FilterBuilder class for recursive filtering plus FormFilters example to demonstrate
</notes>
</release>
<release>
<version>
<release>0.3.0</release>
<api>0.3.0</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2011-12-27</date>
<license uri="http://www.php.net/license">PHP</license>
<notes>
WARNING: lots of API breakage!
* API breakage to conform to PEAR namespacing standards
* API breakage to remove dependance of base PEAR class. PEAR.php is now only included on error
* API breakage on handler names - shortened for easier use
* API breaking on IO classes to add correct PEAR namespace
* Renamed StructReader and StructWriter to ListReader and ListWriter
* Added startDoc and endDoc handlers for start and end of parsing
* Added handler for processing instructions
* Added utility function for building filter chains
* HTMLSaxParser open handler leakiness to allow third empty argument
* HTMLSaxParser gets two additional handlers, escape and jasp
* HTMLSaxParser should now behave the same as Expat, for linefeed and entities
* FilterBuilder and FilterMap modifications
</notes>
</release>
</changelog>
</package>