Hello,

The XML catalogs set in oXygen is used correctly by Trang for converting
XML inputs but not for converting DTD ones because Trang uses a custom
non JAXP parser for parsing a DTD input, that is
com.thaiopensource.xml.dtd.parse.DtdParserImpl which uses a custom non
JAXP resolver. You can modify this DTD parser class by setting your own
custom entity resolver which uses the oXygen catalog resolver class
(ro.sync.xml.catalogresolver.CatalogResolverFactory.CatalogEntityResolver
available in oxygen.jar) instead of setting an instance of
com.thaiopensource.xml.dtd.app.UriEntityManager on the line 143 of
com.thaiopensource.relaxng.input.dtd.DtdInputFormat which is an internal
Trang class. On line 143 of DtdInputFormat:

   Dtd dtd = new DtdParserImpl().parse(uri, new UriEntityManager());

you should replace UriEntityManager with your own resolver, for example:

Dtd dtd = new DtdParserImpl().parse(uri, new CustomCatalogResolverManager());

To replace Trang's version of DtdInputFormat with your modified version just package your version and your custom entity resolver in a jar file, place this jar file in the folder [oXygen-install-folder]/lib/endorsed and restart oXygen.

We will add such a custom entity resolver for Trang's DTD inputs in a future version of oXygen but it should not be difficult to implement it and set it yourself in the meantime.


Regards,
Sorin


Eliot Kimber wrote:
I'm trying to use Trang through Oxygen to create flat schemas from my local shells and specializations. I immediately ran into the problem that all my stuff depends on catalogs and it looks like Trang isn't using the catalogs configured in the main editor.

Is there an easy way to hook in the catalogs?

Thanks,

Eliot

_______________________________________________
oXygen-user mailing list
[email protected]
http://www.oxygenxml.com/mailman/listinfo/oxygen-user

Reply via email to