OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help



   RE: [xml-dev] Maybe a newbie question: Awful OO software structure with

[ Lists Home | Date Index | Thread Index ]

There are two architectures you can use that solve this problem, I've used
them both satisfactorily. One is to write a ContentHandler that multicasts
events to recipients who have registered themselves: typically a recipient
registers itself as interested in element X, and when an X arrives you mark
that recipient as active and send it all events until the matching
end-element. The other approach is more of a pipeline: each event is
processed by the first filter in the pipeline, which then (if appropriate)
passes it on to further filters.

Michael Kay

> -----Original Message-----
> From: gbernd@gmx.de [mailto:gbernd@gmx.de] 
> Sent: 29 January 2006 11:47
> To: xml-dev@lists.xml.org
> Subject: [xml-dev] Maybe a newbie question: Awful OO software 
> structure with SAX!?
> Hi,
> I have a software project holding its configuration data in an XML
> structured file. Currently I'm using DOM to load this 
> configuration data and
> then kick off (instantiate) the relevant Java objects by providing the
> relevant DOM subtree to their constructor. Within each 
> management object,
> this hierarchical evaluation of the configuration data is 
> repeated as deep
> as necessary. For the example (see below), the "Evaluation" management
> receives the subtree below the <Evaluation>-node and provides 
> DOM subtrees
> to the "Plot_2D" and "Plot_3D" management objects when 
> instantiating them.
> <Main>
> 	<General>
> 		...
> 	</General>
> 	<Evaluation>
> 		<Plot_2D>
> 			...
> 		</Plot_2D>
> 		<Plot_2D>
> 			...
> 		</Plot_2D>
> 		<Plot_3D>
> 			...
> 		</Plot_3D>
> 	</Evaluation>
> </Main>
> When using the DOM concept, I like that each management 
> object (General,
> Evaluation, Plot_2D, Plot_3D...) is responsible for parsing 
> its own section
> of the configuration file. This reflects the OO software 
> approach of putting
> the code to the data and simplifies code maintenance.
> Now, due the problem of determining line numbers in DOM, I'm 
> considering
> using a SAX parser. But when reading the SAX tutorials, I'm 
> horrified. All
> examples show one centralized event handler, which knows 
> about all keywords
> and dispatches the values to the JAVA objects.
> This is against all OO approaches and requires changes in a 
> central module
> each time a subsection of the configuration data is made. Now 
> my question:
> Is this the intended way of using SAX? Or is there a way of 
> forwarding the
> SAX-events to sub-eventhandlers located in the management 
> objects, which I
> didn't find yet?
> With kind regards
> Bernd
> -- 
> DSL-Aktion wegen gro_er Nachfrage bis 28.2.2006 verldngert:
> GMX DSL-Flatrate 1 Jahr kostenlos* http://www.gmx.net/de/go/dsl
> -----------------------------------------------------------------
> The xml-dev list is sponsored by XML.org <http://www.xml.org>, an
> initiative of OASIS <http://www.oasis-open.org>
> The list archives are at http://lists.xml.org/archives/xml-dev/
> To subscribe or unsubscribe from this list use the subscription
> manager: <http://www.oasis-open.org/mlmanage/index.php>


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS