You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@xerces.apache.org by David Cargill <ca...@ca.ibm.com> on 2003/10/10 22:51:34 UTC

resolveEntity() callback enhancement for providing namespace information




The following is my proposed solution to providing namespace information on
the resolveEntity() callback.  The solution is based on the Java
implementation.  If anyone has any comments/suggestions please let me know.
Thanks.

Create a new interface, XMLEntityResolver that has a new version of
resolveEntity that takes as a parameter the new class,
XMLResourceIdentifier.  The parsers would have a new setXMLEntityResolver
method that accepts a XMLEntityResolver pointer.  Only one entityResolver
can be set (ie. you can set either the old SAX entity resolver or this new
one), if you set both, the last one set will be used.

Update the XMLEntityHandler class to have a new version of resolveEntity
that takes as a parameter the new object, XMLResourceIdentifier.

The XMLResourceIdentifier would have getter methods for: publicId,
systemId, baseURI, namespace (all strings) and a type enum that describes
the type of entity to be resolved (SchemaImport, SchemaInclude,
SchemaGrammar, ExternalEntity).  The type enum would be used to "control"
which datatypes are available (ie. each enum defines the list of data
members which may be set by the parser) so in the future we could extend
the list of enum's and correspondingly the getter methods.

Attached are the class definitions for XMLEntityResolver and
XMLResourceIdentifier:
(See attached file: XMLEntityResolver.hpp)(See attached file:
XMLResourceIdentifier.hpp)

Thanks in advance.

Regards,
David A. Cargill

Re: resolveEntity() callback enhancement for providing namespace information

Posted by Gareth Reakes <ga...@decisionsoft.com>.
Hi David,
	This will solve all problems we have in this area.

Cheers,

Gareth


On Fri, 10 Oct 2003, David Cargill wrote:

> 
> 
> 
> 
> The following is my proposed solution to providing namespace information on
> the resolveEntity() callback.  The solution is based on the Java
> implementation.  If anyone has any comments/suggestions please let me know.
> Thanks.
> 
> Create a new interface, XMLEntityResolver that has a new version of
> resolveEntity that takes as a parameter the new class,
> XMLResourceIdentifier.  The parsers would have a new setXMLEntityResolver
> method that accepts a XMLEntityResolver pointer.  Only one entityResolver
> can be set (ie. you can set either the old SAX entity resolver or this new
> one), if you set both, the last one set will be used.
> 
> Update the XMLEntityHandler class to have a new version of resolveEntity
> that takes as a parameter the new object, XMLResourceIdentifier.
> 
> The XMLResourceIdentifier would have getter methods for: publicId,
> systemId, baseURI, namespace (all strings) and a type enum that describes
> the type of entity to be resolved (SchemaImport, SchemaInclude,
> SchemaGrammar, ExternalEntity).  The type enum would be used to "control"
> which datatypes are available (ie. each enum defines the list of data
> members which may be set by the parser) so in the future we could extend
> the list of enum's and correspondingly the getter methods.
> 
> Attached are the class definitions for XMLEntityResolver and
> XMLResourceIdentifier:
> (See attached file: XMLEntityResolver.hpp)(See attached file:
> XMLResourceIdentifier.hpp)
> 
> Thanks in advance.
> 
> Regards,
> David A. Cargill

-- 
Gareth Reakes, Head of Product Development  +44-1865-203192
DecisionSoft Limited                        http://www.decisionsoft.com
XML Development and Services




---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-c-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-c-dev-help@xml.apache.org