 
Proposed changes for TIM 2
 
Changes are listed first in related groups, then in the order you will 
encounter them in TIM2.HDR 2.0.0, with the two lists cross-referenced using the
number-letter identifiers in the first list and the line numbers (of TIM2.HDR)
in the second (* is used in the first list to mark the most debatable changes,
in the opinions of those heard from so far):

Part I. Changes by category

A. Changes to make TIM XML-compliant
  A1. Change declaration 
     A1a. Formal NO [done; no effect] line 121
     A1b. Allow larger capacities & quantities [partly done: all capacities
          were made 99999999; 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, and raising limits on capacities does not invalidate
          any existing doc] lines 44-60, 98-108
     A1c. Allow "-" as first char in a NAME [not done: some current
          tools do not allow it; see also A9] lines 86-89
     A1d. Require "/>" as closing delimiter of empty elements [not done: this
          is not allowed by some current tools, so it also not part of
          TIM 2 for now. Changing over will invalidate (in a fairly-easy-to-
          fix way) all TIM 1 and TIM 2 instances.] line 93
     A1e. Require "?>" as closing delimiter of processing instructions
          [partly doable: 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 94
     A1f. Allow larger character set [not done: some tools won't allow it;
          probably will have no effect if changed later] lines 30-36
  A2. Remove inclusions in content models - line 301
     A2a. Alert, Float, AltRep - become attribute values (of "present"
          attribute) for most elements [done: INVALIDATES MANY TIM1 DOCS]
          line 252 (also 605)
     A2b. Span - becomes "spanend" attribute for Pt (existing "close" 
          attribute becomes superfluous and so is removed) [done, except I
          forgot to remove "close": MAY INVALIDATE A FEW TIM1 DOCS] line 718
     A2c. GlossEntry - remove (useless DFP invention) [done: INVALIDATES
          A FEW TIM1 DOCS] line 802
     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 (useless DFP invention, easily
          replaced by T) [done: MAY INVALIDATE SOME TIM1 DOCS] line 791
     A2e. Pt - becomes regular element, included in most content models
          [done: MAY INVALIDATE A FEW TIM1 DOCS] line 314 etc.
     A2f. Graphic, Object, ExternalText - become regular elements, included
          in most content models [done: 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 314, 436, etc
     A2g. DBLink, BiDBLink - removed (see A4) [done: INVALIDATES A FEW TIM1
          DOCS] line 696
     A2h. Link, NameLoc, TreeLoc, DataLoc - move to optional Resources
          element after BackMatter [done: INVALIDATES SOME TIM1 DOCS] line 301
     A2i. BiLink - (useless?) replace with Link3 (link among 3 locations),
          also in Resources [done: probably no effect] lines 334, 696
  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) [done: 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 345 etc.
  A4. All external Xrefs by URL (does not affect HyTime Xrefs, which SGML sees
      as internal Xrefs) [done by eliminating DBRef, DBLink, and "dbid" 
      attribute on IndexEntry: MAY INVALIDATE SOME TIM1 DOCS] lines 696, 755
  A5. Change attribute data types NAME, NUMBER, and NUTOKEN to NMTOKEN [done:
      no effect; all valid NAMEs, NUMBERs, and NUTOKENs are valid NMTOKENs]
      line 244, etc.      
  A6. PCDATA allowed only in content models consisting of "repeating OR
      groups", e.g. (#PCDATA|Element1|...|Elementn)* [required no changes from
      TIM1 but constrained choices for TIM2; see C3]
  A7. CDATA and RCDATA not valid content models [required no changes from
      TIM1 but constrained choices for TIM2; see A9 and C9b]
  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]
  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)
      [partly done: attribute is named "space" in TIM 2; it should be changed
      to "-XML-space" when tools permit the leading "-"; this will invalidate
      (in a very-easy-to-fix way) TIM 2 instances created before the change]
      line 283
B. To make it acceptable to non-telecom users
  B1. Change TelDoc to TDoc (=telecom doc or technical doc) [done, INVALIDATES
      ALL TIM1 DOCS, but very easy to fix] lines 130-131, 298-303
  B2. Add Admon element for admonishments other than Danger/Caution/Warning
      (used in other industries and in European telecom) [done] lines 312
      (etc.), 573
C. To improve it, based on experience to date
  C1. Allow Table (without enclosing Frame) in P (this is an "informal" -
      untitled - table) [done] line 396
  C2. Change TitleGroup in content models to (Title|TitleGroup) [done] line 
      311, etc.
 *C3. Change content model of IndexEntry to allow any level of nesting 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 [done: INVALIDATES MANY EXISTING
      INSTANCES] line 793
  C4. Change Keycaps to Symbol, with Keycaps as one type [done, INVALIDATES
      A FEW EXISTING INSTANCES] line 666
  C5. Add "increment" and "shownum" attributes to elements with numeration
      attributes (increment is an unsigned or negative number, indicating
      numbering like 5, 10, 15 or 5, 4, 3; shownum="1 5 5" means number 
      the 1st item, then the 5th, then every 5th after that - you know, 
      legal style) [done] lines 272-273
  C6. Add "align", "valign", "colsep", "rowsep", and "liststyle" attributes to
      SegmentedList, for tabular presentation [done] lines 475-479
  C7. Add optional ID attributes to DocID subelements (so they can be
      cross-referenced from title pages, page headers/footers, etc.)
      [done, needs to be matched by changes to the DocID DTD] line 879
 *C8. Include "hide" as a value for "present" attribute (with "float", "alert",
      and "altrep"; see A2a) - leading to the question of why include an
      element meant to be hidden [done] line 252
  C9. Update NOTATION declarations and the "format" attribute
    *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)
          [done; come to think of it, I probably should have added a notation
          for PostScript] lines 171-234
     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 "&"). [done] lines 171-234, 283
     C9c. Values for "format" attribute changed to those for notations that
          could reasonably occur within an SGML data stream [done; I probably
          should have added a notation for PostScript] lines 281-282 
 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 [done] lines 345, 367
 C11. Give Frame, Graphic, and Object additional optional attributes for
      specifying placement: "align", "valign", and "layer" [done] lines 569-
      571, 819-821, 829-831
 C12. Give MarkTitle and LITitle "align" attribute for better formatting of
      lists [done] line 625
 C13. Remove MarkList, DimList, and DimSpec (HyTime defines them for
      completeness but makes them optional and unnecessary in practice) [done] 
      lines 743, 752
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)
  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) [done: 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-284
  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 TIM 2
      elements is explicit. It is not really needed in TIM 2 itself ("remap"
      should be used to specify how to turn elements back into the derived
      DTD's elements), but it is defined in TIM 2 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='BRTIM:StepList' ...>" (whether it also says
      "... TIM2='OrderedList' ..." is of no concern) [done] lines 254, 880
  D3. Add "remapatt" attribute so attributes in derived DTDs that do not have
      analogs in TIM can be preserved for reconversion [done] line 247
  D4. Remove the ..ListGrp elements so that list structure is more like that
      in most DTDs (not done for SegmentedList, since SegListGrp is analogous
      to TGroup in tables). Grouping, which allows subtitling and complex 
      numbering (like 1, 2, 4 or 1, 2, 3a, 3b, or Begin, Step 2, Step 3, End)
      can still be done, but the grouping is external rather than internal, by
      enclosing multiple consecutive lists in "<Frame type='ListGroup'>".
      [done: INVALIDATES MOST TIM1 DOCS] line 460-493
  D5. Eliminate TermTitle, replaced by MarkTitle in VariableList (the only
      place used), just to eliminate one redundant element [done: INVALIDATES
      A FEW TIM1 DOCS] line 492
  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 [done: 
      INVALIDATES EVERY TIM1 DOC, in a way that's easy to fix] lines 843-844
  D7. Remove DistSegLI - more trouble to implement than it could ever
      be worth [done] line 549
 *D8. Remove S - equivalent to unnumbered Frame, but numbering is optional
      for Frame, so S is redundant - unless you would make a distintion
      between Frame as a dimensioned rectangle and S as a dimensionless
      wrapper [done] line 530
  D9. Reduce list of ftp/http sites for downloading the DTD to the 3 best-
      maintained [done] - lines 10-14
 D10. Turn "pseudo-entities" for font changes in literal text to real entities
      [done; 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 1046, etc.
 D11. Add "remap.." attributes to Link and Link3 so that more specific link
      types (for instance, labeled anchor roles) can be interchanged [done]
      line 685-689, 700-703
 D12. Include CALS table model in TIM DTD (alternatives have not emerged)
      [done] lines 882-994

Part II. Changes by line number (of TIM2.HDR version 2.0.0, 1997-02-05)

  10-  14: simplified list of download sites - D9
  30-  36: extended character set (future) - A1f 
  44-  60: large capacities - A1b
  86-  89: "-" a name-start character (future) - A1c
  93     : "/>" as closing delimiter for empty elements (future) - A1d
  94     : "?>" as closing delimiter for processing instructions (future) - A1e
  98- 108: large quantities (future) - A1b
  121    : FORMAL NO - A1a
 130- 131: DocType changed to TDoc (for Telecom/Technical doc) - B1
 171- 234: Updated list of NOTATIONS - C9a, C9b
 244- 284: Parameter entities now limited to often-reused subsets
           of attribute lists - D1
 244     : Data types NAME, NUMBER, and NUTOKEN changed to NMTOKEN - A5
 247     : "remappatt" attribute added - D3
 252     : "present" attribute replaces Float, Alert, and AltRep - A2a
           "hide" value added for "present" attribute - C8
 254     : "TIM2" attribute added for derived DTDs - D2
 272- 273: "increment" and "shownum" added to numeration attributes - C5
 281- 282: Values of "format" attribute made reasonable - C9c
 283     : Use "space='preserve'" in place of "format='verbatim'" - A9, C9b
 298- 303: TelDoc renamed TDoc - B1
 301     : No inclusion elements in TDoc - A2
           Resources element to hold non-printing elements - A2h
 303 etc.: A few attributes now in more attribute lists to allow fewer
           parameter entities - consequence of D1
 311 etc.: TitleGroup changed in content models to (Title|TitleGroup) - C2
 312 etc.: Admon added for non-North American-telecom admonishments - B2
 314 etc.: Pt, Graphic, Object, and ExternalText now part of most content
           models rather than inclusions - A2e, A2f
 333- 337: Resources element to hold non-printing elements - A2h
 334     : Link3 element for 3-anchor links (replaces BiLink) - A2i
 345     : Contents now subdivided with Contents instead of Section - C10
 345 etc.: Exclusion lists removed - A3
 367     : Index now subdivided with Index instead of Section - C10
 396     : P may now contain Table directly - C1
 436 etc.: Pt added explicitly to even to subelement content models - A2f
 460- 493: ..ListGrps removed from UnorderedList, OrderedList, and VariableList
           (grouping now done externally, with Frame type="ListGroup") - D4
 466     : "mark" now attribute of UnorderedList - consequence of D4
 475-479 : "align", "valign", "colsep", "rowsep", and "liststyle" attributes
           added to SegmentedList, for tabular presentation - C6
 492     : TermTitle replaced by MarkTitle - D5
 498     : numbering attributes now on OrderedList and VariableList - 
           consequence of D4
 530     : S removed - D8
 549     : DistSegLI removed - D7
 569- 571: Additional positioning attributes for Frame - C11
 573     : Admon added for non-North American-telecom admonishments - B2
 605     : TitleGroup allowed multiple Titles (those after the first would be
           altreps) - consequence of A2a
 625     : "align" attribute added for titles over list columns - C12
 666     : Keycaps renamed Symbol (Keycaps will be one type) - C4
 685- 689: "remap.." attributes added to Link for interchange of specific types
           of links - D11
 696     : DBLInk and BiDBLink removed (XML requires external links to be URLs)
           - A2g, A4
 696- 703: BiLink removed as unnecessary, Link3 added for interchange of more
           elaborate types of links - A2i, D11
 718     : Span element replaced by "spanend" attribute for Pt - A2b
 743, 752: MarkList, DimList, and DimSpec removed (unnecessary) - C13
 755     : DBRef removed (XML requires external links to be URLs) - A4
 791     : IndexTerm redefined to be IndexEntry within text - A2d
 793     : Primary, Secondary, Tertiary removed, IndexEntry made nestable for
           unlimited levels of subentries - C3
 802     : GlossEntry removed - A2c
 819- 821: Additional positioning attributes for Graphic - C11
 829- 831: Additional positioning attributes for Object - C11
 843- 844: Optional CDocType, required MTextType (replaces the one required
           Status element for TIM version number), and optional DraftStatus
           added to DocID - D6
 879     : "id" attribute added to all DocID subelements - C7
 880     : "TIM2" attribute added to all DocID subelements - D2
 882- 994: CALS table model included in TIM DTD - D12
 980     : EntryTbl not excluded from content of ENtryTbl - A3
1046 etc.: former pseudo-entities for font changes in literal text
           made real entities - D10 
