W3C specs requiring valid code

Hi,

I tried to create an (incomplete) overview of W3C specifications to see 
which ones already require valid code. Some W3C specifications are about 
interaction between machines rather than with users, so not all 
specifications are relevant to our discussion about validity. The large 
majority of specifications listed below already require valid code. 
Curiously, I could not find an explicit statement in the HTML 4.01 
specification that requires valid code (please correct me if I overlooked 
something), and this is the only exception in the HTML/XHTML family. I 
would conclude from this that developers (not just web developers but also 
developers of authoring tools) who generate invalid code are doing a bad 
job because they ignore an important requirement of the technologies they 
are using.

The overview below contains three sections
1. W3C specs requiring valid code
2. W3C specifications that require other types of conformance
3. W3C specifications that don't explicitly require valid code



W3C specifications requiring valid code


- HTML 2 (IETF RFC November 1995): 
http://ftp.ics.uci.edu/pub/ietf/html/rfc1866.txt
Section 1.2.1 states:
<blockquote>
A document is a conforming HTML document if:

         * It is a conforming SGML document, and it conforms to the
         HTML DTD (see 9.1, "HTML DTD").
[+ two other criteria]
</blockquote>
- HTML 3.2 (Recommendation 3.2): http://www.w3.org/TR/REC-html32#sgml : "As 
an SGML application, the syntax of conforming HTML 3.2 documents is defined 
by the combination of the SGML declaration and the document type definition 
(DTD)."

- XHTML 1.0 (Recommendation January 2000, revised August 2002): 
http://www.w3.org/TR/xhtml1/#normative

- XHTML Basic (Recommendation December 2000): 
http://www.w3.org/TR/xhtml-basic/#s2.1

- XHTML 1.1 (Recommendation May 2001): 
http://www.w3.org/TR/xhtml11/conformance.html#s_conform

- XHTML 2 (May 2005 Working Draft): 
http://www.w3.org/TR/2005/WD-xhtml2-20050527/conformance.html#doccont

- XHTML-Print (20 January 2004 Candidate Recommendation): 
http://www.w3.org/TR/2004/CR-xhtml-print-20040120/#s2.1

- An XHTML + MathML + SVG Profile (August 2002 Working Draft): 
http://www.w3.org/TR/XHTMLplusMathMLplusSVG/

- SVG 1.0 (Recommendation September 2001): 
http://www.w3.org/TR/2001/REC-SVG-20010904/conform.html#ConformingSVGStandAloneFiles

- SVG 1.1 (Recommendation January 2003): 
http://www.w3.org/TR/SVG11/conform.html#ConformingSVGStandAloneFiles

- Mobile SVG Profiles: SVG Tiny and SVG Basic (Recommendation January 
2003): http://www.w3.org/TR/SVGMobile/#sec-conformance (in spite of typos: 
"supported D" and "supported E" should probably be replaced with "appendix 
D" and "appendix E", respectively, which contain the DTDs).

- SVG Tiny 1.2 (April 2005 Working Draft): 
http://www.w3.org/TR/SVGMobile/#sec-conformance

(- SVG Full 1.2 (April 2005 Working Draft): this will be a superset of SVG 
1.2 Tiny, but it does not yet have a conformance section (or any other 
sections).)

- XForms 1.0 (Recommendation October 2003: 
http://www.w3.org/TR/xforms/slice12.html#conform-desc-documents states 
(among other things) that "Individual XForms fragments must be schema-valid 
against the Schema for XForms".
- XForms 1.0 (Proposed Edited Recommendation, October 2005): 
http://www.w3.org/TR/2005/PER-xforms-20051006/slice12.html#conform-desc-documents 
states (among other things) that "Individual XForms fragments must be 
schema-valid against the Schema for XForms".

- XForms 1.0 Basic Profile (October 2003 Candidate Recommendation): 
http://www.w3.org/TR/2003/CR-xforms-basic-20031014/#id2606183 (strictly 
speaking only defines conformance for processors, which must meet the 
requirements for XForms 1.0).

- SMIL 2.0 2nd edition (Recommendation January 2005): 
http://www.w3.org/TR/2005/REC-SMIL2-20050107/smil20-profile.html#SMILProfileNS-ConformingDocuments 
. The DTDs are normative; the XSD schemas are informative. (The rules for 
SMIL host language and integration language conformance are different from 
SMIL Language Conformance: see 
http://www.w3.org/TR/SMIL/smil-modules.html#smilModulesNSSMILConformance .)

- SMIL 2.1 (September 2005 Proposed Recommendation): 
http://www.w3.org/TR/2005/PR-SMIL2-20050927/smil21-profile.html#SMILProfileNS-LanguageConformance 
. (The rules for SMIL host language and integration language conformance 
are different from SMIL Language Conformance: see 
http://www.w3.org/TR/2005/PR-SMIL2-20050927/smil-modules.html#smilModulesNSSMILConformance 
.)

- MathML 2.0 (Recommendation October 2003): 
http://www.w3.org/TR/2003/REC-MathML2-20031021/chapter7.html#id.7.2.1 
states that "A valid MathML expression is an XML construct determined by 
the MathML DTD together with the additional requirements given in this 
specification."

- VoiceXML 2.0 (Recommendation March 2004): 
http://www.w3.org/TR/2004/REC-voicexml20-20040316/#dmlAConformance

- Speech Synthesis Markup Language 1.0 (Recommendation September 2004): 
http://www.w3.org/TR/speech-synthesis/#S2.2

- Speech Recognition Grammar Specification 1.0 (Recommendation March 2004): 
http://www.w3.org/TR/2004/REC-speech-grammar-20040316/#S5

- VoiceXML 2.1 (June 2005 Candidate Recommendation): 
http://www.w3.org/TR/2005/CR-voicexml21-20050613/#sec-conform




W3C specifications that require other types of conformance


- CSS Level 1 (Recommendation December 1996, revised January 1999) has a 
normative grammar (http://www.w3.org/TR/CSS1#appendix-b).

- CSS Level 2 (Recommendation May 1998): 
http://www.w3.org/TR/CSS2/conform.html#conformance (especially the third 
point).

- CSS Level 2 revision 1 (CSS 2.1) (June 2005 Working Draft; previous 
version was Proposed Recommendation): 
http://www.w3.org/TR/CSS21/conform.html#conformance (especially the third 
point).

- CSS 3 consists of many modules, each of which has a "Conformance: 
Requirements and Recommendations" section; I have not checked these. (The 
place to start is http://www.w3.org/Style/CSS/current-work.)

Some specifications define technologies that are used inside other 
technologies instead of on their own. These technologies are XML-based and 
usually depend on namespaces. The absence of an explicit requirement for 
valid code cannot be construed as a permission for invalid code. Examples 
include XLink, XML Events, and SVG's XML Binding Language (sXBL).

- PNG 2nd edition (Recommendation November 2003; ISO/IEC 15948:2003) is a 
binary format; the specification defines conformance for datastreams, 
encoders, decoders and editors: http://www.w3.org/TR/PNG/#15ConformanceConf .




W3C specifications that don't explicitly require valid code


- HTML 4.01 (Recommendation December 1999): an HTML document is defined as 
"An HTML document is an SGML document that meets the constraints of this 
specification," (http://www.w3.org/TR/html4/conform.html#h-4.1) but I can't 
find which sections of the specification (especially the DTDs) are 
normative or informative. Conformance is only defined for user agents: 
http://www.w3.org/TR/html4/conform.html#conformance. User agents are 
allowed to render invalid documents, and there are notes on this specific 
issue: http://www.w3.org/TR/html4/appendix/notes.html#notes-invalid-docs.

- XFrames (October 2005 Working Draft); but it has normative schemas in 
DTD, XSD and Relax NG: 
http://www.w3.org/TR/2005/WD-xframes-20051012/#a_module_definition.

- SVG Print (July 2003 Working Draft) has no conformance section and the 
statements about its relation with other SVG specifications is not strong 
enough to count as a validity requirement.

- SMIL 1.0 (Recommendation June 1998): 
http://www.w3.org/TR/REC-smil/#smil-dtd : has no conformance section, but 
the DTD is normative (only non-normative sections of the specification are 
explicitly marked, so I assume that the rest is normative).

- MathML 1.0 (Recommendation 1997, revised 1999) has no conformance 
section. The section about parsing MathML 
(http://www.w3.org/TR/REC-MathML/appendixA.html) states that "MathML 
documents should be validated using the XML DTD below", so this is not an 
absolute requirement.

- WebCGM 1.0 2nd release (Recommendation December 2001): 
http://www.w3.org/TR/REC-WebCGM/REC-01-CGM-Intro.html#webcgm_1_5 mentions 
validation in the context of conformance, but it is not obvious from that 
docment what validation means.



Regards,

Christophe Strobbe



-- 
Christophe Strobbe
K.U.Leuven - Departement of Electrical Engineering - Research Group on 
Document Architectures
Kasteelpark Arenberg 10 - 3001 Leuven-Heverlee - BELGIUM
tel: +32 16 32 85 51
http://www.docarch.be/ 


Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm

Received on Wednesday, 9 November 2005 15:17:18 UTC