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*( />|(.*)) html: <\s*(a|b|br)( (\S+)\s*=\s*['"]([^'"]+)['"])*\s*((?: /)?>|(:?)?) * 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