[oXygen-user] Working with Catalogs

Eliot Kimber
Fri Sep 30 10:33:34 CDT 2005


I'm trying to set up some new catalogs for DITA (I'm tasked with 
defining how DITA will use various forms of URL and public ID to handle 
version-specific and inspecific references).

I'm trying to use oXygen 6.2 to develop and test my catalogs and I'm not 
having much luck, which is probably mostly user error but I think there 
may be some limitations in oXygen's catalog implementation and I'm 
trying to figure out which is which. Unfortunately, the online help for 
catalogs is not helpful in this case.

I'm trying to do several things:

1. Set up entries that map namespace URIs to local URLs for the 
corresponding schema document

2. Set up entries that map one URL to another URL.

3. Set up entries that map public IDs to system IDs that are 
fully-qualified URLs that then map, via URI entries, to local files

I'm running into several problems. In all cases, I have set the catalog 
options to not use the default catalogs and I only list one top-level 
catalog, which then uses <next-catalog> elements to point to subordinate 
catalogs that do the actual mapping, i.e.:

<catalog>
   <nextCatalog catalog="dtd/catalog-dita-dtd.xml" />
</catalog>

--------------------------------------------
Problem 1: HTTP URL not resolved via catalog

I have a document with this DOCTYPE declaration:

<!DOCTYPE topic SYSTEM 
"http://dita.oasis-open.org/DITA/version.1.0/topic.dtd">

In my catalog I have this entry:

  <uri name="http://dita.oasis-open.org/DITA/version.1.0/topic.dtd"
           uri="topic.dtd"/>

I have verified that the file "topic.dtd" is where the catalog says it 
is (using "edit file at cursor within oXygen).

When I validate the document, I get this error:

"Description: F HttpException-dita.oasis-open.org 
(http://dita.oasis-open.org/DITA/version.1.0/topic.dtd)"

This suggests that the validator is trying to resolve the URL and, upon 
failure to do so (the URL isn't currently resolvable), is not then 
trying to resolve it via the catalog, which it should be doing.

Also, in this case, even if the URL was resolvable over the net, I would 
prefer to have it resolved via the catalog--I didn't see an option for 
controlling that behavior.


-----------------------------------------------------
Problem 2: Non-HTTP URN gives malformed URL exception

In another document I have this doctype declaration:

<!DOCTYPE topic SYSTEM 
"urn:oasis:http://dita.oasis-open.org/DITA/topic.dtd">

When I try to validate I get this failure:

"Description: F MalformedURLException-unknown protocol: urn"

This suggests that oXygen is expecting the SYSTEM value to be an HTTP 
URL, which is not required by the XML spec (the SYSTEM value is a URI, 
not a URL).

In this case, I would expect the validator to try to resolve the URN via 
the catalog (where it is mapped) and only if that fails then return 
"could not resolve URN" error, not a malformed URN exception.

------------------------------------------------------
Problem 3: Unclear response from catalog verbose trace

It's also not clear what these catalog trace messages are telling me:

Description: Public: null System: 
http://dita.oasis-open.org/DITA/version.1.0/topic.dtd = null

In particular, what the final "null" is indicating--does that indicate 
that the file to which the URI is mapped couldn't be found? I couldn't 
find an explanation of this case in the online docs.

Cheers,

Eliot
-- 
W. Eliot Kimber
Professional Services
Innodata Isogen
9390 Research Blvd, #410
Austin, TX 78759
(512) 372-8841


www.innodata-isogen.com




More information about the oXygen-user mailing list