[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Determing DTD attributes
- From: Patrick Lightbody <plightbo@cisco.com>
- To: xml-dev@lists.xml.org
- 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