 
Proposed changes for TIM 2

Disposition: Y-Yes; N-No; A-Added; F-Future; M-Modified; T-Tabled; X-Irrelevant

Part I. Changes by category

 A. Changes to make TIM XML-compliant
  A1. Change declaration
Y    A1a. Formal NO (no effect) line 120
     A1b. Allow larger capacities & quantities
Y        A1b1. All capacities made 99999999 (no effect) lines 43-59
F        A1b2. All quantities should also be 99999999, but many current tools
               don't allow that (having lower limits on quantities than XML
               specifies does not make any instances noncompliant) lines
               97-107
F    A1c. Allow "-" as first char in a NAME (some current tools do not
          allow it; see also A9) lines 85-88
F    A1d. Require "/>" as closing delimiter of empty elements (this is not
          allowed by some current tools; changing over will invalidate - in a
          fairly-easy-to-fix way - all TIM 1 and TIM 2 instances) line 92
F    A1e. Require "?>" as closing delimiter of processing instructions
          (not allowed by some current tools, so it is also not
          part of TIM 2 for now. Changing over will invalidate - in a fairly-
          easy-to-fix way - any TIM 1 instances that contain processing
          instructions. I believe, however, that you can actually begin
          putting "?>" at the end of PIs now without causing parsing errors.)
          line 93
F    A1f. Allow larger character set (not done: some tools won't allow it;
          probably will have no effect if changed later) lines 29-35
  A2. Remove inclusions in content models - line 299
Y    A2a. Alert, Float, AltRep - become attribute values (of "present"
          attribute) for most elements (INVALIDATES MANY TIM1 DOCS)
          line 254
C    A2b. Span - becomes "spanend" attribute for Pt (existing "close"
          attribute retained for) (MAY INVALIDATE A FEW TIM1 DOCS) line 729
Y    A2c. GlossEntry - remove (useless DFP invention) (INVALIDATES
          A FEW TIM1 DOCS) line 816
Y    A2d. IndexEntry - split into IndexEntry for indexes and TOCs and
          IndexTerm (for hidden element used to generate Index) - this moves
          us back closer to DocBook. Both appear where appropriate in content
          models; existing IndexTerm removed (easily replaced by T)
          (MAY INVALIDATE SOME TIM1 DOCS) line 816
Y    A2e. Pt - becomes regular element, included in almost all content models
          (MAY INVALIDATE A FEW TIM1 DOCS) line 311 etc.
Y    A2f. Graphic, Object, ExternalText - become regular elements, included
          in most content models (MAY INVALIDATE A FEW TIM1 DOCS - maybe
          none, depending on whether people have put them in odd places where
          they are no longer allowed) lines 311 etc.
T    A2g. DBLink may be removed (see A4) (INVALIDATES A FEW TIM1 DOCS) line 716
M    A2h. Link, NameLoc, TreeLoc, DataLoc - moved to optional Resources
          element after DocID (INVALIDATES SOME TIM1 DOCS) line 331
M    A2i. BiLink dropped (probably no effect) lines 331, 716
Y A3. Remove exclusions from content models - most were to prevent AltRep from
      bringing in elements not allowed at current place, and that is not a
      problem without AltRep) (doesn't invalidate anything, but removes
      the previous restriction on nesting EntryTbl, a table inside a table
      cell; my suspician is that most tools that don't allow recursive
      nesting of tables don't allow even one level of nesting) line 343 etc.
T A4. All external Xrefs would be by URL - does not affect HyTime Xrefs, which
      SGML sees as internal Xrefs (would be done by eliminating DBRef, DBLink,
      and "dbid"  attribute on IndexEntry: MAY INVALIDATE SOME TIM1 DOCS)
      lines 716, 766
Y A5. Change attribute data types NAME, NUMBER, and NUTOKEN to NMTOKEN
      (no effect; all valid NAMEs, NUMBERs, and NUTOKENs are valid NMTOKENs)
      line 244, etc.     
X A6. PCDATA allowed only in content models consisting of "repeating OR
      groups", e.g. (#PCDATA|Element1|...|Elementn)* (required no changes)
X A7. CDATA and RCDATA not valid content models (required no changes)
Y A8. Require complete specification of attributes, including name and
      quotation marks - e.g., <Emph emph="ital"> instead of <Emph ital>
      (no change to DTD, but makes many TIM 1 docs invalid if enforced by
      an XML processor)
X A9. Use "-XML-space" attribute (with value "preserve") to specify that white
      space and line breaks are preserved within an element's content - TIM 1
      tried to do this with "format=verbatim", but that wasn't even valid SGML)
      ("-XML-space" will be assumed to be defined and set to "preserve" for
      Listing and GraphicalText)
 B. To make it acceptable to non-telecom users
Y B1. Change TelDoc to TDoc, for telecom doc or technical doc) (INVALIDATES
      ALL TIM1 DOCS, but very easy to fix) lines 129, 297
Y B2. Add Admon element for admonishments other than Danger/Caution/Warning
      (no effect) lines 309 (etc.), 598
 C. To improve it, based on experience to date
M C1. Allow titled tables - full CALS table model (no effect on TIM1 docs)
Y C2. Change TitleGroup in content models to (Title|TitleGroup) (no effect)
      line 308, etc.
Y C3. Change content model of IndexEntry from:
         (Primary, (Secondary, Tertiary?)?)  (ignoring See/SeeAlso)
      to:
         (#PCDATA|TextElements|IndexEntry)*
      allowing any level of nesting - but because of A6 above, nested
      IndexEntry cannot be required to appear only after current level's text
      content, which would be more intuitive (INVALIDATES MANY EXISTING
      INSTANCES) line 817
M C4. Keycaps element dropped (INVALIDATES A FEW TIM1 INSTANCES) line 694
Y C5. Add "increment" and "shownum" attributes to elements with numeration
/     attributes (increment is an unsigned or negative number, indicating
T     numbering like 5, 10, 15 or 5, 4, 3; shownum="1 4 5" means number
      the 1st item, the 5th, and every 5th item after) (no effect)
      lines 274-275
Y C6. Add "align", "valign", "colsep", "rowsep", and "liststyle" attributes to
      SegmentedList, for tabular presentation (no effect) lines 465-469
N C7. Not adding optional ID attributes to DocID subelements (so they could be
      cross-referenced from title pages, page headers/footers, etc.) line 899
M C8. Add "condition" attribute to most elements to specify conditions for
      displaying the element, which would be hidden if the condition is not
      met (no effect) line 251
  C9. Update NOTATION declarations and the "format" attribute
Y    C9a. Remove NOTATIONs for unlikely data formats:
            CGM-CHAR (obsolete)
            FAX (ambiguous, easily avoided, unacceptable raster-graphic format)
            FAXTILE (believed obsolete)
            PCX (easily avoided, unacceptable raster-graphic format)
            CCITT-G3 (ambiguous, easily avoided, unacceptable raster format)
            IndexText (no use known)
          Add a notation for PostScript (no effect) lines 170-233
Y    C9b. Remove the "verbatim", "CDverbatim", and "RCverbatim" NOTATIONs,
          which won't work as intended. TIM 1 tried to use "format", a
          NOTATION attribute, to specify that white space and line breaks
          should be preserved, but generally SGML applications do not base any
          processing decisions on NOTATIONs. "format='verbatim'" would have
          been ignored without dire consequences except to appearance. In TIM
          2, the right way to do this is with "space='preserve'" (to become
          "-XML-space='preserve'" when tools permit; see A9). "format=
          'CDverbatim'", meaning treat contents as CDATA ("&" and "<" are not
          markup), and "format='RCverbatim'", meaning treat contents as RCDATA
          ("& is markup but "<" is not), could cause processing errors, because
          "&" and "<" would have been treated as markup anyway. The right way
          to do this was to have a special element whose content model was
          defined as CDATA and another one for RCDATA. However, we can't
          actually make that correction now because those are not valid content
          models in XML. The only choices for literal data are:
           > enclose it in a CDATA marked section (begin with "<!(CDATA(" and
             end with "))>" This carries the slight danger that the string
             "))>" may occur in the data and be incorrectly interpreted as the
             end of the CDATA section.
           > change all occurrences of "&" to "&amp;" and "<" to "&lt;"
             throughout your literal data
           > keep the literal data in a separate file, give it an entity name,
             and call it in with an empty element (ExternalText in TIM).
          The first two choices don't work for RCDATA. This may be a problem,
          but in practice there is no ASCII data format I know of that needs
          RCDATA - that is, a format that uses "&" as markup without using "<"
          as markup (SGML, XML, and HTML use both, and some formats use "<"
          but not "&"). (only beneficial effects) lines 170-233
Y    C9c. Values for "format" attribute changed to those for notations that
          could reasonably occur within an SGML data stream (probably no
          effect) lines 283-284
Y C10. Use Contents rather than Section to subdivide a Contents element, and
       Index for Index, allowing use of the special attributes defined for
       them at each level (INVALIDATES SOME TIM1 DOCS) lines 342, 364
Y C11. Give Frame, Graphic, and Object additional optional attributes for
       specifying placement: "align", "valign", and "layer" (done) lines 596-
       597, 844-846, 854-856
X C12. Did not give MarkTitle and LITitle "align" attribute (elements removed -
       see D5)
Y C13. Remove MarkList, DimList, and DimSpec - HyTime defines them for
       completeness but makes them optional and unnecessary in practice
       (probably no effect) lines 754, 763
A C14. Change ListTerm in SimpleList to SimpleLI (INVALIDATES SOME TIM1
       INSTANCES) line 418
 D. To make it a better "core architecture," from which special-purpose and
    authoring DTDs can be systematically derived (this includes changes that
    simply simplify it)
A C15. Split PropStat in DOcID into PropStat (heading) and PropMsg (text), since
       they are used separately (no effect) line 870
Y D1. Remove the redefinable parameter entities that made TIM 1 easy to
      extend. It is now assumed that TIM itself will not need to be extended
      except for already-well-known general purposes (equation, procedure,
      requirement, flowchart, and/or memo markup). Those "handles" remain
      for extending the DTD without revising it, but others are removed. All
      local modifications will presumably be done by defining variant DTDs of
      the TIM "core architecture," with mappings to TIM using the "TIM2"
      attribute (see D2) (probably no effect on TIM1 docs; this removes the
      essential difference between TIM and TIMM, and also shortens the DTD,
      so there is a TIM2.HDR instead of TIMM2.HDR, and no TIMM2.DTD at all)
      lines 244-285
Y D2. Add an implied attribute "TIM2" to every element. This should be an
      attribute of every element in derived DTDs so that the mapping to TIM2
      elements is explicit. It is not really needed in TIM2 itself ("remap"
      should be used to specify how to turn elements back into the derived
      DTD's elements), but it is defined in TIM2 so that it doesn't have to
      be removed in the transformation step. Example: Suppose an authoring DTD
      named BRTIM contains a StepList element that can be represented for
      interchange by the TIM OrderedList element. In BRTIM, the tag should
      say "<StepList ... TIM2='OrderedList' ...>"; in TIM, the tag should
      be "<OrderedList ... remap='StepList' ...>" (whether it also says "...
      TIM2='OrderedList' ..." is of no concern) (no effect) lines 256, 901
Y D3. Add "remapatt" attribute so attributes in derived DTDs that do not have
      analogs in TIM can be preserved for reconversion (no effect) line 247
M D4. Make ..ListGrp elements optional so that list structure is more like
      that in most DTDs; not done for SegmentedList, since SegListGrp is
      analogous to TGroup in tables (no effect) line 478, 492, 500
M D5. Eliminate TermTitle, MarkTitle, and TermTitle; changed SegHead to
      ListHead with content model of (Title+) (INVALIDATES A FEW TIM1 DOCS)
      lines 513, 634
Y D6. Add MTextType to DocID as required element (replacing the one
      required Status element with something easier to process) and CDocType
      and DraftStatus added as optional elements for convenience
      (INVALIDATES EVERY TIM1 DOC, in a way that's easy to fix) lines 868-869
Y D7. Remove DistSegLI - more trouble to implement than it could ever
      be worth (probably no effect) line 574
N D8. S not removed - maintain a distintion between Frame as a dimensioned
      rectangle and S as a dimensionless wrapper (done) line 541
M D9. Reduce list of ftp/http sites for downloading the DTD to the 3 best-
      maintained (TCIF site first, other two mirrors) lines 9-12
T D10. May turn "pseudo-entities" for font changes in literal text to real
      entities (I'd also like to extend the tcif-kb entities to include a few
      more characters, but I don't have that ready yet) line 1131, etc.
Y D11. Add "remap.." attributes to Link so that more specific link types
      (for instance, labeled anchor roles) can be interchanged (no effect)
      line 705-708
N D12. CALS table DTD not included within TIM DTD (stays separate file)
A D13. Add a "remapto" attribute to elements to identify the source markup
      that remap attributes refer to (no effect) line 248
