[XML-SIG] Re: [4suite] Disentangling StylesheetReader from Ft.Lib
Thu, 17 May 2001 00:59:15 -0600
> >> It seems to me that all StylesheetReader does is to
> >> create a DOM tree, except that it creates StylesheetElement nodes
> >> where a normal DOM build would create Element nodes.
> > Wow. I'd count this a huge oversimplification. The Stylesheet reader
> > does a great deal that most readers needn't worry about, as I'd think
> > would be obvious from a glance at te code.
> I'd like to discuss specific aspects, then. Looking at the current
> public CVS, I see:
> fromStream: duplicates ReaderMixin.fromStream, then adds call to
> sheet.setup(), and some error handling
> initParser: duplicates PyExpatReader.initParser. It uses
> Utf8OnlyHandler sometimes, but I could not find that class.
> _completeTextNode: creates LiteralText instead of Text nodes. Also does
> not deal with top_node, but I'm not sure whether this is on
> _initializeSheet: has no equivalent elsewhere
> _handleExtUris: has no equivalent elsewhere
> processingInstruction: Does *not* create PI nodes
> comment: Likewise
> startElement: great similarities with Handler.startElement. The significant
> differences seem to be:
> - creates element nodes based on g_mappings[nsuri][localname],
> extension tables, or creates LiteralElement
> - processes xsl:include somehow (?)
> - passes attributes through _handleExtUris for xsl:stylesheet
> endElement: great overload with Handler.endElement; I could not tell
> whether differences are on purpose or by mistake
> characters: does not deal with _includeDepth and force8Bit (again, this
> might be by mistake)
> Did I miss aspects of the functionality relevant to proper operation
> of the StylesheetReader?
> So all in all, it still seems to me that the essential difference is
> what nodes are created; the control logic and parsing data structures
> seem to be duplicates of the code found in the handler.
> That, in turn, suggests that using a standard DOM builder with a
> different DOM implementation would achieve the same effect.
There is a lot of state that the StylesheetReader manages that other readers
This would be very cumbersome to shoe-horn into a standard DOM reader.
Uche Ogbuji Principal Consultant
email@example.com +1 303 583 9900 x 101
Fourthought, Inc. http://Fourthought.com
4735 East Walnut St, Ste. C, Boulder, CO 80301-2537, USA
Software-engineering, knowledge-management, XML, CORBA, Linux, Python