WEB-76794 HTML: February 2026 HTML5 schema update

GitOrigin-RevId: 4b39758846ec81c502c58c09a321ae770c1cf4cd
This commit is contained in:
Piotr Tomiak
2026-02-12 15:57:48 +00:00
committed by intellij-monorepo-bot
parent 265ec5fb37
commit 6019849ab1
58 changed files with 2070 additions and 1160 deletions
@@ -1,3 +0,0 @@
default namespace = "http://www.w3.org/1999/xhtml"
include "html5-svg-mathml.rnc"
include "html5/html5full-rdfa.rnc"
@@ -1,28 +0,0 @@
# Copyright (c) 2012 Jirka Kosek <jirka@kosek.cz>
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
namespace local = ""
include "html5-svg-mathml.rnc"
include "html5/html5full.rnc"
include "its2/its20-html5.rnc"
common.attrs &= its-html-attributes
@@ -1,2 +0,0 @@
include "html5-svg-mathml.rnc"
include "html5/html5full-no-microdata.rnc"
@@ -1,2 +0,0 @@
include "html5-svg-mathml.rnc"
include "html5/html5full-rdfalite.rnc"
@@ -1,2 +0,0 @@
include "html5-svg-mathml.rnc"
include "html5/html5full-rdfalite.rnc"
@@ -1,3 +1,13 @@
default namespace = "http://www.w3.org/1999/xhtml"
include "html5/html5.rnc"
include "html5/common-ext.rnc"
include "html5/embed-ext.rnc"
include "html5/core-scripting-ext.rnc"
include "html5/meta-ext.rnc"
include "html5/rdfa.rnc"
include "html5/legacy.rnc"
include "html5-svg-mathml.rnc"
include "html5/html5full-rdfa.rnc"
@@ -50,6 +50,8 @@ datatypes w = "http://whattf.org/datatype-draft"
common.attrs.editing &=
( common.attrs.inputmode?
& common.attrs.spellcheck?
& common.attrs.autocorrect?
& common.attrs.writingsuggestions?
& common.attrs.autocapitalize?
& common.attrs.enterkeyhint?
)
@@ -78,6 +80,20 @@ datatypes w = "http://whattf.org/datatype-draft"
w:string "true" | w:string "false" | w:string ""
}
## Autocorrection
common.attrs.autocorrect =
attribute autocorrect {
w:string "on" | w:string "off" | w:string ""
}
## Writing suggestions
common.attrs.writingsuggestions =
attribute writingsuggestions {
w:string "true" | w:string "false" | w:string ""
}
## Autocapitalization
common.attrs.autocapitalize =
@@ -136,14 +152,20 @@ datatypes w = "http://whattf.org/datatype-draft"
dialog.attrs =
( common.attrs
& dialog.attrs.open?
& dialog.attrs.closedby?
& ( common.attrs.aria.implicit.dialog
| common.attrs.aria.role.alertdialog
| common.attrs.aria.role.dialog
)?
)
dialog.attrs.open =
attribute open {
w:string "open" | w:string ""
}
dialog.attrs.closedby =
attribute closedby {
w:string "any" | w:string "closerequest" | w:string "none"
}
dialog.inner =
( common.inner.flow )
common.elem.flow |= dialog.elem
@@ -155,7 +177,6 @@ datatypes w = "http://whattf.org/datatype-draft"
menu.attrs =
( common.attrs
& ( common.attrs.aria.implicit.list
| common.attrs.aria.role.directory
| common.attrs.aria.role.group
| common.attrs.aria.role.list
| common.attrs.aria.role.listbox
@@ -229,10 +250,15 @@ datatypes w = "http://whattf.org/datatype-draft"
details.attrs =
( common.attrs
& details.attrs.open?
& details.attrs.name?
& ( common.attrs.aria.implicit.group # aria-expanded must be true if open attr present; check by assertions
| common.attrs.aria.role.group
)?
)
details.attrs.name =
attribute name {
w:non-empty-string
}
details.attrs.open =
attribute open {
w:string "open" | w:string ""
@@ -250,9 +276,7 @@ datatypes w = "http://whattf.org/datatype-draft"
element summary { summary.inner & summary.attrs }
summary.attrs =
( common.attrs
& ( common.attrs.aria.implicit.button
| common.attrs.aria.role.button
)?
& common.attrs.aria?
)
summary.inner =
( common.inner.phrasing
@@ -11,6 +11,8 @@
aria.global =
( aria.prop.atomic?
& aria.prop.braillelabel?
& aria.prop.brailleroledescription?
& aria.state.busy?
& aria.prop.controls?
& aria.state.current?
@@ -32,8 +34,6 @@ aria.global =
& aria.prop.description?
)
common.attrs.other &= aria.global?
## States and Properties for Native Roles
common.attrs.aria.implicit.button |=
@@ -44,16 +44,22 @@ common.attrs.aria.implicit.button |=
common.attrs.aria.implicit.cell |=
( aria.prop.colspan?
& aria.prop.rowspan?
& aria.prop.colindex? # ARIA 1.1 and 1.2
& aria.prop.rowindex?
)
common.attrs.aria.implicit.checkbox |=
( aria.state.checked? )
( aria.state.checked?
& aria.state.expanded?
& aria.prop.readonly?
& aria.prop.required?
)
common.attrs.aria.implicit.combobox |=
( aria.state.expanded?
& aria.prop.autocomplete?
& aria.prop.required?
& aria.prop.placeholder?
& aria.prop.activedescendant?
& aria.prop.readonly?
)
@@ -62,7 +68,9 @@ common.attrs.aria.implicit.definition |=
( aria.state.expanded? )
common.attrs.aria.implicit.dialog |=
( aria.state.expanded? )
( aria.state.expanded?
& aria.prop.modal?
)
common.attrs.aria.implicit.document |=
( aria.state.expanded? )
@@ -73,6 +81,18 @@ common.attrs.aria.implicit.figure |=
common.attrs.aria.implicit.form |=
( aria.state.expanded? )
common.attrs.aria.implicit.gridcell |=
( aria.prop.level? # net inherited
& aria.prop.readonly? # not inherited
& aria.state.selected? # not inherited
& aria.state.expanded?
& aria.prop.required?
& aria.prop.colspan?
& aria.prop.colindex?
& aria.prop.rowspan?
& aria.prop.rowindex?
)
common.attrs.aria.implicit.group |=
( aria.state.expanded?
& aria.prop.activedescendant?
@@ -93,7 +113,6 @@ common.attrs.aria.implicit.listbox |=
( aria.prop.multiselectable?
& aria.prop.required?
& aria.prop.activedescendant?
& aria.state.expanded?
)
common.attrs.aria.implicit.listitem |=
@@ -122,6 +141,7 @@ common.attrs.aria.implicit.progressbar |=
common.attrs.aria.implicit.radio |=
( aria.prop.posinset?
& aria.prop.required?
& aria.prop.setsize?
& aria.state.checked?
& aria.state.selected?
@@ -143,6 +163,7 @@ common.attrs.aria.implicit.searchbox |=
( aria.prop.activedescendant?
& aria.prop.autocomplete?
& aria.prop.multiline?
& aria.prop.placeholder?
& aria.prop.readonly?
& aria.prop.required?
)
@@ -168,6 +189,7 @@ common.attrs.aria.implicit.spinbutton |=
& aria.prop.valuemin?
& aria.prop.valuenow?
& aria.prop.valuetext?
& aria.prop.placeholder?
& aria.prop.required?
)
@@ -183,6 +205,7 @@ common.attrs.aria.implicit.textbox |=
( aria.prop.activedescendant?
& aria.prop.autocomplete?
& aria.prop.multiline?
& aria.prop.placeholder?
& aria.prop.readonly?
& aria.prop.required?
)
@@ -355,6 +378,18 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
| string "none" #default
}
## braillelabel
aria.prop.braillelabel =
attribute aria-braillelabel {
string
}
## brailleroledescription
aria.prop.brailleroledescription =
attribute aria-brailleroledescription {
string
}
## colcount
aria.prop.colcount =
attribute aria-colcount {
@@ -650,6 +685,7 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
aria.application =
( aria.role.application
& aria.state.expanded?
& aria.prop.activedescendant? # ARIA 1.1 and 1.2
)
aria.role.application =
attribute role { string "application" }
@@ -661,6 +697,8 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
aria.article =
( aria.role.article
& aria.state.expanded?
& aria.prop.posinset? # ARIA 1.1 and 1.2
& aria.prop.setsize? # ARIA 1.1 and 1.2
)
aria.role.article =
attribute role { string "article" }
@@ -679,6 +717,16 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
common.attrs.aria |= aria.banner
common.attrs.aria.landmark.banner |= aria.banner
## blockquote - added in ARIA 1.2
aria.blockquote =
( aria.role.blockquote
)
aria.role.blockquote =
attribute role { string "blockquote" }
common.attrs.aria |= aria.blockquote
common.attrs.aria.role.blockquote |= aria.blockquote
## button
aria.button =
( aria.role.button
@@ -691,6 +739,16 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
common.attrs.aria |= aria.button
common.attrs.aria.role.button |= aria.button
## caption - added in ARIA 1.2
aria.caption =
( aria.role.caption
)
aria.role.caption =
attribute role { string "caption" }
common.attrs.aria |= aria.caption
common.attrs.aria.role.caption |= aria.caption
## cell
aria.cell =
( aria.role.cell
@@ -708,6 +766,9 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
aria.checkbox =
( aria.role.checkbox
& aria.state.checked #required!
& aria.state.expanded? # ARIA 1.2 added
& aria.prop.readonly? # ARIA 1.1 and 1.2
& aria.prop.required? # ARIA 1.2 added
)
aria.role.checkbox =
attribute role { string "checkbox" }
@@ -715,6 +776,16 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
common.attrs.aria |= aria.checkbox
common.attrs.aria.role.checkbox |= aria.checkbox
## code - added in ARIA 1.2
aria.code =
( aria.role.code
)
aria.role.code =
attribute role { string "code" }
common.attrs.aria |= aria.code
common.attrs.aria.role.code |= aria.code
# columnheader
aria.columnheader =
( aria.role.columnheader
@@ -725,12 +796,14 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
& aria.prop.required?
& aria.prop.colspan?
& aria.prop.rowspan?
& aria.prop.colindex? # ARIA 1.1 and 1.2
& aria.prop.rowindex?
)
aria.role.columnheader =
attribute role { string "columnheader" }
common.attrs.aria |= aria.columnheader
common.attrs.aria.role.columnheader |= aria.columnheader
## combobox
aria.combobox =
@@ -782,6 +855,16 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
common.attrs.aria |= aria.definition
common.attrs.aria.role.definition |= aria.definition
## deletion - added in ARIA 1.2
aria.deletion =
( aria.role.deletion
)
aria.role.deletion =
attribute role { string "deletion" }
common.attrs.aria |= aria.deletion
common.attrs.aria.role.deletion |= aria.deletion
## dialog
aria.dialog =
( aria.role.dialog
@@ -794,17 +877,6 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
common.attrs.aria |= aria.dialog
common.attrs.aria.role.dialog |= aria.dialog
## directory
aria.directory =
( aria.role.directory
& aria.state.expanded?
)
aria.role.directory =
attribute role { string "directory" }
common.attrs.aria |= aria.directory
common.attrs.aria.role.directory |= aria.directory
## document
aria.document =
( aria.role.document
@@ -816,6 +888,16 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
common.attrs.aria |= aria.document
common.attrs.aria.landmark.document |= aria.document
## emphasis - added in ARIA 1.2
aria.emphasis =
( aria.role.emphasis
)
aria.role.emphasis =
attribute role { string "emphasis" }
common.attrs.aria |= aria.emphasis
common.attrs.aria.role.emphasis |= aria.emphasis
## feed
aria.feed =
( aria.role.feed
@@ -864,6 +946,7 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
attribute role { string "grid" }
common.attrs.aria |= aria.grid
common.attrs.aria.role.grid |= aria.grid
## gridcell
aria.gridcell =
@@ -882,6 +965,7 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
attribute role { string "gridcell" }
common.attrs.aria |= aria.gridcell
common.attrs.aria.role.gridcell |= aria.gridcell
## group
aria.group =
@@ -922,7 +1006,7 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
## heading
aria.heading =
( aria.role.heading
& aria.prop.level ? # not inherited
& aria.prop.level # ARIA 1.1 and 1.2 required
& aria.state.expanded?
)
aria.role.heading =
@@ -942,6 +1026,27 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
common.attrs.aria |= aria.img
common.attrs.aria.role.img |= aria.img
## image
aria.image =
( aria.role.image
& aria.state.expanded?
)
aria.role.image =
attribute role { string "image" }
common.attrs.aria |= aria.image
common.attrs.aria.role.image |= aria.image
## insertion - added in ARIA 1.2
aria.insertion =
( aria.role.insertion
)
aria.role.insertion =
attribute role { string "insertion" }
common.attrs.aria |= aria.insertion
common.attrs.aria.role.insertion |= aria.insertion
## link
aria.link =
( aria.role.link
@@ -970,7 +1075,7 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
& aria.prop.multiselectable? # not inherited
& aria.prop.required?
& aria.prop.activedescendant?
& aria.state.expanded?
& aria.prop.readonly? # ARIA 1.1 and 1.2
& aria.prop.orientation?
)
aria.role.listbox =
@@ -1081,6 +1186,9 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
aria.menuitemcheckbox =
( aria.role.menuitemcheckbox
& aria.state.checked #required
& aria.state.expanded? # ARIA 1.2 added
& aria.prop.posinset? # ARIA 1.1 and 1.2
& aria.prop.setsize? # ARIA 1.1 and 1.2
)
aria.role.menuitemcheckbox =
attribute role { string "menuitemcheckbox" }
@@ -1099,6 +1207,7 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
aria.menuitemradio =
( aria.role.menuitemradio
& aria.state.checked #required
& aria.state.expanded? # ARIA 1.2 added
& aria.state.selected?
& aria.prop.posinset?
& aria.prop.setsize?
@@ -1120,6 +1229,20 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
attribute role { string "menuitemradio" }
common.attrs.aria.role.menuitemradio-checked-not-required |= aria.menuitemradio-checked-not-required
## meter - added in ARIA 1.2
aria.meter =
( aria.role.meter
& aria.prop.valuemax? # optional
& aria.prop.valuemin? # optional
& aria.prop.valuetext? # inherited
& aria.prop.valuenow # required
)
aria.role.meter =
attribute role { string "meter" }
common.attrs.aria |= aria.meter
common.attrs.aria.role.meter |= aria.meter
## navigation
aria.navigation =
( aria.role.navigation
@@ -1164,6 +1287,16 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
common.attrs.aria |= aria.option
common.attrs.aria.role.option |= aria.option
## paragraph - added in ARIA 1.2
aria.paragraph =
( aria.role.paragraph
)
aria.role.paragraph =
attribute role { string "paragraph" }
common.attrs.aria |= aria.paragraph
common.attrs.aria.role.paragraph |= aria.paragraph
## presentation
aria.presentation =
( aria.role.presentation )
@@ -1207,6 +1340,7 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
( aria.role.radiogroup
& aria.prop.activedescendant?
& aria.state.expanded?
& aria.prop.readonly? # ARIA 1.1 and 1.2
& aria.prop.required?
& aria.prop.orientation?
)
@@ -1236,11 +1370,14 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
& aria.state.expanded?
& aria.prop.colindex?
& aria.prop.rowindex?
& aria.prop.posinset? # ARIA 1.2 added
& aria.prop.setsize? # ARIA 1.2 added
)
aria.role.row =
attribute role { string "row" }
common.attrs.aria |= aria.row
common.attrs.aria.role.row |= aria.row
## rowgroup
aria.rowgroup =
@@ -1264,12 +1401,14 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
& aria.prop.required?
& aria.prop.colspan?
& aria.prop.rowspan?
& aria.prop.colindex? # ARIA 1.1 and 1.2
& aria.prop.rowindex?
)
aria.role.rowheader =
attribute role { string "rowheader" }
common.attrs.aria |= aria.rowheader
common.attrs.aria.role.rowheader |= aria.rowheader
## searchbox
aria.searchbox =
@@ -1277,6 +1416,7 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
& aria.prop.activedescendant?
& aria.prop.autocomplete?
& aria.prop.multiline?
& aria.prop.placeholder? # ARIA 1.1 and 1.2
& aria.prop.readonly?
& aria.prop.required?
)
@@ -1288,9 +1428,9 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
## scrollbar
aria.scrollbar =
( aria.role.scrollbar
& aria.prop.orientation
& aria.prop.valuemax
& aria.prop.valuemin
& aria.prop.orientation? # ARIA 1.2 optional
& aria.prop.valuemax? # ARIA 1.2 optional
& aria.prop.valuemin? # ARIA 1.2 optional
& aria.prop.valuenow
& aria.prop.valuetext?
)
@@ -1317,6 +1457,10 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
( aria.role.separator
& aria.state.expanded?
& aria.prop.orientation?
& aria.prop.valuenow? # ARIA 1.2 (required if focusable, absent otherwise)
& aria.prop.valuemin? # ARIA 1.2 (optional if focusable, absent otherwise)
& aria.prop.valuemax? # ARIA 1.2 (optional if focusable, absent otherwise)
& aria.prop.valuetext? # ARIA 1.2 (optional if focusable, absent otherwise)
)
aria.role.separator =
attribute role { string "separator" }
@@ -1327,10 +1471,11 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
## slider
aria.slider =
( aria.role.slider
& aria.prop.valuemax
& aria.prop.valuemin
& aria.prop.valuemax? # optional in ARIA 1.2
& aria.prop.valuemin? # optional in ARIA 1.2
& aria.prop.valuenow
& aria.prop.valuetext?
& aria.prop.readonly? # ARIA 1.1 and 1.2
& aria.prop.orientation?
)
aria.role.slider =
@@ -1342,10 +1487,12 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
## spinbutton
aria.spinbutton =
( aria.role.spinbutton
& aria.prop.valuemax
& aria.prop.valuemin
& aria.prop.valuenow
& aria.prop.valuemax? # optional in ARIA 1.2
& aria.prop.valuemin? # optional in ARIA 1.2
& aria.prop.valuenow? # optional in ARIA 1.2
& aria.prop.valuetext?
& aria.prop.activedescendant? # ARIA 1.1 and 1.2
& aria.prop.readonly? # ARIA 1.1 and 1.2
& aria.prop.required?
)
aria.role.spinbutton =
@@ -1365,10 +1512,43 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
common.attrs.aria |= aria.status
common.attrs.aria.role.status |= aria.status
## strong - added in ARIA 1.2
aria.strong =
( aria.role.strong
)
aria.role.strong =
attribute role { string "strong" }
common.attrs.aria |= aria.strong
common.attrs.aria.role.strong |= aria.strong
## subscript - added in ARIA 1.2
aria.subscript =
( aria.role.subscript
)
aria.role.subscript =
attribute role { string "subscript" }
common.attrs.aria |= aria.subscript
common.attrs.aria.role.subscript |= aria.subscript
## superscript - added in ARIA 1.2
aria.superscript =
( aria.role.superscript
)
aria.role.superscript =
attribute role { string "superscript" }
common.attrs.aria |= aria.superscript
common.attrs.aria.role.superscript |= aria.superscript
## switch
aria.switch =
( aria.role.switch
& aria.state.checked #required!
& aria.state.expanded? # ARIA 1.2 added
& aria.prop.readonly? # ARIA 1.1 and 1.2
& aria.prop.required? # ARIA 1.2 added
)
aria.role.switch =
attribute role { string "switch" }
@@ -1449,6 +1629,7 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
& aria.prop.activedescendant?
& aria.prop.autocomplete? # not inherited
& aria.prop.multiline? # not inherited
& aria.prop.placeholder? # ARIA 1.1 and 1.2
& aria.prop.readonly? # not inherited
& aria.prop.required?
)
@@ -1458,6 +1639,16 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
common.attrs.aria |= aria.textbox
common.attrs.aria.role.textbox |= aria.textbox
## time - added in ARIA 1.2
aria.time =
( aria.role.time
)
aria.role.time =
attribute role { string "time" }
common.attrs.aria |= aria.time
common.attrs.aria.role.time |= aria.time
## timer
aria.timer =
( aria.role.timer
@@ -1467,6 +1658,7 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
attribute role { string "timer" }
common.attrs.aria |= aria.timer
common.attrs.aria.role.timer |= aria.timer
## toolbar
aria.toolbar =
@@ -1490,6 +1682,7 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
attribute role { string "tooltip" }
common.attrs.aria |= aria.tooltip
common.attrs.aria.role.tooltip |= aria.tooltip
## tree
aria.tree =
@@ -1523,6 +1716,7 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
attribute role { string "treegrid" }
common.attrs.aria |= aria.treegrid
common.attrs.aria.role.treegrid |= aria.treegrid
## treeitem
aria.treeitem =
@@ -62,8 +62,7 @@ datatypes w = "http://whattf.org/datatype-draft"
element ul { ul.inner & ul.attrs }
ul.attrs =
( common.attrs
& ( ( common.attrs.aria.role.directory
| common.attrs.aria.role.group
& ( ( common.attrs.aria.role.group
| common.attrs.aria.role.list
| common.attrs.aria.role.listbox
| common.attrs.aria.role.menu
@@ -91,16 +90,7 @@ datatypes w = "http://whattf.org/datatype-draft"
li.attrs =
( common.attrs
& ( common.attrs.aria.implicit.listitem
| common.attrs.aria.role.listitem
| common.attrs.aria.role.menuitem
| common.attrs.aria.role.menuitemcheckbox
| common.attrs.aria.role.menuitemradio
| common.attrs.aria.role.option
| common.attrs.aria.role.radio
| common.attrs.aria.role.tab
| common.attrs.aria.role.treeitem
| common.attrs.aria.role.separator
| common.attrs.aria.role.presentation
| common.attrs.aria?
)?
)
li.inner =
@@ -115,8 +105,7 @@ datatypes w = "http://whattf.org/datatype-draft"
& ol.attrs.start?
& ol.attrs.reversed?
& ol.attrs.type?
& ( ( common.attrs.aria.role.directory
| common.attrs.aria.role.group
& ( ( common.attrs.aria.role.group
| common.attrs.aria.role.list
| common.attrs.aria.role.listbox
| common.attrs.aria.role.menu
@@ -105,6 +105,7 @@ common.attrs =
& common.attrs.i18n
& common.attrs.present
& common.attrs.other
& aria.global?
)
common.attrs.basic =
@@ -494,7 +495,6 @@ common.attrs.aria.role.checkbox = ( notAllowed )
common.attrs.aria.role.combobox = ( notAllowed )
common.attrs.aria.role.complementary = ( notAllowed )
common.attrs.aria.role.dialog = ( notAllowed )
common.attrs.aria.role.directory = ( notAllowed )
common.attrs.aria.role.document = ( notAllowed )
common.attrs.aria.role.feed |= ( notAllowed )
common.attrs.aria.role.figure |= ( notAllowed )
@@ -29,7 +29,6 @@ datatypes w = "http://whattf.org/datatype-draft"
& script.attrs.async?
& script.attrs.type?
& script.attrs.nomodule?
& script.attrs.charset?
& script.attrs.language? # restricted in Schematron
& script.attrs.integrity?
& embedded.content.attrs.crossorigin?
@@ -51,16 +50,17 @@ datatypes w = "http://whattf.org/datatype-draft"
} & v5only
script.attrs.type =
attribute type {
w:string "module" | w:string "importmap" | w:string "" | common.data.scripttype # XXX without charset parameter!
( w:string ""
| w:string "module"
| w:string "importmap"
| w:string "speculationrules"
| common.data.scripttype
)
}
script.attrs.nomodule =
attribute nomodule {
w:string "nomodule" | w:string ""
}
script.attrs.charset =
attribute charset {
string
}
script.attrs.language =
attribute language {
string
@@ -118,6 +118,7 @@ datatypes w = "http://whattf.org/datatype-draft"
& scripting.attr.onauxclick?
& scripting.attr.onbeforeinput?
& scripting.attr.onbeforematch?
& scripting.attr.onbeforetoggle?
& scripting.attr.onblur?
& scripting.attr.oncancel?
& scripting.attr.oncanplay?
@@ -125,6 +126,7 @@ datatypes w = "http://whattf.org/datatype-draft"
& scripting.attr.onchange?
& scripting.attr.onclick?
& scripting.attr.onclose?
& scripting.attr.oncommand?
& scripting.attr.oncontextlost?
& scripting.attr.oncontextmenu?
& scripting.attr.oncontextrestored?
@@ -202,6 +204,8 @@ datatypes w = "http://whattf.org/datatype-draft"
attribute onbeforeinput { common.data.functionbody }
scripting.attr.onbeforematch =
attribute onbeforematch { common.data.functionbody }
scripting.attr.onbeforetoggle =
attribute onbeforetoggle { common.data.functionbody }
scripting.attr.onblur =
attribute onblur { common.data.functionbody }
scripting.attr.oncancel =
@@ -216,6 +220,8 @@ datatypes w = "http://whattf.org/datatype-draft"
attribute onclick { common.data.functionbody }
scripting.attr.onclose =
attribute onclose { common.data.functionbody }
scripting.attr.oncommand =
attribute oncommand { common.data.functionbody }
scripting.attr.oncontextlost =
attribute oncontextlost { common.data.functionbody }
scripting.attr.oncontextmenu =
@@ -389,6 +395,23 @@ datatypes w = "http://whattf.org/datatype-draft"
scripting.attr.onlostpointercapture =
attribute onlostpointercapture { common.data.functionbody }
## Touch Events
common.attrs.scripting &=
( scripting.attr.ontouchstart?
& scripting.attr.ontouchend?
& scripting.attr.ontouchmove?
& scripting.attr.ontouchcancel?
)
scripting.attr.ontouchstart =
attribute ontouchstart { common.data.functionbody }
scripting.attr.ontouchend =
attribute ontouchend { common.data.functionbody }
scripting.attr.ontouchmove =
attribute ontouchmove { common.data.functionbody }
scripting.attr.ontouchcancel =
attribute ontouchcancel { common.data.functionbody }
# scripting.attr.common =
# ( scripting.attr.mouse
# & scripting.attr.keyboard
@@ -12,8 +12,11 @@ namespace local = ""
shared-img.attrs =
( common.attrs
& img.attrs.src
& img.attrs.srcset?
& (
( img.attrs.src & img.attrs.srcset? )
|
( img.attrs.srcset & img.attrs.src? )
)
& img.attrs.sizes?
& img.attrs.generator-unable-to-provide-required-alt?
& img.attrs.height?
@@ -23,7 +26,6 @@ namespace local = ""
& img.attrs.decoding?
& img.attrs.loading?
& common.attrs.fetchpriority?
& img.attrs.border? # obsolete
& referrerpolicy?
& embedded.content.attrs.crossorigin?
)
@@ -104,10 +106,6 @@ namespace local = ""
attribute loading {
w:string "lazy" | w:string "eager"
}
img.attrs.border =
attribute border {
common.data.zero
}
img.inner =
empty
@@ -231,6 +229,7 @@ namespace local = ""
| onauxclick
| onbeforeinput
| onbeforematch
| onbeforetoggle
| onblur
| oncancel
| oncanplay
@@ -238,6 +237,7 @@ namespace local = ""
| onchange
| onclick
| onclose
| oncommand
| oncontextlost
| oncontextmenu
| oncontextrestored
@@ -314,8 +314,15 @@ namespace local = ""
| onpointerleave
| ongotpointercapture
| onlostpointercapture
| ontouchstart
| ontouchend
| ontouchmove
| ontouchcancel
| role
| aria-activedescendant
| aria-atomic
| aria-braillelabel
| aria-brailleroledescription
| aria-busy
| aria-controls
| aria-current
@@ -340,6 +347,8 @@ namespace local = ""
| aria-required
| aria-roledescription
| spellcheck
| autocorrect
| writingsuggestions
| autocapitalize
| enterkeyhint
| accesskey
@@ -365,6 +374,11 @@ namespace local = ""
| rev
| inlist
| its-loc-note
| contextmenu
| dropzone
| onshow
| headingoffset
| headingreset
| its-loc-note-type
| its-loc-note-ref
| its-term-info-ref
@@ -427,17 +441,13 @@ namespace local = ""
element object { object.inner.phrasing & object.attrs }
object.attrs =
( common.attrs
& ( ( object.attrs.data
& object.attrs.type?
)
| object.attrs.type
)
& object.attrs.data
& object.attrs.type?
# & object.attrs.classid?
# & object.attrs.codebase?
# & object.attrs.codetype?
& object.attrs.height?
& object.attrs.width?
& object.attrs.usemap?
& object.attrs.name?
& common-form.attrs.form?
& ( common.attrs.aria.role.application
@@ -461,46 +471,18 @@ namespace local = ""
attribute width {
common.data.integer.non-negative
}
object.attrs.usemap =
attribute usemap {
common.data.hash-name
}
object.attrs.name =
attribute name {
common.data.browsing-context
}
object.inner.flow =
( param.elem*
, common.inner.transparent.flow
)
( common.inner.transparent.flow )
object.inner.phrasing =
( param.elem*
, common.inner.phrasing
)
( common.inner.phrasing )
common.elem.flow |= object.elem.flow
common.elem.phrasing |= object.elem.phrasing
## Initialization Parameters: <param>
param.elem =
element param { param.inner & param.attrs }
param.attrs =
( common.attrs
& param.attrs.name
& param.attrs.value
)
param.attrs.name =
attribute name {
string
}
param.attrs.value =
attribute value {
string
}
param.inner =
( empty )
## Inline Frame: <iframe>
iframe.elem =
@@ -598,6 +580,7 @@ namespace local = ""
& common.attrs.i18n
& common.attrs.present
& common.attrs.other
& aria.global?
& shared-hyperlink.attrs.download?
& ( area.attrs.alt
& shared-hyperlink.attrs.href
@@ -605,8 +588,6 @@ namespace local = ""
& shared-hyperlink.attrs.target?
& shared-hyperlink.attrs.ping?
& shared-hyperlink.attrs.rel?
& shared-hyperlink.attrs.hreflang?
& shared-hyperlink.attrs.type?
& area.attrs.shape?
& ( common.attrs.aria.role.link
| common.attrs.aria.role.button
@@ -1,13 +0,0 @@
include "common.rnc" {
XMLonly = notAllowed
HTMLonly = empty
v5only = notAllowed
}
start = html.elem
include "phrase.rnc"
include "block.rnc"
include "sectional.rnc"
include "revision.rnc"
include "embed.rnc"
include "core-scripting.rnc"
include "meta.rnc"
@@ -1,37 +0,0 @@
default namespace = "http://www.w3.org/1999/xhtml"
include "common.rnc" {
XMLonly = notAllowed
HTMLonly = empty
v5only = empty
nonHTMLizable = notAllowed
nonRoundtrippable = notAllowed
}
start = html.elem
include "phrase.rnc"
include "block.rnc"
include "sectional.rnc"
include "revision.rnc"
include "embed.rnc"
include "core-scripting.rnc"
include "structural.rnc"
include "ruby.rnc"
include "media.rnc"
include "tables.rnc"
include "form-datatypes.rnc"
include "web-forms.rnc"
include "web-forms2.rnc"
include "web-components.rnc"
include "applications.rnc"
include "data.rnc"
include "legacy.rnc"
include "aria.rnc"
include "meta.rnc" {
html.inner =
( head.elem
, ( body.elem
| frameset.elem
)
)
}
include "its20-html5.rnc"
common.attrs &= its-html-attributes
@@ -1,42 +0,0 @@
default namespace = "http://www.w3.org/1999/xhtml"
include "common.rnc" {
XMLonly = notAllowed
HTMLonly = empty
v5only = empty
nonHTMLizable = notAllowed
nonRoundtrippable = notAllowed
}
include "common-ext.rnc"
start = html.elem
include "phrase.rnc"
include "block.rnc"
include "sectional.rnc"
include "revision.rnc"
include "embed.rnc"
include "embed-ext.rnc"
include "core-scripting.rnc"
include "core-scripting-ext.rnc"
include "structural.rnc"
include "ruby.rnc"
include "media.rnc"
include "tables.rnc"
include "form-datatypes.rnc"
include "web-forms.rnc"
include "web-forms2.rnc"
include "web-components.rnc"
include "applications.rnc"
include "data.rnc"
include "legacy.rnc"
include "aria.rnc"
include "meta.rnc" {
html.inner =
( head.elem
, ( body.elem
| frameset.elem
)
)
}
include "meta-ext.rnc"
include "microdata.rnc"
include "rdfa.rnc"
@@ -1,41 +0,0 @@
default namespace = "http://www.w3.org/1999/xhtml"
include "common.rnc" {
XMLonly = notAllowed
HTMLonly = empty
v5only = empty
nonHTMLizable = notAllowed
nonRoundtrippable = notAllowed
}
start = html.elem
include "phrase.rnc"
include "block.rnc"
include "sectional.rnc"
include "revision.rnc"
include "embed.rnc"
include "core-scripting.rnc"
include "structural.rnc"
include "ruby.rnc"
include "media.rnc"
include "tables.rnc"
include "form-datatypes.rnc"
include "web-forms.rnc"
include "web-forms2.rnc"
include "web-components.rnc"
include "applications.rnc"
include "data.rnc"
include "legacy.rnc"
include "aria.rnc"
include "meta.rnc" {
html.inner =
( head.elem
, ( body.elem
| frameset.elem
)
)
}
include "its20-html5.rnc"
common.attrs &= its-html-attributes
include "microdata.rnc"
include "rdfa.rnc" {
nonRDFaLite = notAllowed
}
@@ -1,38 +0,0 @@
default namespace = "http://www.w3.org/1999/xhtml"
include "common.rnc" {
XMLonly = notAllowed
HTMLonly = empty
v5only = empty
nonHTMLizable = notAllowed
nonRoundtrippable = notAllowed
}
start = html.elem
include "phrase.rnc"
include "block.rnc"
include "sectional.rnc"
include "revision.rnc"
include "embed.rnc"
include "core-scripting.rnc"
include "structural.rnc"
include "ruby.rnc"
include "media.rnc"
include "tables.rnc"
include "form-datatypes.rnc"
include "web-forms.rnc"
include "web-forms2.rnc"
include "web-components.rnc"
include "applications.rnc"
include "data.rnc"
include "legacy.rnc"
include "aria.rnc"
include "meta.rnc" {
html.inner =
( head.elem
, ( body.elem
| frameset.elem
)
)
}
include "its20-html5.rnc"
common.attrs &= its-html-attributes
include "microdata.rnc"
@@ -1,151 +0,0 @@
# Copyright (c) 2012 Jirka Kosek <jirka@kosek.cz>
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
datatypes w = "http://whattf.org/datatype-draft"
its-confidence.type = xsd:double { minInclusive = "0" maxInclusive = "1" }
its-locNote.type = string
## The type of localization note
its-locNoteType.type =
## Localization note is an alert
w:string "alert"
|
## Localization note is a description
w:string "description"
its-locNoteRef.type = w:iri-ref
its-termInfoRef.type = w:iri-ref
## Indicates a term locally
its-term.type =
## The value 'yes' means that this is a term
w:string "yes"
|
## The value 'no' means that this is not a term
w:string "no"
its-termConfidence.type = its-confidence.type
## States whether current context is regarded as "within text"
its-withinText.type =
## The element and its content are part of the flow of its parent element
w:string "yes"
|
## The element splits the text flow of its parent element and its content is an independent text flow
w:string "no"
|
## The element is part of the flow of its parent element, its content is an independent flow
w:string "nested"
## A comma separated list of mappings between values in the content
## and workflow specific values. The values may contain spaces; in
## that case they MUST be delimited by quotation marks.
its-domainMapping.type = string
its-taConfidence.type = its-confidence.type
its-taClassRef.type = w:iri-ref
its-taIdentRef.type = w:iri-ref
its-taIdent.type = string
its-taSource.type = string
its-localeFilterList.type = string
its-localeFilterType.type = w:string "include" | w:string "exclude"
its-person.type = string
its-personRef.type = w:iri-ref
its-org.type = string
its-orgRef.type = w:iri-ref
its-tool.type = string
its-toolRef.type = w:iri-ref
its-revPerson.type = string
its-revPersonRef.type = w:iri-ref
its-revOrg.type = string
its-revOrgRef.type = w:iri-ref
its-revTool.type = string
its-revToolRef.type = w:iri-ref
its-provRef.type = list { w:iri-ref+ }
its-provenanceRecordsRef.type = w:iri-ref
its-idValue.type = string
its-space.type = "default" | "preserve"
its-locQualityIssuesRef.type = w:iri-ref
its-locQualityIssueType.type = w:string "terminology" | w:string "mistranslation" |
w:string "omission" | w:string "untranslated" | w:string "addition" | w:string "duplication" |
w:string "inconsistency" | w:string "grammar" | w:string "legal" | w:string "register" |
w:string "locale-specific-content" | w:string "locale-violation" | w:string "style" |
w:string "characters" | w:string "misspelling" | w:string "typographical" | w:string "formatting" |
w:string "inconsistent-entities" | w:string "numbers" | w:string "markup" | w:string "pattern-problem" |
w:string "whitespace" | w:string "internationalization" | w:string "length" | w:string "non-conformance" | w:string "uncategorized" |
w:string "other"
its-locQualityIssueComment.type = string
its-locQualityIssueSeverity.type = xsd:double { minInclusive = "0" maxInclusive = "100" }
its-locQualityIssueProfileRef.type = w:iri-ref
its-locQualityIssueEnabled.type = w:string "yes" | w:string "no"
its-locQualityRatingScore.type = xsd:double { minInclusive = "0" maxInclusive = "100" }
its-locQualityRatingVote.type = xsd:integer
its-locQualityRatingScoreThreshold.type = xsd:double { minInclusive = "0" maxInclusive = "100" }
its-locQualityRatingVoteThreshold.type = xsd:integer
its-locQualityRatingProfileRef.type = w:iri-ref
its-mtConfidence.type = its-confidence.type
its-allowedCharacters.type = string
its-storageSize.type = xsd:nonNegativeInteger
its-storageEncoding.type = string
its-lineBreakType.type = w:string "cr" | w:string "lf" | w:string "crlf"
its-annotatorsRef.type = string
@@ -1,143 +0,0 @@
# Copyright (c) 2012 Jirka Kosek <jirka@kosek.cz>
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
include "its20-html5-types.rnc"
its-attribute.locNote.html = attribute its-loc-note { its-locNote.type }
its-attribute.locNoteType.html = attribute its-loc-note-type { its-locNoteType.type }
its-attribute.locNoteRef.html = attribute its-loc-note-ref { its-locNoteRef.type }
its-attribute.termInfoRef.html = attribute its-term-info-ref { its-termInfoRef.type }
its-attribute.term.html = attribute its-term { its-term.type }
its-attribute.termConfidence.html = attribute its-term-confidence { its-termConfidence.type }
its-attribute.withinText.html = attribute its-within-text { its-withinText.type }
its-attribute.domainMapping.html = attribute its-domain-mapping { its-domainMapping.type }
its-attribute.taConfidence.html = attribute its-ta-confidence { its-taConfidence.type }
its-attribute.taClassRef.html = attribute its-ta-class-ref { its-taClassRef.type }
its-attribute.taIdent.html = attribute its-ta-ident { its-taIdent.type }
its-attribute.taIdentRef.html = attribute its-ta-ident-ref { its-taIdentRef.type }
its-attribute.taSource.html = attribute its-ta-source { its-taSource.type }
its-attribute.localeFilterList.html = attribute its-locale-filter-list { its-localeFilterList.type }
its-attribute.localeFilterType.html = attribute its-locale-filter-type { its-localeFilterType.type }
its-attribute.person.html = attribute its-person { its-person.type }
its-attribute.personRef.html = attribute its-person-ref { its-personRef.type }
its-attribute.org.html = attribute its-org { its-org.type }
its-attribute.orgRef.html = attribute its-org-ref { its-orgRef.type }
its-attribute.tool.html = attribute its-tool { its-tool.type }
its-attribute.toolRef.html = attribute its-tool-ref { its-toolRef.type }
its-attribute.revPerson.html = attribute its-rev-person { its-revPerson.type }
its-attribute.revPersonRef.html = attribute its-rev-person-ref { its-revPersonRef.type }
its-attribute.revOrg.html = attribute its-rev-org { its-revOrg.type }
its-attribute.revOrgRef.html = attribute its-rev-org-ref { its-revOrgRef.type }
its-attribute.revTool.html = attribute its-rev-tool { its-revTool.type }
its-attribute.revToolRef.html = attribute its-rev-tool-ref { its-revToolRef.type }
its-attribute.provRef.html = attribute its-prov-ref { its-provRef.type }
its-attribute.provenanceRecordsRef.html = attribute its-provenance-records-ref { its-provenanceRecordsRef.type }
its-attribute.locQualityIssuesRef.html = attribute its-loc-quality-issues-ref { its-locQualityIssuesRef.type }
its-attribute.locQualityIssueType.html = attribute its-loc-quality-issue-type { its-locQualityIssueType.type }
its-attribute.locQualityIssueComment.html = attribute its-loc-quality-issue-comment { its-locQualityIssueComment.type }
its-attribute.locQualityIssueSeverity.html = attribute its-loc-quality-issue-severity { its-locQualityIssueSeverity.type }
its-attribute.locQualityIssueProfileRef.html = attribute its-loc-quality-issue-profile-ref { its-locQualityIssueProfileRef.type }
its-attribute.locQualityIssueEnabled.html = attribute its-loc-quality-issue-enabled { its-locQualityIssueEnabled.type }
its-attribute.locQualityRatingScore.html = attribute its-loc-quality-rating-score { its-locQualityRatingScore.type }
its-attribute.locQualityRatingVote.html = attribute its-loc-quality-rating-vote { its-locQualityRatingVote.type }
its-attribute.locQualityRatingScoreThreshold.html = attribute its-loc-quality-rating-score-threshold { its-locQualityRatingScoreThreshold.type }
its-attribute.locQualityRatingVoteThreshold.html = attribute its-loc-quality-rating-vote-threshold { its-locQualityRatingVoteThreshold.type }
its-attribute.locQualityRatingProfileRef.html = attribute its-loc-quality-rating-profile-ref { its-locQualityRatingProfileRef.type }
its-attribute.mtConfidence.html = attribute its-mt-confidence { its-mtConfidence.type }
its-attribute.allowedCharacters.html = attribute its-allowed-characters { its-allowedCharacters.type }
its-attribute.storageSize.html = attribute its-storage-size { its-storageSize.type }
its-attribute.storageEncoding.html = attribute its-storage-encoding { its-storageEncoding.type }
its-attribute.lineBreakType.html = attribute its-line-break-type { its-lineBreakType.type }
its-attribute.annotatorsRef.html = attribute its-annotators-ref { its-annotatorsRef.type }
its-html-attributes =
((its-attribute.locNote.html | its-attribute.locNoteRef.html), its-attribute.locNoteType.html?)? &
(its-attribute.term.html, its-attribute.termInfoRef.html?, its-attribute.termConfidence.html?)? &
its-attribute.withinText.html? &
(its-attribute.taConfidence.html? &
(its-attribute.taClassRef.html? &
((its-attribute.taSource.html, its-attribute.taIdent.html) | its-attribute.taIdentRef.html)?)) &
(its-attribute.localeFilterList.html, its-attribute.localeFilterType.html?)? &
((
(its-attribute.person.html | its-attribute.personRef.html )? &
(its-attribute.org.html | its-attribute.orgRef.html )? &
(its-attribute.tool.html | its-attribute.toolRef.html )? &
(its-attribute.revPerson.html | its-attribute.revPersonRef.html )? &
(its-attribute.revOrg.html | its-attribute.revOrgRef.html )? &
(its-attribute.revTool.html | its-attribute.revToolRef.html )? &
its-attribute.provRef.html?)
| its-attribute.provenanceRecordsRef.html)? &
(its-attribute.locQualityIssuesRef.html
|
((its-attribute.locQualityIssueType.html? & its-attribute.locQualityIssueComment.html?) & its-attribute.locQualityIssueSeverity.html? & its-attribute.locQualityIssueProfileRef.html? & its-attribute.locQualityIssueEnabled.html?)
)? &
(((its-attribute.locQualityRatingScore.html, its-attribute.locQualityRatingScoreThreshold.html?) | (its-attribute.locQualityRatingVote.html, its-attribute.locQualityRatingVoteThreshold.html?)), its-attribute.locQualityRatingProfileRef.html?)? &
its-attribute.mtConfidence.html? &
its-attribute.allowedCharacters.html? &
(its-attribute.storageSize.html, its-attribute.storageEncoding.html?, its-attribute.lineBreakType.html?)? &
its-attribute.annotatorsRef.html?
# FIXME: Find way how to validate stand-off markup inside <script>
@@ -44,6 +44,7 @@ datatypes w = "http://whattf.org/datatype-draft"
( common.attrs
& source.attrs.src
& source.attrs.type?
& source.attrs.media?
)
source.attrs.src =
attribute src {
@@ -53,6 +54,10 @@ datatypes w = "http://whattf.org/datatype-draft"
attribute type {
common.data.mimetype
}
source.attrs.media =
attribute media {
common.data.mediaquery
}
source.inner =
( empty )
@@ -61,7 +61,9 @@ datatypes w = "http://whattf.org/datatype-draft"
& body.attrs.onoffline?
& body.attrs.ononline?
& body.attrs.onpagehide?
& body.attrs.onpagereveal?
& body.attrs.onpageshow?
& body.attrs.onpageswap?
& body.attrs.onpopstate?
& body.attrs.onrejectionhandled?
& body.attrs.onstorage?
@@ -91,6 +93,10 @@ datatypes w = "http://whattf.org/datatype-draft"
attribute ononline { common.data.functionbody }
body.attrs.onpagehide =
attribute onpagehide { common.data.functionbody }
body.attrs.onpagereveal =
attribute onpagereveal { common.data.functionbody }
body.attrs.onpageswap =
attribute onpageswap { common.data.functionbody }
body.attrs.onpageshow =
attribute onpageshow { common.data.functionbody }
body.attrs.onpopstate =
@@ -176,30 +182,22 @@ datatypes w = "http://whattf.org/datatype-draft"
}
link.attrs.rel =
attribute rel {
string
w:rel-value
}
link.attrs.as =
attribute as {
string ""
| string "audio"
| string "audioworklet"
| string "document"
| string "embed"
string "audioworklet"
| string "fetch"
| string "font"
| string "image"
| string "manifest"
| string "object"
| string "json"
| string "paintworklet"
| string "report"
| string "script"
| string "serviceworker"
| string "sharedworker"
| string "style"
| string "track"
| string "video"
| string "worker"
| string "xslt"
}
link.attrs.integrity =
attribute integrity {
@@ -253,15 +251,10 @@ datatypes w = "http://whattf.org/datatype-draft"
element style { style.inner & style.attrs }
style.attrs =
( common.attrs
& style.attrs.type?
& style.attrs.media?
& common.attrs.blocking?
# style.attrs.title included in common.attrs
)
style.attrs.type =
attribute type {
text
}
style.attrs.media =
attribute media {
common.data.mediaquery
@@ -42,15 +42,15 @@ datatypes w = "http://whattf.org/datatype-draft"
& common.attrs.i18n
& common.attrs.present
& common.attrs.other
& a.attrs.name?
& common.attrs.aria?
& aria.global?
)
a.attrs =
( common.attrs.basic
& common.attrs.i18n
& common.attrs.present
& common.attrs.other
& a.attrs.name?
& aria.global?
& shared-hyperlink.attrs.download?
& shared-hyperlink.attrs.target?
& shared-hyperlink.attrs.rel?
@@ -59,10 +59,6 @@ datatypes w = "http://whattf.org/datatype-draft"
& shared-hyperlink.attrs.ping?
& referrerpolicy?
)
a.attrs.name =
attribute name {
common.data.id # XXX not what the spec says
}
a.inner.phrasing =
( common.inner.phrasing )
a.inner.flow =
@@ -87,7 +83,7 @@ datatypes w = "http://whattf.org/datatype-draft"
}
shared-hyperlink.attrs.rel =
attribute rel {
string
w:rel-value
}
shared-hyperlink.attrs.hreflang =
attribute hreflang {
@@ -401,7 +397,11 @@ referrerpolicy =
br.elem =
element br { br.inner & br.attrs }
br.attrs =
( common.attrs
( common.attrs.basic
& common.attrs.i18n
& common.attrs.present
& common.attrs.other
& aria.state.hidden?
& common.attrs.aria.role.presentation?
)
br.inner =
@@ -414,7 +414,11 @@ referrerpolicy =
wbr.elem =
element wbr { wbr.inner & wbr.attrs }
wbr.attrs =
( common.attrs
( common.attrs.basic
& common.attrs.i18n
& common.attrs.present
& common.attrs.other
& aria.state.hidden?
& common.attrs.aria.role.presentation?
)
wbr.inner =
@@ -19,13 +19,9 @@ namespace local = ""
( ( common.inner.phrasing
| rb.elem
)+
, ( ( rt.elem
| rtc.elem
)+
, ( rt.elem+
| ( rp.elem
, ( ( rt.elem
| rtc.elem
),
, ( rt.elem,
rp.elem
)+
)
@@ -45,19 +41,16 @@ namespace local = ""
rt.inner =
( common.inner.phrasing )
## Ruby Text Container: <rtc>
## Ruby Parenthesis: <rp>
rtc.elem =
element rtc { rtc.inner & rtc.attrs }
rtc.attrs =
rp.elem =
element rp { rp.inner & rp.attrs }
rp.attrs =
( common.attrs
& common.attrs.aria?
)
rtc.inner =
( common.inner.phrasing
| rt.elem
| rp.elem
)*
rp.inner =
( text )
## Ruby Base: <rb>
@@ -69,14 +62,3 @@ namespace local = ""
)
rb.inner =
( common.inner.phrasing )
## Ruby Parenthesis: <rp>
rp.elem =
element rp { rp.inner & rp.attrs }
rp.attrs =
( common.attrs
& common.attrs.aria?
)
rp.inner =
( text )
@@ -1,3 +1,5 @@
datatypes w = "http://whattf.org/datatype-draft"
# #####################################################################
## RELAX NG Schema for HTML 5: Sectioning Markup #
# #####################################################################
@@ -135,6 +137,21 @@
common.elem.flow |= hgroup.elem
## Heading levels & offsets
common.attrs.headingoffset =
attribute headingoffset {
common.data.integer.non-negative
}
common.attrs.headingreset =
attribute headingreset {
w:string "headingreset" | w:string ""
}
common.attrs.other &= common.attrs.headingoffset?
common.attrs.other &= common.attrs.headingreset?
# #####################################################################
## Section Meta
@@ -221,6 +221,7 @@ datatypes w = "http://whattf.org/datatype-draft"
& tables.attrs.headers?
# & tables.attrs.alignment
& ( common.attrs.aria.implicit.cell
| common.attrs.aria.implicit.gridcell
| common.attrs.aria
)?
)
@@ -10,26 +10,32 @@ namespace c = "http://n.validator.nu/custom-elements/"
template.elem =
element template { template.inner & template.attrs }
template.attrs =
( common.attrs )
( common.attrs
& template.attrs.shadowrootmode?
& template.attrs.shadowrootdelegatesfocus?
& template.attrs.shadowrootclonable?
& template.attrs.shadowrootserializable?
& template.attrs.shadowrootcustomelementregistry?
)
template.attrs.shadowrootmode =
attribute shadowrootmode {
w:string "open" | w:string "closed"
}
template.attrs.shadowrootdelegatesfocus =
attribute shadowrootdelegatesfocus {
w:string "true" | w:string "false"
w:string "shadowrootdelegatesfocus" | w:string ""
}
template.attrs.shadowrootclonable =
attribute shadowrootclonable {
w:string "true" | w:string "false"
w:string "shadowrootclonable" | w:string ""
}
template.attrs.shadowrootserializable =
attribute shadowrootserializable {
w:string "true" | w:string "false"
w:string "shadowrootserializable" | w:string ""
}
template.attrs.shadowrootcustomelementregistry =
attribute shadowrootcustomelementregistry {
w:string "true" | w:string "false"
w:string "shadowrootcustomelementregistry" | w:string ""
}
template.inner =
( common.inner.metadata
@@ -174,8 +174,12 @@ datatypes w = "http://whattf.org/datatype-draft"
| common.attrs.aria.role.menuitemradio
| common.attrs.aria.role.option
| common.attrs.aria.role.radio
| common.attrs.aria.role.separator
| common.attrs.aria.role.switch
| common.attrs.aria.role.tab
| common.attrs.aria.role.gridcell
| common.attrs.aria.role.slider
| common.attrs.aria.role.treeitem
)?
)
input.button.attrs.type =
@@ -202,6 +206,19 @@ datatypes w = "http://whattf.org/datatype-draft"
& button.attrs.popover-controls
& ( common.attrs.aria.implicit.button
| common.attrs.aria.role.button
| common.attrs.aria.role.checkbox
| common.attrs.aria.role.combobox
| common.attrs.aria.role.gridcell
| common.attrs.aria.role.link
| common.attrs.aria.role.menuitem
| common.attrs.aria.role.menuitemcheckbox
| common.attrs.aria.role.menuitemradio
| common.attrs.aria.role.option
| common.attrs.aria.role.radio
| common.attrs.aria.role.slider
| common.attrs.aria.role.switch
| common.attrs.aria.role.tab
| common.attrs.aria.role.treeitem
)?
)
input.submit.attrs.type =
@@ -227,6 +244,19 @@ datatypes w = "http://whattf.org/datatype-draft"
& button.attrs.popover-controls
& ( common.attrs.aria.implicit.button
| common.attrs.aria.role.button
| common.attrs.aria.role.checkbox
| common.attrs.aria.role.combobox
| common.attrs.aria.role.gridcell
| common.attrs.aria.role.link
| common.attrs.aria.role.menuitem
| common.attrs.aria.role.menuitemcheckbox
| common.attrs.aria.role.menuitemradio
| common.attrs.aria.role.option
| common.attrs.aria.role.radio
| common.attrs.aria.role.slider
| common.attrs.aria.role.switch
| common.attrs.aria.role.tab
| common.attrs.aria.role.treeitem
)?
)
input.reset.attrs.type =
@@ -296,12 +326,20 @@ datatypes w = "http://whattf.org/datatype-draft"
& button.attrs.popover-controls
& ( common.attrs.aria.implicit.button
| common.attrs.aria.role.button
| common.attrs.aria.role.checkbox
| common.attrs.aria.role.combobox
| common.attrs.aria.role.gridcell
| common.attrs.aria.role.link
| common.attrs.aria.role.menuitem
| common.attrs.aria.role.menuitemcheckbox
| common.attrs.aria.role.menuitemradio
| common.attrs.aria.role.option
| common.attrs.aria.role.radio
| common.attrs.aria.role.separator
| common.attrs.aria.role.slider
| common.attrs.aria.role.switch
| common.attrs.aria.role.tab
| common.attrs.aria.role.treeitem
)?
)
input.image.attrs.type =
@@ -437,6 +475,7 @@ datatypes w = "http://whattf.org/datatype-draft"
select.inner =
( optgroup.elem*
& option.elem*
& hr.elem*
& common.elem.script-supporting*
)
@@ -444,6 +483,23 @@ datatypes w = "http://whattf.org/datatype-draft"
## Shared Definitions for Complex Button
button.attrs.command =
attribute command {
(w:string "toggle-popover"
| w:string "show-popover"
| w:string "hide-popover"
| w:string "close"
| w:string "request-close"
| w:string "show-modal"
| xsd:string {
pattern = "--.*"
}
)
}
button.attrs.commandfor =
attribute commandfor {
common.data.idref
}
button.attrs.value =
attribute value {
string
@@ -471,6 +527,8 @@ datatypes w = "http://whattf.org/datatype-draft"
( common.attrs
& common-form.attrs
& button.submit.attrs.type?
& button.attrs.command?
& button.attrs.commandfor?
& button.attrs.value?
& button.attrs.popover-controls
& ( common.attrs.aria.implicit.button
@@ -483,7 +541,11 @@ datatypes w = "http://whattf.org/datatype-draft"
| common.attrs.aria.role.menuitemradio
| common.attrs.aria.role.option
| common.attrs.aria.role.radio
| common.attrs.aria.role.separator
| common.attrs.aria.role.tab
| common.attrs.aria.role.gridcell
| common.attrs.aria.role.slider
| common.attrs.aria.role.treeitem
)?
)
button.submit.attrs.type =
@@ -501,18 +563,25 @@ datatypes w = "http://whattf.org/datatype-draft"
( common.attrs
& common-form.attrs
& button.reset.attrs.type
& button.attrs.command?
& button.attrs.commandfor?
& button.attrs.value? #REVISIT I guess this still affects the DOM
& button.attrs.popover-controls
& ( common.attrs.aria.implicit.button
| common.attrs.aria.role.button
| common.attrs.aria.role.checkbox
| common.attrs.aria.role.combobox
| common.attrs.aria.role.link
| common.attrs.aria.role.menuitem
| common.attrs.aria.role.menuitemcheckbox
| common.attrs.aria.role.menuitemradio
| common.attrs.aria.role.option
| common.attrs.aria.role.radio
| common.attrs.aria.role.separator
| common.attrs.aria.role.switch
| common.attrs.aria.role.gridcell
| common.attrs.aria.role.slider
| common.attrs.aria.role.treeitem
)?
)
button.reset.attrs.type =
@@ -530,19 +599,26 @@ datatypes w = "http://whattf.org/datatype-draft"
( common.attrs
& common-form.attrs
& button.button.attrs.type
& button.attrs.command?
& button.attrs.commandfor?
& button.attrs.value? #REVISIT I guess this still affects the DOM
& button.attrs.popover-controls
& ( common.attrs.aria.implicit.button
| common.attrs.aria.role.button
| common.attrs.aria.role.checkbox
| common.attrs.aria.role.combobox
| common.attrs.aria.role.link
| common.attrs.aria.role.menuitem
| common.attrs.aria.role.menuitemcheckbox
| common.attrs.aria.role.menuitemradio
| common.attrs.aria.role.option
| common.attrs.aria.role.radio
| common.attrs.aria.role.separator
| common.attrs.aria.role.switch
| common.attrs.aria.role.tab
| common.attrs.aria.role.gridcell
| common.attrs.aria.role.slider
| common.attrs.aria.role.treeitem
)?
)
button.button.attrs.type =
@@ -624,6 +700,7 @@ datatypes w = "http://whattf.org/datatype-draft"
element label { label.inner & label.attrs }
label.attrs =
( common.attrs
& common.attrs.aria?
& label.attrs.for?
)
label.attrs.for =
@@ -88,7 +88,6 @@ datatypes w = "http://whattf.org/datatype-draft"
& shared-form.attrs.minlength?
& shared-form.attrs.pattern?
& shared-form.attrs.placeholder?
& aria.prop.placeholder?
& shared-form.attrs.readonly?
& shared-form.attrs.required?
)
@@ -99,7 +98,6 @@ datatypes w = "http://whattf.org/datatype-draft"
& shared-form.attrs.minlength?
& shared-form.attrs.pattern?
& shared-form.attrs.placeholder?
& aria.prop.placeholder?
& shared-form.attrs.readonly?
& shared-form.attrs.required?
& shared-form.attrs.size?
@@ -147,7 +145,9 @@ datatypes w = "http://whattf.org/datatype-draft"
## Hidden String: <input type='hidden'>, Extensions
input.hidden.attrs &=
input.attrs.autocomplete?
( input.attrs.autocomplete?
& shared-form.attrs.dirname?
)
## Text Field: <input type='text'>, Extensions
@@ -158,7 +158,6 @@ datatypes w = "http://whattf.org/datatype-draft"
& shared-form.attrs.pattern?
& shared-form.attrs.required?
& shared-form.attrs.placeholder?
& aria.prop.placeholder?
& shared-form.attrs.minlength?
)
@@ -166,12 +165,13 @@ datatypes w = "http://whattf.org/datatype-draft"
input.password.attrs &=
( input.attrs.autocomplete?
& shared-form.attrs.dirname?
& input.attrs.list?
& shared-form.attrs.pattern?
& shared-form.attrs.placeholder?
& aria.prop.placeholder?
& aria.prop.placeholder? # specified here because type=password has no implicit role
& shared-form.attrs.required?
& aria.prop.required?
& aria.prop.required? # specified here because type=password has no implicit role
& shared-form.attrs.minlength?
)
@@ -179,14 +179,12 @@ datatypes w = "http://whattf.org/datatype-draft"
input.checkbox.attrs &=
( shared-input.attrs
& aria.prop.required?
)
## Radiobutton: <input type='radio'>, Extensions
input.radio.attrs &=
( shared-input.attrs
& aria.prop.required?
)
## Scripting Hook Button: <input type='button'>, Extensions
@@ -198,6 +196,7 @@ datatypes w = "http://whattf.org/datatype-draft"
input.submit.attrs &=
( shared-input.attrs
& shared-form.attrs.dirname?
& shared-form.attrs.formaction?
& shared-form.attrs.formenctype?
& shared-form.attrs.formmethod?
@@ -504,6 +503,7 @@ datatypes w = "http://whattf.org/datatype-draft"
( common.attrs
& common-form.attrs
& shared-input-no-list.attrs
& shared-form.attrs.dirname?
& input.email.attrs.type
& ( ( input.attrs.multiple
& input.email.attrs.value.multiple?
@@ -544,6 +544,7 @@ datatypes w = "http://whattf.org/datatype-draft"
( common.attrs
& common-form.attrs
& shared-input-no-list.attrs
& shared-form.attrs.dirname?
& input.url.attrs.type
& input.url.attrs.value?
& (
@@ -602,6 +603,7 @@ datatypes w = "http://whattf.org/datatype-draft"
( common.attrs
& common-form.attrs
& shared-input-no-list.attrs
& shared-form.attrs.dirname?
& input.tel.attrs.type
& input.tel.attrs.value?
& (
@@ -635,6 +637,8 @@ datatypes w = "http://whattf.org/datatype-draft"
& common-form.attrs
& input.color.attrs.type
& input.color.attrs.value?
& input.color.attrs.alpha?
& input.color.attrs.colorspace?
& shared-input.attrs
)
input.color.attrs.type =
@@ -645,6 +649,14 @@ datatypes w = "http://whattf.org/datatype-draft"
attribute value {
w:string "" | form.data.color
}
input.color.attrs.alpha =
attribute alpha {
w:string "alpha" | w:string ""
}
input.color.attrs.colorspace =
attribute colorspace {
w:string "limited-srgb" | w:string "display-p3"
}
input.elem |= input.color.elem
@@ -681,7 +693,6 @@ datatypes w = "http://whattf.org/datatype-draft"
& shared-form.attrs.minlength?
& shared-form.attrs.required?
& textarea.attrs.placeholder?
& aria.prop.placeholder?
& shared-form.attrs.dirname?
& textarea.attrs.rows?
& ( ( textarea.attrs.wrap.hard
@@ -1,18 +0,0 @@
default namespace = "http://www.w3.org/1999/xhtml"
include "common.rnc" {
XMLonly = empty
HTMLonly = notAllowed
v5only = notAllowed
}
start = html.elem
include "phrase.rnc"
include "block.rnc"
include "sectional.rnc"
include "revision.rnc"
include "embed.rnc"
include "core-scripting.rnc"
include "meta.rnc"
include "tables.rnc"
include "form-datatypes.rnc"
include "web-forms.rnc"
include "web-forms2.rnc"
@@ -1,14 +0,0 @@
default namespace = "http://www.w3.org/1999/xhtml"
include "common.rnc" {
XMLonly = empty
HTMLonly = notAllowed
v5only = notAllowed
}
start = html.elem
include "phrase.rnc"
include "block.rnc"
include "sectional.rnc"
include "revision.rnc"
include "embed.rnc"
include "core-scripting.rnc"
include "meta.rnc"
@@ -1,35 +0,0 @@
default namespace = "http://www.w3.org/1999/xhtml"
include "common.rnc" {
XMLonly = empty
HTMLonly = notAllowed
v5only = empty
nonHTMLizable = notAllowed
nonRoundtrippable = notAllowed
}
start = html.elem
include "phrase.rnc"
include "block.rnc"
include "sectional.rnc"
include "revision.rnc"
include "embed.rnc"
include "core-scripting.rnc"
include "structural.rnc"
include "ruby.rnc"
include "media.rnc"
include "tables.rnc"
include "form-datatypes.rnc"
include "web-forms.rnc"
include "web-forms2.rnc"
include "web-components.rnc"
include "applications.rnc"
include "data.rnc"
include "legacy.rnc"
include "aria.rnc"
include "meta.rnc" {
html.inner =
( head.elem
, ( body.elem
| frameset.elem
)
)
}
@@ -1,39 +0,0 @@
default namespace = "http://www.w3.org/1999/xhtml"
include "common.rnc" {
XMLonly = empty
HTMLonly = notAllowed
v5only = empty
nonHTMLizable = notAllowed
nonRoundtrippable = notAllowed
}
start = html.elem
include "phrase.rnc"
include "block.rnc"
include "sectional.rnc"
include "revision.rnc"
include "embed.rnc"
include "core-scripting.rnc"
include "structural.rnc"
include "ruby.rnc"
include "media.rnc"
include "tables.rnc"
include "form-datatypes.rnc"
include "web-forms.rnc"
include "web-forms2.rnc"
include "web-components.rnc"
include "applications.rnc"
include "data.rnc"
include "legacy.rnc"
include "aria.rnc"
include "meta.rnc" {
html.inner =
( head.elem
, ( body.elem
| frameset.elem
)
)
}
include "microdata.rnc"
include "rdfa.rnc" {
nonRDFaLite = notAllowed
}
@@ -1,36 +0,0 @@
default namespace = "http://www.w3.org/1999/xhtml"
include "common.rnc" {
XMLonly = empty
HTMLonly = notAllowed
v5only = empty
nonHTMLizable = notAllowed
nonRoundtrippable = notAllowed
}
start = html.elem
include "phrase.rnc"
include "block.rnc"
include "sectional.rnc"
include "revision.rnc"
include "embed.rnc"
include "core-scripting.rnc"
include "structural.rnc"
include "ruby.rnc"
include "media.rnc"
include "tables.rnc"
include "form-datatypes.rnc"
include "web-forms.rnc"
include "web-forms2.rnc"
include "web-components.rnc"
include "applications.rnc"
include "data.rnc"
include "legacy.rnc"
include "aria.rnc"
include "meta.rnc" {
html.inner =
( head.elem
, ( body.elem
| frameset.elem
)
)
}
include "microdata.rnc"
@@ -1,33 +0,0 @@
default namespace = "http://www.w3.org/1999/xhtml"
include "common.rnc" {
XMLonly = empty
HTMLonly = notAllowed
v5only = empty
}
start = html.elem
include "phrase.rnc"
include "block.rnc"
include "sectional.rnc"
include "revision.rnc"
include "embed.rnc"
include "core-scripting.rnc"
include "structural.rnc"
include "ruby.rnc"
include "media.rnc"
include "tables.rnc"
include "form-datatypes.rnc"
include "web-forms.rnc"
include "web-forms2.rnc"
include "web-components.rnc"
include "applications.rnc"
include "data.rnc"
include "legacy.rnc"
include "aria.rnc"
include "meta.rnc" {
html.inner =
( head.elem
, ( body.elem
| frameset.elem
)
)
}
@@ -1,39 +0,0 @@
default namespace = "http://www.w3.org/1999/xhtml"
include "common.rnc" {
XMLonly = empty
HTMLonly = notAllowed
v5only = empty
}
include "common-ext.rnc"
start = html.elem
include "phrase.rnc"
include "block.rnc"
include "sectional.rnc"
include "revision.rnc"
include "embed.rnc"
include "embed-ext.rnc"
include "core-scripting.rnc"
include "core-scripting-ext.rnc"
include "structural.rnc"
include "ruby.rnc"
include "media.rnc"
include "tables.rnc"
include "form-datatypes.rnc"
include "web-forms.rnc"
include "web-forms2.rnc"
include "web-components.rnc"
include "applications.rnc"
include "data.rnc"
include "legacy.rnc"
include "aria.rnc"
include "meta.rnc" {
html.inner =
( head.elem
, ( body.elem
| frameset.elem
)
)
}
include "microdata.rnc"
include "rdfa.rnc"
@@ -1,37 +0,0 @@
default namespace = "http://www.w3.org/1999/xhtml"
include "common.rnc" {
XMLonly = empty
HTMLonly = notAllowed
v5only = empty
}
start = html.elem
include "phrase.rnc"
include "block.rnc"
include "sectional.rnc"
include "revision.rnc"
include "embed.rnc"
include "core-scripting.rnc"
include "structural.rnc"
include "ruby.rnc"
include "media.rnc"
include "tables.rnc"
include "form-datatypes.rnc"
include "web-forms.rnc"
include "web-forms2.rnc"
include "web-components.rnc"
include "applications.rnc"
include "data.rnc"
include "legacy.rnc"
include "aria.rnc"
include "meta.rnc" {
html.inner =
( head.elem
, ( body.elem
| frameset.elem
)
)
}
include "microdata.rnc"
include "rdfa.rnc" {
nonRDFaLite = notAllowed
}
@@ -1,34 +0,0 @@
default namespace = "http://www.w3.org/1999/xhtml"
include "common.rnc" {
XMLonly = empty
HTMLonly = notAllowed
v5only = empty
}
start = html.elem
include "phrase.rnc"
include "block.rnc"
include "sectional.rnc"
include "revision.rnc"
include "embed.rnc"
include "core-scripting.rnc"
include "structural.rnc"
include "ruby.rnc"
include "media.rnc"
include "tables.rnc"
include "form-datatypes.rnc"
include "web-forms.rnc"
include "web-forms2.rnc"
include "web-components.rnc"
include "applications.rnc"
include "data.rnc"
include "legacy.rnc"
include "aria.rnc"
include "meta.rnc" {
html.inner =
( head.elem
, ( body.elem
| frameset.elem
)
)
}
include "microdata.rnc"
@@ -1,5 +1,5 @@
<!--
* Copyright 2000-2025 JetBrains s.r.o.
* Copyright 2000-2026 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1,38 +0,0 @@
namespace svg = "http://www.w3.org/2000/svg"
namespace math = "http://www.w3.org/1998/Math/MathML"
namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
include "html5/xhtml5full-xhtml.rnc" {
start = svg
}
include "svg11/svg11-inc.rnc"
include "svg11/inkscape.rnc"
include "mml3/mathml3-inc.rnc"
include "rdf/rdf.rnc"
common.elem.metadata |= rdf.elem
SVG.metadata.content |= rdf.elem
common.elem.phrasing |= svg
common.elem.phrasing |= math
SVG.foreignObject.content |=
( math
| html.elem
| body.elem
| common.inner.flow
)
annotation-xml.model.svg |= svg
annotation-xml.model.xhtml |=
( html.elem
| common.elem.flow
)
# in our integration, <mtext> is the only MathML "token element" that can
# contain HTML element content; the <mi>, <mn>, <mo> and <ms> elements
# cannot; see http://www.w3.org/Bugs/Public/show_bug.cgi?id=9859#c8 for a
# rationale
mtext.content |= common.elem.phrasing
@@ -1,4 +1,5 @@
namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
namespace xsd = "http://www.w3.org/2001/XMLSchema-datatypes"
##
@@ -45,9 +46,17 @@ grammar {
}?
SVG.visibility.attrib =
attribute visibility { string "visible" | string "hidden" | string "collapse" | string "inherit" }?
SVG.transform-origin.attrib =
attribute transform-origin { xsd:string }?
SVG.transform-box.attrib =
attribute transform-box {
string "content-box" | string "border-box" | string "fill-box" | string "stroke-box" | string "view-box"
}?
SVG.Graphics.extra.attrib = empty
SVG.Graphics.attrib &=
SVG.display.attrib,
SVG.visibility.attrib,
SVG.transform-origin.attrib,
SVG.transform-box.attrib,
SVG.Graphics.extra.attrib
}
@@ -45,8 +45,8 @@ attlist.foreignObject &=
(common.attrs.aria.implicit.group | common.attrs.aria)?,
attribute x { Coordinate.datatype }?,
attribute y { Coordinate.datatype }?,
attribute width { Length.datatype },
attribute height { Length.datatype },
attribute width { Length.datatype }?,
attribute height { Length.datatype }?,
attribute transform { TransformList.datatype }?
##
@@ -51,8 +51,8 @@ grammar {
(common.attrs.aria.implicit.img | common.attrs.aria)?,
attribute x { Coordinate.datatype }?,
attribute y { Coordinate.datatype }?,
attribute width { Length.datatype },
attribute height { Length.datatype },
attribute width { Length.datatype }?,
attribute height { Length.datatype }?,
[ a:defaultValue = "xMidYMid meet" ]
attribute preserveAspectRatio {
PreserveAspectRatioSpec.datatype
@@ -53,6 +53,11 @@ grammar {
SVG.fill.attrib = attribute fill { Paint.datatype }?
SVG.fill-rule.attrib =
attribute fill-rule { ClipFillRule.datatype }?
SVG.paint-order.attrib =
attribute paint-order {
list { ( "fill" | "stroke" | "markers") + }
| string "normal"
}?
SVG.stroke.attrib = attribute stroke { Paint.datatype }?
SVG.stroke-dasharray.attrib =
attribute stroke-dasharray { StrokeDashArrayValue.datatype }?
@@ -74,6 +79,7 @@ grammar {
SVG.Paint.attrib &=
SVG.fill.attrib,
SVG.fill-rule.attrib,
SVG.paint-order.attrib,
SVG.stroke.attrib,
SVG.stroke-dasharray.attrib,
SVG.stroke-dashoffset.attrib,
@@ -58,7 +58,7 @@ grammar {
SVG.Cursor.attrib,
SVG.External.attrib,
common.attrs.aria?,
attribute d { PathData.datatype },
attribute d { PathData.datatype }?,
attribute pathLength { Number.datatype }?,
attribute transform { TransformList.datatype }?
a:documentation [
@@ -85,8 +85,8 @@ grammar {
common.attrs.aria?,
attribute x { Coordinate.datatype }?,
attribute y { Coordinate.datatype }?,
attribute width { Length.datatype },
attribute height { Length.datatype },
attribute width { Length.datatype }?,
attribute height { Length.datatype }?,
attribute rx { Length.datatype }?,
attribute ry { Length.datatype }?,
attribute transform { TransformList.datatype }?
@@ -114,7 +114,7 @@ grammar {
common.attrs.aria?,
attribute cx { Coordinate.datatype }?,
attribute cy { Coordinate.datatype }?,
attribute r { Length.datatype },
attribute r { Length.datatype }?,
attribute transform { TransformList.datatype }?
a:documentation [ "\x{a}" ~ " line: Line Element\x{a}" ~ " " ]
SVG.line.content = SVG.Description.class*, SVG.Animation.class*
@@ -164,8 +164,8 @@ grammar {
common.attrs.aria?,
attribute cx { Coordinate.datatype }?,
attribute cy { Coordinate.datatype }?,
attribute rx { Length.datatype },
attribute ry { Length.datatype },
attribute rx { Length.datatype }?,
attribute ry { Length.datatype }?,
attribute transform { TransformList.datatype }?
a:documentation [
"\x{a}" ~
@@ -191,7 +191,7 @@ grammar {
SVG.Cursor.attrib,
SVG.External.attrib,
(common.attrs.aria.implicit.group | common.attrs.aria)?,
attribute points { Points.datatype },
attribute points { Points.datatype }?,
attribute transform { TransformList.datatype }?
a:documentation [
"\x{a}" ~
@@ -216,6 +216,6 @@ grammar {
SVG.Cursor.attrib,
SVG.External.attrib,
common.attrs.aria?,
attribute points { Points.datatype },
attribute points { Points.datatype }?,
attribute transform { TransformList.datatype }?
}
@@ -1,47 +0,0 @@
namespace svg = "http://www.w3.org/2000/svg"
namespace math = "http://www.w3.org/1998/Math/MathML"
namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
datatypes w = "http://whattf.org/datatype-draft"
include "xhtml10/xhtml-strict.rnc"
include "svg11/svg11-inc.rnc"
include "svg11/inkscape.rnc"
include "mml3/mathml3-inc.rnc"
include "rdf/rdf.rnc"
include "xhtml10/ruby.rnc"
include "html5/aria.rnc"
head.content &= rdf.elem*
SVG.metadata.content |= rdf.elem
Inline.class |= svg
Inline.class |= math
SVG.foreignObject.content |=
( math
| html
| body
| Block.mix*
)
annotation-xml.model.svg |= svg
annotation-xml.model.xhtml |=
( html
| Block.class
| Inline.class
)
# in our integration, <mtext> is the only MathML "token element" that can
# contain HTML element content; the <mi>, <mn>, <mo> and <ms> elements
# cannot; see http://www.w3.org/Bugs/Public/show_bug.cgi?id=9859#c8 for a
# rationale
mtext.content |= Inline.class
# datatypes needed for ARIA support
common.data.float = w:float
common.data.idref = w:IDREF
common.data.idrefs = w:IDREFS
common.data.integer.non-negative = w:integer-non-negative
common.data.integer.positive = w:integer-positive
@@ -1,3 +0,0 @@
default namespace = "http://www.w3.org/1999/xhtml"
include "xhtml5-svg-mathml.rnc"
include "html5/xhtml5full-xhtml-rdfa.rnc"
@@ -1,2 +0,0 @@
include "xhtml5-svg-mathml.rnc"
include "html5/xhtml5full-xhtml-no-microdata.rnc"
@@ -1,2 +0,0 @@
include "xhtml5-svg-mathml.rnc"
include "html5/xhtml5full-xhtml-rdfalite.rnc"
@@ -1,2 +0,0 @@
include "xhtml5-svg-mathml.rnc"
include "html5/xhtml5full-xhtml-rdfalite.rnc"
@@ -1,3 +1,12 @@
default namespace = "http://www.w3.org/1999/xhtml"
include "html5/xhtml5.rnc"
include "html5/common-ext.rnc"
include "html5/embed-ext.rnc"
include "html5/core-scripting-ext.rnc"
include "html5/rdfa.rnc"
include "html5/legacy.rnc"
include "xhtml5-svg-mathml.rnc"
include "html5/xhtml5full-xhtml-rdfa.rnc"
@@ -1,29 +0,0 @@
--- /Users/denofevil/Code/sandbox/checker/syntax/relaxng/html5full-rdfa.rnc 2014-01-24 12:19:52.000000000 +0400
+++ html5/html5full-rdfa.rnc 2014-01-24 13:28:00.000000000 +0400
@@ -6,13 +6,17 @@
nonHTMLizable = notAllowed
nonRoundtrippable = notAllowed
}
+include "common-ext.rnc"
+
start = html.elem
include "phrase.rnc"
include "block.rnc"
include "sectional.rnc"
include "revision.rnc"
include "embed.rnc"
+include "embed-ext.rnc"
include "core-scripting.rnc"
+include "core-scripting-ext.rnc"
include "structural.rnc"
include "ruby.rnc"
include "media.rnc"
@@ -33,7 +37,6 @@
)
)
}
-include "its20-html5.rnc"
-common.attrs &= its-html-attributes
+include "meta-ext.rnc"
include "microdata.rnc"
include "rdfa.rnc"
@@ -1,20 +0,0 @@
--- /Users/denofevil/Code/sandbox/checker/syntax/relaxng/xhtml5full-xhtml-rdfa.rnc 2014-01-24 12:19:52.000000000 +0400
+++ html5/xhtml5full-xhtml-rdfa.rnc 2014-01-25 11:13:41.000000000 +0400
@@ -4,13 +4,17 @@
HTMLonly = notAllowed
v5only = empty
}
+include "common-ext.rnc"
+
start = html.elem
include "phrase.rnc"
include "block.rnc"
include "sectional.rnc"
include "revision.rnc"
include "embed.rnc"
+include "embed-ext.rnc"
include "core-scripting.rnc"
+include "core-scripting-ext.rnc"
include "structural.rnc"
include "ruby.rnc"
include "media.rnc"
@@ -1,6 +0,0 @@
--- /Users/denofevil/Code/sandbox/checker/validator/schema/html5-all.rnc 2014-01-24 12:18:54.000000000 +0400
+++ html5-all.rnc 2014-01-24 15:46:08.000000000 +0400
@@ -1,2 +1,3 @@
+default namespace = "http://www.w3.org/1999/xhtml"
include "html5-svg-mathml.rnc"
include "html5/html5full-rdfa.rnc"
@@ -1,6 +0,0 @@
--- /Users/denofevil/Code/sandbox/checker/validator/schema/xhtml5-all.rnc 2014-01-24 12:18:54.000000000 +0400
+++ xhtml5-all.rnc 2014-01-24 15:46:01.000000000 +0400
@@ -1,2 +1,3 @@
+default namespace = "http://www.w3.org/1999/xhtml"
include "xhtml5-svg-mathml.rnc"
include "html5/xhtml5full-xhtml-rdfa.rnc"
@@ -1,26 +0,0 @@
Index: xml/relaxng/src/resources/html5-schema/html5/legacy.rnc
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- html5/legacy.rnc (revision d1fb137d55cd5a5f1b9d6228d3bd49669e148540)
+++ html5/legacy.rnc (revision aebff73f628a2e4a9321b0530831e1e36b280397)
@@ -142,6 +142,7 @@
element applet { applet.inner.phrasing & applet.attrs }
applet.attrs =
( common.attrs
+ & applet.attrs.alt?
& applet.attrs.archive?
& applet.attrs.code
& applet.attrs.codebase?
@@ -149,6 +150,10 @@
& applet.attrs.height
& applet.attrs.width
)
+ applet.attrs.alt =
+ attribute alt {
+ string
+ }
applet.attrs.archive =
attribute archive {
common.data.uri #FIXME *comma* separated URI list (*grumble*)
File diff suppressed because it is too large Load Diff
@@ -1,13 +1,12 @@
diff --git a/build/build.py b/build/build.py
index f3ab4a83..919a6576 100755
--- a/build/build.py
+++ b/build/build.py
@@ -1846,7 +1846,7 @@ def main(argv):
elif arg == 'checkout':
pass
elif arg == 'build':
- release.buildAll()
+ buildSchemaDrivers()
elif arg == 'docker-build':
dockerBuild()
elif arg == 'docker-run':
--- a/build/build.py (revision 2718ae6ca0ff39b1194c6cba66ace0e77cc45809)
+++ b/build/build.py (date 1770809444251)
@@ -2585,7 +2585,7 @@
elif task == 'checkout':
pass
elif task == 'build':
- release.buildAll()
+ buildSchemaDrivers()
elif task == 'docker-build':
dockerBuild()
elif task == 'docker-run':
+6 -4
View File
@@ -29,7 +29,6 @@ echo ">>>>> Collecting schemas"
cd ../..
mkdir result
mkdir result/html5
cp temp/validator/schema/*.rnc result
rsync -r --include=*.rnc temp/validator/schema/* result
rm -rf result/xhtml10
pwd
@@ -55,16 +54,19 @@ cd ..
echo
echo ">>>>> Moving items in place"
cp result/html5-all.rnc result/html5.rnc
cp result/xhtml5-all.rnc result/xhtml5.rnc
mv result/html5/LICENSE result
# Use our root schema files
cp html5-schema/*.rnc result
# Retain our SVG 2.0 support
cp -R html5-schema/svg20 result
# Retain our rdf support
cp -R html5-schema/rdf result
# Remove unnecessary files
rm result/html5/.htaccess
rm result/html5/assertions.sch
rm result/mml3/Makefile
rm result/mml3/patch-vnu