OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: DTD Processor?

[ Lists Home | Date Index | Thread Index ]
  • From: Norman Gray <norman@astro.gla.ac.uk>
  • To: David Wang <dwang@mitre.org>
  • 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@astro.gla.ac.uk


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




 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS