DITA and XMetaL Discussion

XMetaL Community Forum DITA and XMetaL Discussion "DTD note found" only on 32-bit machines

  • larrygolding

    "DTD note found" only on 32-bit machines

    Participants 3
    Replies 4
    Last Activity 11 years, 1 month ago

    We are using XMetaL(R) Author Enterprise 6.0 Service Pack 1, SP Edition.

    I have written a set of XMetaL customizations consisting of three custom topic types, each derived from the DITA Concept topic type. When I install these customizations on a 64-bit machine, they work fine: I can do File, New, select my custom topic types, and create a new topic according to my template. But on a 32-bit machine, XMetaL displays the “DTD not found” dialog (“c:ProgramDataXMetaLXMConnector_Cache could not be opened because a DTD could not be found.”)

    I have seen this work on three different 64-bit machines, and fail on three different 32-bit machines.

    This is a big problem for us because all the contractors creating our content have 32-bit machines!

    Thanks for your help,


    Derek Read

    Reply to: "DTD note found" only on 32-bit machines

    Sounds like a pathing problem in one of the catalog files used to locate the DTD.
    Check in the Rules subfolder for files with *.soc extension and confirm that one of them has an entry that maps your PUBLIC id to the DTD XMetaL should be using.



    Reply to: "DTD note found" only on 32-bit machines

    Sounds more like the template was created  on a 64bit machine and the absolute path was used. The Error path also contains …XMConnector… is it part of the Xmetal connector your using supposed to get the dtds from a cms?

    In ether case it should not be looking in ProgramData on a 32 bit machine.


    Derek Read

    Reply to: "DTD note found" only on 32-bit machines

    I remembered this other post you made (http://forums.xmetal.com/index.php/topic,1654.0.html) mentioning that you wish to use only SYSTEM ID. So, my assumption that bad catalog entries would not come into play (as gcrews suggests).

    You might wish to look into using a PUBLIC id (with appropriate catalog file entry). This will allow you to move your XML documents around to any location and let XMetaL find your DTD (provided you install it to the same location on each machine).

    Not sure if your connector does anything with paths. There are APIs that allow you to override both SYSTEM and PUBLIC ID values if you wish to code that into your connector. I would recommend use of a PUBLIC id though, as that would also be useful for other XML parsers, those that support catalog lookup anyway. The DITA Open Toolkit uses its own catalog lookup for example.



    Reply to: "DTD note found" only on 32-bit machines

    Thanks Derek. The problem is as you said in your first reply: my dita_specialized.soc files had lines like this on a 64-bit machine:

    PUBLIC "-//Microsoft//DTD My Custom Type//EN" "c:Program Files (x86)XMetaL 6.0AuthorDITAXACsmyTypemyType_ditabase.dtd"

    (correct), but on a 32-bit machine the lines look like this:

    PUBLIC "-//Microsoft//DTD My Custom Type//EN" "XMetaL 6.0AuthorDITAXACsmyTypemyType_ditabase.dtd"

    This is a bug in my installer. Adding c:Program Files to the start of the path (on 32-bit machines) solves the problem. Thanks as always for the help!



  • You must be logged in to reply to this topic.

Lost Your Password?