But what about entities? If they are expanded when the XML is parsed, things
get a little complicated when the parse tree is converted back to XML, unless
there is no attempt at restoring the original entities.
Now I currently track which nodes have been modified (dirty), where a node
is counted as modified if any of its children have been modified. --I use the
original input for output when a node is unmodified. I would need to track the
pre-expanded entity input for each node.
But lets say an entity expands to XML which becomes two of the children of
a common node. The problem now is if either child is modified, the subsequent
XML would not be able to reference the original entity.
(Yes, this probably turns into the answer I want, but I suspect there is
a lot more work here. Particularly since I currently have no code for
expanding the entities in the first place.)
Please feel free to look at what I've done. The zip file can be found at
http://www.camb.opengroup.org/~laforge/coins/#related_links
But as I said before, the bulk of that has to do with the extensible
processor, and only the small CoinLoader class actually does any parcing.
Bill