
     _________________________________________________________________
                                      
                                    dtddiff
                                       
   dtddiff list the changes that have occured in a DTD. dtddiff will
   output the following information:
   
     * New elements and attributes
     * Old/removed elements and attributes
     * Content rule changes
       
     _________________________________________________________________
                                      
Usage

   dtddiff is invoked from the Unix shell as follows:
   
   % dtddiff [options] olddtd newdtd
   
   The following are the list of options available:
   
   -catalog filename
          Use filename as the file for mapping public identifiers and
          external entities to system files. If -catalog is not
          specified, "catalog" is used as the default filename. See
          Resolving External Entities for more information.
          
   -compact
          Generate a compact listing.
          
   -help
          Print a brief usage description. No other action is performed.
          
   -nocompact
          Generate a long listing.
          
     _________________________________________________________________
                                      
dtddiff Example Output

   Here is an example output generated by dtddiff:
   
    ----------------------------------------------------------------------
                New Elements/Attributes (sgm/html2.0/html.dtd)
    ----------------------------------------------------------------------
        <a sdapref>                      <address sdaform>
        <address sdapref>                <b sdaform>
        <blockquote sdaform>             <br>
        <br sdapref>                     <cite sdaform>
        <code sdaform>                   <dd sdaform>
        <dir sdaform>                    <dir sdapref>
        <dl compact>                     <dl sdaform>
        <dl sdapref>                     <dt sdaform>
        <em sdaform>                     <form>
...

    ----------------------------------------------------------------------
                Old/removed Elements/Attributes (sgm/html.dtd)
    ----------------------------------------------------------------------
        <dfn>                            <key>
        <link name>                      <u>
    ----------------------------------------------------------------------
                           Content Rule Differences
    ----------------------------------------------------------------------
         ------------------------------------------------------------
                                      <A>

  << old content rule <<
  (#PCDATA|img|em|tt|strong|b|i|U|code|samp|kbd|KEY|var|DFN|cite)

  >> new content rule >>
  (h1|h2|h3|h4|h5|h6|#PCDATA|a|img|br|em|strong|code|samp|kbd|var|cite|tt|
   b|i)*
  -(a)

         ------------------------------------------------------------
                                   <ADDRESS>

  << old content rule <<
  (a|#PCDATA|img|em|tt|strong|b|i|U|code|samp|kbd|KEY|var|DFN|cite|p)+

  >> new content rule >>
  (#PCDATA|a|img|br|em|strong|code|samp|kbd|var|cite|tt|b|i|p)*

...

   The "..." represents text that has been deleted in order to save
   space.
   
   If the -nocompact option is specified, then each listing in the New
   Elements/Attributes and Old/removed Elements/Attributes is on its own
   line.
   
     _________________________________________________________________
                                      
Resolving External Entities

   Defining the mapping between external entities to system files may be
   done via the -catalog command-line option. The catalog provides you
   with the capability of mapping public identifiers to system
   identifiers (files) or to map entity names to system identifiers.
   
   Catalog Syntax
   
   The syntax of a catalog is a subset of SGML catalogs (as defined in
   SGML Open Draft Technical Resolution 9401:1994).
   
   A catalog contains a sequence of the following types of entries:
   
   PUBLIC public_id system_id
          This maps public_id to system_id.
          
   ENTITY name system_id
          This maps a general entity whose name is name to system_id.
          
   ENTITY %name system_id
          This maps a parameter entity whose name is name to system_id.
          
   Syntax Notes
   
     * A system_id string cannot contain any spaces. The system_id is
       treated as pathname of file.
     * Any line in a catalog file that does not follow the previously
       mentioned entries is ignored.
     * In case of duplicate entries, the first entry defined is used.
       
   Example catalog file:
   
        -- ISO public identifiers --
PUBLIC "ISO 8879-1986//ENTITIES General Technical//EN"            iso-tech.ent
PUBLIC "ISO 8879-1986//ENTITIES Publishing//EN"                   iso-pub.ent
PUBLIC "ISO 8879-1986//ENTITIES Numeric and Special Graphic//EN"  iso-num.ent
PUBLIC "ISO 8879-1986//ENTITIES Greek Letters//EN"                iso-grk1.ent
PUBLIC "ISO 8879-1986//ENTITIES Diacritical Marks//EN"            iso-dia.ent
PUBLIC "ISO 8879-1986//ENTITIES Added Latin 1//EN"                iso-lat1.ent
PUBLIC "ISO 8879-1986//ENTITIES Greek Symbols//EN"                iso-grk3.ent
PUBLIC "ISO 8879-1986//ENTITIES Added Latin 2//EN"                ISOlat2
PUBLIC "ISO 8879-1986//ENTITIES Added Math Symbols: Ordinary//EN" ISOamso

        -- HTML public identifiers and entities --
PUBLIC "-//IETF//DTD HTML//EN"                                    html.dtd
PUBLIC "ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML"          ISOlat1.ent
ENTITY "%html-0"                                                  html-0.dtd
ENTITY "%html-1"                                                  html-1.dtd

   Environment Variables
   
   The following envariables (ie. environment variables) are supported:
   
   P_SGML_PATH
          This is a colon (semi-colon for MSDOS users) separated list of
          paths for finding catalog files or system identifiers. For
          example, if a system identifier is not an absolute pathname,
          then the paths listed in P_SGML_PATH are used to find the file.
          
   SGML_CATALOG_FILES
          This envariable is a colon (semi-colon for MSDOS users)
          separated list of catalog files to read. If a file in the list
          is not an absolute path, then file is searched in the paths
          listed in the P_SGML_PATH and SGML_SEARCH_PATH.
          
   SGML_SEARCH_PATH
          This is a colon (semi-colon for MSDOS users) separated list of
          paths for finding catalog files or system identifiers. This
          envariable serves the same function as P_SGML_PATH. If both are
          defined, paths listed in P_SGML_PATH are searched first before
          any paths in SGML_SEARCH_PATH.
          
   The use of P_SGML_PATH is for compatibility with earlier versions.
   SGML_CATALOG_FILES and SGML_SEARCH_PATH are supported for
   compatibility with James Clark's nsgmls(1).
   
   Note
          When searching for a file via the P_SGML_PATH and/or
          SGML_SEARCH_PATH, if the file is not found in any of the paths,
          then the current working directory is searched.
          
   Note
          The file specified by -catalog is read first before any files
          specified by SGML_CATALOG_FILES.
          
     _________________________________________________________________
                                      
Availability

   This program is part of the perlSGML package; see
   <URL:http://www.oac.uci.edu/indiv/ehood/perlSGML.html>
   
     _________________________________________________________________
                                      
Author

   
    Earl Hood <ehood@medusa.acs.uci.edu>
    
     _________________________________________________________________
