Re-Write of Extensions section

The text below is my re-write of the the Extension text in Spec Lite in 
accordance with my action item AI-20040403-01.

This re-writes incorporates the "Skallian hypothesis".

D.3 Plan for extensions
Extensions incorporate new features beyond what is defined in the 
specification.
Note: SpecGL specifically limits profiles, modules and levels to ways of 
sub-dividing the specification.  This implies no new features can be added 
to profiles, modules, levels.

Extensions provide implementers the ability to include functionality that 
they consider to be required by their customers. It also provides a way to 
'test-drive' new functionality that may migrate into future versions of the 
specification.
Extensions can compromise interoperability if there are too many 
differences between implementations. However, extensions are not the only 
way to allow for additional functionality.  The impact of  new 
functionality can be mitigated through features specifically designed to 
allow new functonality.  These features provide a  "standard way to be 
non-standard"  by including hooks in the specification or other mechanisms 
by which new functionality may be added in a conforming way. Extensibility 
is not free @@@ but with good planning, the long term benefits may be worth 
the cost.
Principle 1: Deal with the ways to allow new functionality
Consider whether some parts of the specification will benefit from 
extensibility. If so, provide features that incorporate a uniform mechanism 
or hook to allow this.
Why care?Extensions increase variability between implementations. Providing 
a uniform mechanism or hook will help to ensure that new functions are 
defined in a consistent manner leading to predictable handling of them, @@@ 
their recognition as such and the appropriate actions to take. By planning 
for new functionality and designing a specification for extensibility, 
there is less chance that the new functionality will interfere with 
conformance to the original specification and a better chance at achieving 
interoperability.
Examples of technologies that are explicitly designed to allow 
extensibility include: extensibility models in CSS, XSLT 1.0, and SOAP), 
user agent plug-ins.
Extensions have consequences beyond affecting the base-standard - need to 
account for this. Can have multiple levels of extensions.
Example: XHTML modularization - allows for the definition of new XHTML Mod 
- conformant extensions.

****************************************************************
Mark Skall
Chief, Software Diagnostics and Conformance Testing Division
Information Technology Laboratory
National Institute of Standards and Technology (NIST)
100 Bureau Drive, Stop 8970
Gaithersburg, MD 20899-8970

Voice: 301-975-3262
Fax:   301-590-9174
Email: skall@nist.gov
**************************************************************** 

Received on Tuesday, 4 May 2004 15:29:52 UTC