W3C home > Mailing lists > Public > www-qa-wg@w3.org > June 2004

Re: [SpecGL Draft] D3 Good Practice: Define error handling for unknown extensions

From: Lynne Rosenthal <lynne.rosenthal@nist.gov>
Date: Fri, 25 Jun 2004 09:31:55 -0400
Message-Id: <5.1.0.14.2.20040625092226.00b0da38@mailserver.nist.gov>
To: Karl Dubost <karl@w3.org>, www-qa-wg@w3.org

Comments and suggestions in line

>D.3 Extensibility and Extensions
>
>Previous:
>---------------------------------------------
>Good Practice
>         Define error handling for unknown extensions. When defining 
> extensibility, include error handling instructions for when an extension 
> is not available or understood.
>---------------------------------------------
>
>Proposal:
>---------------------------------------------
>Principle:
>         Define error handling for unknown extensions

Depending on what we decide is a requirements for conformance to SpecGL - 
I'm not sure that this should be a Principle (i.e., requirement).  Is it 
always possible to define the error handling?


>Meaning:
>         When using a strict conforming application, users might have to 
> deal with documents, data which are considered invalid because they are 
> containing errors, or they are extended. Developpers will need to know 
> what must be the behavior of the application in such context.

This sounds more like a 'why care' rather than meaning.  Suggest:
Include error handling instructions for when an extension is not available 
or understood.

>Care:
>         A consistent error handling helps interoperability with regards 
> to usability. There is the well known Postel law which says "Be Strict in 
> what you produce, Be tolerant in what you accept". Though it has been 
> shown that often this has been the start of a nightmare for implementers 
> who have to deal with all the possible cases to recover from exotic 
> documents (non conformant or extended). Giving a consistent error 
> handling mechanism eases the work of developpers.

Nice!

>Techniques:
>There are typically two approaches: (from WebArch)
>         * Must ignore: ignore any content it does not recognize
>         Must ignore can be further refined, requiring that the unknown 
> item be  passed through unchanged to the next downstream process, while 
> other technologies simply discard it.
>         * Must understand: treat unrecognized markup as an error condition.
>
>         A good way to handle these two approaches is to have a way in the 
> syntax to distinguish which behavior is expected, e.g., mustUnderstand 
> attribute in Soap 1.2
>
>Don't forget to address all your classes of products. For example, an 
>authoring tool and a rendering tool might have to behave in a different 
>way or not.
>
>Example: (todo)
>         * SOAP 1.2
>         * XML: Well-formed or invalid...
>         * XHTML 1.0
>         * HTML 4.01
>         * Ruby?

regards
Lynne
Received on Friday, 25 June 2004 09:34:14 GMT

This archive was generated by hypermail 2.2.0 + w3c-0.30 : Thursday, 9 June 2005 12:13:16 GMT