[Home] [By Thread] [By Date] [Recent Entries]

  • From: Norman Gray <norman@a...>
  • To: David Wang <dwang@m...>
  • Date: Thu, 30 Mar 2000 10:21:28 +0100 (BST)


Greetings,

On Wed, 29 Mar 2000, David Wang wrote:

> I wanted to know if there is a parser and otherwise exposed "object model" for
> DTDs so that DTDs can be programmatically traversed and examined.

You might want to take a look at Earl Hood's perlSGML [1].  This, as
its name suggests, is a Perl module which parses SGML DTDs and
documents.

It allows you to do things like:

    use SGML::DTD;
    
    $dtd = new SGML::DTD;
    
    open (DTDFILE, $dtdfilename) || die "Can't open $dtdfilename";
    $dtd->read_dtd(\*DTDFILE);
    
    @elements = $dtd->get_elements(0);
    
    @top_element = $dtd->get_top_elements();
    
    foreach $e (@elements) {
        print "<dtdelement gi='$e'>\n";
    
        @parents = $dtd->get_parents ($e);
        print "<dtdparents>\n";
        foreach $pe (@parents) {
            print "<dtdelemref id='", lc($pe), "'>\n";
        }
        print "</dtdparents>\n";
    
        @content = $dtd->get_base_children ($e, 1);
    
        [...]
    [blah blah blah]

All the best,

Norman


[1] http://www.oac.uci.edu/indiv/ehood/perlSGML.html

-- 
---------------------------------------------------------------------------
Norman Gray                        http://www.astro.gla.ac.uk/users/norman/
Physics and Astronomy, University of Glasgow, UK     norman@a...


***************************************************************************
This is xml-dev, the mailing list for XML developers.
To unsubscribe, mailto:majordomo@x...&BODY=unsubscribe%20xml-dev
List archives are available at http://xml.org/archives/xml-dev/
***************************************************************************

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member