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

  • From: Patrick Lightbody <plightbo@c...>
  • To: xml-dev@l...
  • Date: Tue, 16 Jan 2001 18:00:29 -0800

Using Oracle's java XML parser, I've successfully been able to parse a DTD 
and get a root ElementDecl object. From there I can use the method 
getContentElements() to get a Vector of String objects that refer to all 
the "child" Elements. Then using DTD.findElementDecl(this_string) I can get 
references to the "child" ElementDecl objects. Doing this I can re-curse 
through a DTD in a tree like fashion. However, what I haven't been able to 
figure out is how to determine if a "child" ElementDecl has a *,+, or ? 
attribute. Basically, I want to know if a certain element is required, or 
how many times it can be repeated.

In the long run, I'm trying to create a servlet that looks at a DTD and 
then generates a web page for users to input data in to. When they click 
save, an XML file is created that conforms to that DTD. I almost have all 
the pieces needed, except for figuring out the *, +, ?, etc stuff. Here is 
an example DTD I've been working with:

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT code_output (device_name?, debug_text)>
<!ELEMENT device_name (#PCDATA)>
<!ELEMENT debug_text (#PCDATA | link)*>
<!ELEMENT link (#PCDATA)>

Right now I can print out this tree with my class:
code_output
	device_name
	debug_text
		link

What I want to get is:
code_output
	device_name (0 or 1)
	debug_text (required)
		link (0 or more)

Please help me. I'm using Oracle's parser, although I'd be willing to use 
any parser that can help. Thanks.

-Pat


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