Page 1 of 1

Schematron Quick fix fails due to malformed DTD URL

Posted: Thu Mar 13, 2025 6:17 am
by whyme
I have a file with a DOCTYPE declaration like this: <!DOCTYPE list SYSTEM "D:\list.dtd" []>
A Schematron Quick Fix applied to this file fails with error "E Malformed URL D:\list.dtd(base file:/D:/....)"
When I add the file:/ scheme prefix, it works fine.
Yes, I understand that the system literal strictly speaking doesn't conform to RFC3986. But the thing is, everywhere else in the Oxygen ecosystem (validation, transformation, etc.), forgiveness/allowance is made for this DTD system declaration and other URLs that begin with the Windows-style drive letter + colon. Can Oxygen's SQF processing be relaxed to offer the same kind of accommodation?

Re: Schematron Quick fix fails due to malformed DTD URL

Posted: Fri Mar 14, 2025 1:15 pm
by tavy
Hello,

I will create an issue in our issue tracker to investigate whether we can make the quick fix execution more flexible. In the meantime, I recommend creating a catalog file and setting it as a custom catalog in Oxygen, for example:

Code: Select all

<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
    <systemSuffix systemIdSuffix="D:\list.dtd" uri="file:/D:/list.dtd"/>
</catalog>
To register this catalog, open the Preferences dialog box (Options > Preferences) and navigate to XML > XML Catalog.

For more details, see our documentation:
https://www.oxygenxml.com/doc/versions/ ... alogs.html

Best Regards,
Octavian

Re: Schematron Quick fix fails due to malformed DTD URL

Posted: Tue Mar 18, 2025 12:33 am
by whyme
Thank you! Very useful workaround I hadn't thought of.