Plugin order on catalog-dita.xml
Posted: Wed Apr 29, 2026 2:51 pm
Hi everyone,
BACKGROUND
We needed a custom attribute for PH elements. @otherprops and @ouputclass were already in use, so we genuinely needed a new custom attribute, which we successfully implemented in a DITA OT plugin using DTDs.
Our solution has 3 plugins: one for PDF output, one for HTML output, and a common plugin used by both outputs, so we added the custom attribute to the common plugin. The custom attribute works perfectly, Oxygen Editor correctly displays the custom attribute for PH elements, and DITA handles the custom attribute when building output.
PROBLEM
The problem is that now--after the addition of our new code--our common plugin only works if it is listed first in plugin/org.dita.base/catalog-dita.xml. For years the order never mattered, but now it does. We've written a script to rewrite catalog-dita.xml as a workaround, but we would prefer a solution that doesn't require editing in org.dita.base every time dita install is run.
Is there a way to specify plugin priority, or is there a better way to specify custom attributes that avoids this issue?
BACKGROUND
We needed a custom attribute for PH elements. @otherprops and @ouputclass were already in use, so we genuinely needed a new custom attribute, which we successfully implemented in a DITA OT plugin using DTDs.
Our solution has 3 plugins: one for PDF output, one for HTML output, and a common plugin used by both outputs, so we added the custom attribute to the common plugin. The custom attribute works perfectly, Oxygen Editor correctly displays the custom attribute for PH elements, and DITA handles the custom attribute when building output.
PROBLEM
The problem is that now--after the addition of our new code--our common plugin only works if it is listed first in plugin/org.dita.base/catalog-dita.xml. For years the order never mattered, but now it does. We've written a script to rewrite catalog-dita.xml as a workaround, but we would prefer a solution that doesn't require editing in org.dita.base every time dita install is run.
Is there a way to specify plugin priority, or is there a better way to specify custom attributes that avoids this issue?