datatypes w = "http://whattf.org/datatype-draft"
# #####################################################################
##  RELAX NG Schema for HTML 5: Obsolete Elements and Attributes      #
# #####################################################################

## In order to work around RELAX NG limitations and to thereby get more
## useful error messages, the following elements and attributes are
## allowed here but disallowed in the assertions-checking code.

## Obsolete elements

## Centering: <center>

	center.elem =
		element center { center.inner & center.attrs }
	center.attrs =
		( common.attrs )
	center.inner =
		( common.inner.flow )

	common.elem.flow |= center.elem

## Inline Styling: <font>

	font.elem =
		element font { font.inner & font.attrs }
	font.attrs =
		(	common.attrs
		&	font.attrs.color?
		&	font.attrs.face?
		&	font.attrs.size?
		&	common.attrs.aria?
		)
		font.attrs.color =
			attribute color {
				string
			}
		font.attrs.face =
			attribute face {
				string
			}
		font.attrs.size =
			attribute size {
				string
			}
	font.inner =
		( common.inner.phrasing )

	common.elem.phrasing |= font.elem

## Base Font Size: <basefont>

	basefont.elem =
		element basefont { empty & basefont.attrs }
	basefont.attrs =
		(	common.attrs
		&	basefont.attrs.color?
		&	basefont.attrs.face?
		&	basefont.attrs.size?
		)
		basefont.attrs.color =
			attribute color {
				string
			}
		basefont.attrs.face =
			attribute face {
				string
			}
		basefont.attrs.size =
			attribute size {
				string
			}

	common.elem.flow |= basefont.elem

## Larger Font: <big>

	big.elem =
		element big { big.inner & big.attrs }
	big.attrs =
		( common.attrs )
	big.inner =
		( common.inner.flow )

	common.elem.phrasing |= big.elem

## Struck Text: <strike>

	strike.elem =
		element strike { strike.inner & strike.attrs }
	strike.attrs =
		( common.attrs )
	strike.inner =
		( common.inner.flow )

	common.elem.phrasing |= strike.elem

## Teletype: <tt>

	tt.elem =
		element tt { tt.inner & tt.attrs }
	tt.attrs =
		( common.attrs )
	tt.inner =
		( common.inner.flow )

	common.elem.phrasing |= tt.elem

## Abbreviation: <acronym>

	acronym.elem =
		element acronym { acronym.inner & acronym.attrs }
	acronym.attrs =
		( common.attrs )
	acronym.inner =
		( common.inner.flow )

	common.elem.phrasing |= acronym.elem

## Directory: <dir>

	dir.elem =
		element dir { dir.inner & dir.attrs }
	dir.attrs =
		(	common.attrs
		&	dir.attrs.compact?
		)
	dir.attrs.compact =
		attribute compact {
			string
		}
	dir.inner =
		( li.elem* )

	common.elem.flow |= dir.elem

## Java Applets: <applet>

	applet.elem.flow =
		element applet { applet.inner.flow & applet.attrs }
	applet.elem.phrasing =
		element applet { applet.inner.phrasing & applet.attrs }
	applet.attrs =
		(	common.attrs
		&	applet.attrs.archive?
		&	applet.attrs.code
		&	applet.attrs.codebase?
		&	applet.attrs.name?
		&	applet.attrs.height
		&	applet.attrs.width
		)
		applet.attrs.archive =
			attribute archive {
				common.data.uri #FIXME *comma* separated URI list (*grumble*)
			}
		applet.attrs.code =
			attribute code {
				token
			}
		applet.attrs.codebase =
			attribute codebase {
				common.data.uri
			}
		applet.attrs.name =
			attribute name {
				string #FIXME refine
			}
		applet.attrs.height =
			attribute height {
				common.data.integer.positive
			}
		applet.attrs.width =
			attribute width {
				common.data.integer.positive
			}
	applet.inner.flow =
		(	param.elem*
		,	common.inner.flow
		)
	applet.inner.phrasing =
		(	param.elem*
		,	common.inner.phrasing
		)

	common.elem.flow |= applet.elem.flow
	common.elem.phrasing |= applet.elem.phrasing

## Frame Set: <frameset>

	frameset.elem =
		element frameset { frameset.inner & frameset.attrs }
	frameset.attrs =
		(	common.attrs
		&	frameset.attrs.rows?
		&	frameset.attrs.columns?
		&	frameset.attrs.onunload?
		)
		frameset.attrs.rows =
			attribute rows {
				string
			}
		frameset.attrs.columns =
			attribute columns {
				string
			}
		frameset.attrs.onunload =
			attribute onunload {
				string
			}
	frameset.inner =
		(
			(	frameset.elem
			|	frame.elem
			)+
			& noframes.elem?
		)

## Frame: <frame>

	frame.elem =
		element frame { empty & frame.attrs }
	frame.attrs =
		(	common.attrs.basic
		&	common.attrs.i18n
		&	common.attrs.present
		&	common.attrs.other
		&	frame.attrs.longdesc?
		&	frame.attrs.name?
		&	frame.attrs.src?
		&	frame.attrs.frameborder?
		&	frame.attrs.marginwidth?
		&	frame.attrs.marginheight?
		&	frame.attrs.noresize?
		&	frame.attrs.scrolling?
		)
		frame.attrs.longdesc =
			attribute longdesc {
				string
			}
		frame.attrs.name =
			attribute name {
				string
			}
		frame.attrs.src =
			attribute src {
				string
			}
		frame.attrs.frameborder =
			attribute frameborder {
				string
			}
		frame.attrs.marginwidth =
			attribute marginwidth {
				string
			}
		frame.attrs.marginheight =
			attribute marginheight {
				string
			}
		frame.attrs.noresize =
			attribute noresize {
				string
			}
		frame.attrs.scrolling =
			attribute scrolling {
				string
			}

## Alternate no-frames content: <noframes>

	noframes.elem =
		element noframes { noframes.inner & noframes.attrs }
	noframes.attrs =
		( common.attrs )
	noframes.inner =
		( common.inner.flow )

	common.elem.flow |= noframes.elem

## "content-language" pragma directive: <meta http-equiv='content-language'>

	meta.http-equiv.content-language.elem =
		element meta { meta.inner & meta.http-equiv.content-language.attrs }
	meta.http-equiv.content-language.attrs =
		(	common.attrs.basic
		&	common.attrs.i18n
		&	common.attrs.present
		&	common.attrs.other
		&	meta.http-equiv.attrs.http-equiv.content-language
		&	meta.http-equiv.attrs.content.content-language?
		)
		meta.http-equiv.attrs.http-equiv.content-language =
			attribute http-equiv {
				w:string "content-language"
			}
		meta.http-equiv.attrs.content.content-language =
			attribute content {
				string
			}
		
	common.elem.metadata |= meta.http-equiv.content-language.elem # not quite right per spec
                                                               # if the definition is 
                                                               # reused in another language

## Obsolete attributes

## abbr attribute

	td.attrs.abbr =
		attribute abbr {
			string
		}
	td.attrs &= td.attrs.abbr?

	th.attrs.abbr =
		attribute abbr {
			string
		}
	th.attrs &= th.attrs.abbr?

## archive attribute

	object.attrs.archive =
		attribute archive {
			string
		}
	object.attrs &= object.attrs.archive?

## axis attribute

	td.attrs.axis =
		attribute axis {
			string
		}
	td.attrs &= td.attrs.axis?

	th.attrs.axis =
		attribute axis {
			string
		}
	th.attrs &= th.attrs.axis?

## charset attribute

	link.attrs.charset =
		attribute charset {
			string
		}
	link.attrs &= link.attrs.charset?

	a.attrs.charset =
		attribute charset {
			string
		}
	a.attrs &= a.attrs.charset?

## classid attribute

	object.attrs.classid =
		attribute classid {
			common.data.uri
		}
	object.attrs &= object.attrs.classid?

## codebase attribute

	object.attrs.codebase =
		attribute codebase {
			common.data.uri
		}
	object.attrs &= object.attrs.codebase?

## codetype attribute

	object.attrs.codetype =
		attribute codetype {
			common.data.mimetype
		}
	object.attrs &= object.attrs.codetype?

## code attribute

	object.attrs.code =
		attribute code {
			token
		}
	object.attrs &= object.attrs.code?

## coords attribute

	a.attrs.coords =
		attribute coords {
			string
		}
	a.attrs &= a.attrs.coords?

## declare attribute

	object.attrs.declare =
		attribute declare {
			string
		}
	object.attrs &= object.attrs.declare?

## longdesc attribute

	img.attrs.longdesc =
		attribute longdesc {
			common.data.uri.non-empty
		}
	img.attrs &= img.attrs.longdesc?

	iframe.attrs.longdesc =
		attribute longdesc {
			string
		}
	iframe.attrs &= iframe.attrs.longdesc?

## methods attribute

	a.attrs.methods =
		attribute methods {
			string
		}
	a.attrs &= a.attrs.methods?

	link.attrs.methods =
		attribute methods {
			string
		}
	link.attrs &= link.attrs.methods?

## name attribute

	img.attrs.name =
		attribute name {
			string
		}
	img.attrs &= img.attrs.name?

	embed.attrs.name =
		attribute name {
			string
		}
	embed.attrs &= embed.attrs.name?

	option.attrs.name =
		attribute name {
			string
		}
	option.attrs &= option.attrs.name?

## nohref attribute

	area.attrs.nohref =
		attribute nohref {
			string
		}
	area.attrs &= area.attrs.nohref?

## profile attribute

	head.attrs.profile =
		attribute profile {
			string
		}
	head.attrs &= head.attrs.profile?

## rev attribute

	link.attrs.rev =
		attribute rev {
			string
		}
	link.attrs &= link.attrs.rev?

	a.attrs.rev =
		attribute rev {
			string
		}
	a.attrs &= a.attrs.rev?

## scheme attribute

	meta.attrs.scheme =
		attribute scheme {
			string
		}
	meta.name.attrs &= meta.attrs.scheme?

## scope attribute

	td.attrs.scope =
		attribute scope {
			string
		}
	td.attrs &= td.attrs.scope?

## shape attribute

	a.attrs.shape =
		attribute shape {
			string
		}
	a.attrs &= a.attrs.shape?

## standby attribute

	object.attrs.standby =
		attribute standby {
			string
		}
	object.attrs &= object.attrs.standby?

## target attribute

	link.attrs.target =
		attribute target {
			string
		}
	link.attrs &= link.attrs.target?

## type attribute

	param.attrs.type =
		attribute type {
			string
		}
	param.attrs &= param.attrs.type?

## urn attribute

	a.attrs.urn =
		attribute urn {
			string
		}
	a.attrs &= a.attrs.urn?

	link.attrs.urn =
		attribute urn {
			string
		}
	link.attrs &= link.attrs.urn?

## usemap attribute

	input.attrs.usemap =
		attribute usemap {
			string
		}
	input.image.attrs &= input.attrs.usemap?

## valuetype attribute

	param.attrs.valuetype =
		attribute valuetype {
			string
		}
	param.attrs &= param.attrs.valuetype?

## version attribute

	html.attrs.version =
		attribute version {
			string
		}
	html.attrs &= html.attrs.version?

## Obsolete style attributes

## align attribute

	caption.attrs.align =
		attribute align {
			string
		}
	caption.attrs &= caption.attrs.align?

	col.attrs.align =
		attribute align {
			string
		}
	col.attrs &= col.attrs.align?

	colgroup.attrs.align =
		attribute align {
			string
		}
	colgroup.attrs &= colgroup.attrs.align?

	div.attrs.align =
		attribute align {
			string
		}
	div.attrs &= div.attrs.align?

	embed.attrs.align =
		attribute align {
			string
		}
	embed.attrs &= embed.attrs.align?

	h1.attrs.align =
		attribute align {
			string
		}
	h1.attrs &= h1.attrs.align?

	h2.attrs.align =
		attribute align {
			string
		}
	h2.attrs &= h2.attrs.align?

	h3.attrs.align =
		attribute align {
			string
		}
	h3.attrs &= h3.attrs.align?

	h4.attrs.align =
		attribute align {
			string
		}
	h4.attrs &= h4.attrs.align?

	h5.attrs.align =
		attribute align {
			string
		}
	h5.attrs &= h5.attrs.align?

	h6.attrs.align =
		attribute align {
			string
		}
	h6.attrs &= h6.attrs.align?

	hr.attrs.align =
		attribute align {
			string
		}
	hr.attrs &= hr.attrs.align?

	iframe.attrs.align =
		attribute align {
			string
		}
	iframe.attrs &= iframe.attrs.align?

	img.attrs.align =
		attribute align {
			string
		}
	img.attrs &= img.attrs.align?

	input.attrs.align =
		attribute align {
			string
		}
	input.text.attrs &= input.attrs.align?
	input.password.attrs &= input.attrs.align?
	input.checkbox.attrs &= input.attrs.align?
	input.radio.attrs &= input.attrs.align?
	input.button.attrs &= input.attrs.align?
	input.submit.attrs &= input.attrs.align?
	input.reset.attrs &= input.attrs.align?
	input.file.attrs &= input.attrs.align?
	input.image.attrs &= input.attrs.align?
	input.datetime.attrs &= input.attrs.align?
	input.datetime-local.attrs &= input.attrs.align?
	input.date.attrs &= input.attrs.align?
	input.month.attrs &= input.attrs.align?
	input.time.attrs &= input.attrs.align?
	input.week.attrs &= input.attrs.align?
	input.number.attrs &= input.attrs.align?
	input.range.attrs &= input.attrs.align?
	input.email.attrs &= input.attrs.align?
	input.url.attrs &= input.attrs.align?
	input.search.attrs &= input.attrs.align?
	input.tel.attrs &= input.attrs.align?
	input.color.attrs &= input.attrs.align?

	legend.attrs.align =
		attribute align {
			string
		}
	legend.attrs &= legend.attrs.align?

	object.attrs.align =
		attribute align {
			string
		}
	object.attrs &= object.attrs.align?

	p.attrs.align =
		attribute align {
			string
		}
	p.attrs &= p.attrs.align?

	table.attrs.align =
		attribute align {
			string
		}
	table.attrs &= table.attrs.align?

	tbody.attrs.align =
		attribute align {
			string
		}
	tbody.attrs &= tbody.attrs.align?

	td.attrs.align =
		attribute align {
			string
		}
	td.attrs &= td.attrs.align?

	tfoot.attrs.align =
		attribute align {
			string
		}
	tfoot.attrs &= tfoot.attrs.align?

	th.attrs.align =
		attribute align {
			string
		}
	th.attrs &= th.attrs.align?

	thead.attrs.align =
		attribute align {
			string
		}
	thead.attrs &= thead.attrs.align?

	tr.attrs.align =
		attribute align {
			string
		}
	tr.attrs &= tr.attrs.align?

## alink attribute

	body.attrs.alink =
		attribute alink {
			string
		}
	body.attrs &= body.attrs.alink?

	iframe.attrs.allowtransparency =
		attribute allowtransparency {
			string
		}
	iframe.attrs &= iframe.attrs.allowtransparency?

## background attribute

	body.attrs.background =
		attribute background {
			string
		}
	body.attrs &= body.attrs.background?

## color attribute

	hr.attrs.color =
		attribute color {
			string
		}
	hr.attrs &= hr.attrs.color?


## bgcolor attribute

	body.attrs.bgcolor =
		attribute bgcolor {
			string
		}
	body.attrs &= body.attrs.bgcolor?

	table.attrs.bgcolor =
		attribute bgcolor {
			string
		}
	table.attrs &= table.attrs.bgcolor?

	tr.attrs.bgcolor =
		attribute bgcolor {
			string
		}
	tr.attrs &= tr.attrs.bgcolor?

	td.attrs.bgcolor =
		attribute bgcolor {
			string
		}
	td.attrs &= td.attrs.bgcolor?

	th.attrs.bgcolor =
		attribute bgcolor {
			string
		}
	th.attrs &= th.attrs.bgcolor?

## border attribute

	object.attrs.border =
		attribute border {
			string
		}
	object.attrs &= object.attrs.border?

	table.attrs.border  =
		attribute border {
			string
		}
	table.attrs &= table.attrs.border?

## cellpadding attribute

	table.attrs.cellpadding =
		attribute cellpadding {
			string
		}
	table.attrs &= table.attrs.cellpadding?

## cellspacing attribute

	table.attrs.cellspacing =
		attribute cellspacing {
			string
		}
	table.attrs &= table.attrs.cellspacing?

## char attribute

	col.attrs.char =
		attribute char {
			string
		}
	col.attrs &= col.attrs.char?

	colgroup.attrs.char =
		attribute char {
			string
		}
	colgroup.attrs &= colgroup.attrs.char?

	tbody.attrs.char =
		attribute char {
			string
		}
	tbody.attrs &= tbody.attrs.char?

	td.attrs.char =
		attribute char {
			string
		}
	td.attrs &= td.attrs.char?

	tfoot.attrs.char =
		attribute char {
			string
		}
	tfoot.attrs &= tfoot.attrs.char?

	th.attrs.char =
		attribute char {
			string
		}
	th.attrs &= th.attrs.char?

	thead.attrs.char =
		attribute char {
			string
		}
	thead.attrs &= thead.attrs.char?

	tr.attrs.char =
		attribute char {
			string
		}
	tr.attrs &= tr.attrs.char?

## charoff attribute

	col.attrs.charoff =
		attribute charoff {
			string
		}
	col.attrs &= col.attrs.charoff?

	colgroup.attrs.charoff =
		attribute charoff {
			string
		}
	colgroup.attrs &= colgroup.attrs.charoff?

	tbody.attrs.charoff =
		attribute charoff {
			string
		}
	tbody.attrs &= tbody.attrs.charoff?

	td.attrs.charoff =
		attribute charoff {
			string
		}
	td.attrs &= td.attrs.charoff?

	tfoot.attrs.charoff =
		attribute charoff {
			string
		}
	tfoot.attrs &= tfoot.attrs.charoff?

	th.attrs.charoff =
		attribute charoff {
			string
		}
	th.attrs &= th.attrs.charoff?

	thead.attrs.charoff =
		attribute charoff {
			string
		}
	thead.attrs &= thead.attrs.charoff?

	tr.attrs.charoff =
		attribute charoff {
			string
		}
	tr.attrs &= tr.attrs.charoff?

## clear attribute

	br.attrs.clear =
		attribute clear {
			string
		}
	br.attrs &= br.attrs.clear?

## compact attribute

	dl.attrs.compact =
		attribute compact {
			string
		}
	dl.attrs &= dl.attrs.compact?

	menu.attrs.compact =
		attribute compact {
			string
		}
	menu.attrs &= menu.attrs.compact?

	ol.attrs.compact =
		attribute compact {
			string
		}
	ol.attrs &= ol.attrs.compact?

	ul.attrs.compact =
		attribute compact {
			string
		}
	ul.attrs &= ul.attrs.compact?

## frame attribute

	table.attrs.frame =
		attribute frame {
			string
		}
	table.attrs &= table.attrs.frame?

## frameborder attribute

	iframe.attrs.frameborder =
		attribute frameborder {
			string
		}
	iframe.attrs &= iframe.attrs.frameborder?

## height attribute

	td.attrs.height =
		attribute height {
			string
		}
	td.attrs &= td.attrs.height?

	th.attrs.height =
		attribute height {
			string
		}
	th.attrs &= th.attrs.height?

## hspace attribute

	img.attrs.hspace =
		attribute hspace {
			string
		}
	img.attrs &= img.attrs.hspace?

	object.attrs.hspace =
		attribute hspace {
			string
		}
	object.attrs &= object.attrs.hspace?

## link attribute

	body.attrs.link =
		attribute link {
			string
		}
	body.attrs &= body.attrs.link?

## marginbottom attribute

	body.attrs.marginbottom =
		attribute marginbottom {
			string
		}
	body.attrs &= body.attrs.marginbottom?

## marginheight attribute

	body.attrs.marginheight =
		attribute marginheight {
			string
		}
	body.attrs &= body.attrs.marginheight?

	iframe.attrs.marginheight =
		attribute marginheight {
			string
		}
	iframe.attrs &= iframe.attrs.marginheight?

## marginleft attribute

	body.attrs.marginleft =
		attribute marginleft {
			string
		}
	body.attrs &= body.attrs.marginleft?

## marginright attribute

	body.attrs.marginright =
		attribute marginright {
			string
		}
	body.attrs &= body.attrs.marginright?

## margintop attribute

	body.attrs.margintop =
		attribute margintop {
			string
		}
	body.attrs &= body.attrs.margintop?

## marginwidth attribute

	body.attrs.marginwidth =
		attribute marginwidth {
			string
		}
	body.attrs &= body.attrs.marginwidth?

	iframe.attrs.marginwidth =
		attribute marginwidth {
			string
		}
	iframe.attrs &= iframe.attrs.marginwidth?

## noshade attribute

	hr.attrs.noshade =
		attribute noshade {
			string
		}
	hr.attrs &= hr.attrs.noshade?

## nowrap attribute

	td.attrs.nowrap =
		attribute nowrap {
			string
		}
	td.attrs &= td.attrs.nowrap?

	th.attrs.nowrap =
		attribute nowrap {
			string
		}
	th.attrs &= th.attrs.nowrap?

## rules attribute

	table.attrs.rules =
		attribute rules {
			string
		}
	table.attrs &= table.attrs.rules?

## datapagesize attribute

	table.attrs.datapagesize =
		attribute datapagesize {
			string
		}
	table.attrs &= table.attrs.datapagesize?

## scrolling attribute

	iframe.attrs.scrolling =
		attribute scrolling {
			string
		}
	iframe.attrs &= iframe.attrs.scrolling?

## size attribute

	hr.attrs.size =
		attribute size {
			string
		}
	hr.attrs &= hr.attrs.size?

## summary attribute

	table.attrs.summary =
		attribute summary {
			string
		}
	table.attrs &= table.attrs.summary?

## text attribute

	body.attrs.text =
		attribute text {
			string
		}
	body.attrs &= body.attrs.text?

## type attribute

	li.attrs.type =
		attribute type {
			string
		}
	li.attrs &= li.attrs.type?
	oli.attrs &= li.attrs.type?

	ul.attrs.type =
		attribute type {
			string
		}
	ul.attrs &= ul.attrs.type?

## valign attribute

	col.attrs.valign =
		attribute valign {
			string
		}
	col.attrs &= col.attrs.valign?

	colgroup.attrs.valign =
		attribute valign {
			string
		}
	colgroup.attrs &= colgroup.attrs.valign?

	table.attrs.valign =
		attribute valign {
			string
		}
	table.attrs &= table.attrs.valign?

	tbody.attrs.valign =
		attribute valign {
			string
		}
	tbody.attrs &= tbody.attrs.valign?

	td.attrs.valign =
		attribute valign {
			string
		}
	td.attrs &= td.attrs.valign?

	tfoot.attrs.valign =
		attribute valign {
			string
		}
	tfoot.attrs &= tfoot.attrs.valign?

	th.attrs.valign =
		attribute valign {
			string
		}
	th.attrs &= th.attrs.valign?

	thead.attrs.valign =
		attribute valign {
			string
		}
	thead.attrs &= thead.attrs.valign?

	tr.attrs.valign =
		attribute valign {
			string
		}
	tr.attrs &= tr.attrs.valign?

## vlink attribute

	body.attrs.vlink =
		attribute vlink {
			string
		}
	body.attrs &= body.attrs.vlink?

## vspace attribute

	img.attrs.vspace =
		attribute vspace {
			string
		}
	img.attrs &= img.attrs.vspace?

	object.attrs.vspace =
		attribute vspace {
			string
		}
	object.attrs &= object.attrs.vspace?

## width attribute

	col.attrs.width =
		attribute width {
			string
		}
	col.attrs &= col.attrs.width?

	colgroup.attrs.width =
		attribute width {
			string
		}
	colgroup.attrs &= colgroup.attrs.width?

	hr.attrs.width =
		attribute width {
			string
		}
	hr.attrs &= hr.attrs.width?

	pre.attrs.width =
		attribute width {
			string
		}
	pre.attrs &= pre.attrs.width?

	table.attrs.width =
		attribute width {
			string
		}
	table.attrs &= table.attrs.width?

	td.attrs.width =
		attribute width {
			string
		}
	td.attrs &= td.attrs.width?

	th.attrs.width =
		attribute width {
			string
		}
	th.attrs &= th.attrs.width?

## event attribute

	script.attrs.event =
		attribute event {
			string
		}
	script.attrs.imported &= script.attrs.event?
	script.attrs.embedded &= script.attrs.event?

## for attribute

	script.attrs.for =
		attribute for {
			string
		}
	script.attrs.imported &= script.attrs.for?
	script.attrs.embedded &= script.attrs.for?

## datafld attribute

	legacy.attrs.datafld =
		attribute datafld {
			string
		}
	span.attrs &= legacy.attrs.datafld?
	div.attrs &= legacy.attrs.datafld?
	object.attrs &= legacy.attrs.datafld?
	input.text.attrs &= legacy.attrs.datafld?
	input.password.attrs &= legacy.attrs.datafld?
	input.checkbox.attrs &= legacy.attrs.datafld?
	input.radio.attrs &= legacy.attrs.datafld?
	input.button.attrs &= legacy.attrs.datafld?
	input.submit.attrs &= legacy.attrs.datafld?
	input.reset.attrs &= legacy.attrs.datafld?
	input.file.attrs &= legacy.attrs.datafld?
	input.image.attrs &= legacy.attrs.datafld?
	input.datetime.attrs &= legacy.attrs.datafld?
	input.datetime-local.attrs &= legacy.attrs.datafld?
	input.date.attrs &= legacy.attrs.datafld?
	input.month.attrs &= legacy.attrs.datafld?
	input.time.attrs &= legacy.attrs.datafld?
	input.week.attrs &= legacy.attrs.datafld?
	input.number.attrs &= legacy.attrs.datafld?
	input.range.attrs &= legacy.attrs.datafld?
	input.email.attrs &= legacy.attrs.datafld?
	input.url.attrs &= legacy.attrs.datafld?
	input.search.attrs &= legacy.attrs.datafld?
	input.tel.attrs &= legacy.attrs.datafld?
	input.color.attrs &= legacy.attrs.datafld?
	select.attrs &= legacy.attrs.datafld?
	textarea.attrs &= legacy.attrs.datafld?
	button.submit.attrs &= legacy.attrs.datafld?
	button.reset.attrs &= legacy.attrs.datafld?
	button.button.attrs &= legacy.attrs.datafld?
	table.attrs &= legacy.attrs.datafld?

## dataformatas attribute

	legacy.attrs.dataformatas =
		attribute dataformatas {
			string
		}
	span.attrs &= legacy.attrs.dataformatas?
	div.attrs &= legacy.attrs.dataformatas?
	object.attrs &= legacy.attrs.dataformatas?
	input.attrs &= legacy.attrs.dataformatas?
	input.text.attrs &= legacy.attrs.dataformatas?
	input.password.attrs &= legacy.attrs.dataformatas?
	input.checkbox.attrs &= legacy.attrs.dataformatas?
	input.radio.attrs &= legacy.attrs.dataformatas?
	input.button.attrs &= legacy.attrs.dataformatas?
	input.submit.attrs &= legacy.attrs.dataformatas?
	input.reset.attrs &= legacy.attrs.dataformatas?
	input.file.attrs &= legacy.attrs.dataformatas?
	input.image.attrs &= legacy.attrs.dataformatas?
	input.datetime.attrs &= legacy.attrs.dataformatas?
	input.datetime-local.attrs &= legacy.attrs.dataformatas?
	input.date.attrs &= legacy.attrs.dataformatas?
	input.month.attrs &= legacy.attrs.dataformatas?
	input.time.attrs &= legacy.attrs.dataformatas?
	input.week.attrs &= legacy.attrs.dataformatas?
	input.number.attrs &= legacy.attrs.dataformatas?
	input.range.attrs &= legacy.attrs.dataformatas?
	input.email.attrs &= legacy.attrs.dataformatas?
	input.url.attrs &= legacy.attrs.dataformatas?
	input.search.attrs &= legacy.attrs.dataformatas?
	input.tel.attrs &= legacy.attrs.dataformatas?
	input.color.attrs &= legacy.attrs.dataformatas?
	select.attrs &= legacy.attrs.dataformatas?
	textarea.attrs &= legacy.attrs.dataformatas?
	button.submit.attrs &= legacy.attrs.dataformatas?
	button.reset.attrs &= legacy.attrs.dataformatas?
	button.button.attrs &= legacy.attrs.dataformatas?
	table.attrs &= legacy.attrs.dataformatas?

## datasrc attribute

	legacy.attrs.datasrc =
		attribute datasrc {
			string
		}
	span.attrs &= legacy.attrs.datasrc?
	div.attrs &= legacy.attrs.datasrc?
	object.attrs &= legacy.attrs.datasrc?
	input.text.attrs &= legacy.attrs.datasrc?
	input.password.attrs &= legacy.attrs.datasrc?
	input.checkbox.attrs &= legacy.attrs.datasrc?
	input.radio.attrs &= legacy.attrs.datasrc?
	input.button.attrs &= legacy.attrs.datasrc?
	input.submit.attrs &= legacy.attrs.datasrc?
	input.reset.attrs &= legacy.attrs.datasrc?
	input.file.attrs &= legacy.attrs.datasrc?
	input.image.attrs &= legacy.attrs.datasrc?
	input.datetime.attrs &= legacy.attrs.datasrc?
	input.datetime-local.attrs &= legacy.attrs.datasrc?
	input.date.attrs &= legacy.attrs.datasrc?
	input.month.attrs &= legacy.attrs.datasrc?
	input.time.attrs &= legacy.attrs.datasrc?
	input.week.attrs &= legacy.attrs.datasrc?
	input.number.attrs &= legacy.attrs.datasrc?
	input.range.attrs &= legacy.attrs.datasrc?
	input.email.attrs &= legacy.attrs.datasrc?
	input.url.attrs &= legacy.attrs.datasrc?
	input.search.attrs &= legacy.attrs.datasrc?
	input.tel.attrs &= legacy.attrs.datasrc?
	input.color.attrs &= legacy.attrs.datasrc?
	select.attrs &= legacy.attrs.datasrc?
	textarea.attrs &= legacy.attrs.datasrc?
	button.submit.attrs &= legacy.attrs.datasrc?
	button.reset.attrs &= legacy.attrs.datasrc?
	button.button.attrs &= legacy.attrs.datasrc?
	table.attrs &= legacy.attrs.datasrc?
