[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: DTD parser again

  • From: lisa@e... (Lisa Retief)
  • To: "Huaxin Zhang" <hxzhang@c...>, <xml-dev@x...>
  • Date: Mon, 10 Jul 2000 15:59:40 +0200

xerces dtd parser
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!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.