- From: Alexandre Alapetite <alexandre@alapetite.net>
- Date: Sat, 16 Jun 2007 20:57:20 +0200
- To: public-html@w3.org
- Message-ID: <42a8e2e00706161157i66ad2d0k998ad07cebe530e1@mail.gmail.com>
Hi,
For those of you interested in HTML 5 and/or HTML validation, here is
a short (beta) Schematron for testing the HTML 5 stricter content
model: 'some elements can now contain either "block level" or "inline
level" content, but not both'.
Those of you curious to see the proportion of XHTML 1.x documents
already compliant with this stricter content model can give it a try
(see also attachment).
If you need a crawler to test many pages, this Schematron is
integrated in my XHTML/XML validator
[http://alexandre.alapetite.net/distribution/weblide/] when choosing
the "expert" mode.
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.ascc.net/xml/schematron">
<ns prefix="html" uri="http://www.w3.org/1999/xhtml"/>
<title>Schematron Schema for HTML 5 additional constraints</title>
<p>
This module is used to test some (X)HTML 5
constraints on (X)HTML 4 documents.
See [http://dev.w3.org/cvsweb/~checkout~/html5/html4-differences/Overview.html#stricter-content-models].
</p>
<pattern name="HTML 5 restrictions">
<rule context="html:applet|html:blockquote|html:body|html:button|
html:center|html:dd|html:del|html:div|html:fieldset|
html:form|html:iframe|html:ins|html:li|html:noframe|
html:noscript|html:td|html:th"
role="WARNING">
<report test="(html:address or html:blockquote or html:center
or html:dir or html:div or html:dl or html:fieldset
or html:form or html:h1 or html:h2 or html:h3 or html:h4
or html:h5 or html:h6 or html:hr or html:isindex
or html:menu or html:noframes or html:noscript or html:ol
or html:p or html:pre or html:table or html:ul)
and ((string-length(text()) > 0) or html:a or html:abbr
or html:acronym or html:applet or html:b or html:basefont
or html:bdo or html:big or html:br or html:button
or html:cite or html:code or html:dfn or html:em
or html:font or html:i or html:iframe or html:img
or html:input or html:kbd or html:label or html:map
or html:object or html:q or html:s or html:samp
or html:script or html:select or html:small or html:span
or html:strike or html:strong or html:sub or html:sup
or html:textarea or html:tt or html:u or html:var)">
Compatibility HTML 5:
There is both a
<value-of select="name(html:*[self::html:address
or self::html:blockquote
or self::html:center or self::html:dir
or self::html:div or self::html:dl
or self::html:fieldset or self::html:form or self::html:h1
or self::html:h2 or self::html:h3 or self::html:h4
or self::html:h5 or self::html:h6 or self::html:hr
or self::html:isindex or self::html:menu
or self::html:noframes or self::html:noscript
or self::html:ol or self::html:p or self::html:pre
or self::html:table or self::html:ul][1])"/>
and a
<value-of select="substring(concat('#text',
name(html:*[self::html:a or self::html:abbr
or self::html:acronym or self::html:applet
or self::html:b or self::html:basefont
or self::html:bdo or self::html:big or self::html:br
or self::html:button or self::html:cite
or self::html:code or self::html:dfn
or self::html:em or self::html:font or self::html:i
or self::html:iframe or self::html:img
or self::html:input or self::html:kbd
or self::html:label or self::html:map
or self::html:object or self::html:q or self::html:s
or self::html:samp or self::html:script
or self::html:select or self::html:small
or self::html:span or self::html:strike
or self::html:strong or self::html:sub
or self::html:sup or self::html:textarea
or self::html:tt or self::html:u
or self::html:var][1])),
1+5*number(string-length(text())=0),
5+9*number(string-length(text())=0))"/>
in the same <name/> element.
A <name/> element can contain either "block level" (e.g. div, p)
or "inline level" (e.g. #text, span, em) content, but not both.
</report>
</rule>
</pattern>
</schema>
This Schematron can for sure be improved and extended... Comments are welcome.
Cordially,
Alexandre
http://alexandre.alapetite.fr
Attachments
- text/xml attachment: html5.xml
Received on Saturday, 16 June 2007 18:57:25 UTC