Eliot Kimber wrote:
> I have created a DTD-based specialized topic type. All the declarations
> have been validated with a number of tools (Oxygen, Arbortext Editor,
> the Open Toolkit).
> 
> I have created a directory for the specialization in the addon
> directory. In there is a catalog file that contains this entry:
> 
>   <nextCatalog
> catalog="file:///c:/DITA-OT1.3.1/catalog-dita_template.xml"/>

We are somewhat naive users of XML catalogs. For us, an XML catalog is
essentially a way to say: do not download the DTD from the Web, use this
local copy.

I've never used <nextCatalog> in my life. So it will be hard for me to
quickly answer your questions. See below.



> 
> Which hooks into into my mail DITA catalog, which then points to the
> catalogs for my specialized DTDs.
> 
> Using OxygenXML, I set this catalog as my only catalog and verified that
> my specialized topic instances are valid.
> 
> So I'm sure that part of things is set up correctly.
> 
> However, when I go to open a topic that uses my specialization I get
> this error:
> 
> "unit.mod:, line 72, column 18: reference to undefined parameter entity
> "abstract"
> 
> Abstract happens to be the first parameter entity referenced in the
> content model for my specialized topic element in "unit.mod". However,
> the parameter entity in question is declared in a DITA-provided module
> that is included by the shell DTD (unit.dtd).
> 
> That is, the document is valid and the DTD is correctly structured, so
> there must be something else at work.
> 
> The most likely failure is that XML Mind's resolver is preferring system
> IDs instead of system IDs when resolving entity references. This could
> account for the behavior (since I didn't create yet another copy of the
> DITA-provided declaration components, they are not in the relative
> locations indicated by the ENTITY declarations in my shell DTD).
> 
> I didn't see anything in the documentation on XML catalogs on how to
> control things like preference of SYSTEM or PUBLIC IDs.

XMLmind XML Editor always prefers public IDs over system IDs. There is
no way to control that.



> It's also not clear what the interaction of different catalogs is, since
> all the add-ons appear to contribute catalogs (or do they?). 

That's right. This has proven to be very convenient.

The contents of all *atalog.xml files discovered by XMLmind XML Editor
during its startup are programmatically merged into one giant, private,
XML catalog used by our product. More info in
http://www.xmlmind.com/xmleditor/_distrib/doc/configure/addon_discovery.html

This XML catalog is really private: it is only used by XMLmind XML
Editor (and by the Saxon bundled with our product during the execution
of "process" commands).

The bundled DITA OT, which ``lives in a universe of its own'', does not
use it. It uses XML catalogs of its own.

Conversely, XML catalogs setup for the bundled DITA OT are completely
ignored by XMLmind XML Editor. (I suspect that your problems come for
this fact.)




> This could
> be a big problem since it would be difficult to ensure that a given
> top-level shell uses the versions of the declarations it needs (e.g.,
> DITA 1.0 vs DITA 1.1) without making local (and redundant) copies of the
> declarations.
> 

I'm sorry but I don't understand. I could help you more if you sent me
(hussein at xmlmind.com) a zip archive containing all the files you use
when you open a topic in XMLmind XML Editor. I'll use this occasion to
learn more about DITA specialization and about XML catalogs.

Reply via email to