RE: [xml] SaxParser: getEntity() callback
- From: Murray Cumming Comneon com
- To: veillard redhat com
- Cc: xml gnome org, libxmlplusplus-general lists sourceforge net
- Subject: RE: [xml] SaxParser: getEntity() callback
- Date: Wed, 22 Oct 2003 13:39:37 +0200
From: Daniel Veillard [mailto:veillard redhat com]
On Wed, Oct 22, 2003 at 11:16:03AM +0200,
Murray Cumming Comneon com wrote:
Has anyone ever successfully used the getEntity() callback?
It needs
to return an xmlEntity instance, but I can't imagine that
anyone could
create one with all the right voodoo contents:
http://xmlsoft.org/html/libxml-tree.html#xmlEntity
I can't find any way to get the xmlEntity that would have
been created
by libxml automatically if I had set the getEntity() to NULL. That
might at least be a starting point.
I know this is difficult, but I hope it isn't impossible.
1/ Look at SAX2.c implementation
I think this might be easier if that default implementation was publically
accessible. I think that's why it's easier with the DOM Parser. The DOM
Parser lets us resolve the entity reference if we like, or do our own thing.
With the SAX parser it's all or nothing.
I'm not sure exactly what part of SAX2.c would need to be public API.
2/ Look at entities.c in 2.6.0 for the predefined static entities
3/ Look at the XML-1.0 spec about the various processing of entities
http://www.w3.org/TR/REC-xml#entproc
consider the complexity of the given table
4/ Consider the fact that libxml2 may either substitute entities or
keep them in the tree (including in attributes content)
You will get an idea of what's difficult, that it's not
impossible (since libxml2 does it !), but that you will have
to duplicate code behaviour from libxml2 in your SAX handler.
If you want proper entities processing the tree or xmlReader
based approach are definitely simpler since libxml2 take care
of the complexity.
Thanks. I think I'll just explain the complexity in the libxml++ reference
documentation, and leave it to future generations to make it simpler and/or
provide an example.
Murray Cumming
www.murrayc.com
murrayc usa net
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]