Topics

DTD syntax checking

Larry Kollar
 

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: [file:/.../com.dtd.test/dtd/technicalContent/dtd/ourReference.dtd]

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.

Radu Coravu
 

Hi Larry,

If you can provide us (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.

Regards,
Radu
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: [file:/.../com.dtd.test/dtd/technicalContent/dtd/ourReference.dtd]

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.


  

Bill Burns
 

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
512-646-2100 ext. 365
--
We are [A] 


On Wed, Jun 10, 2020 at 10:07 PM Radu Coravu <radu_coravu@...> wrote:

Hi Larry,

If you can provide us (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.

Regards,
Radu
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: [file:/.../com.dtd.test/dtd/technicalContent/dtd/ourReference.dtd]

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.


  


George Cristian Bina
 

Hi,

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
--
George Cristian Bina
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com

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] *
simplea.com <http://simplea.com>
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.
Regards,
Radu
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:
[file:/.../com.dtd.test/dtd/technicalContent/dtd/ourReference.dtd]

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.

Larry Kollar
 

Hi Radu,
I'll check to see if the employer is OK with sending those. I think I solved the problem, but I'll give as much detail as possible in hopes of better troubleshooting techniques in the future.