Provided by: libsgml-dtdparse-perl_2.00-1_all bug

NAME

       SGML::DTDParse - Parse an SGML or XML DTD

SYNOPSIS

         use SGML::DTDParse;
         print "This is DTDParse v$SGML::DTDParse::VERSION\n";

DESCRIPTION

       The DTDParse collection is a set of Perl modules and scripts for manipulating SGML an XML
       Document Type Definitions (DTDs). DTDParse is designed primarily to aid in the
       understanding and documentation of DTDs.

       Typical usage of this package is as follows:

       1.  Parse the DTD with dtdparse. This produces an XML representation of the DTD. This
           representation exposes both the logical structure of the DTD (the actual meta-
           structure of its grove) and the organizational structure of the DTD (the declarations
           and parameter entities) that comprise its textual form.

       2.  Manipulate the XML document produced by dtdparse to do whatever you want. DTDParse is
           shipped with several programs that demonstrate various capabilities, including
           dtdformat which can produce HTML or DocBook http://www.oasis-open.org/docbook/
           <http://www.oasis-open.org/docbook/> RefEntry pages for each element and parameter
           entity in the DTD.

DTDParse XML DTD

       The following is the XML DTD for XML documents created with dtdparse (the DTD is also
       provided in the file "etc/dtd.dtd" of the DTDParse distribution):

         <!-- This is the DTD for the documents produced by DTDParse.
              The public identifier for this DTD is:

               "-//Norman Walsh//DTD DTDParse V2.0//EN"

           -->

         <!ELEMENT dtd (notation|entity|element|attlist)+>
         <!ATTLIST dtd
                 version               CDATA   #REQUIRED
                 unexpanded    CDATA   #IMPLIED
                 title         CDATA   #IMPLIED
                 namecase-general      CDATA   #IMPLIED
                 namecase-entity       CDATA   #IMPLIED
                 xml           CDATA   #IMPLIED
                 system-id     CDATA   #IMPLIED
                 public-id     CDATA   #IMPLIED
                 declaration   CDATA   #IMPLIED
                 created-by    CDATA   #IMPLIED
                 created-on    CDATA   #IMPLIED
         >

         <!ELEMENT notation EMPTY>
         <!ATTLIST notation
                 name          CDATA   #REQUIRED
                 public                CDATA   #IMPLIED
                 system                CDATA   #IMPLIED
         >

         <!ELEMENT entity (text-expanded?, text?)>
         <!ATTLIST entity
                 name          CDATA   #REQUIRED
                 type          CDATA   #REQUIRED
                 notation      CDATA   #IMPLIED
                 public                CDATA   #IMPLIED
                 system                CDATA   #IMPLIED
         >

         <!ELEMENT text        (#PCDATA)*>
         <!ELEMENT text-expanded       (#PCDATA)*>

         <!ELEMENT element (content-model-expanded, content-model?,
                            inclusions?, exclusions?)>
         <!ATTLIST element
                 name          CDATA   #REQUIRED
                 stagm         CDATA   #IMPLIED
                 etagm         CDATA   #IMPLIED
                 content-type  (element|mixed|cdata|empty|rcdata)      #IMPLIED
         >

         <!ENTITY % cm.mix "sequence-group|or-group|and-group
                            |element-name|parament-name
                            |pcdata|cdata|rcdata|empty">

         <!ELEMENT content-model-expanded (%cm.mix;)>
         <!ELEMENT content-model (%cm.mix;)>
         <!ELEMENT inclusions (%cm.mix;)>
         <!ELEMENT exclusions (%cm.mix;)>

         <!ELEMENT sequence-group (%cm.mix;)*>
         <!ATTLIST sequence-group
                 occurrence    CDATA   #IMPLIED
         >

         <!ELEMENT or-group (%cm.mix;)*>
         <!ATTLIST or-group
                 occurrence    CDATA   #IMPLIED
         >

         <!ELEMENT and-group (%cm.mix;)*>
         <!ATTLIST and-group
                 occurrence    CDATA   #IMPLIED
         >

         <!ELEMENT element-name EMPTY>
         <!ATTLIST element-name
                 name          CDATA   #REQUIRED
                 occurrence    CDATA   #IMPLIED
         >

         <!ELEMENT parament-name EMPTY>
         <!ATTLIST parament-name
                 name          CDATA   #REQUIRED
         >

         <!ELEMENT empty EMPTY>
         <!ELEMENT pcdata EMPTY>
         <!ELEMENT cdata EMPTY>
         <!ELEMENT rcdata EMPTY>

         <!ELEMENT attlist (attdecl, attribute+)>
         <!ATTLIST attlist
                 name  CDATA   #REQUIRED
         >

         <!ELEMENT attdecl (#PCDATA)>

         <!ELEMENT attribute EMPTY>
         <!ATTLIST attribute
                 name          CDATA   #REQUIRED
                 type          CDATA   #REQUIRED
                 enumeration   (yes|no|notation)       #IMPLIED
                 value         CDATA   #REQUIRED
                 default               CDATA   #REQUIRED
         >

SEE ALSO

       dtdparse, dtdformat, dtddiff, dtdflatten, SGML::DTDParse::DTD

PREREQUISITES

       The prerequisites listed are for all modules and scripts:

       Getopt::Long, Text::DelimMatch, XML::Parser, XML::DOM

       For prerequisites that apply for a specific script or module, see the individual scripts'
       and modules' reference pages.

AVAILABILITY

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

AUTHORS

       DTDParse package originally developed by Norman Walsh, <ndw@nwalsh.com>.

       Earl Hood, <earl@earlhood.com>, picked up support and maintenance.

COPYRIGHT AND LICENSE

         Copyright (C) 1999-2001, 2003 Norman Walsh
         Copyright (C) 2005, Earl Hood

       DTDParse may be copied only under the terms of either the Artistic License or the GNU
       General Public License, which may be found in the DTDParse distribution.