spacer

Webref WebRef   Sitemap · Experts · Tools · Services · Newsletters · About i.com

home / experts / xml / column66

dtddoc step 2: Internal data structures

Developer News
Microsoft Shows Off Silverlight 4, IE9 Plans
Metasploit Expands Vulnerability Test Framework
HyperCard Reborn?

After parsing XML DTDs with four different software packages in our last installment, we will look at the resulting data structures in Java, Perl, and PHP, respectively. This will be step two out of four in our creation of dtddoc:

  1. Parsing a DTD
  2. Creating the internal data structure
  3. Adding element and attribute descriptions
  4. Generating HTML

Creating the internal data structure

We used the following parsers:

As demonstrated before, these parsers have a straightforward way of calling them on an input stream, creating an internal data structure in return. Let's examine those internal data structures in turn.

Bourret's DTD parser

Using DTDParser's parseXMLDocument() or parseExternalSubset() functions returns a DTD object for further inspection. The DTD object holds hashtables of entities and element types of the parsed DTD. An ElementType has various members that carry interesting information:

membervalue
attributesA Hashtable of attributes for the respective element type.
childrenA Hashtable of child ElementTypes.
contentA Group representing the content model of the element type.
contentTypeThe type of content, one of:
CONTENT_ANY: Any content type.
CONTENT_ELEMENT: Element content type.
CONTENT_EMPTY: Empty content type.
CONTENT_MIXED: "Mixed" content type.
CONTENT_PCDATA: PCDATA-only content type.
CONTENT_UNKNOWN: Unknown content type.
nameThe XMLName of the element type.
parentsA Hashtable of parent ElementTypes.

With this information, enumerating all element types and outputting the above information in HTML should be a snap. The content model's hierarchy can be easily navigated through the parents and children members of each element type.

on to inspecting the other tools' data structures...


Produced by Michael Claßen

internet.commediabistro.comJusttechjobs.comGraphics.com

Search:

WebMediaBrands Corporate Info

Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | Shopping | E-mail Offers | Freelance Jobs

webref The latest from WebReference.com Browse >
Creating a Banking Application Deposit Script · Rolling Out Your Own HTML Application Version Control · HTML 5: Client-side Storage
Sitemap · Experts · Tools · Services · Email a Colleague · Contact FREE Newsletters 
 The latest from internet.com
XPath Support for Working with XML Data in MySQL · SSDs Take Center Stage · WebPlus X4 Adds New Features for Easy Site Design

URL: http://www.webreference.com/xml/column66/index.html
Created: Oct 14, 2002
Revised: Oct 14, 2002