| SGML::DTDParse - Parse an SGML or XML DTD |
SGML::DTDParse - Parse an SGML or XML DTD
use SGML::DTDParse; print "This is DTDParse v$SGML::DTDParse::VERSION\n";
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:
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
>
dtdparse, dtdformat, dtddiff, dtdflatten, SGML::DTDParse::DTD
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.
<http://dtdparse.sourceforge.net/>
DTDParse package originally developed by Norman Walsh, <ndw@nwalsh.com>.
Earl Hood, <earl@earlhood.com>, picked up support and maintenance.
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.
| SGML::DTDParse - Parse an SGML or XML DTD |