Ordered list syntax.

Jelks Cabaniss jelks at jelks.nu
Sun Mar 28 00:05:11 EST 2004


Lou Quillio wrote:
> Okay, this surprised me.  Per the W3C validator, <ol> type and start
> attributes validate *even as XHTML 1.1 Trans*. ...
> Evidently, 1.1 left the Transitional door open.  I'd thought that 1.0
> Trans was the end.  Wasn't it supposed to be?

It was.  Your supposed 1.1 document at

	http://quillio.com/markdown/list_test.text

has this declaration:

	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Transitional//EN"
	  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Now take a look at the one for 1.0 Transitional:

	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Notice anything strange about those two?  :)

The W3C Validator can't use the catalog mechanism when it doesn't recognize
the "Formal Public Identifier".  And that's precisely what happened when it
saw "1.1 Transitional", because no such beast exists.  In such cases, it
goes straight to the SYSTEM URI instead.  So even when your declaration
reads

	<!DOCTYPE html PUBLIC "-//ooh!//Purple Pigs taste great!//EN"
	  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

you're still referencing the 1.0 Transitional DTD.  Try it!  :)


Anyway, DTDs are for validation purposes only.  Several people have
commented about the 'start' and 'type' attributes being "deprecated".  So
what?  It's already recognized by a number of folks (including at the W3C)
as being *wrongly* deprecated.  

So you could use 1.0 Transitional in documents where you want 'start' and
'type', and still be Theologically Approved by the W3C.  There's no crime in
Transitional -- it doesn't mean you *have* to use <font> tags (or other
justifiably deprecated elements), nor does it mean you have leprosy.  It
just means you have a certain data model against which you're checking your
document.

Or use your *own* DTD!  One "approved" method of doing this is to use 1.1
Modularization techniques.  Too much trouble for me -- I just hacked the 1.0
Strict DTD and added the stuff I wanted and removed the stuff I didn't.
Made up my own FPI and pointed the SYSTEM URI to the DTD on my server.  

Markdown doesn't create any DOCTYPE declarations, and as the author you're
free to use whatever declaration you wish -- Strict, Transitional, 1.1, your
own, whatever.  

And as has been pointed out (and with which I fully agree), both inline CSS
and "canonical" class attributes are not only sore thumbs, they're pretty
deep black holes as well.  

AFAICT, that leaves two choices:

1.  Have Markdown emit only 1.0 Strict valid markup.  This means the user
better avoid starting ordered lists with numbers other than 1, and had
better only use decimal numbers.  

2.  Allow for MD equivalents of 'start' and 'type', and let the user be
responsible for his or her own DOCTYPE declaration[s].

I could live with either, but would vastly prefer #2.


/Jelks



More information about the Markdown-discuss mailing list