Menu

DITA Support: DTDs, Catalogs, Entity Referenc

Help
2009-04-17
2012-12-07
  • Kurt Keyser

    Kurt Keyser - 2009-04-17

    Hi,

    I'm new to catalogs on Linux and certainly new to XMLCE so please forgive my ignorance. 

    I've hit a roadblock and my guess is that our DTDs use entity references that are not supported by XML Copy Edit.  These same DTDs are working perfectly in Oxygen, XMLMind, and XMetaL.  Please confirm if my fear is correct.

    I've added our company's DITA DTDs via the /etc/xml/catalog file.  I've inserted this entry in that file:

    <delegatePublic publicIdStartString="-//OASIS//DTD DITA" catalog="file:///etc/xml/DITA/catalog-dita.xml"/>

    I've then placed the catalog-dita.xml file in the /etc/xml/DITA folder and it then points relativistically (from the DITA folder) at the appropriate dtd/mod/ent files depending on the doctype declaration of the XML file being read.

    However, when I attempt to validate a file with this doctype declaration in XMLCE:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN" "dtdbase.dtd" []>

    I get this error:
    Unexpected validation error

    It appears to be finding the catalog and probably the corresponding DTD as well because the very first line:
    <?xml version="1.0" encoding="UTF-8"?>
    is redlined after running the validator.  That tells me it's finding the DTD because I'm not getting a "can't find /path/to/xml/dtdbase.dtd" message.

    When I open the matching DTD, I get this error when I try to validate it:
    Validation stopped at line 49, column 2: Expected comment or CDATA

    The line it died on reads:
    <!ENTITY % DITAArchNSPrefix

    In context:

    <!-- ============================================================= -->
    <!--                   ARCHITECTURE ENTITIES                       -->
    <!-- ============================================================= -->

    <!-- default namespace prefix for DITAArchVersion attribute can be
         overridden through predefinition in the document type shell   -->
    <!ENTITY % DITAArchNSPrefix
                           "ditaarch"                                    >

    <!-- must be instanced on each topic type                          -->
    <!ENTITY % arch-atts "
                 xmlns:%DITAArchNSPrefix;
                            CDATA                              #FIXED
                           'http://dita.oasis-open.org/architecture/2005/'
                 %DITAArchNSPrefix;:DITAArchVersion
                            CDATA                              '1.1'"    >

    Please let me know if there's a way to fix this.

     
    • Kurt Keyser

      Kurt Keyser - 2009-04-17

      Just FYI, I believe .NET crashes at the same point...  These entity defs are rough on parsers, apparently.  But then, many editors are able to overcome it, so it must be possible!

       

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.