Note: HTML5 has conformance requirements that can only be verified by a human. Validation by a computer does not indicate complete HTML5 conformance. The human-only verifyable conformance requirements are:
* Conform to HTML5 machine conformance validator conformance requirements.
* Support all validation capabilities of all existing XML schema languages.
* Ability to specify not only XML.
* XML and non-XML schema formats.
* Normalize all whitespace to one space.
* " " = \s*
* Table's can't be sufficiently specified in existing scheme languages.
* Useful error messages.
* Convertors from relax ng, schematron, XSD, and DTD.
* "Assistance for Checking Human-Checkable Requirements"
* Ability to write complete schemas for schemas from this, relax ng, schematron, XSD, and DTD.
* 01:20PM < gsnedders|work> Philip`: Atom Syndication Format can't be expressed in any either, AFAIK
(can be in relax ng + schematron)
* Validate perl source?
* ability to define nodes (elements and comments are nodes).
m#name, attributes, content, name = m#^< (\w+) (\w+)\s+>(.*)</(\w+)>$#
node,attributes,value = m#fish(.*)apple(.*)zero(.*)can#
fishnodeapplename="node"zerocan
* XSD type parsed output?
* a ref must not have a child with the same name
* convert between all forms of HTML
* , maybe name?
xml: <\s*(\S+)( (\S+)\s*=\s*['"]([^'"]+)['"])*\s*( />|(.*)$1>)
html: <\s*(a|b|br)( (\S+)\s*=\s*['"]([^'"]+)['"])*\s*((?: /)?>|(:?$1>)?)
* ability to redefine how nodes are defined
Define: descendent, child, parent, element, tag, attribute, ancestor
"conformance checkers are required to warn the user when the following features are used in a document. "
11:43AM < Darxus> XHTML 1.0 does not allow text directly in a body element, but HTML5 does??
XSD can't write a complete schema for an XSD schema.
http://www.oreillynet.com/xml/blog/2007/01/diagram_comparing_schema_langu.html
What is XSLT?
Steps to validate:
* Basic nesting (can this element / attribute ever exist here?): element, attribute
* Conditional nesting (How about in this particular situatin? Is it required?): noparent, nochild, noancestor, nodescendent, inorder, attribute count, choice, group
* Value type enforcement (Is this datetime value properly formatted?): regex