Lists Home |
Date Index |
Elliotte Rusty Harold wrote:
>At 10:27 AM -0800 2/22/04, Dennis Sosnoski wrote:
>>Can you mention what the main flaws are for Piccolo? I've seen a
>>number of companies using it, and from what I remember it's also the
>>basis of the parser used by BEA's NetBeans (now part of Apache, so
>>that may be changing). Many people would consider BEA's main XML
>>infrastructure project to be serious work. :-)
>... But several problems with Piccolo include:
>1. Inability to recognize ignorable white space.
>2. Use of non-standard ENUMERATION attribute type instead of NMTOKEN
>3. Failure to handle document type declarations that only contain a
>root element name
>4. Frequent throwing of ArrayIndexOutOfBoundsExceptions when
>encountering various kinds of well-formedness errors
>5. It treats <name/> and <name></name> differently. For <name></name>
>it calls characters() between startElement and endElement and sets
>length to 0.
>Arguably 1 and 5 are acceptable. I'd love to hear peoples' opinions
>about 5. Is this legitimate?
Your standards are perhaps a tad more stringent than those of many
companies working with XML. AFAIK "ignorable white space" is only
defined for validating parsers, so I don't see how there's anything
"arguable" about Piccolo not reporting it (item 1 on your list).
Likewise with item 5 - I've seen nothing in the SAX specification that
says a parser can't make a zero-length characters() report whenever it
feels like it. 2-4 all look like real bugs, though I'd suspect they only
effect a tiny minority of users. I haven't even seen a single
application that actually makes use of attribute types, for example.
It's great that you're tracking down these types of flaws, though, and I
hope the parser writers correct them.