
George Cristian Bina wrote:
Hi Eliot,
There are two requirements that we extracted from these emails:
1. Allow multiple levels of indirection through the catalog mappings
Yes
2. Use uri mappings instead of system mappings for schema locations
Yes.
We will consider both, the second one is a little more difficult to implement.
There is a third requirement, which is provide control over whether to use the catalog first or second when resolving system IDs and URIs. The current behavior is to try to resolve a URI via the net and only if that fails, try the catalog. I would like the option of doing the reverse, namely attempting to do all resolution locally first.
The first requirement also needs attention as the catalogs may contain direct or indirect recursion.
I'm not sure I follow you here--I think there can only be direct recursion--that is, a given entry either resolves to another URI mapped in the catalog or it doesn't. If it doesn't then you will never return to the catalog (because either you will resolve the resource from where it is served or resolution will fail completely).
We are using currently the catalog as an EntityResolver set on the XML parser thus it is not possible to use uri mappings as all we get at that level is a resolveEntity call.
Hmm. Is this an aspect of a standard API behavior or the behavior of the specific parser you're using? I'm not necessarily conversant with this level of detail in SAX or JAXP. If I'm asking for something that's at odds with current APIs perhaps I need to rethink my request (not that the request is incorrect in principle, but if it's in conflict with established, albeit incorrect, practice, far be it from me to buck that trend). Using uri mappings requires usage of
parser specific support, in our case working at XNI (Xerces Native Interface) level.
Hmm, OK. I'm not sure what this means at the implementation level, but I assume this means that you've got to use a tighter binding to the parser. Cheers, E. -- W. Eliot Kimber Professional Services Innodata Isogen 9390 Research Blvd, #410 Austin, TX 78759 (512) 372-8841 ekimber@innodata-isogen.com www.innodata-isogen.com