Re: [dita] Issues in DTDs checked into SVN

From
Kristen James Eberlein <>
Date
2014-10-20T15:31:58+00:00
ID
Thread
Re: [dita] Issues in DTDs checked into SVN
OK, we'll have this as an agenda item
      for tomorrow's TC call.

      

      Eliot, it sounds as if the TC needs to know more about your test
      processes, and that perhaps we need to have TC members do manual
      comparisons of the official 1.2 DTD files and the 1.2 DTD files in
      SVN that I assume you generated from the RNG. Robert, how far did
      you get with your manual comparison?

      

      We might also need to consider a date by which we freeze the
      generation of DTD from RNG, and handle everything manually after
      that point.

      

      We need to have packages publicly available so that we can gather
      statement of use ...

      

      
Best,

        Kris

        

        Kristen James Eberlein

        Chair, OASIS DITA Technical Committee

        Principal consultant, Eberlein Consulting

        www.eberleinconsulting.com

        +1 919 682-2290; kriseberlein (skype)

        

      

      On 10/20/2014 10:27 AM, Robert D Anderson wrote:

    

    
      
Hi,

        

        After Kris found the DTD issue
          with the (map mapgroup-d) token last week, I realized that the
          copy of DITA 1.2 checked in to SVN did not match the copy of
          DITA 1.2 shipped by OASIS. I did some comparison of the
          shipped DITA 1.2 and SVN 1.2, and found many inconsistencies.
          Everything I've listed below is also an issue for the DITA 1.3
          DTDs. I found all of these issues by comparing 1.2 level DTDs
          - not comparing the RNGs - so this presumably mixes RNG issues
          with conversion tool issues, and also means that this testing
          did not cover anything new to 1.3.

        

        1. All embedded files are
          missing public IDs. These have been present since 1.0, and in
          1.2 we explicitly made all internal public IDs use
          version-specific values. This was done by TC request, and they
          should be added back.

        

        2. Several entity declarations
          have been removed from the DTD. Some are unlikely to cause
          problems but all could potentially be referenced in
          specialized DTDs (I know of DTDs that reference the first
          one):

        - %rel-atts in topic.mod:
          deprecated in 1.2 but left in for backwards compatibility

        - %hazard.cnt used to set
          content models in hazard domain

        - In the tblDecl.mod, unlikely
          to cause problems but for completeness:

        -- Entity %bodyatt; removed
          from table attribute list - was empty, present as part of
          OASIS table model

        -- Dropped entity
          %tbl.table.name; (value was "table") -- previously used to
          define the element name

        -- Dropped entity %titles;
          (value was "title?") -- it was declared but unused in OASIS
          DITA 1.2

        

        3. The error Kris found in the
          mapgroup domain token is still present in the glossref domain
          and learningMapDomain tokens (both claim to be based on
          topic).

        

        4. The domain token for
          learningAssessment has changed - not sure if this is
          intentional - from "(topic
          learningBase+learningInteractionBase-d learningAssessment)" to "(topic learningAssessment)"

        

        5. In ditabase.dtd, the
          declaration of <dita> has dropped several attributes.
          The following are present in DITA 1.2 but missing in DITA 1.3:

        %arch-atts --
          @ditaarch:DITAArchVersion, @xmlns:ditaarch, 

        %debug-atts -- @xtrc, @xtrc.

        Related: in 1.3 we've added
          @translate and @dir to the existing @xml:lang -- I think these
          should be added using the common localization-atts group
          rather than declared independently?

        

        6. The task domain entity
          (topic task) has been dropped from ditabase.dtd, task.dtd, and
          machineryTask.dtd

        

        7. glossary.dtd is broken: it
          is supposed to redirect to glossentry.dtd but actually does
          nothing

        

        8. The topic containment
          entities are broken in learningContent.dtd. The
          learningContent element previously allowed lots of children,
          currently 1.3 changed this to only allow
          <no-topic-nesting>:

        1.2 as shipped: <!ENTITY % learningContent-info-types "((concept | task
          | reference | topic)*, (learningAssessment)?,
          (learningSummary)?)">

        1.2 and 1.3 in SVN: <!ENTITY % learningContent-info-types

        "no-topic-nesting"

        >

        

        9. Related - the content model
          for <topic> inside the learningContent doctype has also
          changed, pretty sure this was not intentional. DITA 1.2
          shipped with this declaration in learningContent.dtd:

        <!ENTITY % topic-info-types "(no-topic-nesting)?">

        The SVN copies do not declare
          this entity, and as a result the default is picked up, and
          <topic> now allows nesting of <topic>

        

        10. The
          strictTaskbodyConstraint domain entity name is invalid. The
          name of the entity name has changed from
          "taskbody-constraints" to "strictTaskbody-constraints". This
          will break any user of the constraint, and also violates the
          spec (spec requires the entity use the literal element name).
          I believe this error was introduced recently, it was not in my
          copy of SVN until I updated on Friday.

        

        11. The map.mod module drops
          the default empty declaration of included-domains (it is still
          in topic.mod). 

        

        12. Every element has its
          attribute entity (such as alt.attributes) declared twice.
          Strictly speaking this does not introduce errors but really
          needs to be fixed (it's confusing and looks bad).

        

        13. Many of the DTD modules
          have bad headers (every ENT file I spot checked and several of
          the MOD files). The ENT files appear to grab their headers
          (including public ID info) from the equivalent MOD file.

        

        Nit-picks that we would fix if
          creating these by hand:

        - In topic.mod, the entities
          "info-types" and "topic-info-types" are each declared twice

        - In machinery taskbody
          constraint, %prelreqs and %closereqs are each declared twice

        - DITA 1.2 /1.3 in SVN has added an
          entity idElements; it's empty and unused, so not sure of the
          purpose

          

          Robert D Anderson

          IBM Authoring Tools Development

          Chief Architect, DITA Open Toolkit (http://dita-ot.sourceforge.net/)