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 \s-1SGML\s0 an \s-1XML\s0 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 \s-1DTD\s0 with dtdparse. This produces an \s-1XML\s0 representation of the \s-1DTD\s0. This representation exposes both the logical structure of the \s-1DTD\s0 (the actual meta-structure of its grove) and the organizational structure of the \s-1DTD\s0 (the declarations and parameter entities) that comprise its textual form.

2.

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

DTDParse XML DTD

The following is the \s-1XML\s0 \s-1DTD\s0 for \s-1XML\s0 documents created with dtdparse (the \s-1DTD\s0 is also provided in the file \*(C`etc/dtd.dtd\*(C' 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 >

RELATED TO SGML::DTDParse…

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

PREREQUISITES

The prerequisites listed are for all modules and scripts:

Getopt::Long, Text::DelimMatch, XML::Parser, \s-1XML::DOM\s0

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, <[email protected]>.

Earl Hood, <[email protected]>, 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 \s-1GNU\s0 General Public License, which may be found in the DTDParse distribution.