[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: DTD parser again
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@x... For additional commands, e-mail: xerces-j-dev-help@x... 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@x...&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@x...&BODY=unsubscribe%20xml-dev List archives are available at http://xml.org/archives/xml-dev/ ***************************************************************************
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|