Re: DTD syntax checking

George Cristian Bina


From this message:
Could not resolve PublicID: [null] SystemID: [file:/.../com.dtd.test/dtd/technicalContent/dtd/ourReference.dtd]

It looks like your document specifies a DTD using a SYSTEM identified and without a PUBLIC identifier.
This means that the catalog resolution is done on the SYSTEM identifier. If that SYSTEM identifier is a relative location (not an absolute URI) then that is very sensible to both finding the DTD location and mapping it thought the catalog, because it is made absolute before going to the catalog to be resolved.
As Bill also mentioned, if the file is not saved then the base URL for resolving relative references will be considered the oXygen working directory, and that may also create issues.

To get to the point, please check if you are using relative references and if that is the case then this is probably the reason for the issue. There are a few solutions:

- resolve the references using resoveSuffix entries in the catalog, thus you basically ignore the variable part of the absolute URL that will be used for catalog resolution
- use absolute URLs instead, you resolve them anyway through the catalog
- use also PUBLIC identifiers and prefer them for catalog resolution

Hope this helps!

Best Regards,
George Cristian Bina
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger

On 6/11/20 5:11 PM, Bill Burns wrote:
Hi, Larry.
I seem to recall seeing this happen if I'm not using a project ion Oxygen and on initial creation of topics with a custom DTD. The error would go away once the topic is saved.
*Bill Burns*
bb@... <mailto:bb@...>
512-646-2100 ext. 365
*We are [A] * <>
On Wed, Jun 10, 2020 at 10:07 PM Radu Coravu <radu_coravu@... <mailto:radu_coravu@...>> wrote:
Hi Larry,
If you can provide us (support@...
<mailto:support@...>) with a sample XML document, DTD
specialization plugin and steps to reproduce the problem I can try
to look more into this.
Because right now I do not know how the DTD is mapped through the
XML catalog, I do not know how the XML document refers to the DTD
and what precise error you get when you attempt to validate the
newly created XML document before saving it.
Radu Coravu
Oxygen XML Editor
On 6/11/20 12:10 AM, Larry Kollar wrote:
We've recently been alerted to an issue in our (mostly
constrained) DTDs. If I set the catalog in Oxygen 20.1 to use the
directory where I'm storing a working set, it will trip errors
when I attempt to create certain topics (path scrubbed):

Could not resolve PublicID: [null] SystemID:

I've been all through the catalogs and ent/mod files. I corrected
a couple of issues, and that reduced but didn't eliminate the
errors. Is there anything in Oxygen that can provide a more
specific pointer to the problem? The "ourReference.dtd" is defined
in the catalog, for example, so I don't know why it can't resolve
the public ID.

Interestingly enough, the error occurs when creating a topic from
templates we stored in Oxygen. BUT, if I save the created topic
file and re-open it, no errors.

Join to automatically receive all group messages.