DITA and XMetaL Discussion
deschnerc July 31, 2009 at 7:15 am
How to prevent changing absolute DTD-Path to relative Path when saving () a fileJuly 31, 2009 at 7:15 amParticipants 0Replies 1Last Activity 12 years, 11 months ago
there is one problem:
I made a specialization DTD which is availabe on my local file system “C:Program FilesXMetaL 5.5AuthorDITAXACs…”. This path is given in the DTD definition of my DITA topic template files.
When creating a new document from a template this path will be modified to a relative path while saving this document.
How can I avoid modifiying the DTD-Path?
THX a lot…Derek Read July 31, 2009 at 4:06 pm
Reply to: How to prevent changing absolute DTD-Path to relative Path when saving () a fileJuly 31, 2009 at 4:06 pm
I think the proper question in this case should actually be: How do I properly configure a DITA template. This is documented in the help topic “Create a template”.
XMetaL Author Enterprise (for DITA functionality) wants your templates to look like this:
ie: The SYSTEM id should just reference the DTD without a path.
XMetaL will then be able to use the catalog that it automatically configured when you used the “Select Specialized DITA DTD…” option and selected your DTD. It also means that other applications (such as the DITA OT, a CMS, and any of our competitor's editing tools) should be able to find their copy of a standard DITA DTD (if they include it), or find your specialized DTD if you add the proper entry in the catalog file they use.
However, I would also double check to see that the DTD filename is correct. You are pointing to the shell DTD that XMetaL places in the XAC folder (this is done so that XMetaL can locate the rest of the customization files, such as CSS, that it needs to render the document). This file in turn references your original specialized DTD (open t3_shell_ditabase.dtd in a text editor and you will see what I mean).
In your case I think your DOCTYPE declaration should look like this:
Note that the original question you asked does not really apply here, though there is an answer for it for people that are working with non-DITA. You either use the same type of DOCTYPE declaration as listed above together with a PUBLIC id and proper catalog settings (or you place the DTD in the same folder as the XML document or in the Rules folder), or you use a relative path or full path and set a special INI variable documented for the use of developers in the XMetaL Developer Customization Guide that tells XMetaL to not correct the path when a file is moved. The problem with this last option is that the next time you open XMetaL Author the path will be incorrect and XMetaL will be unable to locate the DTD so I do not recommend it for most people unless that is really what they want. There is a topic on “What to do when the DTD cannot be found”. For really advanced people (dev types) there is also an API that allows you to override all this stuff and tell XMetaL to use a particular DTD (or Schema).
- You must be logged in to reply to this topic.