Setting up and using Catalogs for XSD-Based Documents

I'm trying, pretty much for the first time, to configure Oxygen 8.1 to use a catalog to resolve noNamespaceSchemaLocation= values. For example, I have this document root element: <map xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:oasis:names:tc:dita:xsd:map"
(The URN is one I made up just for testing) And this catalog: <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="public"> <group xml:base="schema/"> <uri name="urn:oasis:names:tc:dita:xsd:map" uri="map.xsd"/> <public publicId="urn:oasis:names:tc:dita:xsd:map" uri="map.xsd"/> </group> </catalog> Where schema/ is a directory below the directory containing the catalog and the files are there (that is, a document in the same directory as the catalog with this root element is valid: <map xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="./schema/map.xsd"> I have turned on catalog verbosity and I can see in the catalogs tab that my catalog is being loaded, but I'm not sure what the "Public: " messages are telling me, but I'm seeing entries like this: SystemID: null Description: Public: null System: file:/C:/projects/DITA-OT1.3.1/schema/tblDeclMod.xsd = null In any case, my document that uses the URN is not being validated--I get the "there is no schema or DTD associated with this document" message. Is this user error or a limitation of the catalog mechanism? Thanks, Eliot -- W. Eliot Kimber Professional Services Innodata Isogen 8500 N. Mopac, Suite 402 Austin, TX 78759 (214) 954-5198 ekimber@innodata-isogen.com www.innodata-isogen.com

W. Eliot Kimber wrote:
I'm trying, pretty much for the first time, to configure Oxygen 8.1 to use a catalog to resolve noNamespaceSchemaLocation= values.
Actually, I noticed that I don't get any catalog-related messages until I open a document that points directly to my scheme via a local URL. Cheers, E. -- W. Eliot Kimber Professional Services Innodata Isogen 8500 N. Mopac, Suite 402 Austin, TX 78759 (214) 954-5198 ekimber@innodata-isogen.com www.innodata-isogen.com

W. Eliot Kimber wrote:
W. Eliot Kimber wrote:
I'm trying, pretty much for the first time, to configure Oxygen 8.1 to use a catalog to resolve noNamespaceSchemaLocation= values.
Actually, I noticed that I don't get any catalog-related messages until I open a document that points directly to my scheme via a local URL.
This is totally user error: I should have been using system entries rather than public entries. [But in fact now that I think back on it, I remember now that there is a design bug in how Xerces implements catalog resolution in that they use their entity resolution framework to resolve URIs for schemas, which is just wrong. However this behavior is so deeply embedded in the code that it would be very difficult to change it without a serious refactoring. In addition, they provide no way to do automatic recursive resolution of URIs via a catalog, which the catalog spec clearly says you should do or at least enable via your catalog resolution API.] Cheers, E. -- W. Eliot Kimber Professional Services Innodata Isogen 8500 N. Mopac, Suite 402 Austin, TX 78759 (214) 954-5198 ekimber@innodata-isogen.com www.innodata-isogen.com
participants (1)
-
W. Eliot Kimber