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

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Determing DTD attributes



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