dtddiff - Compare two SGML/XML DTDs


NAME

dtddiff - Compare two SGML/XML DTDs


SYNOPSIS

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


DESCRIPTION

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.


OPTIONS

--attributes
--noattributes
Print, or not, element attribute differences. The default is to print differences.

--content-model-expanded
--nocontent-model-expanded
Expand, or not expand, element content models during comparison. Expanded models have all parameter entities resolved. The default is to use expanded content model.

--elements
--noelements
Print, or not, element content model differences. The default is to print differences.

--general-ents
--nogeneral-ents
Print, or not, general entity differences. The default is to not print differences.

--parameter-ents
--noparameter-ents
Print, or not, parameter entity differences. The default is to not print differences.

--dump
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.

--version
Print version and synopsis.

--help
Print synopsis and options available.

--man
Print manual page.


SEE ALSO

dtdparse, dtddiff2html

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


PREREQUISITES

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


AVAILABILITY

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


AUTHORS

Earl Hood, <earl@earlhood.com>


COPYRIGHT AND LICENSE

See SGML::DTDParse for copyright and license information.

 dtddiff - Compare two SGML/XML DTDs