On 04/05/2010 08:21 AM, DM Smith wrote:
John,
Sorry for the late reply. This patch looks good and we'll commit it
shortly.
Regarding using a "real" parser, it is a good idea. But we don't want
SWORD to be dependant on an external parser. The only way I see us
doing it is to implement the SAX interface ourselves but allow for an
alternative implementation to be used. I don't think that would be too
hard or that much of a change.
If not SAX, which is a push processor, then another streaming XML
parser, based upon the pull model (StAX, XPP, ....)
In Him,
DM
On 02/04/2010 05:31 AM, John Zaitseff wrote:
Dear SWORD developers,
Firstly, thanks for developing the SWORD library! I have been using
this library, in conjunction with the BibleTime front-end, for many
years.
I have recently started to develop some OSIS documents of my own.
In doing so, I found that the XML parser in osis2mod is somewhat
fragile---something that you are, no doubt, aware of.
In particular, osis2mod does not handle XML comments at all, nor
does it correctly parse the<header> element. Being able to handle
XML comments is, I think, quite important---I like to document the
SVN revision ID, for example, in an XML comment.
Furthermore, the osis2mod XML parser looks for the first<div> in
the document, no matter where that occurs. In particular, if the
OSIS document includes a<revisionDesc> tag in the header, it will
have<p> tags as well---which will be translated by transformBSP()
into<div> tags---and get used as the starting point for the
document!
For this reason, I have generated a quick patch that will solve
these particular problems. Could you please apply it to the SVN
head for utilities/osis2mod.cpp. Comments are handled similar to
spaces: they are skipped. And handleToken() now looks for the first
<div> after the</revision> end tag.
In general, I think that (perhaps eventually) the proper way to
parse XML is to use a library like libxml---which is designed
specifically for this purpose.
Yours truly,
John Zaitseff
_______________________________________________
sword-devel mailing list: sword-devel@crosswire.org
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page