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

Re: SAX2: DTDDeclHandler (minimalist position)

  • From: Lars Marius Garshol <larsga@i...>
  • To: "XML Developers' List" <xml-dev@i...>
  • Date: 25 Mar 1999 23:04:18 +0100

sax2 python download

* David Megginson
| I'm still shying away from reporting element-type declarations, at
| least until someone shows me an easy and concise way of doing it (in
| AElfred, I simply provided the content model as a fully-normalised
| string).

This is difficult in Java, mainly because of a gross deficiency in the
language: the difficulties of representing general nested list
structures in memory. Over-emphasis on objects has some ugly
side-effects.  I think this would be easier in C, even. (Arrays and
unions should do it.)

xmlproc uses Python lists and tuples to do this:

<URL: http://www.stud.ifi.uio.no/~larsga/download/python/xml/xmlproc-dtd-doco.html#ElementType>

and similarly easy solutions are easily imaginable in other scripting
languages, as well as industrial-strength ones like Common Lisp.

For Java I suppose the string solution is the most natural one.  I
don't think that approach will be chosen in the Python version, though.
Also, if element declarations are included, I suppose notations should
be, too. Shouldn't be very hard, and I think the benefits are great
enough that both should be included. This should be enough to present
a SAX 1.0-like view of DTDs, more or less without lexical information,
and still be simple enough to warrant the name SAX.

| public interface DTDDeclHandler
| {
|     public final static int ATTRIBUTE_DEFAULTED = 1;
|     public final static int ATTRIBUTE_IMPLIED = 2;
|     public final static int ATTRIBUTE_REQUIRED = 3;
|     public final static int ATTRIBUTE_FIXED = 4;
|     public abstract void attributeDecl (String element,
| 					String name,
| 					String type,

Here we need some convention for representing enumerations.
"ENUMERATION" will probably do. :)
|     public abstract void externalEntityDecl (String name,
| 					     boolean isParameterEntity,
| 					     String publicId,
| 					     String systemId)
| 	throws SAXException;

I think it would be more natural to have separate callbacks for
parameter entities. It makes the interface grow, but I think it is
more intuitive to learn (the first look at the javadoc shows how it
works, you don't have to study the parameters in detail to figure it
out) and also more natural to use. 
|     public abstract void internalEntityDecl (String name,
| 					     boolean isParameterEntity,
| 					     String value)
| 	throws SAXException;

Should value be named 'replacementText', just to make it clearer what
it is?

--Lars M.

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@i...
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:majordomo@i... the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo@i... the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa@i...)


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.
First Name
Last Name
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.