[
Lists Home |
Date Index |
Thread Index
]
- From: lisa@exinet.co.za (Lisa Retief)
- To: "Huaxin Zhang" <hxzhang@cs.ualberta.ca>, <xml-dev@xml.org>
- Date: Mon, 10 Jul 2000 15:59:40 +0200
I do it using Xerces-J (http://xml.apache.org/xerces) via the SAX API. It is
a bit of a roundabout way as you need to parse a
Document that uses the particular DTD, but before doing so set the SAXParser
to use your own implementation of "org.xml.sax.ext.DeclHandler".
The code looks something like:
SAXParser parser = new SAXParser();
DeclHandler handler = new CustomDeclHandler();
parser.setProperty("http://xml.org/sax/properties/declaration-handler",
handler);
parser.parse(document.getAbsolutePath());
The CustomDeclHandler looks a bit like the code below, except you'll
probably do something more useful than just print things out. I load the
information into another class which I can then interrogate...
class CustomDeclHandler
implements org.xml.sax.ext.DeclHandler
{
public void attributeDecl(java.lang.String elementName,
java.lang.String attributeName,
java.lang.String type,
java.lang.String valueDefault,
java.lang.String value)
{
System.out.println("ATTRIBUTE: ");
System.out.println("Element Name: " + elementName);
System.out.println("Attribute Name: " + attributeName);
System.out.println("Type: " + type);
System.out.println("Default Value: " + valueDefault);
System.out.println("Value: " + value);
System.out.println();
}
public void elementDecl(java.lang.String name,
java.lang.String model)
{
System.out.println("ELEMENT: ");
System.out.println("Name: " + name);
System.out.println("Model: " + model);
System.out.println();
}
public void externalEntityDecl(java.lang.String name,
java.lang.String publicId,
java.lang.String systemId)
{
System.out.println("EXTERNAL ENTITY: " + name + publicId + systemId);
}
public void internalEntityDecl(java.lang.String name,
java.lang.String value)
{
System.out.println("INTERNAL ENTITY: " + name + value);
}
}
Regards, Lisa
Dylan Walsh wrote:
> In Java, how can you inspect a DTD, without writing your own code to parse
> it? Does DOM or SAX expose the DTD in terms of what elements, attributes
> etc. are allowed?
>
> If not, is there any software out there to do it?
>
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-j-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-j-dev-help@xml.apache.org
Huaxin Zhang wrote:
> Hi,
> Is there any DTD parser for JAVA? Better api than applications. (IBM's XML
> parser nolonger support DTD parsing, right?)
>
> Thanks.
>
>
>
>
***************************************************************************
> 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/
>
***************************************************************************
>
***************************************************************************
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/
***************************************************************************
|