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

Re: SAX: Attributes and Entity Resolution

  • From: James Clark <jjc@j...>
  • To: xml-dev Mailing List <xml-dev@i...>
  • Date: Mon, 05 Jan 1998 09:10:24 +0700

attribute represented in sax
David Megginson wrote:

> While I agree that a full entity manager would be more powerful than a
> simple callback, I am not certain that the power will really be needed
> by most SAX users; furthermore, if it is needed, that functionality
> can be supplied more generally by an HTTP or FTP proxy server.  For
> now, then, I recommend that we stick with the resolveEntity callback,
> which is simple to use and to learn, but provides 80% of the required
> functionality (that's 80% in the abstract 80/20 sense).

I don't think the entity manager interface has to be any more
complicated than a single resolveEntity callback.  My main point is that
this doesn't belong as part of the App.  Putting separate pieces of
functionality into separate interfaces does not make things harder to
use and learn; on the contrary it makes it easier.

>   public void attribute (String elementName, String aname, String value);
> 
> For example, with the following markup
> 
>   <para id="p1" level="advanced">This is a paragraph.</para>
> 
> We would have five SAX events:
> 
>   attribute:    elementName="para" aname="id" value="p1"
>   attribute:    elementName="para" aname="level" value="advanced"
>   startElement: name="para"

Putting attributes before the start element would be seriously
confusing: in the markup the element name comes before the attributes,
and the attributes are logically part of the element. Having an
attribute callback that happens after the startElement makes some
sense.  It is to some extent arbitrary whether information is
represented as subelements or attributes; having subelements and
attributes be represented in a similar way would be consistent with
this.

I think I would also pass the element type name as an additional
argument to the attribute call, since the name of an attribute is in
general meaningful only in the context of a particular element type.

It's also useful to know when the attributes have ended and the content
is starting, and I would have a callback for this that also passed the
element type name.

This isn't pretty.

An alternative simple approach would be to have

startElement(String elemName, String[] attNames, String[] attVals, int
nAtts);

As with the charData callback, the parser would be free to mutate the
arrays once the startElement method returns, and so it would not need to
allocate two arrays for every element.

James



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/
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...)


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-2011 All Rights Reserved.