DOKK / manpages / debian 12 / libsgml-dtdparse-perl / dtddiff.1p.en
DTDDIFF(1p) User Contributed Perl Documentation DTDDIFF(1p)

dtddiff - Compare two SGML/XML DTDs

  dtddiff [options] <parsed-dtd1.xml> <parsed-dtd2.xml>

dtddiff compares two SGML/XML DTDs based upon the XML dumps generated by dtdparse. The following summarizes the typically usage of dtddiff:

  dtdparse --outfile parsed-dtd1.xml dtd1.dtd
  dtdparse --outfile parsed-dtd2.xml dtd2.dtd
  dtddiff parsed-dtd1.xml parsed-dtd2.xml > dtd.diff

Since dtddiff processes the XML dumps from dtdparse, a full reparse of the DTDs is avoided.

dtddiff does a structural-based comparision. Therefore, the order of declarations in the DTDs does not affect the comparison.

The output generated by dtddiff is similiar in style to a context-based diff done by the program diff(1). The following is an example of the type of output generated:

  *** DocBook 4.1 DTD
  --- DocBook 4.2 DTD
  *************** Elements Added
  --- DocBook 4.2 DTD ----
  + bibliocoverage
  + biblioid
  + bibliorelation
  + bibliosource
  + blockinfo
  + citebiblioid
  + coref
  + errortext
  + personblurb
  + personname
  + refsection
  + refsectioninfo
  + textdata
  *************** Elements Changed
  ... [snip] ...
  *** DocBook 4.1 DTD ****
  ! entrytbl ::=
        (colspec*, spanspec*, thead?, tbody)
       -(entrytbl)
     entrytbl Attributes:
  !   charoff                NUTOKEN                    #IMPLIED
  !   colname                NMTOKEN                    #IMPLIED
  !   cols                   NUMBER                     #REQUIRED
  !   colsep                 NUMBER                     #IMPLIED
  !   nameend                NMTOKEN                    #IMPLIED
  !   namest                 NMTOKEN                    #IMPLIED
  !   rowsep                 NUMBER                     #IMPLIED
  !   spanname               NMTOKEN                    #IMPLIED
  !   tgroupstyle            NMTOKEN                    #IMPLIED
  --- DocBook 4.2 DTD ----
  ! entrytbl ::=
        (colspec*, spanspec*, thead?, tbody)
     entrytbl Attributes:
  !   charoff                CDATA                      #IMPLIED
  !   colname                CDATA                      #IMPLIED
  !   cols                   CDATA                      #REQUIRED
  !   colsep                 CDATA                      #IMPLIED
  !   nameend                CDATA                      #IMPLIED
  !   namest                 CDATA                      #IMPLIED
  !   rowsep                 CDATA                      #IMPLIED
  !   spanname               CDATA                      #IMPLIED
  !   tgroupstyle            CDATA                      #IMPLIED
  ... [snip] ...
  *** DocBook 4.1 DTD ****
     graphic Attributes:
  !   depth                  NUTOKEN                    #IMPLIED
  !   format                 [Enumeration]              #IMPLIED
  !                          BMP, CGM-CHAR, CGM-
  !                          BINARY, CGM-CLEAR,
  !                          DITROFF, DVI, EPS, EQN,
  !                          FAX, GIF, GIF87a, GIF89a,
  !                          JPG, JPEG, IGES, PCX,
  !                          PIC, PNG, PS, SGML, TBL,
  !                          TEX, TIFF, WMF, WPG,
  !                          linespecific
  !   scale                  NUMBER                     #IMPLIED
  !   scalefit               NUMBER                     #IMPLIED
  !   width                  NUTOKEN                    #IMPLIED
  --- DocBook 4.2 DTD ----
     graphic Attributes:
  +   contentdepth           CDATA                      #IMPLIED
  +   contentwidth           CDATA                      #IMPLIED
  +   valign                 [Enumeration]              #IMPLIED
  +                          top, middle, bottom
  !   depth                  CDATA                      #IMPLIED
  !   format                 [Enumeration]              #IMPLIED
  !                          BMP, CGM-CHAR, CGM-
  !                          BINARY, CGM-CLEAR,
  !                          DITROFF, DVI, EPS, EQN,
  !                          FAX, GIF, GIF87a, GIF89a,
  !                          JPG, JPEG, IGES, PCX,
  !                          PIC, PNG, PS, SGML, TBL,
  !                          TEX, TIFF, WMF, WPG, SVG,
  !                          linespecific
  !   scale                  CDATA                      #IMPLIED
  !   scalefit               CDATA                      #IMPLIED
  !   width                  CDATA                      #IMPLIED
  ... [snip] ...

Lines starting with a "- " (minus followed by a space) denote items removed. Lines starting with a "+ " (plus followed by a space) denote items added. Lines starting with a "! " (explanation point followed by a space) denote items changed.

Print, or not, element attribute differences. The default is to print differences.
Expand, or not expand, element content models during comparison. Expanded models have all parameter entities resolved. The default is to use expanded content model.
Print, or not, element content model differences. The default is to print differences.
Print, or not, general entity differences. The default is to not print differences.
Print, or not, parameter entity differences. The default is to not print differences.
Do a textual dump of a DTD. When this option is specified, only a single DTD is dumped. This is mainly used for debugging purposes.
Print version and synopsis.
Print synopsis and options available.
Print manual page.

dtdparse, dtddiff2html

See SGML::DTDParse for an overview of the DTDParse package.

File::Basename, Getopt::Long, Xml::Parser

<http://dtdparse.sourceforge.net/>

Earl Hood, <earl@earlhood.com>

See SGML::DTDParse for copyright and license information.

2022-01-21 perl v5.32.1