summaryrefslogtreecommitdiff
path: root/xml
diff options
context:
space:
mode:
authorTor Norbye <tnorbye@google.com>2013-04-24 10:43:41 -0700
committerTor Norbye <tnorbye@google.com>2013-04-24 10:43:41 -0700
commitb17587c84879dd2ea42495f1fbdadbc806b9475b (patch)
treeb4d9014f69cb8289627ddc75339a6b0b3fe1bc5e /xml
parentb569bc6aa78f6eacf72e8b90622d300e1a9db25f (diff)
downloadidea-b17587c84879dd2ea42495f1fbdadbc806b9475b.tar.gz
Snapshot e242282deb41c328afbe971fc167e47ddfb26df9 from master branch of git://git.jetbrains.org/idea/community.git
Change-Id: Ifdc1818cde7b63f6d7bf42801f18c7f1557b8d85
Diffstat (limited to 'xml')
-rw-r--r--xml/impl/src/com/intellij/application/options/emmet/CssEditPrefixesListPanel.java12
-rw-r--r--xml/impl/src/com/intellij/application/options/emmet/EmmetConfigurable.java2
-rw-r--r--xml/impl/src/com/intellij/application/options/emmet/EmmetOptions.java22
-rw-r--r--xml/impl/src/com/intellij/xml/util/documentation/HtmlDocumentationProvider.java8
-rw-r--r--xml/relaxng/src/resources/html5-schema/LICENSE2
-rw-r--r--xml/relaxng/src/resources/html5-schema/applications.rnc121
-rw-r--r--xml/relaxng/src/resources/html5-schema/aria.rnc88
-rw-r--r--xml/relaxng/src/resources/html5-schema/block.rnc52
-rw-r--r--xml/relaxng/src/resources/html5-schema/common-ext.rnc7
-rw-r--r--xml/relaxng/src/resources/html5-schema/common.rnc86
-rw-r--r--xml/relaxng/src/resources/html5-schema/core-scripting-ext.rnc3
-rw-r--r--xml/relaxng/src/resources/html5-schema/core-scripting.rnc15
-rw-r--r--xml/relaxng/src/resources/html5-schema/data.rnc22
-rw-r--r--xml/relaxng/src/resources/html5-schema/embed.rnc107
-rw-r--r--xml/relaxng/src/resources/html5-schema/html5.rnc6
-rw-r--r--xml/relaxng/src/resources/html5-schema/media.rnc45
-rw-r--r--xml/relaxng/src/resources/html5-schema/meta-ext.rnc57
-rw-r--r--xml/relaxng/src/resources/html5-schema/meta.rnc65
-rw-r--r--xml/relaxng/src/resources/html5-schema/microdata.rnc19
-rw-r--r--xml/relaxng/src/resources/html5-schema/phrase.rnc65
-rw-r--r--xml/relaxng/src/resources/html5-schema/rdfa.rnc240
-rw-r--r--xml/relaxng/src/resources/html5-schema/revision.rnc10
-rw-r--r--xml/relaxng/src/resources/html5-schema/sectional.rnc47
-rw-r--r--xml/relaxng/src/resources/html5-schema/structural.rnc80
-rw-r--r--xml/relaxng/src/resources/html5-schema/tables.rnc39
-rw-r--r--xml/relaxng/src/resources/html5-schema/web-forms.rnc98
-rw-r--r--xml/relaxng/src/resources/html5-schema/web-forms2.rnc62
-rw-r--r--xml/relaxng/src/resources/html5-schema/xhtml5.rnc4
-rw-r--r--xml/relaxng/test/org/intellij/plugins/relaxNG/RngHtml5CompletionTest.java8
-rw-r--r--xml/relaxng/test/org/intellij/plugins/relaxNG/RngXmlHighlightingTest.java2
-rw-r--r--xml/relaxng/testData/completion/html5_1.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_10.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_10_after.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_11.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_11_after.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_12.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_12_after.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_13.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_13_after.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_14.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_14_after.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_15.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_15_after.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_16.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_16_after.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_17.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_17_after.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_1_after.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_2.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_2_after.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_3.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_3_after.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_4.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_4_after.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_5.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_5_after.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_6.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_6_after.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_7.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_7_after.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_8.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_8_after.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_9.xml2
-rw-r--r--xml/relaxng/testData/completion/html5_9_after.xml2
-rw-r--r--xml/relaxng/testData/highlighting/Html5.xml2
-rw-r--r--xml/relaxng/testData/highlighting/Html5_2.xml2
-rw-r--r--xml/relaxng/testData/highlighting/html5/LICENSE23
-rw-r--r--xml/relaxng/testData/highlighting/html5/applications.rnc260
-rw-r--r--xml/relaxng/testData/highlighting/html5/aria.rnc1017
-rw-r--r--xml/relaxng/testData/highlighting/html5/block.rnc196
-rw-r--r--xml/relaxng/testData/highlighting/html5/common.rnc393
-rw-r--r--xml/relaxng/testData/highlighting/html5/core-scripting.rnc331
-rw-r--r--xml/relaxng/testData/highlighting/html5/data.rnc69
-rw-r--r--xml/relaxng/testData/highlighting/html5/embed.rnc565
-rw-r--r--xml/relaxng/testData/highlighting/html5/form-datatypes.rnc52
-rw-r--r--xml/relaxng/testData/highlighting/html5/html5.rnc56
-rw-r--r--xml/relaxng/testData/highlighting/html5/html5exclusions.rnc63
-rw-r--r--xml/relaxng/testData/highlighting/html5/media.rnc151
-rw-r--r--xml/relaxng/testData/highlighting/html5/meta.rnc331
-rw-r--r--xml/relaxng/testData/highlighting/html5/microdata.rnc80
-rw-r--r--xml/relaxng/testData/highlighting/html5/phrase.rnc324
-rw-r--r--xml/relaxng/testData/highlighting/html5/revision.rnc52
-rw-r--r--xml/relaxng/testData/highlighting/html5/ruby.rnc51
-rw-r--r--xml/relaxng/testData/highlighting/html5/sectional.rnc140
-rw-r--r--xml/relaxng/testData/highlighting/html5/structural.rnc105
-rw-r--r--xml/relaxng/testData/highlighting/html5/tables.rnc224
-rw-r--r--xml/relaxng/testData/highlighting/html5/web-forms-scripting.rnc27
-rw-r--r--xml/relaxng/testData/highlighting/html5/web-forms.rnc536
-rw-r--r--xml/relaxng/testData/highlighting/html5/web-forms2-scripting.rnc15
-rw-r--r--xml/relaxng/testData/highlighting/html5/web-forms2.rnc790
-rw-r--r--xml/relaxng/testData/highlighting/html5/xhtml5.rnc40
-rw-r--r--xml/tests/src/com/intellij/codeInspection/htmlInspections/XmlInspectionToolProvider.java3
92 files changed, 1188 insertions, 6172 deletions
diff --git a/xml/impl/src/com/intellij/application/options/emmet/CssEditPrefixesListPanel.java b/xml/impl/src/com/intellij/application/options/emmet/CssEditPrefixesListPanel.java
index 5cb55b2f0c43..765c00e4d051 100644
--- a/xml/impl/src/com/intellij/application/options/emmet/CssEditPrefixesListPanel.java
+++ b/xml/impl/src/com/intellij/application/options/emmet/CssEditPrefixesListPanel.java
@@ -28,6 +28,10 @@ import javax.swing.table.TableCellEditor;
import javax.swing.table.TableCellRenderer;
import java.util.ArrayList;
import java.util.List;
+import java.util.Set;
+
+import static com.google.common.collect.Lists.newArrayList;
+import static com.google.common.collect.Sets.newHashSet;
/**
* User: zolotov
@@ -66,12 +70,12 @@ public class CssEditPrefixesListPanel {
myPrefixesTableView.setEnabled(value);
}
- public void setState(List<CssPrefixInfo> prefixInfos) {
- myPrefixesModel.setItems(prefixInfos);
+ public void setState(Set<CssPrefixInfo> prefixInfos) {
+ myPrefixesModel.setItems(newArrayList(prefixInfos));
}
- public List<CssPrefixInfo> getState() {
- return myPrefixesModel.getItems();
+ public Set<CssPrefixInfo> getState() {
+ return newHashSet(myPrefixesModel.getItems());
}
public JPanel createMainComponent() {
diff --git a/xml/impl/src/com/intellij/application/options/emmet/EmmetConfigurable.java b/xml/impl/src/com/intellij/application/options/emmet/EmmetConfigurable.java
index a702df6fde61..9dbfc55456fd 100644
--- a/xml/impl/src/com/intellij/application/options/emmet/EmmetConfigurable.java
+++ b/xml/impl/src/com/intellij/application/options/emmet/EmmetConfigurable.java
@@ -137,7 +137,7 @@ public class EmmetConfigurable implements SearchableConfigurable, Disposable, Co
public void apply() throws ConfigurationException {
EmmetOptions emmetOptions = EmmetOptions.getInstance();
emmetOptions.setEmmetEnabled(myEnableEmmetJBCheckBox.isSelected());
- emmetOptions.setEnableBemFilterByDefault(myEnableBEMFilterJBCheckBox.isSelected());
+ emmetOptions.setBemFilterEnabledByDefault(myEnableBEMFilterJBCheckBox.isSelected());
emmetOptions.setEmmetExpandShortcut(getSelectedEmmetExpandShortcut());
emmetOptions.setAutoInsertCssPrefixedEnabled(myAutoInsertCssVendorJBCheckBox.isSelected());
emmetOptions.setFuzzySearchEnabled(myEnabledFuzzySearchJBCheckBox.isSelected());
diff --git a/xml/impl/src/com/intellij/application/options/emmet/EmmetOptions.java b/xml/impl/src/com/intellij/application/options/emmet/EmmetOptions.java
index dd005841293c..614e17a736a7 100644
--- a/xml/impl/src/com/intellij/application/options/emmet/EmmetOptions.java
+++ b/xml/impl/src/com/intellij/application/options/emmet/EmmetOptions.java
@@ -15,6 +15,7 @@
*/
package com.intellij.application.options.emmet;
+import com.google.common.collect.Sets;
import com.intellij.application.options.editor.WebEditorOptions;
import com.intellij.openapi.application.PathManager;
import com.intellij.openapi.components.*;
@@ -29,10 +30,10 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.io.File;
-import java.util.List;
+import java.util.Collection;
import java.util.Map;
+import java.util.Set;
-import static com.google.common.collect.Lists.newLinkedList;
import static com.google.common.collect.Maps.newHashMap;
import static com.google.common.io.Resources.getResource;
@@ -48,7 +49,7 @@ import static com.google.common.io.Resources.getResource;
)}
)
public class EmmetOptions implements PersistentStateComponent<EmmetOptions>, ExportableComponent {
- private boolean myEnableBemFilterByDefault = false;
+ private boolean myBemFilterEnabledByDefault = false;
private boolean myEmmetEnabled = WebEditorOptions.getInstance().isZenCodingEnabled();
private int myEmmetExpandShortcut = WebEditorOptions.getInstance().getZenCodingExpandShortcut();
private boolean myFuzzySearchEnabled = true;
@@ -56,7 +57,7 @@ public class EmmetOptions implements PersistentStateComponent<EmmetOptions>, Exp
@Nullable
private Map<String, Integer> prefixes = null;
- public void setPrefixInfo(List<CssPrefixInfo> prefixInfos) {
+ public void setPrefixInfo(Collection<CssPrefixInfo> prefixInfos) {
prefixes = newHashMap();
for (CssPrefixInfo state : prefixInfos) {
prefixes.put(state.getPropertyName(), state.toIntegerValue());
@@ -67,8 +68,8 @@ public class EmmetOptions implements PersistentStateComponent<EmmetOptions>, Exp
return CssPrefixInfo.fromIntegerValue(propertyName, getPrefixes().get(propertyName));
}
- public List<CssPrefixInfo> getAllPrefixInfo() {
- List<CssPrefixInfo> result = newLinkedList();
+ public Set<CssPrefixInfo> getAllPrefixInfo() {
+ Set<CssPrefixInfo> result = Sets.newHashSetWithExpectedSize(getPrefixes().size());
for (Map.Entry<String, Integer> entry : getPrefixes().entrySet()) {
result.add(CssPrefixInfo.fromIntegerValue(entry.getKey(), entry.getValue()));
}
@@ -76,11 +77,11 @@ public class EmmetOptions implements PersistentStateComponent<EmmetOptions>, Exp
}
public boolean isBemFilterEnabledByDefault() {
- return myEnableBemFilterByDefault;
+ return myBemFilterEnabledByDefault;
}
- public void setEnableBemFilterByDefault(boolean enableBemFilterByDefault) {
- myEnableBemFilterByDefault = enableBemFilterByDefault;
+ public void setBemFilterEnabledByDefault(boolean enableBemFilterByDefault) {
+ myBemFilterEnabledByDefault = enableBemFilterByDefault;
}
public void setEmmetExpandShortcut(int emmetExpandShortcut) {
@@ -141,7 +142,6 @@ public class EmmetOptions implements PersistentStateComponent<EmmetOptions>, Exp
return ServiceManager.getService(EmmetOptions.class);
}
- @SuppressWarnings("UnusedDeclaration")
@NotNull
public Map<String, Integer> getPrefixes() {
if (prefixes == null) {
@@ -155,7 +155,7 @@ public class EmmetOptions implements PersistentStateComponent<EmmetOptions>, Exp
this.prefixes = prefixes;
}
- public static Map<String, Integer> loadDefaultPrefixes() {
+ public Map<String, Integer> loadDefaultPrefixes() {
Map<String, Integer> result = newHashMap();
try {
Document document = JDOMUtil.loadDocument(getResource(EmmetOptions.class, "emmet_default_options.xml"));
diff --git a/xml/impl/src/com/intellij/xml/util/documentation/HtmlDocumentationProvider.java b/xml/impl/src/com/intellij/xml/util/documentation/HtmlDocumentationProvider.java
index acf39067a372..3f260038d841 100644
--- a/xml/impl/src/com/intellij/xml/util/documentation/HtmlDocumentationProvider.java
+++ b/xml/impl/src/com/intellij/xml/util/documentation/HtmlDocumentationProvider.java
@@ -111,7 +111,13 @@ public class HtmlDocumentationProvider implements DocumentationProvider {
isTag = !(element.getParent() instanceof XmlAttribute);
} else {
nameElement = element;
- isTag = context != null && element.getText().startsWith(context.getName());
+ if (context == null) {
+ isTag = false;
+ }
+ else {
+ String text = element.getText();
+ isTag = text != null && text.startsWith(context.getName());
+ }
}
if (nameElement!=null) {
diff --git a/xml/relaxng/src/resources/html5-schema/LICENSE b/xml/relaxng/src/resources/html5-schema/LICENSE
index fd1093cc1c60..0a2a5e0dc68b 100644
--- a/xml/relaxng/src/resources/html5-schema/LICENSE
+++ b/xml/relaxng/src/resources/html5-schema/LICENSE
@@ -2,7 +2,7 @@ The RELAX NG Schema for (X)HTML 5 is licensed under the MIT open source license.
The following legal notice applies to all files in this directory:
Copyright (c) 2005-2007 Elika J. Etemad (fantasai) and Henri Sivonen (hsivonen)
-Copyright (c) 2007-2008 Mozilla Foundation
+Copyright (c) 2007-2012 Mozilla Foundation
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
diff --git a/xml/relaxng/src/resources/html5-schema/applications.rnc b/xml/relaxng/src/resources/html5-schema/applications.rnc
index bf27090d5950..a98c20df4935 100644
--- a/xml/relaxng/src/resources/html5-schema/applications.rnc
+++ b/xml/relaxng/src/resources/html5-schema/applications.rnc
@@ -43,8 +43,8 @@ datatypes w = "http://whattf.org/datatype-draft"
common.attrs.dropzone =
attribute dropzone {
list {
- ( xsd:string { pattern = "[sS]:.+" }
- | xsd:string { pattern = "[fF]:.+" }
+ ( xsd:string { pattern = "[sS][tT][rR][iI][nN][gG]:.+" }
+ | xsd:string { pattern = "[fF][iI][lL][eE]:.+" }
)*
,
( w:string "copy"
@@ -52,8 +52,8 @@ datatypes w = "http://whattf.org/datatype-draft"
| w:string "link"
)?
,
- ( xsd:string { pattern = "[sS]:.+" }
- | xsd:string { pattern = "[fF]:.+" }
+ ( xsd:string { pattern = "[sS][tT][rR][iI][nN][gG]:.+" }
+ | xsd:string { pattern = "[fF][iI][lL][eE]:.+" }
)*
}
}
@@ -89,6 +89,10 @@ datatypes w = "http://whattf.org/datatype-draft"
( common.attrs
& progress.attrs.value?
& progress.attrs.max?
+ & ( common.attrs.aria.role.progressbar
+ | common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
progress.attrs.value =
attribute value {
@@ -103,6 +107,34 @@ datatypes w = "http://whattf.org/datatype-draft"
common.elem.phrasing |= progress.elem
+## Dialog box, inspector, or window: <dialog>
+ dialog.elem =
+ element dialog { dialog.inner & dialog.attrs }
+ dialog.attrs =
+ ( common.attrs
+ & dialog.attrs.open?
+ & ( common.attrs.aria.role.alert
+ | common.attrs.aria.role.alertdialog
+ | common.attrs.aria.role.contentinfo
+ | common.attrs.aria.role.dialog
+ | common.attrs.aria.role.log
+ | common.attrs.aria.role.main
+ | common.attrs.aria.role.marquee
+ | common.attrs.aria.role.region
+ | common.attrs.aria.role.status
+ | common.attrs.aria.landmark.application
+ | common.attrs.aria.landmark.document
+ | common.attrs.aria.landmark.search
+ )?
+ )
+ dialog.attrs.open =
+ attribute open {
+ w:string "open" | w:string ""
+ }
+ dialog.inner =
+ ( common.inner.flow )
+ common.elem.flow |= dialog.elem
+
## Command with an associated action: <command type='command'>
command.command.elem =
@@ -111,6 +143,9 @@ datatypes w = "http://whattf.org/datatype-draft"
( common.attrs
& command.command.attrs.type?
& common-command.attrs
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
command.command.attrs.type =
attribute type {
@@ -124,11 +159,14 @@ datatypes w = "http://whattf.org/datatype-draft"
element command { command.inner & command.radio.attrs }
command.radio.attrs =
( common.attrs
- & ( command.radio.attrs.type
- & command.radio.attrs.radiogroup #REVISIT taking liberties here
- & command.radio.attrs.checked?
- )
- & common-command.attrs
+ & ( command.radio.attrs.type
+ & command.radio.attrs.radiogroup #REVISIT taking liberties here
+ & command.radio.attrs.checked?
+ )
+ & common-command.attrs
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
command.radio.attrs.type =
attribute type {
@@ -150,11 +188,14 @@ datatypes w = "http://whattf.org/datatype-draft"
element command { command.inner & command.checkbox.attrs }
command.checkbox.attrs =
( common.attrs
- & ( command.checkbox.attrs.type
- & command.checkbox.attrs.checked?
- )
- & common-command.attrs
+ & ( command.checkbox.attrs.type
+ & command.checkbox.attrs.checked?
)
+ & common-command.attrs
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
+ )
command.checkbox.attrs.type =
attribute type {
w:string "checkbox"
@@ -197,6 +238,7 @@ datatypes w = "http://whattf.org/datatype-draft"
( common.attrs
& menu.attrs.type?
& menu.attrs.label?
+ & common.attrs.aria? # some roles only allowed if type is "toolbar" state; check in assertions
)
menu.attrs.type =
attribute type {
@@ -219,7 +261,9 @@ datatypes w = "http://whattf.org/datatype-draft"
mli.elem =
element li { mli.inner & mli.attrs }
mli.attrs =
- ( common.attrs )
+ ( common.attrs
+ & common.attrs.aria?
+ )
mli.inner =
( common.inner.flow )
@@ -244,7 +288,7 @@ datatypes w = "http://whattf.org/datatype-draft"
common.data.integer.non-negative
}
canvas.inner.flow =
- ( common.inner.flow )
+ ( common.inner.transparent.flow )
canvas.inner.phrasing =
( common.inner.phrasing )
@@ -258,15 +302,50 @@ datatypes w = "http://whattf.org/datatype-draft"
details.attrs =
( common.attrs
& details.attrs.open?
- & common.attrs.aria.implicit.region?
+ & ( common.attrs.aria.implicit.region # aria-expanded must be true if open attr present; check by assertions
+ | common.attrs.aria.role.alertdialog
+ | common.attrs.aria.role.banner
+ | common.attrs.aria.role.button
+ | common.attrs.aria.role.combobox
+ | common.attrs.aria.role.dialog
+ | common.attrs.aria.role.directory
+ | common.attrs.aria.role.heading
+ | common.attrs.aria.role.img
+ | common.attrs.aria.role.link
+ | common.attrs.aria.role.list
+ | common.attrs.aria.role.listbox
+ | common.attrs.aria.role.listitem
+ | common.attrs.aria.role.log
+ | common.attrs.aria.role.marquee
+ | common.attrs.aria.role.menu
+ | common.attrs.aria.role.menubar
+ | common.attrs.aria.role.note
+ | common.attrs.aria.role.separator
+ | common.attrs.aria.role.status
+ | common.attrs.aria.role.tab
+ | common.attrs.aria.role.tablist
+ | common.attrs.aria.role.tabpanel
+ | common.attrs.aria.role.toolbar
+ | common.attrs.aria.role.tree
+ | common.attrs.aria.role.treeitem
+ | common.attrs.aria.landmark.application
+ | common.attrs.aria.landmark.article
+ | common.attrs.aria.landmark.complementary
+ | common.attrs.aria.landmark.contentinfo
+ | common.attrs.aria.landmark.document
+ | common.attrs.aria.landmark.form
+ | common.attrs.aria.landmark.main
+ | common.attrs.aria.landmark.navigation
+ | common.attrs.aria.landmark.search
+ )?
)
details.attrs.open =
attribute open {
w:string "open" | w:string ""
}
details.inner =
- ( summary.elem?
- , common.inner.flow
+ ( summary.elem
+ , common.inner.flow
)
common.elem.flow |= details.elem
@@ -276,6 +355,10 @@ datatypes w = "http://whattf.org/datatype-draft"
summary.elem =
element summary { summary.inner & summary.attrs }
summary.attrs =
- ( common.attrs )
+ ( common.attrs
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
+ )
summary.inner =
( common.inner.phrasing )
diff --git a/xml/relaxng/src/resources/html5-schema/aria.rnc b/xml/relaxng/src/resources/html5-schema/aria.rnc
index 9721d36e0fdb..a7a30672aafa 100644
--- a/xml/relaxng/src/resources/html5-schema/aria.rnc
+++ b/xml/relaxng/src/resources/html5-schema/aria.rnc
@@ -315,6 +315,7 @@ common.attrs.aria.implicit.listitem |=
{ string "true"
| string "false" #default
}
+ common.attrs.aria.prop.readonly |= aria.prop.readonly
## relevant
aria.prop.relevant =
@@ -410,6 +411,7 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "alert" }
common.attrs.aria |= aria.alert
+ common.attrs.aria.role.alert |= aria.alert
## alertdialog
aria.alertdialog =
@@ -420,6 +422,7 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "alertdialog" }
common.attrs.aria |= aria.alertdialog
+ common.attrs.aria.role.alertdialog |= aria.alertdialog
## application
aria.application =
@@ -463,6 +466,7 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "button" }
common.attrs.aria |= aria.button
+ common.attrs.aria.role.button |= aria.button
## checkbox
aria.checkbox =
@@ -474,7 +478,18 @@ common.attrs.aria.implicit.listitem |=
common.attrs.aria |= aria.checkbox
-# XXX columnheader
+# columnheader
+ aria.columnheader =
+ ( aria.role.columnheader
+ & aria.prop.sort? # not inherited
+ & aria.prop.readonly? # not inherited
+ & aria.state.selected? # not inherited
+ & aria.state.expanded?
+ )
+ aria.role.columnheader =
+ attribute role { string "columnheader" }
+
+ common.attrs.aria |= aria.columnheader
## combobox
aria.combobox =
@@ -486,6 +501,7 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "combobox" }
common.attrs.aria |= aria.combobox
+ common.attrs.aria.role.combobox |= aria.combobox
## complementary
aria.complementary =
@@ -528,6 +544,7 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "dialog" }
common.attrs.aria |= aria.dialog
+ common.attrs.aria.role.dialog |= aria.dialog
## directory
aria.directory =
@@ -538,6 +555,7 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "directory" }
common.attrs.aria |= aria.directory
+ common.attrs.aria.role.directory |= aria.directory
## document
aria.document =
@@ -550,6 +568,17 @@ common.attrs.aria.implicit.listitem |=
common.attrs.aria |= aria.document
common.attrs.aria.landmark.document |= aria.document
+## form
+ aria.form =
+ ( aria.role.form
+ & aria.state.expanded?
+ )
+ aria.role.form =
+ attribute role { string "form" }
+
+ common.attrs.aria |= aria.form
+ common.attrs.aria.landmark.form |= aria.form
+
## grid
aria.grid =
( aria.role.grid
@@ -588,7 +617,17 @@ common.attrs.aria.implicit.listitem |=
common.attrs.aria |= aria.group
-## XXX heading
+## heading
+ aria.heading =
+ ( aria.role.heading
+ & aria.prop.level ? # not inherited
+ & aria.state.expanded?
+ )
+ aria.role.heading =
+ attribute role { string "heading" }
+
+ common.attrs.aria |= aria.heading
+ common.attrs.aria.role.heading |= aria.heading
## img
aria.img =
@@ -599,6 +638,7 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "img" }
common.attrs.aria |= aria.img
+ common.attrs.aria.role.img |= aria.img
## link
aria.link =
@@ -608,6 +648,7 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "link" }
common.attrs.aria |= aria.link
+ common.attrs.aria.role.link |= aria.link
## list
aria.list =
@@ -618,6 +659,7 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "list" }
common.attrs.aria |= aria.list
+ common.attrs.aria.role.list |= aria.list
## listbox
aria.listbox =
@@ -630,6 +672,7 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "listbox" }
common.attrs.aria |= aria.listbox
+ common.attrs.aria.role.listbox |= aria.listbox
## listitem
aria.listitem =
@@ -643,6 +686,7 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "listitem" }
common.attrs.aria |= aria.listitem
+ common.attrs.aria.role.listitem |= aria.listitem
## log
aria.log =
@@ -653,6 +697,7 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "log" }
common.attrs.aria |= aria.log
+ common.attrs.aria.role.log |= aria.log
## main
aria.main =
@@ -674,6 +719,7 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "marquee" }
common.attrs.aria |= aria.marquee
+ common.attrs.aria.role.marquee |= aria.marquee
## math
aria.math =
@@ -695,6 +741,7 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "menu" }
common.attrs.aria |= aria.menu
+ common.attrs.aria.role.menu |= aria.menu
## menubar
aria.menubar =
@@ -706,6 +753,8 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "menubar" }
common.attrs.aria |= aria.menubar
+ common.attrs.aria.role.menubar |= aria.menubar
+
## menuitem
aria.menuitem =
@@ -714,6 +763,7 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "menuitem" }
common.attrs.aria |= aria.menuitem
+ common.attrs.aria.role.menuitem |= aria.menuitem
## menuitemcheckbox
aria.menuitemcheckbox =
@@ -724,6 +774,7 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "menuitemcheckbox" }
common.attrs.aria |= aria.menuitemcheckbox
+ common.attrs.aria.role.menuitemcheckbox |= aria.menuitemcheckbox
## menuitemradio
aria.menuitemradio =
@@ -735,6 +786,7 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "menuitemradio" }
common.attrs.aria |= aria.menuitemradio
+ common.attrs.aria.role.menuitemradio |= aria.menuitemradio
## navigation
aria.navigation =
@@ -768,6 +820,7 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "option" }
common.attrs.aria |= aria.option
+ common.attrs.aria.role.option |= aria.option
## presentation
@@ -779,6 +832,7 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "presentation" }
common.attrs.aria |= aria.presentation
+ common.attrs.aria.role.presentation |= aria.presentation
## progressbar
aria.progressbar =
@@ -792,6 +846,7 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "progressbar" }
common.attrs.aria |= aria.progressbar
+ common.attrs.aria.role.progressbar |= aria.progressbar
## radio
aria.radio =
@@ -803,6 +858,7 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "radio" }
common.attrs.aria |= aria.radio
+ common.attrs.aria.role.radio |= aria.radio
## radiogroup
aria.radiogroup =
@@ -824,6 +880,7 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "region" }
common.attrs.aria |= aria.region
+ common.attrs.aria.role.region |= aria.region
## row
aria.row =
@@ -838,7 +895,18 @@ common.attrs.aria.implicit.listitem |=
common.attrs.aria |= aria.row
-# XXX rowheader
+# rowheader
+ aria.rowheader =
+ ( aria.role.rowheader
+ & aria.prop.sort? # not inherited
+ & aria.prop.readonly? # not inherited
+ & aria.state.selected? # not inherited
+ & aria.state.expanded?
+ )
+ aria.role.rowheader =
+ attribute role { string "rowheader" }
+
+ common.attrs.aria |= aria.rowheader
## search
aria.search =
@@ -860,6 +928,7 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "separator" }
common.attrs.aria |= aria.separator
+ common.attrs.aria.role.separator |= aria.separator
## slider
aria.slider =
@@ -873,6 +942,7 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "slider" }
common.attrs.aria |= aria.slider
+ common.attrs.aria.role.slider |= aria.slider
## spinbutton
aria.spinbutton =
@@ -887,6 +957,7 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "spinbutton" }
common.attrs.aria |= aria.spinbutton
+ common.attrs.aria.role.spinbutton |= aria.spinbutton
## status
aria.status =
@@ -898,6 +969,7 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "status" }
common.attrs.aria |= aria.status
+ common.attrs.aria.role.status |= aria.status
## tab
aria.tab =
@@ -909,6 +981,7 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "tab" }
common.attrs.aria |= aria.tab
+ common.attrs.aria.role.tab |= aria.tab
## tablist
aria.tablist =
@@ -918,6 +991,8 @@ common.attrs.aria.implicit.listitem |=
)
aria.role.tablist =
attribute role { string "tablist" }
+ common.attrs.aria |= aria.tablist
+ common.attrs.aria.role.tablist |= aria.tablist
## tabpanel
aria.tabpanel =
@@ -928,6 +1003,7 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "tabpanel" }
common.attrs.aria |= aria.tabpanel
+ common.attrs.aria.role.tabpanel |= aria.tabpanel
## textbox
aria.textbox =
@@ -940,6 +1016,7 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "textbox" }
common.attrs.aria |= aria.textbox
+ common.attrs.aria.role.textbox |= aria.textbox
## timer
aria.timer =
@@ -962,6 +1039,7 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "toolbar" }
common.attrs.aria |= aria.toolbar
+ common.attrs.aria.role.toolbar |= aria.toolbar
## tooltip
aria.tooltip =
@@ -984,6 +1062,7 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "tree" }
common.attrs.aria |= aria.tree
+ common.attrs.aria.role.tree |= aria.tree
## treegrid
aria.treegrid =
@@ -1013,5 +1092,4 @@ common.attrs.aria.implicit.listitem |=
attribute role { string "treeitem" }
common.attrs.aria |= aria.treeitem
-
-
+ common.attrs.aria.role.treeitem |= aria.treeitem
diff --git a/xml/relaxng/src/resources/html5-schema/block.rnc b/xml/relaxng/src/resources/html5-schema/block.rnc
index 3f4332b23dc9..eeef41192014 100644
--- a/xml/relaxng/src/resources/html5-schema/block.rnc
+++ b/xml/relaxng/src/resources/html5-schema/block.rnc
@@ -25,7 +25,12 @@ datatypes w = "http://whattf.org/datatype-draft"
hr.elem =
element hr { hr.inner & hr.attrs }
hr.attrs =
- ( common.attrs )
+ ( common.attrs
+ & ( common.attrs.aria.role.separator
+ | common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
+ )
hr.inner =
( empty )
@@ -56,8 +61,17 @@ datatypes w = "http://whattf.org/datatype-draft"
element ul { ul.inner & ul.attrs }
ul.attrs =
( common.attrs
- & ( common.attrs.aria
- | common.attrs.aria.implicit.region
+ & ( ( common.attrs.aria.role.directory
+ | common.attrs.aria.role.list
+ | common.attrs.aria.role.listbox
+ | common.attrs.aria.role.menu
+ | common.attrs.aria.role.menubar
+ | common.attrs.aria.role.tablist
+ | common.attrs.aria.role.toolbar
+ | common.attrs.aria.role.tree
+ | common.attrs.aria.role.presentation
+ )
+ | common.attrs.aria.implicit.region
)?
)
ul.inner =
@@ -71,9 +85,7 @@ datatypes w = "http://whattf.org/datatype-draft"
element li { li.inner & li.attrs }
li.attrs =
( common.attrs
- & ( common.attrs.aria
- | common.attrs.aria.implicit.listitem
- )?
+ & common.attrs.aria?
)
li.inner =
( common.inner.flow )
@@ -87,8 +99,17 @@ datatypes w = "http://whattf.org/datatype-draft"
& ol.attrs.start?
& ol.attrs.reversed?
& ol.attrs.type?
- & ( common.attrs.aria
- | common.attrs.aria.implicit.region
+ & ( ( common.attrs.aria.role.directory
+ | common.attrs.aria.role.list
+ | common.attrs.aria.role.listbox
+ | common.attrs.aria.role.menu
+ | common.attrs.aria.role.menubar
+ | common.attrs.aria.role.tablist
+ | common.attrs.aria.role.toolbar
+ | common.attrs.aria.role.tree
+ | common.attrs.aria.role.presentation
+ )
+ | common.attrs.aria.implicit.region
)?
)
ol.attrs.start =
@@ -115,9 +136,7 @@ datatypes w = "http://whattf.org/datatype-draft"
oli.attrs =
( common.attrs
& oli.attrs.value?
- & ( common.attrs.aria
- | common.attrs.aria.implicit.listitem
- )?
+ & common.attrs.aria?
)
oli.attrs.value =
attribute value {
@@ -154,7 +173,7 @@ datatypes w = "http://whattf.org/datatype-draft"
& common.attrs.aria?
)
dt.inner =
- ( common.inner.phrasing )
+ ( common.inner.flow )
## Definition Description: <dd>
@@ -183,9 +202,7 @@ datatypes w = "http://whattf.org/datatype-draft"
& common.attrs.aria?
)
div.inner =
- ( style.elem.scoped*
- , common.inner.flow
- )
+ ( common.inner.flow )
common.elem.flow |= div.elem
@@ -195,7 +212,10 @@ datatypes w = "http://whattf.org/datatype-draft"
element legend { legend.inner & legend.attrs }
legend.attrs =
( common.attrs
- & common.attrs.aria.implicit.region?
+ & ( common.attrs.aria.implicit.region
+ | common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
legend.inner =
( common.inner.phrasing )
diff --git a/xml/relaxng/src/resources/html5-schema/common-ext.rnc b/xml/relaxng/src/resources/html5-schema/common-ext.rnc
new file mode 100644
index 000000000000..71a1e0be811a
--- /dev/null
+++ b/xml/relaxng/src/resources/html5-schema/common-ext.rnc
@@ -0,0 +1,7 @@
+datatypes w = "http://whattf.org/datatype-draft"
+
+## content language
+
+ common.data.string =
+ string
+# w:content-language \ No newline at end of file
diff --git a/xml/relaxng/src/resources/html5-schema/common.rnc b/xml/relaxng/src/resources/html5-schema/common.rnc
index c4f1eb9b0e0b..34d15fba1aa3 100644
--- a/xml/relaxng/src/resources/html5-schema/common.rnc
+++ b/xml/relaxng/src/resources/html5-schema/common.rnc
@@ -29,6 +29,9 @@ datatypes w = "http://whattf.org/datatype-draft"
## XML features that can't be serialized as HTML
nonHTMLizable = empty
+## features that are not part of the W3C HTML spec
+ nonW3C = empty
+
# #####################################################################
## Wildcards #
# #####################################################################
@@ -86,8 +89,15 @@ datatypes w = "http://whattf.org/datatype-draft"
## Prose Content
+ common.inner.transparent.flow =
+ ( text & common.elem.flow* )
+
common.inner.flow =
- ( text & common.elem.flow* ) # REVISIT <style scoped>
+ ( style.elem.scoped?,
+ ( text
+ & common.elem.flow*
+ )
+ )
# #####################################################################
## Common Attributes #
@@ -110,7 +120,6 @@ common.attrs.basic =
& common.attrs.title?
& common.attrs.base?
& common.attrs.space?
- & common.attrs.role?
)
common.attrs.id =
attribute id {
@@ -128,10 +137,6 @@ common.attrs.basic =
attribute title {
text
}
- common.attrs.role =
- attribute role {
- text
- }
common.attrs.base =
common.attrs.xmlbase
& nonRoundtrippable
@@ -149,6 +154,7 @@ common.attrs.basic =
common.attrs.i18n =
( common.attrs.dir?
& common.attrs.language?
+ & common.attrs.translate?
)
common.attrs.dir =
attribute dir {
@@ -181,6 +187,10 @@ common.attrs.i18n =
# attribute xml:lang {
# common.data.langcode
# } & XMLonly
+ common.attrs.translate =
+ attribute translate {
+ w:string "yes" | w:string "no"
+ }
common.attrs.present =
( common.attrs.style?
@@ -233,7 +243,7 @@ common.attrs.other =
common.data.idref =
w:IDREF
-
+
common.data.idrefs =
w:IDREFS
@@ -241,7 +251,7 @@ common.attrs.other =
w:ID #FIXME
common.data.hash-name =
- w:hash-name
+ w:hash-name
# xsd:string {
# pattern = "#.+"
# }
@@ -265,12 +275,12 @@ common.attrs.other =
# xsd:string {
# pattern = "[0-9]+"
# }
-
+
# common.data.percent =
# xsd:string {
# pattern = "(100)|([1-9]?[0-9](\.[0-9]+)?)%"
# }
-
+
common.data.float =
w:float
# xsd:string {
@@ -282,13 +292,13 @@ common.attrs.other =
# xsd:string {
# pattern = "(0*[1-9][0-9]*(\.[0-9]+)?)|([0-9]+(\.0*[1-9][0-9]*)?)([eE]-?[0-9]+)?"
# }
-
+
common.data.float.non-negative =
w:float-non-negative
# xsd:string {
# pattern = "[0-9]+(\.[0-9]+)?([eE]-?[0-9]+)?"
# }
-
+
## Temporal
common.data.datetime =
@@ -300,6 +310,9 @@ common.attrs.other =
common.data.date =
w:date
+ common.data.time-datetime =
+ w:time-datetime
+
## IRIs
common.data.uri =
@@ -389,7 +402,7 @@ common.attrs.other =
# #####################################################################
## WF2 Module Hook #
# #####################################################################
-
+
common-form.attrs.form = ( notAllowed )
# #####################################################################
@@ -397,6 +410,50 @@ common-form.attrs.form = ( notAllowed )
# #####################################################################
common.attrs.aria = ( notAllowed )
+common.attrs.aria.role.alert = ( notAllowed )
+common.attrs.aria.role.alertdialog = ( notAllowed )
+common.attrs.aria.role.application = ( notAllowed )
+common.attrs.aria.role.article = ( notAllowed )
+common.attrs.aria.role.banner = ( notAllowed )
+common.attrs.aria.role.button = ( notAllowed )
+common.attrs.aria.role.checkbox = ( notAllowed )
+common.attrs.aria.role.combobox = ( notAllowed )
+common.attrs.aria.role.complementary = ( notAllowed )
+common.attrs.aria.role.contentinfo = ( notAllowed )
+common.attrs.aria.role.dialog = ( notAllowed )
+common.attrs.aria.role.directory = ( notAllowed )
+common.attrs.aria.role.document = ( notAllowed )
+common.attrs.aria.role.heading = ( notAllowed )
+common.attrs.aria.role.img = ( notAllowed )
+common.attrs.aria.role.link = ( notAllowed )
+common.attrs.aria.role.list = ( notAllowed )
+common.attrs.aria.role.listitem = ( notAllowed )
+common.attrs.aria.role.log = ( notAllowed )
+common.attrs.aria.role.listbox = ( notAllowed )
+common.attrs.aria.role.main = ( notAllowed )
+common.attrs.aria.role.marquee = ( notAllowed )
+common.attrs.aria.role.menu = ( notAllowed )
+common.attrs.aria.role.menubar = ( notAllowed )
+common.attrs.aria.role.menuitem = ( notAllowed )
+common.attrs.aria.role.menuitemcheckbox = ( notAllowed )
+common.attrs.aria.role.menuitemradio = ( notAllowed )
+common.attrs.aria.role.note = ( notAllowed )
+common.attrs.aria.role.option = ( notAllowed )
+common.attrs.aria.role.presentation = ( notAllowed )
+common.attrs.aria.role.progressbar = ( notAllowed )
+common.attrs.aria.role.radio = ( notAllowed )
+common.attrs.aria.role.region = ( notAllowed )
+common.attrs.aria.role.search = ( notAllowed )
+common.attrs.aria.role.separator = ( notAllowed )
+common.attrs.aria.role.slider = ( notAllowed )
+common.attrs.aria.role.spinbutton = ( notAllowed )
+common.attrs.aria.role.status = ( notAllowed )
+common.attrs.aria.role.tab = ( notAllowed )
+common.attrs.aria.role.tablist = ( notAllowed )
+common.attrs.aria.role.textbox = ( notAllowed )
+common.attrs.aria.role.toolbar = ( notAllowed )
+common.attrs.aria.role.tree = ( notAllowed )
+common.attrs.aria.role.treeitem = ( notAllowed )
common.attrs.aria.implicit.button = ( notAllowed )
common.attrs.aria.implicit.input = ( notAllowed )
common.attrs.aria.implicit.region = ( notAllowed )
@@ -407,6 +464,7 @@ common.attrs.aria.implicit.link = ( notAllowed )
common.attrs.aria.implicit.listitem = ( notAllowed )
common.attrs.aria.implicit.img = ( notAllowed )
common.attrs.aria.implicit.select = ( notAllowed )
+common.attrs.aria.prop.readonly = ( notAllowed )
common.attrs.aria.landmark.application = ( notAllowed )
common.attrs.aria.landmark.banner = ( notAllowed )
common.attrs.aria.landmark.complementary = ( notAllowed )
@@ -417,4 +475,4 @@ common.attrs.aria.landmark.search = ( notAllowed )
# per ARIA spec: article, document, and note are not actually landmarks
common.attrs.aria.landmark.article = ( notAllowed )
common.attrs.aria.landmark.document = ( notAllowed )
-common.attrs.aria.landmark.note = ( notAllowed ) \ No newline at end of file
+common.attrs.aria.landmark.note = ( notAllowed )
diff --git a/xml/relaxng/src/resources/html5-schema/core-scripting-ext.rnc b/xml/relaxng/src/resources/html5-schema/core-scripting-ext.rnc
new file mode 100644
index 000000000000..8ce82f5eeb3c
--- /dev/null
+++ b/xml/relaxng/src/resources/html5-schema/core-scripting-ext.rnc
@@ -0,0 +1,3 @@
+datatypes w = "http://whattf.org/datatype-draft"
+
+noscript.inner.head |= meta.http-equiv.content-language.elem \ No newline at end of file
diff --git a/xml/relaxng/src/resources/html5-schema/core-scripting.rnc b/xml/relaxng/src/resources/html5-schema/core-scripting.rnc
index ef21687e1832..bef6bf107423 100644
--- a/xml/relaxng/src/resources/html5-schema/core-scripting.rnc
+++ b/xml/relaxng/src/resources/html5-schema/core-scripting.rnc
@@ -15,6 +15,9 @@ datatypes w = "http://whattf.org/datatype-draft"
( common.attrs
& script.attrs.type?
& script.attrs.language? # restricted in Schematron
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
script.elem.imported =
element script { script.inner.imported & script.attrs.imported }
@@ -26,6 +29,9 @@ datatypes w = "http://whattf.org/datatype-draft"
& script.attrs.type?
& script.attrs.charset?
& script.attrs.language? # restricted in Schematron
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
script.attrs.src =
attribute src {
@@ -86,7 +92,11 @@ datatypes w = "http://whattf.org/datatype-draft"
noscript.inner.flow =
( common.inner.flow )
noscript.attrs =
- ( common.attrs )
+ ( common.attrs
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
+ )
common.elem.metadata |= noscript.elem.head
common.elem.phrasing |= noscript.elem.phrasing
@@ -136,7 +146,6 @@ datatypes w = "http://whattf.org/datatype-draft"
& scripting.attr.onplaying?
& scripting.attr.onprogress?
& scripting.attr.onratechange?
- & scripting.attr.onreadystatechange?
& scripting.attr.onreset?
& scripting.attr.onscroll?
& scripting.attr.onseeked?
@@ -237,8 +246,6 @@ datatypes w = "http://whattf.org/datatype-draft"
attribute onprogress { common.data.functionbody }
scripting.attr.onratechange =
attribute onratechange { common.data.functionbody }
- scripting.attr.onreadystatechange =
- attribute onreadystatechange { common.data.functionbody }
scripting.attr.onreset =
attribute onreset { common.data.functionbody }
scripting.attr.onscroll =
diff --git a/xml/relaxng/src/resources/html5-schema/data.rnc b/xml/relaxng/src/resources/html5-schema/data.rnc
index 851b6cf2b2d4..e4c72de50742 100644
--- a/xml/relaxng/src/resources/html5-schema/data.rnc
+++ b/xml/relaxng/src/resources/html5-schema/data.rnc
@@ -10,19 +10,14 @@ datatypes w = "http://whattf.org/datatype-draft"
element time { time.inner & time.attrs }
time.attrs =
( common.attrs
- & ( time.attrs.datetime?
- |
- (
- ( time.attrs.datetime.dateonly?
- | time.attrs.datetime.tz?
- )
- & time.attrs.pubdate
- )
- )
+ & time.attrs.datetime?
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
time.attrs.datetime =
attribute datetime {
- common.data.date-or-time #REVISIT check format
+ common.data.time-datetime
}
time.attrs.datetime.dateonly =
attribute datetime {
@@ -32,10 +27,6 @@ datatypes w = "http://whattf.org/datatype-draft"
attribute datetime {
common.data.datetime
}
- time.attrs.pubdate =
- attribute pubdate {
- w:string "pubdate" | w:string ""
- }
time.inner =
( common.inner.phrasing ) #Cannot enforce textContent format here
@@ -53,6 +44,9 @@ datatypes w = "http://whattf.org/datatype-draft"
& meter.attrs.high?
& meter.attrs.max?
& meter.attrs.optimum?
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
meter.attrs.value =
attribute value {
diff --git a/xml/relaxng/src/resources/html5-schema/embed.rnc b/xml/relaxng/src/resources/html5-schema/embed.rnc
index 27c9856ecdd3..014ac5bb61d2 100644
--- a/xml/relaxng/src/resources/html5-schema/embed.rnc
+++ b/xml/relaxng/src/resources/html5-schema/embed.rnc
@@ -15,12 +15,12 @@ namespace local = ""
img.attrs =
( common.attrs
& img.attrs.src
- & img.attrs.alt?
+ & img.attrs.alt? # ARIA: if alt empty, only allowed role value is "presentation"; check in assertions
& img.attrs.height?
& img.attrs.width?
& img.attrs.usemap?
& img.attrs.ismap?
- & img.attrs.border? # obsolete
+ & img.attrs.border? # obsolete
& common.attrs.aria?
)
img.attrs.src =
@@ -67,6 +67,10 @@ namespace local = ""
& embed.attrs.height?
& embed.attrs.width?
& embed.attrs.other*
+ & ( common.attrs.aria.landmark.application
+ | common.attrs.aria.landmark.document
+ | common.attrs.aria.role.img
+ )?
)
embed.attrs.src =
attribute src {
@@ -94,6 +98,7 @@ namespace local = ""
| title
| dir
| lang
+ | translate
| style
| tabindex
| contextmenu
@@ -141,7 +146,6 @@ namespace local = ""
| onplaying
| onprogress
| onratechange
- | onreadystatechange
| onreset
| onscroll
| onseeked
@@ -174,6 +178,7 @@ namespace local = ""
| aria-describedby
| aria-disabled
| aria-dropeffect
+ | aria-expanded
| aria-flowto
| aria-grabbed
| aria-haspopup
@@ -184,7 +189,7 @@ namespace local = ""
| aria-live
| aria-owns
| aria-relevant
- | aria-required
+ | aria-required
| spellcheck
| accesskey
| itemref
@@ -194,6 +199,64 @@ namespace local = ""
| itemid
| name
| align
+ | about
+ | prefix
+ | property
+ | typeof
+ | vocab
+ | content
+ | datatype
+ | href
+ | rel
+ | resource
+ | rev
+ | inlist
+ | its-loc-note
+ | its-loc-note-type
+ | its-loc-note-ref
+ | its-term-info-ref
+ | its-term
+ | its-term-confidence
+ | its-within-text
+ | its-domain-mapping
+ | its-disambig-granularity
+ | its-disambig-confidence
+ | its-disambig-class-ref
+ | its-disambig-ident
+ | its-disambig-ident-ref
+ | its-disambig-source
+ | its-locale-filter-list
+ | its-person
+ | its-person-ref
+ | its-org
+ | its-org-ref
+ | its-tool
+ | its-tool-ref
+ | its-rev-person
+ | its-rev-person-ref
+ | its-rev-org
+ | its-rev-org-ref
+ | its-rev-tool
+ | its-rev-tool-ref
+ | its-prov-ref
+ | its-provenance-records-ref
+ | its-loc-quality-issues-ref
+ | its-loc-quality-issue-type
+ | its-loc-quality-issue-comment
+ | its-loc-quality-issue-severity
+ | its-loc-quality-issue-profile-ref
+ | its-loc-quality-issue-enabled
+ | its-loc-quality-rating-score
+ | its-loc-quality-rating-vote
+ | its-loc-quality-rating-score-threshold
+ | its-loc-quality-rating-vote-threshold
+ | its-loc-quality-rating-profile-ref
+ | its-mt-confidence
+ | its-allowed-characters
+ | its-storage-size
+ | its-storage-encoding
+ | its-line-break-type
+ | its-annotators-ref
)
{
string
@@ -224,7 +287,11 @@ namespace local = ""
& object.attrs.usemap?
& object.attrs.name?
& common-form.attrs.form?
- & common.attrs.aria?
+ & ( common.attrs.aria.implicit.region
+ | common.attrs.aria.landmark.application
+ | common.attrs.aria.landmark.document
+ | common.attrs.aria.role.img
+ )?
)
object.attrs.data =
attribute data {
@@ -252,7 +319,7 @@ namespace local = ""
}
object.inner.flow =
( param.elem*
- , common.inner.flow
+ , common.inner.transparent.flow
)
object.inner.phrasing =
( param.elem*
@@ -270,6 +337,9 @@ namespace local = ""
( common.attrs
& param.attrs.name
& param.attrs.value
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
param.attrs.name =
attribute name {
@@ -295,8 +365,11 @@ namespace local = ""
& iframe.attrs.height?
& iframe.attrs.sandbox?
& iframe.attrs.seamless?
- & ( common.attrs.aria
- | common.attrs.aria.implicit.region
+ & iframe.attrs.allowfullscreen?
+ & ( common.attrs.aria.implicit.region
+ | common.attrs.aria.landmark.application
+ | common.attrs.aria.landmark.document
+ | common.attrs.aria.role.img
)?
)
iframe.attrs.src =
@@ -470,6 +543,10 @@ namespace local = ""
, ( w:string "allow-top-navigation" )?
}
} & v5only
+ iframe.attrs.allowfullscreen =
+ attribute allowfullscreen {
+ w:string "allowfullscreen" | w:string ""
+ } & v5only
iframe.inner =
( text )
@@ -487,13 +564,16 @@ namespace local = ""
map.attrs =
( common.attrs
& map.attrs.name
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
) # REVISIT make id required in Schematron
map.attrs.name =
attribute name {
common.data.name
}
map.inner.flow =
- ( common.inner.flow )
+ ( common.inner.transparent.flow )
map.inner.phrasing =
( common.inner.phrasing )
@@ -505,7 +585,10 @@ namespace local = ""
area.elem =
element area { area.inner & area.attrs }
area.attrs =
- ( common.attrs
+ ( common.attrs.basic
+ & common.attrs.i18n
+ & common.attrs.present
+ & common.attrs.other
& ( area.attrs.alt
& shared-hyperlink.attrs.href
)?
@@ -516,6 +599,10 @@ namespace local = ""
& shared-hyperlink.attrs.hreflang?
& shared-hyperlink.attrs.type?
& area.attrs.shape?
+ & ( common.attrs.aria.role.link
+ | common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
area.attrs.alt =
attribute alt {
diff --git a/xml/relaxng/src/resources/html5-schema/html5.rnc b/xml/relaxng/src/resources/html5-schema/html5.rnc
index a653b02db511..4d0a71a75a46 100644
--- a/xml/relaxng/src/resources/html5-schema/html5.rnc
+++ b/xml/relaxng/src/resources/html5-schema/html5.rnc
@@ -1,4 +1,4 @@
-default namespace = "http://www.w3.org/1999/html"
+default namespace = "http://www.w3.org/1999/xhtml"
# #####################################################################
## RELAX NG Schema for HTML 5 #
# #####################################################################
@@ -33,12 +33,15 @@ include "common.rnc" {
nonRoundtrippable = notAllowed
}
+include "common-ext.rnc"
+
# #####################################################################
## Language Definitions
start = html.elem
include "meta.rnc"
+include "meta-ext.rnc"
include "phrase.rnc"
include "block.rnc"
include "sectional.rnc"
@@ -48,6 +51,7 @@ include "embed.rnc"
include "ruby.rnc"
include "media.rnc"
include "core-scripting.rnc"
+include "core-scripting-ext.rnc"
include "tables.rnc"
include "form-datatypes.rnc"
include "web-forms.rnc"
diff --git a/xml/relaxng/src/resources/html5-schema/media.rnc b/xml/relaxng/src/resources/html5-schema/media.rnc
index edc5744bac32..04072ecc1036 100644
--- a/xml/relaxng/src/resources/html5-schema/media.rnc
+++ b/xml/relaxng/src/resources/html5-schema/media.rnc
@@ -49,6 +49,9 @@ datatypes w = "http://whattf.org/datatype-draft"
& source.attrs.src
& source.attrs.type?
& source.attrs.media?
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
source.attrs.src =
attribute src {
@@ -65,7 +68,12 @@ datatypes w = "http://whattf.org/datatype-draft"
source.inner =
( empty )
-## Media src attribute
+## Media Source
+
+ media.source =
+ ( media.attrs.src
+ | source.elem*
+ )
media.attrs.src =
attribute src {
@@ -84,6 +92,7 @@ datatypes w = "http://whattf.org/datatype-draft"
& video.attrs.poster?
& video.attrs.height?
& video.attrs.width?
+ & common.attrs.aria.landmark.application?
)
video.attrs.poster =
attribute poster {
@@ -98,19 +107,15 @@ datatypes w = "http://whattf.org/datatype-draft"
common.data.integer.non-negative
}
video.inner.flow =
- ( video.source
+ ( media.source
, track.elem*
- , common.inner.flow
+ , common.inner.transparent.flow
)
video.inner.phrasing =
- ( video.source
+ ( media.source
, track.elem*
, common.inner.phrasing
)
- video.source =
- ( media.attrs.src
- | source.elem*
- )
common.elem.flow |= video.elem.flow
common.elem.phrasing |= video.elem.phrasing
@@ -124,21 +129,18 @@ datatypes w = "http://whattf.org/datatype-draft"
audio.attrs =
( common.attrs
& media.attrs
+ & common.attrs.aria.landmark.application?
)
audio.inner.flow =
- ( audio.source
+ ( media.source
, track.elem*
- , common.inner.flow
+ , common.inner.transparent.flow
)
audio.inner.phrasing =
- ( audio.source
+ ( media.source
, track.elem*
, common.inner.phrasing
)
- audio.source =
- ( media.attrs.src
- | source.elem+
- )
common.elem.flow |= audio.elem.flow
common.elem.phrasing |= audio.elem.phrasing
@@ -155,6 +157,9 @@ datatypes w = "http://whattf.org/datatype-draft"
& track.attrs.srclang?
& track.attrs.label?
& track.attrs.default?
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
track.attrs.kind =
attribute kind {
@@ -186,10 +191,10 @@ datatypes w = "http://whattf.org/datatype-draft"
element figure { figure.inner & figure.attrs }
figure.attrs =
( common.attrs
- & common.attrs.aria.implicit.img?
+ & common.attrs.aria?
)
figure.inner =
- ( ( figcaption.elem, common.inner.flow )
+ ( ( figcaption.elem?, common.inner.flow )
| ( common.inner.flow, figcaption.elem? )
)
@@ -200,6 +205,10 @@ datatypes w = "http://whattf.org/datatype-draft"
figcaption.elem =
element figcaption { figcaption.inner & figcaption.attrs }
figcaption.attrs =
- ( common.attrs )
+ ( common.attrs
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
+ )
figcaption.inner =
( common.inner.flow )
diff --git a/xml/relaxng/src/resources/html5-schema/meta-ext.rnc b/xml/relaxng/src/resources/html5-schema/meta-ext.rnc
new file mode 100644
index 000000000000..b8c2b6793885
--- /dev/null
+++ b/xml/relaxng/src/resources/html5-schema/meta-ext.rnc
@@ -0,0 +1,57 @@
+datatypes w = "http://whattf.org/datatype-draft"
+
+## "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
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
+ )
+ meta.http-equiv.attrs.http-equiv.content-language =
+ attribute http-equiv {
+ w:string "content-language"
+ }
+ meta.http-equiv.attrs.content.content-language =
+ attribute content {
+ common.data.string
+ }
+
+ common.elem.metadata |= meta.http-equiv.content-language.elem # not quite right per spec
+ # if the definition is
+ # reused in another language
+
+## "X-UA-Compatible" pragma directive: <meta http-equiv='X-UA-Compatible'>
+
+ meta.http-equiv.x-ua-compatible.elem =
+ element meta { meta.inner & meta.http-equiv.x-ua-compatible.attrs }
+ meta.http-equiv.x-ua-compatible.attrs =
+ ( common.attrs.basic
+ & common.attrs.i18n
+ & common.attrs.present
+ & common.attrs.other
+ & meta.http-equiv.attrs.http-equiv.x-ua-compatible
+ & meta.http-equiv.attrs.content.x-ua-compatible
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
+ )
+ meta.http-equiv.attrs.http-equiv.x-ua-compatible =
+ attribute http-equiv {
+ w:string "x-ua-compatible"
+ }
+ meta.http-equiv.attrs.content.x-ua-compatible =
+ attribute content {
+ common.data.string
+ }
+
+ common.elem.metadata |= meta.http-equiv.x-ua-compatible.elem # not quite right per spec
+ # if the definition is
+ # reused in another language \ No newline at end of file
diff --git a/xml/relaxng/src/resources/html5-schema/meta.rnc b/xml/relaxng/src/resources/html5-schema/meta.rnc
index cd0097a81955..45c7f259237a 100644
--- a/xml/relaxng/src/resources/html5-schema/meta.rnc
+++ b/xml/relaxng/src/resources/html5-schema/meta.rnc
@@ -9,7 +9,11 @@ datatypes w = "http://whattf.org/datatype-draft"
html.elem =
element html { html.inner & html.attrs }
html.attrs =
- ( common.attrs )
+ ( common.attrs
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
+ )
html.inner =
( head.elem
, body.elem
@@ -22,6 +26,9 @@ datatypes w = "http://whattf.org/datatype-draft"
head.attrs =
( common.attrs
# & head.attrs.profile?
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
# head.attrs.profile =
# attribute profile {
@@ -49,6 +56,7 @@ datatypes w = "http://whattf.org/datatype-draft"
& ( common.attrs.aria.landmark.application
| common.attrs.aria.landmark.document
| common.attrs.aria.implicit.structure
+ | common.attrs.aria.role.presentation
)?
& body.attrs.onafterprint?
& body.attrs.onbeforeprint?
@@ -57,11 +65,11 @@ datatypes w = "http://whattf.org/datatype-draft"
& body.attrs.onmessage?
& body.attrs.onoffline?
& body.attrs.ononline?
+ & body.attrs.onpagehide?
+ & body.attrs.onpageshow?
& body.attrs.onpopstate?
- & body.attrs.onredo?
& body.attrs.onresize?
& body.attrs.onstorage?
- & body.attrs.onundo?
& body.attrs.onunload?
)
body.inner =
@@ -83,6 +91,10 @@ datatypes w = "http://whattf.org/datatype-draft"
attribute ononline { common.data.functionbody }
body.attrs.onpopstate =
attribute onpopstate { common.data.functionbody }
+ body.attrs.onpagehide =
+ attribute onpagehide { common.data.functionbody }
+ body.attrs.onpageshow =
+ attribute onpageshow { common.data.functionbody }
body.attrs.onredo =
attribute onredo { common.data.functionbody }
body.attrs.onresize =
@@ -99,7 +111,11 @@ datatypes w = "http://whattf.org/datatype-draft"
title.elem =
element title { title.inner & title.attrs }
title.attrs =
- ( common.attrs )
+ ( common.attrs
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
+ )
title.inner =
( text )
@@ -108,12 +124,18 @@ datatypes w = "http://whattf.org/datatype-draft"
base.elem =
element base { base.inner & base.attrs }
base.attrs =
- ( common.attrs
+ ( common.attrs.basic
+ & common.attrs.i18n
+ & common.attrs.present
+ & common.attrs.other
& ( ( base.attrs.href
& base.attrs.target?
)
| base.attrs.target
)
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
base.attrs.href =
attribute href {
@@ -135,19 +157,17 @@ datatypes w = "http://whattf.org/datatype-draft"
& common.attrs.i18n
& common.attrs.present
& common.attrs.other
- & common.attrs.microdata.itemref?
- & common.attrs.microdata.itemscope?
- & common.attrs.microdata.itemtype?
- & common.attrs.microdata.itemid?
& link.attrs.href
- & ( link.attrs.rel
- | common.attrs.microdata.itemprop
- )
+ & link.attrs.rel
& shared-hyperlink.attrs.hreflang?
& shared-hyperlink.attrs.media?
& shared-hyperlink.attrs.type?
& link.attrs.sizes?
# link.attrs.title included in common.attrs
+ & ( common.attrs.aria.role.link
+ | common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
link.attrs.href =
attribute href {
@@ -175,6 +195,9 @@ datatypes w = "http://whattf.org/datatype-draft"
& style.attrs.type?
& style.attrs.media?
# style.attrs.title included in common.attrs
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
style.attrs.type =
attribute type {
@@ -199,6 +222,9 @@ datatypes w = "http://whattf.org/datatype-draft"
& style.attrs.media?
& style.attrs.scoped
# style.attrs.title included in common.attrs
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
style.attrs.scoped =
attribute scoped {
@@ -216,6 +242,9 @@ datatypes w = "http://whattf.org/datatype-draft"
& common.attrs.other
& meta.name.attrs.name
& meta.name.attrs.content
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
meta.name.attrs.name =
attribute name {
@@ -241,6 +270,9 @@ datatypes w = "http://whattf.org/datatype-draft"
& common.attrs.other
& meta.http-equiv.attrs.http-equiv.refresh
& meta.http-equiv.attrs.content.refresh
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
meta.http-equiv.attrs.http-equiv.refresh =
attribute http-equiv {
@@ -265,6 +297,9 @@ datatypes w = "http://whattf.org/datatype-draft"
& common.attrs.other
& meta.http-equiv.attrs.http-equiv.default-style
& meta.http-equiv.attrs.content.default-style
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
meta.http-equiv.attrs.http-equiv.default-style =
attribute http-equiv {
@@ -289,6 +324,9 @@ datatypes w = "http://whattf.org/datatype-draft"
& common.attrs.present
& common.attrs.other
& meta.charset.attrs.charset
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
meta.charset.attrs.charset =
attribute charset {
@@ -310,6 +348,9 @@ datatypes w = "http://whattf.org/datatype-draft"
& common.attrs.other
& meta.http-equiv.attrs.http-equiv.content-type
& meta.http-equiv.attrs.content.content-type
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
meta.http-equiv.attrs.http-equiv.content-type =
attribute http-equiv {
diff --git a/xml/relaxng/src/resources/html5-schema/microdata.rnc b/xml/relaxng/src/resources/html5-schema/microdata.rnc
index 51d25ae3705c..076a4ded1dad 100644
--- a/xml/relaxng/src/resources/html5-schema/microdata.rnc
+++ b/xml/relaxng/src/resources/html5-schema/microdata.rnc
@@ -34,6 +34,10 @@ common.attrs.microdata =
common.attrs &= common.attrs.microdata
+a.attrs &= common.attrs.microdata
+area.attrs &= common.attrs.microdata
+base.attrs &= common.attrs.microdata
+
## URL-valued Property Metadata: <link itemprop>
link.elem.phrasing =
@@ -54,9 +58,21 @@ common.attrs &= common.attrs.microdata
& shared-hyperlink.attrs.type?
& link.attrs.sizes?
# link.attrs.title included in common.attrs
+ & ( common.attrs.aria.role.link
+ | common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
common.elem.phrasing |= link.elem.phrasing
+## <link> element in head, extensions
+
+link.attrs.rel |= common.attrs.microdata.itemprop
+link.attrs &= common.attrs.microdata.itemref?
+link.attrs &= common.attrs.microdata.itemscope?
+link.attrs &= common.attrs.microdata.itemtype?
+link.attrs &= common.attrs.microdata.itemid?
+
## Property Metadata: <meta itemprop>
meta.itemprop.elem =
@@ -72,6 +88,9 @@ common.attrs &= common.attrs.microdata
& common.attrs.microdata.itemtype?
& common.attrs.microdata.itemid?
& meta.itemprop.attrs.content
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
meta.itemprop.attrs.content =
attribute content {
diff --git a/xml/relaxng/src/resources/html5-schema/phrase.rnc b/xml/relaxng/src/resources/html5-schema/phrase.rnc
index 91ee130e50c3..cf6ed580f1ca 100644
--- a/xml/relaxng/src/resources/html5-schema/phrase.rnc
+++ b/xml/relaxng/src/resources/html5-schema/phrase.rnc
@@ -11,8 +11,11 @@ datatypes w = "http://whattf.org/datatype-draft"
a.elem.flow =
element a { a.inner.flow & a.attrs }
a.attrs =
- ( common.attrs
- & a.attrs.name?
+ ( common.attrs.basic
+ & common.attrs.i18n
+ & common.attrs.present
+ & common.attrs.other
+ & a.attrs.name?
& shared-hyperlink.attrs.href?
& shared-hyperlink.attrs.target?
& shared-hyperlink.attrs.rel?
@@ -20,8 +23,16 @@ datatypes w = "http://whattf.org/datatype-draft"
& shared-hyperlink.attrs.media?
& shared-hyperlink.attrs.type?
& shared-hyperlink.attrs.ping?
- & ( common.attrs.aria
- | common.attrs.aria.implicit.link
+ & ( ( common.attrs.aria.role.button
+ | common.attrs.aria.role.checkbox
+ | common.attrs.aria.role.link
+ | common.attrs.aria.role.menuitem
+ | common.attrs.aria.role.menuitemcheckbox
+ | common.attrs.aria.role.menuitemradio
+ | common.attrs.aria.role.tab
+ | common.attrs.aria.role.treeitem
+ )
+ | common.attrs.aria.implicit.link
)?
)
a.attrs.name =
@@ -31,7 +42,7 @@ datatypes w = "http://whattf.org/datatype-draft"
a.inner.phrasing =
( common.inner.phrasing )
a.inner.flow =
- ( common.inner.flow )
+ ( common.inner.transparent.flow )
common.elem.phrasing |= a.elem.phrasing
common.elem.flow |= a.elem.flow
@@ -65,7 +76,7 @@ datatypes w = "http://whattf.org/datatype-draft"
shared-hyperlink.attrs.ping =
attribute ping {
common.data.uris
- } & v5only
+ } & v5only & nonW3C
## Emphatic Stress: <em>
@@ -112,7 +123,11 @@ datatypes w = "http://whattf.org/datatype-draft"
element mark { mark.inner & mark.attrs }
& v5only
mark.attrs =
- ( common.attrs )
+ ( common.attrs
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
+ )
mark.inner =
( common.inner.phrasing )
@@ -255,7 +270,11 @@ datatypes w = "http://whattf.org/datatype-draft"
sup.elem =
element sup { sup.inner & sup.attrs }
sup.attrs =
- ( common.attrs )
+ ( common.attrs
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
+ )
sup.inner =
( common.inner.phrasing )
@@ -266,7 +285,11 @@ datatypes w = "http://whattf.org/datatype-draft"
sub.elem =
element sub { sub.inner & sub.attrs }
sub.attrs =
- ( common.attrs )
+ ( common.attrs
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
+ )
sub.inner =
( common.inner.phrasing )
@@ -321,7 +344,11 @@ datatypes w = "http://whattf.org/datatype-draft"
bdo.elem =
element bdo { bdo.inner & bdo.attrs }
bdo.attrs =
- ( common.attrs ) # dir required in Schematron
+ ( common.attrs # dir required in Schematron
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
+ )
bdo.inner =
( common.inner.phrasing )
@@ -332,7 +359,11 @@ datatypes w = "http://whattf.org/datatype-draft"
bdi.elem =
element bdi { bdi.inner & bdi.attrs }
bdi.attrs =
- ( common.attrs )
+ ( common.attrs
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
+ )
bdi.inner =
( common.inner.phrasing )
@@ -343,7 +374,11 @@ datatypes w = "http://whattf.org/datatype-draft"
br.elem =
element br { br.inner & br.attrs }
br.attrs =
- ( common.attrs )
+ ( common.attrs
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
+ )
br.inner =
( empty )
@@ -354,7 +389,11 @@ datatypes w = "http://whattf.org/datatype-draft"
wbr.elem =
element wbr { wbr.inner & wbr.attrs }
wbr.attrs =
- ( common.attrs )
+ ( common.attrs
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
+ )
wbr.inner =
( empty )
diff --git a/xml/relaxng/src/resources/html5-schema/rdfa.rnc b/xml/relaxng/src/resources/html5-schema/rdfa.rnc
new file mode 100644
index 000000000000..638c9104d29b
--- /dev/null
+++ b/xml/relaxng/src/resources/html5-schema/rdfa.rnc
@@ -0,0 +1,240 @@
+# #####################################################################
+## RELAX NG Schema for HTML 5: RDFa 1.1 and RDFa Lite 1.1 #
+# #####################################################################
+
+# #####################################################################
+## RDFa Datatypes #
+# #####################################################################
+
+common.data.rdfa.safecurie =
+ xsd:string {
+ pattern = "\[(([\i-[:]][\c-[:]]*)?:)?[^\s]+\]"
+ minLength = "3"
+ }
+common.data.rdfa.curie =
+ xsd:string {
+ pattern = "(([\i-[:]][\c-[:]]*)?:)?[^\s]+"
+ minLength = "1"
+ }
+common.data.rdfa.term =
+ xsd:string {
+ pattern = "[\i-[:]][/\c-[:]]*"
+ }
+
+# #####################################################################
+## RDFa Attributes #
+# #####################################################################
+
+common.attrs.rdfa &=
+ ( common.attrs.rdfa.about?
+ & common.attrs.rdfa.prefix?
+ & common.attrs.rdfa.property?
+ & common.attrs.rdfa.typeof?
+ & common.attrs.rdfa.vocab?
+ & common.attrs.rdfa.content?
+ & common.attrs.rdfa.datatype?
+ & common.attrs.rdfa.rel?
+ & common.attrs.rdfa.resource?
+ & common.attrs.rdfa.rev?
+ & common.attrs.rdfa.inlist?
+ )
+ common.attrs.rdfa.prefix =
+ attribute prefix {
+ (
+ xsd:string {
+ pattern = "([\i-[:]][\c-[:]]*: [^ ]+)(\s+[\i-[:]][\c-[:]]*: [^ ]+)*"
+ }
+ | string ""
+ )
+ }
+ common.attrs.rdfa.property =
+ attribute property {
+ (
+ list {
+ ( common.data.rdfa.term
+ | common.data.rdfa.curie
+ | common.data.uri.absolute
+ )+
+ }
+ | string ""
+ )
+ }
+ common.attrs.rdfa.resource =
+ attribute resource {
+ ( common.data.rdfa.safecurie
+ | common.data.rdfa.curie
+ | common.data.uri
+ )
+ }
+ common.attrs.rdfa.typeof =
+ attribute typeof {
+ (
+ list {
+ ( common.data.rdfa.term
+ | common.data.rdfa.curie
+ | common.data.uri.absolute
+ )+
+ }
+ | string ""
+ )
+ }
+ common.attrs.rdfa.vocab =
+ attribute vocab {
+ ( common.data.uri.absolute
+ | string ""
+ )
+ }
+ common.attrs.rdfa.about =
+ attribute about {
+ ( common.data.rdfa.safecurie
+ | common.data.rdfa.curie
+ | common.data.uri
+ )
+ } & nonRDFaLite
+ common.attrs.rdfa.content =
+ attribute content {
+ string
+ } & nonRDFaLite
+ common.attrs.rdfa.datatype =
+ attribute datatype {
+ ( common.data.rdfa.term
+ | common.data.rdfa.curie
+ | common.data.uri.absolute
+ | string ""
+ )
+ } & nonRDFaLite
+ common.attrs.rdfa.rel =
+ attribute rel {
+ (
+ list {
+ ( common.data.rdfa.term
+ | common.data.rdfa.curie
+ | common.data.uri.absolute
+ )+
+ }
+ | string ""
+ )
+ } & nonRDFaLite
+ common.attrs.rdfa.rev =
+ attribute rev {
+ (
+ list {
+ ( common.data.rdfa.term
+ | common.data.rdfa.curie
+ | common.data.uri.absolute
+ )+
+ }
+ | string ""
+ )
+ } & nonRDFaLite
+ common.attrs.rdfa.inlist =
+ attribute inlist {
+ string
+ } & nonRDFaLite
+
+common.attrs.rdfa.no-rel &=
+ ( common.attrs.rdfa.about?
+ & common.attrs.rdfa.prefix?
+ & common.attrs.rdfa.property?
+ & common.attrs.rdfa.typeof?
+ & common.attrs.rdfa.vocab?
+ & common.attrs.rdfa.content?
+ & common.attrs.rdfa.datatype?
+ & common.attrs.rdfa.resource?
+ & common.attrs.rdfa.rev?
+ & common.attrs.rdfa.inlist?
+ )
+common.attrs.rdfa.no-rel-rev &=
+ ( common.attrs.rdfa.about?
+ & common.attrs.rdfa.prefix?
+ & common.attrs.rdfa.property?
+ & common.attrs.rdfa.typeof?
+ & common.attrs.rdfa.vocab?
+ & common.attrs.rdfa.content?
+ & common.attrs.rdfa.datatype?
+ & common.attrs.rdfa.resource?
+ & common.attrs.rdfa.inlist?
+ )
+common.attrs.rdfa.no-content-noproperty &=
+ ( common.attrs.rdfa.about?
+ & common.attrs.rdfa.prefix?
+ & common.attrs.rdfa.typeof?
+ & common.attrs.rdfa.vocab?
+ & common.attrs.rdfa.datatype?
+ & common.attrs.rdfa.resource?
+ & common.attrs.rdfa.inlist?
+ )
+
+common.attrs &= common.attrs.rdfa
+
+a.attrs &= common.attrs.rdfa.no-rel-rev
+area.attrs &= common.attrs.rdfa.no-rel
+base.attrs &= common.attrs.rdfa.no-rel
+
+link.rdfa.elem.metadata =
+ element link { link.inner & link.rdfa.attrs.metadata }
+link.rdfa.elem.phrasing =
+ element link { link.inner & link.rdfa.attrs.phrasing }
+link.rdfa.attrs.metadata =
+ ( common.attrs.basic
+ & common.attrs.i18n
+ & common.attrs.present
+ & common.attrs.other
+ & ( ( common.attrs.rdfa.property
+ & ( link.attrs.rel
+ | common.attrs.rdfa.rel
+ )?
+ )
+ |
+ ( common.attrs.rdfa.property?
+ & ( link.attrs.rel
+ | common.attrs.rdfa.rel
+ )
+ )
+ )
+ & link.attrs.href
+ & common.attrs.rdfa.about?
+ & common.attrs.rdfa.prefix?
+ & common.attrs.rdfa.typeof?
+ & common.attrs.rdfa.vocab?
+ & common.attrs.rdfa.content?
+ & common.attrs.rdfa.datatype?
+ & common.attrs.rdfa.resource?
+ & common.attrs.rdfa.rev?
+ & common.attrs.rdfa.inlist?
+ & shared-hyperlink.attrs.hreflang?
+ & shared-hyperlink.attrs.media?
+ & shared-hyperlink.attrs.type?
+ & link.attrs.sizes?
+ # link.attrs.title included in common.attrs
+ )
+link.rdfa.attrs.phrasing =
+ ( common.attrs.basic
+ & common.attrs.i18n
+ & common.attrs.present
+ & common.attrs.other
+ & common.attrs.rdfa.property
+ & ( link.attrs.rel
+ | common.attrs.rdfa.rel
+ )?
+ & link.attrs.href
+ & common.attrs.rdfa.about?
+ & common.attrs.rdfa.prefix?
+ & common.attrs.rdfa.typeof?
+ & common.attrs.rdfa.vocab?
+ & common.attrs.rdfa.content?
+ & common.attrs.rdfa.datatype?
+ & common.attrs.rdfa.resource?
+ & common.attrs.rdfa.rev?
+ & common.attrs.rdfa.inlist?
+ & shared-hyperlink.attrs.hreflang?
+ & shared-hyperlink.attrs.media?
+ & shared-hyperlink.attrs.type?
+ & link.attrs.sizes?
+ # link.attrs.title included in common.attrs
+ )
+ common.elem.metadata |= link.rdfa.elem.metadata
+ common.elem.phrasing |= link.rdfa.elem.phrasing
+
+meta.name.attrs.name |= common.attrs.rdfa.property
+meta.name.attrs &= common.attrs.rdfa.no-content-noproperty
diff --git a/xml/relaxng/src/resources/html5-schema/revision.rnc b/xml/relaxng/src/resources/html5-schema/revision.rnc
index b46fe2c11a19..4f518eecb875 100644
--- a/xml/relaxng/src/resources/html5-schema/revision.rnc
+++ b/xml/relaxng/src/resources/html5-schema/revision.rnc
@@ -23,9 +23,12 @@
( common.attrs
& edit.attrs.cite?
& edit.attrs.datetime?
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
ins.inner.flow =
- ( common.inner.flow )
+ ( common.inner.transparent.flow )
ins.inner.phrasing =
( common.inner.phrasing )
@@ -42,9 +45,12 @@
( common.attrs
& edit.attrs.cite?
& edit.attrs.datetime?
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
del.inner.flow =
- ( common.inner.flow )
+ ( common.inner.transparent.flow )
del.inner.phrasing =
( common.inner.phrasing )
diff --git a/xml/relaxng/src/resources/html5-schema/sectional.rnc b/xml/relaxng/src/resources/html5-schema/sectional.rnc
index f7931bc2ab71..96af56b341c3 100644
--- a/xml/relaxng/src/resources/html5-schema/sectional.rnc
+++ b/xml/relaxng/src/resources/html5-schema/sectional.rnc
@@ -11,7 +11,11 @@
element h1 { h1.inner & h1.attrs }
h1.attrs =
( common.attrs
- & common.attrs.aria.implicit.structure?
+ & ( common.attrs.aria.implicit.structure
+ | common.attrs.aria.role.heading
+ | common.attrs.aria.role.tab
+ | common.attrs.aria.role.presentation
+ )?
)
h1.inner =
( common.inner.phrasing )
@@ -24,7 +28,11 @@
element h2 { h2.inner & h2.attrs }
h2.attrs =
( common.attrs
- & common.attrs.aria.implicit.structure?
+ & ( common.attrs.aria.implicit.structure
+ | common.attrs.aria.role.heading
+ | common.attrs.aria.role.tab
+ | common.attrs.aria.role.presentation
+ )?
)
h2.inner =
( common.inner.phrasing )
@@ -37,7 +45,11 @@
element h3 { h3.inner & h3.attrs }
h3.attrs =
( common.attrs
- & common.attrs.aria.implicit.structure?
+ & ( common.attrs.aria.implicit.structure
+ | common.attrs.aria.role.heading
+ | common.attrs.aria.role.tab
+ | common.attrs.aria.role.presentation
+ )?
)
h3.inner =
( common.inner.phrasing )
@@ -50,7 +62,11 @@
element h4 { h4.inner & h4.attrs }
h4.attrs =
( common.attrs
- & common.attrs.aria.implicit.structure?
+ & ( common.attrs.aria.implicit.structure
+ | common.attrs.aria.role.heading
+ | common.attrs.aria.role.tab
+ | common.attrs.aria.role.presentation
+ )?
)
h4.inner =
( common.inner.phrasing )
@@ -63,7 +79,11 @@
element h5 { h5.inner & h5.attrs }
h5.attrs =
( common.attrs
- & common.attrs.aria.implicit.structure?
+ & ( common.attrs.aria.implicit.structure
+ | common.attrs.aria.role.heading
+ | common.attrs.aria.role.tab
+ | common.attrs.aria.role.presentation
+ )?
)
h5.inner =
( common.inner.phrasing )
@@ -76,7 +96,11 @@
element h6 { h6.inner & h6.attrs }
h6.attrs =
( common.attrs
- & common.attrs.aria.implicit.structure?
+ & ( common.attrs.aria.implicit.structure
+ | common.attrs.aria.role.heading
+ | common.attrs.aria.role.tab
+ | common.attrs.aria.role.presentation
+ )?
)
h6.inner =
( common.inner.phrasing )
@@ -89,7 +113,11 @@
element hgroup { hgroup.inner & hgroup.attrs }
hgroup.attrs =
( common.attrs
- & common.attrs.aria.implicit.structure?
+ & ( common.attrs.aria.implicit.structure # not implementing "aria-level property set to the element's outline depth", nor heading role; see http://hsivonen.iki.fi/aria-html5-bis/
+ | common.attrs.aria.role.heading
+ | common.attrs.aria.role.tab
+ | common.attrs.aria.role.presentation
+ )?
)
hgroup.inner =
( h1.elem
@@ -111,7 +139,10 @@
element address { address.inner & address.attrs }
address.attrs =
( common.attrs
- & common.attrs.aria.implicit.region?
+ & ( common.attrs.aria.implicit.region
+ | common.attrs.aria.role.contentinfo
+ | common.attrs.aria.role.presentation
+ )?
)
address.inner =
( common.inner.flow )
diff --git a/xml/relaxng/src/resources/html5-schema/structural.rnc b/xml/relaxng/src/resources/html5-schema/structural.rnc
index f79fcadeaf75..284f59964b88 100644
--- a/xml/relaxng/src/resources/html5-schema/structural.rnc
+++ b/xml/relaxng/src/resources/html5-schema/structural.rnc
@@ -8,14 +8,24 @@
element section { section.inner & section.attrs }
section.attrs =
( common.attrs
- & ( common.attrs.aria
- | common.attrs.aria.implicit.region
+ & ( common.attrs.aria.implicit.region
+ | common.attrs.aria.role.alert
+ | common.attrs.aria.role.alertdialog
+ | common.attrs.aria.role.contentinfo
+ | common.attrs.aria.role.dialog
+ | common.attrs.aria.role.log
+ | common.attrs.aria.role.main
+ | common.attrs.aria.role.marquee
+ | common.attrs.aria.role.region
+ | common.attrs.aria.role.status
+ | common.attrs.aria.role.presentation
+ | common.attrs.aria.landmark.application
+ | common.attrs.aria.landmark.document
+ | common.attrs.aria.landmark.search
)?
)
section.inner =
- ( style.elem.scoped*
- , common.inner.flow
- )
+ ( common.inner.flow )
common.elem.flow |= section.elem
@@ -25,9 +35,11 @@
element nav { nav.inner & nav.attrs }
nav.attrs =
( common.attrs
- & ( common.attrs.aria.implicit.region
- | common.attrs.aria.landmark.navigation
- )?
+ & ( common.attrs.aria.implicit.region
+ | common.attrs.aria.landmark.navigation
+ | common.attrs.aria.role.menuitem
+ | common.attrs.aria.role.presentation
+ )?
)
nav.inner =
( common.inner.flow )
@@ -40,12 +52,13 @@
element article { article.inner & article.attrs }
article.attrs =
( common.attrs
- & ( common.attrs.aria.implicit.region
- | common.attrs.aria.landmark.article
- | common.attrs.aria.landmark.main
- | common.attrs.aria.landmark.document
- | common.attrs.aria.landmark.application
- )?
+ & ( common.attrs.aria.implicit.region
+ | common.attrs.aria.landmark.article
+ | common.attrs.aria.landmark.document
+ | common.attrs.aria.landmark.application
+ | common.attrs.aria.landmark.main
+ | common.attrs.aria.role.presentation
+ )?
)
article.inner =
( style.elem*
@@ -60,11 +73,12 @@
element aside { aside.inner & aside.attrs }
aside.attrs =
( common.attrs
- & ( common.attrs.aria.implicit.region
- | common.attrs.aria.landmark.complementary
- | common.attrs.aria.landmark.search
- | common.attrs.aria.landmark.note
- )?
+ & ( common.attrs.aria.implicit.region
+ | common.attrs.aria.landmark.note
+ | common.attrs.aria.landmark.complementary
+ | common.attrs.aria.landmark.search
+ | common.attrs.aria.role.presentation
+ )?
)
aside.inner =
( style.elem*
@@ -79,9 +93,10 @@
element header { header.inner & header.attrs }
header.attrs =
( common.attrs
- & ( common.attrs.aria.implicit.region
- | common.attrs.aria.landmark.banner
- )?
+ & ( common.attrs.aria.implicit.region
+ | common.attrs.aria.landmark.banner
+ | common.attrs.aria.role.presentation
+ )?
)
header.inner =
( common.inner.flow )
@@ -94,12 +109,27 @@
element footer { footer.inner & footer.attrs }
footer.attrs =
( common.attrs
- & ( common.attrs.aria.implicit.region
- | common.attrs.aria.landmark.contentinfo
- )?
+ & ( common.attrs.aria.implicit.region
+ | common.attrs.aria.landmark.contentinfo
+ | common.attrs.aria.role.presentation
+ )?
)
footer.inner =
( common.inner.flow )
common.elem.flow |= footer.elem
+## main content: <main>
+
+ main.elem =
+ element main { main.inner & main.attrs }
+ main.attrs =
+ ( common.attrs
+ & ( common.attrs.aria.implicit.region
+ | common.attrs.aria.landmark.main
+ )?
+ )
+ main.inner =
+ ( common.inner.flow )
+
+ common.elem.flow |= main.elem
diff --git a/xml/relaxng/src/resources/html5-schema/tables.rnc b/xml/relaxng/src/resources/html5-schema/tables.rnc
index e29b1cbca227..3e5d72513b7f 100644
--- a/xml/relaxng/src/resources/html5-schema/tables.rnc
+++ b/xml/relaxng/src/resources/html5-schema/tables.rnc
@@ -78,7 +78,10 @@ datatypes w = "http://whattf.org/datatype-draft"
element caption { caption.inner & caption.attrs }
caption.attrs =
( common.attrs
- & common.attrs.aria.implicit.region?
+ & ( common.attrs.aria.implicit.region
+ | common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
caption.inner =
( common.inner.flow )
@@ -91,7 +94,11 @@ datatypes w = "http://whattf.org/datatype-draft"
colgroup.elem =
element colgroup { colgroup.inner & colgroup.attrs }
colgroup.attrs =
- ( common.attrs )
+ ( common.attrs
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
+ )
colgroup.attrs.span =
attribute span {
common.data.integer.positive
@@ -108,6 +115,9 @@ datatypes w = "http://whattf.org/datatype-draft"
col.attrs =
( common.attrs
& col.attrs.span?
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
col.attrs.span =
attribute span {
@@ -121,7 +131,11 @@ datatypes w = "http://whattf.org/datatype-draft"
thead.elem =
element thead { thead.inner & thead.attrs }
thead.attrs =
- ( common.attrs )
+ ( common.attrs
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
+ )
thead.inner =
( tr.elem* )
@@ -130,7 +144,11 @@ datatypes w = "http://whattf.org/datatype-draft"
tfoot.elem =
element tfoot { tfoot.inner & tfoot.attrs }
tfoot.attrs =
- ( common.attrs )
+ ( common.attrs
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
+ )
tfoot.inner =
( tr.elem* )
@@ -139,7 +157,11 @@ datatypes w = "http://whattf.org/datatype-draft"
tbody.elem =
element tbody { tbody.inner & tbody.attrs }
tbody.attrs =
- ( common.attrs )
+ ( common.attrs
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
+ )
tbody.inner =
( tr.elem* )
@@ -218,7 +240,10 @@ datatypes w = "http://whattf.org/datatype-draft"
& tables.attrs.scope?
& tables.attrs.headers?
# & tables.attrs.alignment
- & common.attrs.aria.implicit.th?
+ & ( common.attrs.aria.implicit.th
+ | common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
th.inner =
- ( common.inner.phrasing )
+ ( common.inner.flow )
diff --git a/xml/relaxng/src/resources/html5-schema/web-forms.rnc b/xml/relaxng/src/resources/html5-schema/web-forms.rnc
index d5d8f6eab3c9..73b89d8c5081 100644
--- a/xml/relaxng/src/resources/html5-schema/web-forms.rnc
+++ b/xml/relaxng/src/resources/html5-schema/web-forms.rnc
@@ -54,10 +54,10 @@ datatypes w = "http://whattf.org/datatype-draft"
& common-form.attrs
& input.text.attrs.type?
& shared-form.attrs.maxlength?
- & shared-form.attrs.readonly?
+ & shared-form.attrs.readonly?
& shared-form.attrs.size?
& input.text.attrs.value?
- & ( common.attrs.aria
+ & ( common.attrs.aria?
| common.attrs.aria.implicit.input
)?
)
@@ -84,7 +84,7 @@ datatypes w = "http://whattf.org/datatype-draft"
& shared-form.attrs.readonly?
& shared-form.attrs.size?
& input.password.attrs.value?
- & common.attrs.aria.implicit.input?
+ & common.attrs.aria?
)
input.password.attrs.type =
attribute type {
@@ -107,7 +107,7 @@ datatypes w = "http://whattf.org/datatype-draft"
& input.checkbox.attrs.type
& input.attrs.checked?
& input.checkbox.attrs.value?
- & common.attrs.aria.implicit.input?
+ & common.attrs.aria?
)
input.checkbox.attrs.type =
attribute type {
@@ -130,7 +130,9 @@ datatypes w = "http://whattf.org/datatype-draft"
& input.radio.attrs.type
& input.attrs.checked?
& input.radio.attrs.value?
- & common.attrs.aria.implicit.input?
+ & ( common.attrs.aria.role.radio
+ | common.attrs.aria.role.menuitemradio
+ )?
)
input.radio.attrs.type =
attribute type {
@@ -152,8 +154,13 @@ datatypes w = "http://whattf.org/datatype-draft"
& common-form.attrs
& input.button.attrs.type
& input.button.attrs.value?
- & ( common.attrs.aria
- | common.attrs.aria.implicit.button
+ & ( common.attrs.aria.implicit.button
+ | common.attrs.aria.role.button
+ | common.attrs.aria.role.link
+ | common.attrs.aria.role.menuitem
+ | common.attrs.aria.role.menuitemcheckbox
+ | common.attrs.aria.role.menuitemradio
+ | common.attrs.aria.role.radio
)?
)
input.button.attrs.type =
@@ -177,7 +184,7 @@ datatypes w = "http://whattf.org/datatype-draft"
& common-form.attrs
& input.submit.attrs.type
& input.submit.attrs.value?
- & common.attrs.aria.implicit.button?
+ & common.attrs.aria?
)
input.submit.attrs.type =
attribute type {
@@ -199,7 +206,7 @@ datatypes w = "http://whattf.org/datatype-draft"
& common-form.attrs
& input.reset.attrs.type
& input.reset.attrs.value?
- & common.attrs.aria.implicit.button?
+ & common.attrs.aria?
)
input.reset.attrs.type =
attribute type {
@@ -222,7 +229,7 @@ datatypes w = "http://whattf.org/datatype-draft"
& common-form.attrs
& input.file.attrs.type
& input.file.attrs.accept?
- & common.attrs.aria.implicit.input?
+ & common.attrs.aria?
)
input.file.attrs.type =
attribute type {
@@ -244,6 +251,7 @@ datatypes w = "http://whattf.org/datatype-draft"
& common-form.attrs
& input.hidden.attrs.type
& input.hidden.attrs.value?
+ & common.attrs.aria?
)
input.hidden.attrs.type =
attribute type {
@@ -266,8 +274,13 @@ datatypes w = "http://whattf.org/datatype-draft"
& input.image.attrs.type
& input.image.attrs.alt
& input.image.attrs.src?
- & ( common.attrs.aria
- | common.attrs.aria.implicit.button
+ & ( common.attrs.aria.implicit.button
+ | common.attrs.aria.role.button
+ | common.attrs.aria.role.link
+ | common.attrs.aria.role.menuitem
+ | common.attrs.aria.role.menuitemcheckbox
+ | common.attrs.aria.role.menuitemradio
+ | common.attrs.aria.role.radio
)?
)
input.image.attrs.type =
@@ -296,7 +309,12 @@ datatypes w = "http://whattf.org/datatype-draft"
& common-form.attrs
& shared-form.attrs.readonly?
& textarea.attrs.rows-and-cols-wf1
- & common.attrs.aria.implicit.input?
+ & ( common.attrs.aria.implicit.input
+ | common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ | common.attrs.aria.role.combobox
+ | common.attrs.aria.role.textbox
+ )?
#FIXME onfocus, onblur, onselect,onchange
)
# This is ugly.
@@ -333,7 +351,12 @@ datatypes w = "http://whattf.org/datatype-draft"
& option.attrs.selected?
& option.attrs.label?
& option.attrs.value?
- & common.attrs.aria.implicit.input?
+ & ( common.attrs.aria.implicit.input
+ | common.attrs.aria.role.option
+ | common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitemradio
+ | common.attrs.aria.role.menuitemcheckbox
+ )?
)
option.attrs.selected =
attribute selected {
@@ -358,6 +381,9 @@ datatypes w = "http://whattf.org/datatype-draft"
( common.attrs
& optgroup.attrs.label
& common-form.attrs.disabled?
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
optgroup.attrs.label =
attribute label {
@@ -369,13 +395,17 @@ datatypes w = "http://whattf.org/datatype-draft"
## Selection Menu: <select>
select.elem =
- element select { select.inner & select.attrs }
+ element select { select.inner & select.attrs }
select.attrs =
( common.attrs
& common-form.attrs
& select.attrs.size?
& select.attrs.multiple?
# FIXME onfocus, onblur, onchange
+ & ( common.attrs.aria.role.listbox # aria-multiselectable depends on "multiple" value; check in assertions
+ | common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
select.attrs.size =
attribute size {
@@ -410,7 +440,14 @@ datatypes w = "http://whattf.org/datatype-draft"
& common-form.attrs
& button.submit.attrs.type?
& button.attrs.value?
- & common.attrs.aria.implicit.button?
+ & ( common.attrs.aria.implicit.button
+ | common.attrs.aria.role.button
+ | common.attrs.aria.role.link
+ | common.attrs.aria.role.menuitem
+ | common.attrs.aria.role.menuitemcheckbox
+ | common.attrs.aria.role.menuitemradio
+ | common.attrs.aria.role.radio
+ )?
)
button.submit.attrs.type =
attribute type {
@@ -428,7 +465,14 @@ datatypes w = "http://whattf.org/datatype-draft"
& common-form.attrs
& button.reset.attrs.type
& button.attrs.value? #REVISIT I guess this still affects the DOM
- & common.attrs.aria.implicit.button?
+ & ( common.attrs.aria.implicit.button
+ | common.attrs.aria.role.button
+ | common.attrs.aria.role.link
+ | common.attrs.aria.role.menuitem
+ | common.attrs.aria.role.menuitemcheckbox
+ | common.attrs.aria.role.menuitemradio
+ | common.attrs.aria.role.radio
+ )?
)
button.reset.attrs.type =
attribute type {
@@ -446,8 +490,13 @@ datatypes w = "http://whattf.org/datatype-draft"
& common-form.attrs
& button.button.attrs.type
& button.attrs.value? #REVISIT I guess this still affects the DOM
- & ( common.attrs.aria
- | common.attrs.aria.implicit.button
+ & ( common.attrs.aria.implicit.button
+ | common.attrs.aria.role.button
+ | common.attrs.aria.role.link
+ | common.attrs.aria.role.menuitem
+ | common.attrs.aria.role.menuitemcheckbox
+ | common.attrs.aria.role.menuitemradio
+ | common.attrs.aria.role.radio
)?
)
button.button.attrs.type =
@@ -470,7 +519,7 @@ datatypes w = "http://whattf.org/datatype-draft"
& form.attrs.enctype?
& common-form.attrs.name?
& form.attrs.accept-charset?
- & ( common.attrs.aria
+ & ( common.attrs.aria?
| common.attrs.aria.implicit.region
)?
)
@@ -507,7 +556,9 @@ datatypes w = "http://whattf.org/datatype-draft"
element fieldset { fieldset.inner & fieldset.attrs }
fieldset.attrs =
( common.attrs
- & common.attrs.aria.implicit.group?
+ & ( common.attrs.aria?
+ | common.attrs.aria.implicit.region
+ )?
)
fieldset.inner =
( legend.elem? #REVISIT should this be required?
@@ -523,7 +574,10 @@ datatypes w = "http://whattf.org/datatype-draft"
label.attrs =
( common.attrs
& label.attrs.for?
- & common.attrs.aria.implicit.region?
+ & ( common.attrs.aria.implicit.region
+ | common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
label.attrs.for =
attribute for {
diff --git a/xml/relaxng/src/resources/html5-schema/web-forms2.rnc b/xml/relaxng/src/resources/html5-schema/web-forms2.rnc
index 98d9f4c72d27..d77067baf6f8 100644
--- a/xml/relaxng/src/resources/html5-schema/web-forms2.rnc
+++ b/xml/relaxng/src/resources/html5-schema/web-forms2.rnc
@@ -194,7 +194,7 @@ datatypes w = "http://whattf.org/datatype-draft"
## Global Date and Time: <input type='datetime'>
input.datetime.elem =
- element input { input.datetime.attrs }
+ element input { input.datetime.attrs }
input.datetime.attrs =
( common.attrs
& common-form.attrs
@@ -208,7 +208,7 @@ datatypes w = "http://whattf.org/datatype-draft"
& shared-form.attrs.readonly?
& shared-form.attrs.required?
& input.datetime.attrs.value?
- & common.attrs.aria.implicit.input?
+ & common.attrs.aria?
)
input.datetime.attrs.type =
attribute type {
@@ -224,7 +224,7 @@ datatypes w = "http://whattf.org/datatype-draft"
}
input.datetime.attrs.value =
attribute value {
- common.data.datetime
+ w:string "" | common.data.datetime
}
input.elem |= input.datetime.elem
@@ -246,7 +246,7 @@ datatypes w = "http://whattf.org/datatype-draft"
& shared-form.attrs.readonly?
& shared-form.attrs.required?
& input.datetime-local.attrs.value?
- & common.attrs.aria.implicit.input?
+ & common.attrs.aria?
)
input.datetime-local.attrs.type =
attribute type {
@@ -262,7 +262,7 @@ datatypes w = "http://whattf.org/datatype-draft"
}
input.datetime-local.attrs.value =
attribute value {
- form.data.datetime-local
+ w:string "" | form.data.datetime-local
}
input.elem |= input.datetime-local.elem
@@ -284,7 +284,7 @@ datatypes w = "http://whattf.org/datatype-draft"
& shared-form.attrs.readonly?
& shared-form.attrs.required?
& input.date.attrs.value?
- & common.attrs.aria.implicit.input?
+ & common.attrs.aria?
)
input.date.attrs.type =
attribute type {
@@ -300,7 +300,7 @@ datatypes w = "http://whattf.org/datatype-draft"
}
input.date.attrs.value =
attribute value {
- form.data.date
+ w:string "" | form.data.date
}
input.elem |= input.date.elem
@@ -322,7 +322,7 @@ datatypes w = "http://whattf.org/datatype-draft"
& shared-form.attrs.readonly?
& shared-form.attrs.required?
& input.month.attrs.value?
- & common.attrs.aria.implicit.input?
+ & common.attrs.aria?
)
input.month.attrs.type =
attribute type {
@@ -338,7 +338,7 @@ datatypes w = "http://whattf.org/datatype-draft"
}
input.month.attrs.value =
attribute value {
- form.data.month
+ w:string "" | form.data.month
}
input.elem |= input.month.elem
@@ -360,7 +360,7 @@ datatypes w = "http://whattf.org/datatype-draft"
& shared-form.attrs.readonly?
& shared-form.attrs.required?
& input.time.attrs.value?
- & common.attrs.aria.implicit.input?
+ & common.attrs.aria?
)
input.time.attrs.type =
attribute type {
@@ -376,7 +376,7 @@ datatypes w = "http://whattf.org/datatype-draft"
}
input.time.attrs.value =
attribute value {
- form.data.time
+ w:string "" | form.data.time
}
input.elem |= input.time.elem
@@ -398,7 +398,7 @@ datatypes w = "http://whattf.org/datatype-draft"
& shared-form.attrs.readonly?
& shared-form.attrs.required?
& input.week.attrs.value?
- & common.attrs.aria.implicit.input?
+ & common.attrs.aria?
)
input.week.attrs.type =
attribute type {
@@ -414,7 +414,7 @@ datatypes w = "http://whattf.org/datatype-draft"
}
input.week.attrs.value =
attribute value {
- form.data.week
+ w:string "" | form.data.week
}
input.elem |= input.week.elem
@@ -435,8 +435,9 @@ datatypes w = "http://whattf.org/datatype-draft"
& input.attrs.step.float?
& shared-form.attrs.readonly?
& shared-form.attrs.required?
+ & shared-form.attrs.placeholder?
& input.number.attrs.value?
- & common.attrs.aria.implicit.input?
+ & common.attrs.aria?
)
input.number.attrs.type =
attribute type {
@@ -452,7 +453,7 @@ datatypes w = "http://whattf.org/datatype-draft"
}
input.number.attrs.value =
attribute value {
- common.data.float
+ w:string "" | common.data.float
}
input.elem |= input.number.elem
@@ -472,7 +473,7 @@ datatypes w = "http://whattf.org/datatype-draft"
& input.range.attrs.max?
& input.attrs.step.float?
& input.range.attrs.value?
- & common.attrs.aria.implicit.input?
+ & common.attrs.aria?
)
input.range.attrs.type =
attribute type {
@@ -515,7 +516,7 @@ datatypes w = "http://whattf.org/datatype-draft"
)
| input.email.attrs.value.single?
)?
- & common.attrs.aria.implicit.input?
+ & common.attrs.aria?
)
input.email.attrs.type =
attribute type {
@@ -535,7 +536,7 @@ datatypes w = "http://whattf.org/datatype-draft"
## IRI: <input type='url'>
input.url.elem =
- element input { input.url.attrs }
+ element input { input.url.attrs }
input.url.attrs =
( common.attrs
& common-form.attrs
@@ -550,7 +551,7 @@ datatypes w = "http://whattf.org/datatype-draft"
& shared-form.attrs.size?
& shared-form.attrs.placeholder?
& input.url.attrs.value?
- & common.attrs.aria.implicit.input?
+ & common.attrs.aria?
)
input.url.attrs.type =
attribute type {
@@ -566,7 +567,7 @@ datatypes w = "http://whattf.org/datatype-draft"
## Search: <input type='search'>
input.search.elem =
- element input { input.search.attrs }
+ element input { input.search.attrs }
input.search.attrs =
( common.attrs
& common-form.attrs
@@ -582,7 +583,7 @@ datatypes w = "http://whattf.org/datatype-draft"
& shared-form.attrs.placeholder?
& shared-form.attrs.dirname?
& input.search.attrs.value?
- & common.attrs.aria.implicit.input?
+ & common.attrs.aria?
)
input.search.attrs.type =
attribute type {
@@ -613,7 +614,7 @@ datatypes w = "http://whattf.org/datatype-draft"
& shared-form.attrs.size?
& shared-form.attrs.placeholder?
& input.tel.attrs.value?
- & common.attrs.aria.implicit.input?
+ & common.attrs.aria?
)
input.tel.attrs.type =
attribute type {
@@ -638,7 +639,7 @@ datatypes w = "http://whattf.org/datatype-draft"
& shared-form.attrs.autofocus?
& input.attrs.list?
& input.color.attrs.value?
- & common.attrs.aria.implicit.input?
+ & common.attrs.aria?
)
input.color.attrs.type =
attribute type {
@@ -646,7 +647,7 @@ datatypes w = "http://whattf.org/datatype-draft"
}
input.color.attrs.value =
attribute value {
- form.data.color
+ w:string "" | form.data.color
}
input.elem |= input.color.elem
@@ -660,7 +661,7 @@ datatypes w = "http://whattf.org/datatype-draft"
& common-form.attrs.name?
& common-form.attrs.form?
& output.attrs.for?
- & common.attrs.aria.implicit.region?
+ & common.attrs.aria?
)
output.attrs.for =
attribute for {
@@ -710,7 +711,12 @@ datatypes w = "http://whattf.org/datatype-draft"
datalist.inner =
( option.elem* & common.inner.phrasing )
datalist.attrs =
- ( common.attrs )
+ ( common.attrs
+ & ( common.attrs.aria.role.listbox # aria-multiselectable must be false; check by assertions
+ | common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
+ )
common.elem.phrasing |= datalist.elem
@@ -777,7 +783,9 @@ datatypes w = "http://whattf.org/datatype-draft"
& keygen.attrs.keytype?
& shared-form.attrs.autofocus?
& common-form.attrs?
- #REVISIT which ARIA attributes needed here
+ & ( common.attrs.aria.role.presentation
+ | common.attrs.aria.role.menuitem
+ )?
)
keygen.attrs.challenge =
attribute challenge {
diff --git a/xml/relaxng/src/resources/html5-schema/xhtml5.rnc b/xml/relaxng/src/resources/html5-schema/xhtml5.rnc
index 1c6c52417c5b..2d17f9f8e259 100644
--- a/xml/relaxng/src/resources/html5-schema/xhtml5.rnc
+++ b/xml/relaxng/src/resources/html5-schema/xhtml5.rnc
@@ -17,12 +17,15 @@ include "common.rnc" {
v5only = empty
}
+include "common-ext.rnc"
+
# #####################################################################
## Language Definitions
start = html.elem
include "meta.rnc"
+include "meta-ext.rnc"
include "phrase.rnc"
include "block.rnc"
include "sectional.rnc"
@@ -32,6 +35,7 @@ include "embed.rnc"
include "ruby.rnc"
include "media.rnc"
include "core-scripting.rnc"
+include "core-scripting-ext.rnc"
include "tables.rnc"
include "form-datatypes.rnc"
include "web-forms.rnc"
diff --git a/xml/relaxng/test/org/intellij/plugins/relaxNG/RngHtml5CompletionTest.java b/xml/relaxng/test/org/intellij/plugins/relaxNG/RngHtml5CompletionTest.java
index a91b109d1631..4deb63f48be4 100644
--- a/xml/relaxng/test/org/intellij/plugins/relaxNG/RngHtml5CompletionTest.java
+++ b/xml/relaxng/test/org/intellij/plugins/relaxNG/RngHtml5CompletionTest.java
@@ -28,14 +28,6 @@ public class RngHtml5CompletionTest extends HighlightingTestBase {
return "completion";
}
- @Override
- protected void init() {
- super.init();
-
- ExternalResourceManagerImpl.addTestResource("http://www.w3.org/1999/xhtml/html5", toAbsolutePath("/highlighting/html5/html5.rnc"),
- myTestRootDisposable);
- }
-
public void testHtml5_1() throws Throwable {
myTestFixture.testCompletionTyping("html5_1.xml", "\n", "html5_1_after.xml");
}
diff --git a/xml/relaxng/test/org/intellij/plugins/relaxNG/RngXmlHighlightingTest.java b/xml/relaxng/test/org/intellij/plugins/relaxNG/RngXmlHighlightingTest.java
index 18a3f274a337..d813d2bcbf48 100644
--- a/xml/relaxng/test/org/intellij/plugins/relaxNG/RngXmlHighlightingTest.java
+++ b/xml/relaxng/test/org/intellij/plugins/relaxNG/RngXmlHighlightingTest.java
@@ -47,7 +47,7 @@ public class RngXmlHighlightingTest extends HighlightingTestBase {
ExternalResourceManagerImpl.addTestResource("http://www.w3.org/1999/XSL/Format", toAbsolutePath("highlighting/rnc/fo/main.rnc"), myTestRootDisposable);
ExternalResourceManagerImpl.addTestResource("http://docbook.org/ns/docbook", toAbsolutePath("highlighting/docbook.rng"), myTestRootDisposable);
ExternalResourceManagerImpl.addTestResource("urn:intelliForm:AttachmentFilter", toAbsolutePath("highlighting/attachment-filter.rng"), myTestRootDisposable);
- ExternalResourceManagerImpl.addTestResource("http://www.w3.org/1999/xhtml/html5", toAbsolutePath("highlighting/html5/xhtml5.rnc"), myTestRootDisposable);
+ ExternalResourceManagerImpl.addTestResource("http://www.w3.org/1999/xhtml", toAbsolutePath("highlighting/html5/xhtml5.rnc"), myTestRootDisposable);
m.addIgnoredResource("urn:intelliForm:Spaces");
m.addIgnoredResource("http://www.w3.org/1999/xlink");
diff --git a/xml/relaxng/testData/completion/html5_1.xml b/xml/relaxng/testData/completion/html5_1.xml
index 7ee0c6e457a1..3f9d25bfb95d 100644
--- a/xml/relaxng/testData/completion/html5_1.xml
+++ b/xml/relaxng/testData/completion/html5_1.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta conten<caret>>
diff --git a/xml/relaxng/testData/completion/html5_10.xml b/xml/relaxng/testData/completion/html5_10.xml
index e6d1b0392a5b..d4c912da7bfd 100644
--- a/xml/relaxng/testData/completion/html5_10.xml
+++ b/xml/relaxng/testData/completion/html5_10.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
diff --git a/xml/relaxng/testData/completion/html5_10_after.xml b/xml/relaxng/testData/completion/html5_10_after.xml
index a726437c7c26..9ddc16df2c56 100644
--- a/xml/relaxng/testData/completion/html5_10_after.xml
+++ b/xml/relaxng/testData/completion/html5_10_after.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
diff --git a/xml/relaxng/testData/completion/html5_11.xml b/xml/relaxng/testData/completion/html5_11.xml
index e0f811a6ba61..118122563768 100644
--- a/xml/relaxng/testData/completion/html5_11.xml
+++ b/xml/relaxng/testData/completion/html5_11.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script typ<caret>>
diff --git a/xml/relaxng/testData/completion/html5_11_after.xml b/xml/relaxng/testData/completion/html5_11_after.xml
index 2b90d0d36055..24548a339d37 100644
--- a/xml/relaxng/testData/completion/html5_11_after.xml
+++ b/xml/relaxng/testData/completion/html5_11_after.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="">
diff --git a/xml/relaxng/testData/completion/html5_12.xml b/xml/relaxng/testData/completion/html5_12.xml
index 4e121da5ed6a..2a3a990e2ad9 100644
--- a/xml/relaxng/testData/completion/html5_12.xml
+++ b/xml/relaxng/testData/completion/html5_12.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script asy<caret>>
diff --git a/xml/relaxng/testData/completion/html5_12_after.xml b/xml/relaxng/testData/completion/html5_12_after.xml
index fa4d8166f36e..073eff7d465f 100644
--- a/xml/relaxng/testData/completion/html5_12_after.xml
+++ b/xml/relaxng/testData/completion/html5_12_after.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script async="">
diff --git a/xml/relaxng/testData/completion/html5_13.xml b/xml/relaxng/testData/completion/html5_13.xml
index ad102e4e8fe1..98dcf51e997c 100644
--- a/xml/relaxng/testData/completion/html5_13.xml
+++ b/xml/relaxng/testData/completion/html5_13.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
diff --git a/xml/relaxng/testData/completion/html5_13_after.xml b/xml/relaxng/testData/completion/html5_13_after.xml
index 3eb93b53b3bf..bb93062ba6d2 100644
--- a/xml/relaxng/testData/completion/html5_13_after.xml
+++ b/xml/relaxng/testData/completion/html5_13_after.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
diff --git a/xml/relaxng/testData/completion/html5_14.xml b/xml/relaxng/testData/completion/html5_14.xml
index e4bab5871ba0..fdf0bda0a429 100644
--- a/xml/relaxng/testData/completion/html5_14.xml
+++ b/xml/relaxng/testData/completion/html5_14.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
diff --git a/xml/relaxng/testData/completion/html5_14_after.xml b/xml/relaxng/testData/completion/html5_14_after.xml
index 7827fa82ddaa..5d59a20d76fd 100644
--- a/xml/relaxng/testData/completion/html5_14_after.xml
+++ b/xml/relaxng/testData/completion/html5_14_after.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
diff --git a/xml/relaxng/testData/completion/html5_15.xml b/xml/relaxng/testData/completion/html5_15.xml
index 04168a9bee25..156537680c2d 100644
--- a/xml/relaxng/testData/completion/html5_15.xml
+++ b/xml/relaxng/testData/completion/html5_15.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
diff --git a/xml/relaxng/testData/completion/html5_15_after.xml b/xml/relaxng/testData/completion/html5_15_after.xml
index a3c6fd6de5ed..9b7cbcef2039 100644
--- a/xml/relaxng/testData/completion/html5_15_after.xml
+++ b/xml/relaxng/testData/completion/html5_15_after.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
diff --git a/xml/relaxng/testData/completion/html5_16.xml b/xml/relaxng/testData/completion/html5_16.xml
index 5dce55cb7704..56b82dfdf00c 100644
--- a/xml/relaxng/testData/completion/html5_16.xml
+++ b/xml/relaxng/testData/completion/html5_16.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
diff --git a/xml/relaxng/testData/completion/html5_16_after.xml b/xml/relaxng/testData/completion/html5_16_after.xml
index 7ca7f760dc5e..7cd4ee1f9cf7 100644
--- a/xml/relaxng/testData/completion/html5_16_after.xml
+++ b/xml/relaxng/testData/completion/html5_16_after.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
diff --git a/xml/relaxng/testData/completion/html5_17.xml b/xml/relaxng/testData/completion/html5_17.xml
index 153ff214e6d0..765c5bb2b5cc 100644
--- a/xml/relaxng/testData/completion/html5_17.xml
+++ b/xml/relaxng/testData/completion/html5_17.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
diff --git a/xml/relaxng/testData/completion/html5_17_after.xml b/xml/relaxng/testData/completion/html5_17_after.xml
index 0f1e214cefd8..c8ffd1b2572e 100644
--- a/xml/relaxng/testData/completion/html5_17_after.xml
+++ b/xml/relaxng/testData/completion/html5_17_after.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
diff --git a/xml/relaxng/testData/completion/html5_1_after.xml b/xml/relaxng/testData/completion/html5_1_after.xml
index 4d5adf578bd6..3d8729553ac8 100644
--- a/xml/relaxng/testData/completion/html5_1_after.xml
+++ b/xml/relaxng/testData/completion/html5_1_after.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta content="<caret>">
diff --git a/xml/relaxng/testData/completion/html5_2.xml b/xml/relaxng/testData/completion/html5_2.xml
index e6a98bc5eac0..ef976bdf5304 100644
--- a/xml/relaxng/testData/completion/html5_2.xml
+++ b/xml/relaxng/testData/completion/html5_2.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-eq<caret>>
diff --git a/xml/relaxng/testData/completion/html5_2_after.xml b/xml/relaxng/testData/completion/html5_2_after.xml
index 3a719f2c620e..2b48202145cc 100644
--- a/xml/relaxng/testData/completion/html5_2_after.xml
+++ b/xml/relaxng/testData/completion/html5_2_after.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="">
diff --git a/xml/relaxng/testData/completion/html5_3.xml b/xml/relaxng/testData/completion/html5_3.xml
index 9f47b73738e0..caab0fe1532f 100644
--- a/xml/relaxng/testData/completion/html5_3.xml
+++ b/xml/relaxng/testData/completion/html5_3.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta charse<caret>>
diff --git a/xml/relaxng/testData/completion/html5_3_after.xml b/xml/relaxng/testData/completion/html5_3_after.xml
index 75a927efdcc6..c531033021cb 100644
--- a/xml/relaxng/testData/completion/html5_3_after.xml
+++ b/xml/relaxng/testData/completion/html5_3_after.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta charset="">
diff --git a/xml/relaxng/testData/completion/html5_4.xml b/xml/relaxng/testData/completion/html5_4.xml
index df17a5363e0f..689c95940a63 100644
--- a/xml/relaxng/testData/completion/html5_4.xml
+++ b/xml/relaxng/testData/completion/html5_4.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta styl<caret>>
diff --git a/xml/relaxng/testData/completion/html5_4_after.xml b/xml/relaxng/testData/completion/html5_4_after.xml
index 1ade816916ea..22774800b53e 100644
--- a/xml/relaxng/testData/completion/html5_4_after.xml
+++ b/xml/relaxng/testData/completion/html5_4_after.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta style="">
diff --git a/xml/relaxng/testData/completion/html5_5.xml b/xml/relaxng/testData/completion/html5_5.xml
index 91bae3abbfe0..dc024125e352 100644
--- a/xml/relaxng/testData/completion/html5_5.xml
+++ b/xml/relaxng/testData/completion/html5_5.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
diff --git a/xml/relaxng/testData/completion/html5_5_after.xml b/xml/relaxng/testData/completion/html5_5_after.xml
index c3923e63bf63..aa4476cb9bb5 100644
--- a/xml/relaxng/testData/completion/html5_5_after.xml
+++ b/xml/relaxng/testData/completion/html5_5_after.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
diff --git a/xml/relaxng/testData/completion/html5_6.xml b/xml/relaxng/testData/completion/html5_6.xml
index 210a126811bf..c603ca0de265 100644
--- a/xml/relaxng/testData/completion/html5_6.xml
+++ b/xml/relaxng/testData/completion/html5_6.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
diff --git a/xml/relaxng/testData/completion/html5_6_after.xml b/xml/relaxng/testData/completion/html5_6_after.xml
index 2caea78aa14e..a6a50bc6214c 100644
--- a/xml/relaxng/testData/completion/html5_6_after.xml
+++ b/xml/relaxng/testData/completion/html5_6_after.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
diff --git a/xml/relaxng/testData/completion/html5_7.xml b/xml/relaxng/testData/completion/html5_7.xml
index 255e7ad0b4f2..b072c231214e 100644
--- a/xml/relaxng/testData/completion/html5_7.xml
+++ b/xml/relaxng/testData/completion/html5_7.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
diff --git a/xml/relaxng/testData/completion/html5_7_after.xml b/xml/relaxng/testData/completion/html5_7_after.xml
index 50cb29e2846b..f689b8b3c76e 100644
--- a/xml/relaxng/testData/completion/html5_7_after.xml
+++ b/xml/relaxng/testData/completion/html5_7_after.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
diff --git a/xml/relaxng/testData/completion/html5_8.xml b/xml/relaxng/testData/completion/html5_8.xml
index 4a66c671701b..6669e7b2926a 100644
--- a/xml/relaxng/testData/completion/html5_8.xml
+++ b/xml/relaxng/testData/completion/html5_8.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
diff --git a/xml/relaxng/testData/completion/html5_8_after.xml b/xml/relaxng/testData/completion/html5_8_after.xml
index 36bfa3a6b9ed..a821792f7eac 100644
--- a/xml/relaxng/testData/completion/html5_8_after.xml
+++ b/xml/relaxng/testData/completion/html5_8_after.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
diff --git a/xml/relaxng/testData/completion/html5_9.xml b/xml/relaxng/testData/completion/html5_9.xml
index e86d83d273fd..27a5068da0f5 100644
--- a/xml/relaxng/testData/completion/html5_9.xml
+++ b/xml/relaxng/testData/completion/html5_9.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
diff --git a/xml/relaxng/testData/completion/html5_9_after.xml b/xml/relaxng/testData/completion/html5_9_after.xml
index b6e64f720be3..5c203c4108c3 100644
--- a/xml/relaxng/testData/completion/html5_9_after.xml
+++ b/xml/relaxng/testData/completion/html5_9_after.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
diff --git a/xml/relaxng/testData/highlighting/Html5.xml b/xml/relaxng/testData/highlighting/Html5.xml
index bb5ffeade51d..a81f05814d82 100644
--- a/xml/relaxng/testData/highlighting/Html5.xml
+++ b/xml/relaxng/testData/highlighting/Html5.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
diff --git a/xml/relaxng/testData/highlighting/Html5_2.xml b/xml/relaxng/testData/highlighting/Html5_2.xml
index b35a6a544d5b..6f115768fab0 100644
--- a/xml/relaxng/testData/highlighting/Html5_2.xml
+++ b/xml/relaxng/testData/highlighting/Html5_2.xml
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml/html5">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
diff --git a/xml/relaxng/testData/highlighting/html5/LICENSE b/xml/relaxng/testData/highlighting/html5/LICENSE
deleted file mode 100644
index fd1093cc1c60..000000000000
--- a/xml/relaxng/testData/highlighting/html5/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-The RELAX NG Schema for (X)HTML 5 is licensed under the MIT open source license.
-The following legal notice applies to all files in this directory:
-
-Copyright (c) 2005-2007 Elika J. Etemad (fantasai) and Henri Sivonen (hsivonen)
-Copyright (c) 2007-2008 Mozilla Foundation
-
-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.
diff --git a/xml/relaxng/testData/highlighting/html5/applications.rnc b/xml/relaxng/testData/highlighting/html5/applications.rnc
deleted file mode 100644
index 921a55133ff0..000000000000
--- a/xml/relaxng/testData/highlighting/html5/applications.rnc
+++ /dev/null
@@ -1,260 +0,0 @@
-datatypes w = "http://whattf.org/datatype-draft"
-
-# #####################################################################
-## RELAX NG Schema for HTML 5: Web Application Features #
-# #####################################################################
-
-## Additions to Common Attributes
-
- common.attrs.interact &=
- ( common.attrs.contextmenu?
- & common.attrs.contenteditable?
- & common.attrs.draggable?
- & common.attrs.hidden?
- & common.attrs.spellcheck?
- )
-
- common.attrs.other &= common.attrs.interact
-
-## Context Menu: contextmenu
-
- common.attrs.contextmenu =
- attribute contextmenu {
- common.data.idref
- }
-
-## Editable Content: contenteditable
-
- common.attrs.contenteditable =
- attribute contenteditable {
- w:string "true" | w:string "false" | w:string ""
- }
-
-## Draggable Element: draggable
-
- common.attrs.draggable =
- attribute draggable {
- w:string "true" | w:string "false"
- }
-
-## Hidden Element: hidden
-
- common.attrs.hidden =
- attribute hidden {
- w:string "hidden" | w:string ""
- }
-
-## Spellchecking and grammar checking: spellcheck
-
- common.attrs.spellcheck =
- attribute spellcheck{
- w:string "true" | w:string "false" | w:string ""
- }
-
-## Application Cache: manifest
-
- html.attrs.manifest =
- attribute manifest {
- common.data.uri
- }
-
- html.attrs &= html.attrs.manifest?
-
-## Progess Indicator: <progress>
-
- progress.elem =
- element progress { progress.inner & progress.attrs }
- progress.attrs =
- ( common.attrs
- & progress.attrs.value?
- & progress.attrs.max?
- )
- progress.attrs.value =
- attribute value {
- common.data.float.non-negative
- }
- progress.attrs.max =
- attribute max {
- common.data.float.positive
- }
- progress.inner =
- ( common.inner.phrasing ) #Cannot enforce textContent format here
-
- common.elem.phrasing |= progress.elem
-
-## Command with an associated action: <command type='command'>
-
- command.command.elem =
- element command { command.inner & command.command.attrs }
- command.command.attrs =
- ( common.attrs
- & command.command.attrs.type?
- & common-command.attrs
- )
- command.command.attrs.type =
- attribute type {
- w:string "command"
- }
- command.elem = command.command.elem
-
-## Selection of one item from a list of items: <command type='radio'>
-
- command.radio.elem =
- element command { command.inner & command.radio.attrs }
- command.radio.attrs =
- ( common.attrs
- & ( command.radio.attrs.type
- & command.radio.attrs.radiogroup #REVISIT taking liberties here
- & command.radio.attrs.checked?
- )
- & common-command.attrs
- )
- command.radio.attrs.type =
- attribute type {
- w:string "radio"
- }
- command.radio.attrs.radiogroup =
- attribute radiogroup {
- string #REVISIT need special format here?
- }
- command.radio.attrs.checked =
- attribute checked {
- w:string "checked" | w:string ""
- }
- command.elem |= command.radio.elem
-
-## State or option that can be toggled: <command type='checkbox'>
-
- command.checkbox.elem =
- element command { command.inner & command.checkbox.attrs }
- command.checkbox.attrs =
- ( common.attrs
- & ( command.checkbox.attrs.type
- & command.checkbox.attrs.checked?
- )
- & common-command.attrs
- )
- command.checkbox.attrs.type =
- attribute type {
- w:string "checkbox"
- }
- command.checkbox.attrs.checked =
- attribute checked {
- w:string "checked" | w:string ""
- }
- command.elem |= command.checkbox.elem
-
- common-command.attrs =
- ( command.attrs.label?
- & command.attrs.icon?
- & command.attrs.disabled?
- )
- command.attrs.label =
- attribute label {
- string
- }
- command.attrs.icon =
- attribute icon {
- common.data.uri
- }
- command.attrs.disabled =
- attribute disabled {
- w:string "disabled" | w:string ""
- }
- command.inner =
- ( empty )
-
- common.elem.metadata |=
- ( command.elem & nonHTMLizable )
- common.elem.phrasing |= command.elem
-
-## Menu: <menu>
-
- menu.elem =
- element menu { menu.inner & menu.attrs }
- menu.attrs =
- ( common.attrs
- & menu.attrs.type?
- & menu.attrs.label?
- )
- menu.attrs.type =
- attribute type {
- w:string "toolbar" | w:string "context"
- }
- menu.attrs.label =
- attribute label {
- string
- }
- menu.inner =
- ( mli.elem*
- | common.inner.flow
- )
-
- common.elem.flow |= menu.elem
- # REVISIT allow nested menus
-
-## Menu Item: <li>
-
- mli.elem =
- element li { mli.inner & mli.attrs }
- mli.attrs =
- ( common.attrs )
- mli.inner =
- ( common.inner.flow )
-
-## Canvas for Dynamic Graphics: <canvas>
-
- canvas.elem.flow =
- element canvas { canvas.inner.flow & canvas.attrs }
- canvas.elem.phrasing =
- element canvas { canvas.inner.phrasing & canvas.attrs }
- canvas.attrs =
- ( common.attrs
- & canvas.attrs.height?
- & canvas.attrs.width?
- & common.attrs.aria?
- )
- canvas.attrs.height =
- attribute height {
- common.data.integer.non-negative
- }
- canvas.attrs.width =
- attribute width {
- common.data.integer.non-negative
- }
- canvas.inner.flow =
- ( common.inner.flow )
- canvas.inner.phrasing =
- ( common.inner.phrasing )
-
- common.elem.flow |= canvas.elem.flow
- common.elem.phrasing |= canvas.elem.phrasing
-
-## Additional On-Demand Information: <details>
-
- details.elem =
- element details { details.inner & details.attrs }
- details.attrs =
- ( common.attrs
- & details.attrs.open?
- & common.attrs.aria.implicit.region?
- )
- details.attrs.open =
- attribute open {
- w:string "open" | w:string ""
- }
- details.inner =
- ( summary.elem?
- , common.inner.flow
- )
-
- common.elem.flow |= details.elem
-
-## Caption/summary for details element: <summary>
-
- summary.elem =
- element summary { summary.inner & summary.attrs }
- summary.attrs =
- ( common.attrs )
- summary.inner =
- ( common.inner.phrasing )
diff --git a/xml/relaxng/testData/highlighting/html5/aria.rnc b/xml/relaxng/testData/highlighting/html5/aria.rnc
deleted file mode 100644
index 9721d36e0fdb..000000000000
--- a/xml/relaxng/testData/highlighting/html5/aria.rnc
+++ /dev/null
@@ -1,1017 +0,0 @@
-# #####################################################################
-## RELAX NG Schema for HTML 5: Accessible Rich Internet Applications #
-# #####################################################################
-
-# #####################################################################
-## ARIA
-
-## Global states and properties
-
-aria.global =
- ( aria.prop.atomic?
- & aria.state.busy?
- & aria.prop.controls?
- & aria.prop.describedby?
- & aria.state.disabled?
- & aria.state.dropeffect?
- & aria.prop.flowto?
- & aria.state.grabbed?
- & aria.prop.haspopup?
- & aria.state.hidden?
- & aria.state.invalid?
- & aria.prop.label?
- & aria.prop.labelledby?
- & aria.prop.live?
- & aria.prop.owns?
- & aria.prop.relevant?
- & aria.prop.required?
- )
-
-common.attrs.other &= aria.global?
-
-## States and Properties for Native Roles
-
-# common.attrs.aria.implicit.button |=
-# ( aria.prop.controls?
-# )
-
-# common.attrs.aria.implicit.input |=
-# ( aria.prop.controls?
-# & aria.state.invalid?
-# & aria.prop.required?
-# )
-
-common.attrs.aria.implicit.region |=
- ( aria.state.expanded?
-# & aria.prop.level?
- )
-
-common.attrs.aria.implicit.group |=
- ( aria.state.expanded?
- & aria.prop.activedescendant?
- )
-
-common.attrs.aria.implicit.th |=
- ( aria.prop.sort?
- & aria.prop.level?
- & aria.state.expanded?
- & aria.prop.readonly?
- & aria.state.selected?
- )
-
-# common.attrs.aria.implicit.structure |=
-# ( aria.prop.atomic?
-# & aria.state.busy?
-# & aria.prop.channel?
-# & aria.prop.live?
-# & aria.prop.relevant?
-# )
-
-# common.attrs.aria.implicit.link |=
-# ( aria.prop.controls?
-# & aria.state.disabled?
-# )
-
-common.attrs.aria.implicit.listitem |=
- ( aria.prop.posinset?
- & aria.prop.setsize?
-# & aria.prop.atomic?
- )
-
-# common.attrs.aria.implicit.img |=
-# ( aria.prop.atomic?
-# & aria.state.busy?
-# & aria.prop.channel?
-# & aria.prop.controls?
-# & aria.prop.live?
-# & aria.prop.relevant?
-# )
-
-#common.attrs.aria.implicit.select |=
-# ( aria.state.invalid?
-# & aria.prop.required?
-# & aria.prop.atomic?
-# & aria.state.busy?
-# & aria.prop.channel?
-# & aria.prop.controls?
-# & aria.prop.live?
-# & aria.prop.relevant?
-# )
-
-# #####################################################################
-## States
-
-## busy
- aria.state.busy =
- attribute aria-busy
- { string "true"
- | string "false" #default
- }
-
-## checked
- aria.state.checked =
- attribute aria-checked
- { string "true"
- | string "false"
- | string "mixed"
- | string "undefined" #default
- }
-
-## disabled
- aria.state.disabled =
- attribute aria-disabled
- { string "true"
- | string "false" #default
- }
-
-## dropeffect
- aria.state.dropeffect =
- attribute aria-dropeffect
- { token "none" #default
- | token "popup"
- | token "execute"
- | list
- { ( string "copy" )
- , ( string "execute" )?
- }
- | list
- { ( string "move" )
- , ( string "execute" )?
- }
- | list
- { ( string "reference" )
- , ( string "execute" )?
- }
- | list
- { ( string "execute" )
- , ( string "copy" )
- }
- | list
- { ( string "execute" )
- , ( string "move" )
- }
- | list
- { ( string "execute" )
- , ( string "reference" )
- }
- }
-
-## expanded
- aria.state.expanded =
- attribute aria-expanded
- { string "true"
- | string "false"
- | string "undefined" #default
- }
-
-## grabbed
- aria.state.grabbed =
- attribute aria-grabbed
- { string "true"
- | string "false"
- | string "undefined" #default
- }
-
-## hidden
- aria.state.hidden =
- attribute aria-hidden
- { string "true"
- | string "false" #default
- }
-
-## invalid
- aria.state.invalid =
- attribute aria-invalid
- { string "true"
- | string "false" #default
- | string "grammar"
- | string "spelling"
- }
-
-## pressed
- aria.state.pressed =
- attribute aria-pressed
- { string "true"
- | string "false"
- | string "mixed"
- | string "undefined" #default
- }
-
-## selected
- aria.state.selected =
- attribute aria-selected
- { string "true"
- | string "false"
- | string "undefined" #default
- }
-
-
-
-# #####################################################################
-## Properties
-
-## activedescendant
- aria.prop.activedescendant =
- attribute aria-activedescendant {
- common.data.idref #REVISIT add Schematron check
- }
-
-## atomic
- aria.prop.atomic =
- attribute aria-atomic
- { string "true"
- | string "false" #default
- }
-
-## autocomplete
- aria.prop.autocomplete =
- attribute aria-autocomplete
- { string "inline"
- | string "list"
- | string "both"
- | string "none" #default
- }
-
-## controls
- aria.prop.controls =
- attribute aria-controls {
- common.data.idrefs #REVISIT add Schematron check
- }
-
-## describedby
- aria.prop.describedby =
- attribute aria-describedby {
- common.data.idrefs #REVISIT add Schematron check
- }
-
-## flowto
- aria.prop.flowto =
- attribute aria-flowto {
- common.data.idrefs #REVISIT add Schematron check
- }
-
-## haspopup
- aria.prop.haspopup =
- attribute aria-haspopup
- { string "true" #REVISIT check owns or descendant
- | string "false" #default
- }
-
-## label
- aria.prop.label =
- attribute aria-label {
- string
- }
-
-## labelledby
- aria.prop.labelledby =
- attribute aria-labelledby {
- common.data.idrefs #REVISIT add Schematron check
- }
-
-## level
- aria.prop.level =
- attribute aria-level {
- common.data.integer.positive
- }
-
-## live
- aria.prop.live =
- attribute aria-live
- { string "off" #default
- | string "polite"
- | string "assertive"
- }
-
-## multiline
- aria.prop.multiline =
- attribute aria-multiline
- { string "true"
- | string "false" #default
- }
-
-## multiselectable
- aria.prop.multiselectable =
- attribute aria-multiselectable
- { string "true"
- | string "false" #default
- }
-
-## owns
- aria.prop.owns =
- attribute aria-owns {
- common.data.idrefs #REVISIT add Schematron check
- }
-
-## posinset
- aria.prop.posinset =
- attribute aria-posinset {
- common.data.integer.positive
- }
-
-## readonly
- aria.prop.readonly =
- attribute aria-readonly
- { string "true"
- | string "false" #default
- }
-
-## relevant
- aria.prop.relevant =
- attribute aria-relevant
- { token "all"
- | list
- { ( string "additions" )
- , ( string "removals" )?
- , ( string "text" )?
- }
- | list
- { ( string "additions" )
- , ( string "text" )?
- , ( string "removals" )?
- }
- | list
- { ( string "removals" )
- , ( string "additions" )?
- , ( string "text" )?
- }
- | list
- { ( string "removals" )
- , ( string "text" )?
- , ( string "additions" )?
- }
- | list
- { ( string "text" )
- , ( string "additions" )?
- , ( string "removals" )?
- }
- | list
- { ( string "text" )
- , ( string "removals" )?
- , ( string "additions" )?
- }
- }
-
-## required
- aria.prop.required =
- attribute aria-required
- { string "true"
- | string "false" #default
- }
-
-## setsize
- aria.prop.setsize =
- attribute aria-setsize {
- common.data.integer.non-negative
- }
-
-## sort
- aria.prop.sort =
- attribute aria-sort
- { string "ascending"
- | string "descending"
- | string "none" #default
- | string "other"
- }
-
-## valuemax
- aria.prop.valuemax =
- attribute aria-valuemax {
- common.data.float #REVISIT
- }
-
-## valuemin
- aria.prop.valuemin =
- attribute aria-valuemin {
- common.data.float #REVISIT
- }
-
-## valuenow
- aria.prop.valuenow =
- attribute aria-valuenow {
- common.data.float #REVISIT
- }
-
-## valuetext
- aria.prop.valuetext =
- attribute aria-valuetext {
- string
- }
-
-# #####################################################################
-## Roles
-
-## alert
- aria.alert =
- ( aria.role.alert
- & aria.state.expanded?
- )
- aria.role.alert =
- attribute role { string "alert" }
-
- common.attrs.aria |= aria.alert
-
-## alertdialog
- aria.alertdialog =
- ( aria.role.alertdialog
- & aria.state.expanded?
- )
- aria.role.alertdialog =
- attribute role { string "alertdialog" }
-
- common.attrs.aria |= aria.alertdialog
-
-## application
- aria.application =
- ( aria.role.application
- & aria.state.expanded?
- )
- aria.role.application =
- attribute role { string "application" }
-
- common.attrs.aria |= aria.application
- common.attrs.aria.landmark.application |= aria.application
-
-## article
- aria.article =
- ( aria.role.article
- & aria.state.expanded?
- )
- aria.role.article =
- attribute role { string "article" }
-
- common.attrs.aria |= aria.article
- common.attrs.aria.landmark.article |= aria.article
-
-## banner
- aria.banner =
- ( aria.role.banner
- & aria.state.expanded?
- )
- aria.role.banner =
- attribute role { string "banner" }
-
- common.attrs.aria |= aria.banner
- common.attrs.aria.landmark.banner |= aria.banner
-
-## button
- aria.button =
- ( aria.role.button
- & aria.state.pressed? # not inherited
- )
- aria.role.button =
- attribute role { string "button" }
-
- common.attrs.aria |= aria.button
-
-## checkbox
- aria.checkbox =
- ( aria.role.checkbox
- & aria.state.checked #required!
- )
- aria.role.checkbox =
- attribute role { string "checkbox" }
-
- common.attrs.aria |= aria.checkbox
-
-# XXX columnheader
-
-## combobox
- aria.combobox =
- ( aria.role.combobox
- & aria.prop.activedescendant?
- & aria.state.expanded #required!
- )
- aria.role.combobox =
- attribute role { string "combobox" }
-
- common.attrs.aria |= aria.combobox
-
-## complementary
- aria.complementary =
- ( aria.role.complementary
- & aria.state.expanded?
- )
- aria.role.complementary =
- attribute role { string "complementary" }
-
- common.attrs.aria |= aria.complementary
- common.attrs.aria.landmark.complementary |= aria.complementary
-
-## contentinfo
- aria.contentinfo =
- ( aria.role.contentinfo
- & aria.state.expanded?
- )
- aria.role.contentinfo =
- attribute role { string "contentinfo" }
-
- common.attrs.aria |= aria.contentinfo
- common.attrs.aria.landmark.contentinfo |= aria.contentinfo
-
-## definition
- aria.definition =
- ( aria.role.definition
- & aria.state.expanded?
- )
- aria.role.definition =
- attribute role { string "definition" }
-
- common.attrs.aria |= aria.definition
-
-## dialog
- aria.dialog =
- ( aria.role.dialog
- & aria.state.expanded?
- )
- aria.role.dialog =
- attribute role { string "dialog" }
-
- common.attrs.aria |= aria.dialog
-
-## directory
- aria.directory =
- ( aria.role.directory
- & aria.state.expanded?
- )
- aria.role.directory =
- attribute role { string "directory" }
-
- common.attrs.aria |= aria.directory
-
-## document
- aria.document =
- ( aria.role.document
- & aria.state.expanded?
- )
- aria.role.document =
- attribute role { string "document" }
-
- common.attrs.aria |= aria.document
- common.attrs.aria.landmark.document |= aria.document
-
-## grid
- aria.grid =
- ( aria.role.grid
- & aria.prop.level? # not inherited
- & aria.prop.multiselectable? # not inherited
- & aria.prop.readonly? # not inherited
- & aria.prop.activedescendant?
- & aria.state.expanded?
- )
- aria.role.grid =
- attribute role { string "grid" }
-
- common.attrs.aria |= aria.grid
-
-## gridcell
- aria.gridcell =
- ( aria.role.gridcell
- & aria.prop.level? # net inherited
- & aria.prop.readonly? # not inherited
- & aria.state.selected? # not inherited
- & aria.state.expanded?
- )
- aria.role.gridcell =
- attribute role { string "gridcell" }
-
- common.attrs.aria |= aria.gridcell
-
-## group
- aria.group =
- ( aria.role.group
- & aria.prop.activedescendant? # not inherited
- & aria.state.expanded? # not inherited
- )
- aria.role.group =
- attribute role { string "group" }
-
- common.attrs.aria |= aria.group
-
-## XXX heading
-
-## img
- aria.img =
- ( aria.role.img
- & aria.state.expanded?
- )
- aria.role.img =
- attribute role { string "img" }
-
- common.attrs.aria |= aria.img
-
-## link
- aria.link =
- ( aria.role.link
- )
- aria.role.link =
- attribute role { string "link" }
-
- common.attrs.aria |= aria.link
-
-## list
- aria.list =
- ( aria.role.list
- & aria.state.expanded?
- )
- aria.role.list =
- attribute role { string "list" }
-
- common.attrs.aria |= aria.list
-
-## listbox
- aria.listbox =
- ( aria.role.listbox
- & aria.prop.multiselectable? # not inherited
- & aria.prop.activedescendant?
- & aria.state.expanded?
- )
- aria.role.listbox =
- attribute role { string "listbox" }
-
- common.attrs.aria |= aria.listbox
-
-## listitem
- aria.listitem =
- ( aria.role.listitem
- & aria.prop.posinset? # not inherited
- & aria.prop.setsize? # not inherited
- & aria.prop.level? # not inherited
- & aria.state.expanded?
- )
- aria.role.listitem =
- attribute role { string "listitem" }
-
- common.attrs.aria |= aria.listitem
-
-## log
- aria.log =
- ( aria.role.log
- & aria.state.expanded?
- )
- aria.role.log =
- attribute role { string "log" }
-
- common.attrs.aria |= aria.log
-
-## main
- aria.main =
- ( aria.role.main
- & aria.state.expanded?
- )
- aria.role.main =
- attribute role { string "main" }
-
- common.attrs.aria |= aria.main
- common.attrs.aria.landmark.main |= aria.main
-
-## marquee
- aria.marquee =
- ( aria.role.marquee
- & aria.state.expanded?
- )
- aria.role.marquee =
- attribute role { string "marquee" }
-
- common.attrs.aria |= aria.marquee
-
-## math
- aria.math =
- ( aria.role.math
- & aria.state.expanded?
- )
- aria.role.math =
- attribute role { string "math" }
-
- common.attrs.aria |= aria.math
-
-## menu
- aria.menu =
- ( aria.role.menu
- & aria.prop.activedescendant?
- & aria.state.expanded?
- )
- aria.role.menu =
- attribute role { string "menu" }
-
- common.attrs.aria |= aria.menu
-
-## menubar
- aria.menubar =
- ( aria.role.menubar
- & aria.prop.activedescendant?
- & aria.state.expanded?
- )
- aria.role.menubar =
- attribute role { string "menubar" }
-
- common.attrs.aria |= aria.menubar
-
-## menuitem
- aria.menuitem =
- ( aria.role.menuitem )
- aria.role.menuitem =
- attribute role { string "menuitem" }
-
- common.attrs.aria |= aria.menuitem
-
-## menuitemcheckbox
- aria.menuitemcheckbox =
- ( aria.role.menuitemcheckbox
- & aria.state.checked #required
- )
- aria.role.menuitemcheckbox =
- attribute role { string "menuitemcheckbox" }
-
- common.attrs.aria |= aria.menuitemcheckbox
-
-## menuitemradio
- aria.menuitemradio =
- ( aria.role.menuitemradio
- & aria.state.checked #required
- & aria.state.selected?
- )
- aria.role.menuitemradio =
- attribute role { string "menuitemradio" }
-
- common.attrs.aria |= aria.menuitemradio
-
-## navigation
- aria.navigation =
- ( aria.role.navigation
- & aria.state.expanded?
- )
- aria.role.navigation =
- attribute role { string "navigation" }
-
- common.attrs.aria |= aria.navigation
- common.attrs.aria.landmark.navigation |= aria.navigation
-
-## note
- aria.note =
- ( aria.role.note
- & aria.state.expanded?
- )
- aria.role.note =
- attribute role { string "note" }
-
- common.attrs.aria |= aria.note
- common.attrs.aria.landmark.note |= aria.note
-
-## option
- aria.option =
- ( aria.role.option
- & aria.state.checked? # not inherited
- & aria.state.selected? # not inherited
- )
- aria.role.option =
- attribute role { string "option" }
-
- common.attrs.aria |= aria.option
-
-
-## presentation
- aria.presentation =
- ( aria.role.presentation
- & aria.state.expanded?
- )
- aria.role.presentation =
- attribute role { string "presentation" }
-
- common.attrs.aria |= aria.presentation
-
-## progressbar
- aria.progressbar =
- ( aria.role.progressbar
- & aria.prop.valuemax? # not inherited
- & aria.prop.valuemin? # not inherited
- & aria.prop.valuenow? # not inherited
- & aria.prop.valuetext? # not inherited
- )
- aria.role.progressbar =
- attribute role { string "progressbar" }
-
- common.attrs.aria |= aria.progressbar
-
-## radio
- aria.radio =
- ( aria.role.radio
- & aria.state.checked #required!
- & aria.state.selected?
- )
- aria.role.radio =
- attribute role { string "radio" }
-
- common.attrs.aria |= aria.radio
-
-## radiogroup
- aria.radiogroup =
- ( aria.role.radiogroup
- & aria.prop.activedescendant?
- & aria.state.expanded?
- )
- aria.role.radiogroup =
- attribute role { string "radiogroup" }
-
- common.attrs.aria |= aria.radiogroup
-
-## region
- aria.region =
- ( aria.role.region
- & aria.state.expanded?
- )
- aria.role.region =
- attribute role { string "region" }
-
- common.attrs.aria |= aria.region
-
-## row
- aria.row =
- ( aria.role.row
- & aria.prop.level? # not inherited
- & aria.state.selected? # not inherited
- & aria.prop.activedescendant?
- & aria.state.expanded?
- )
- aria.role.row =
- attribute role { string "row" }
-
- common.attrs.aria |= aria.row
-
-# XXX rowheader
-
-## search
- aria.search =
- ( aria.role.search
- & aria.state.expanded?
- )
- aria.role.search =
- attribute role { string "search" }
-
- common.attrs.aria |= aria.search
- common.attrs.aria.landmark.search |= aria.search
-
-## separator
- aria.separator =
- ( aria.role.separator
- & aria.state.expanded?
- )
- aria.role.separator =
- attribute role { string "separator" }
-
- common.attrs.aria |= aria.separator
-
-## slider
- aria.slider =
- ( aria.role.slider
- & aria.prop.valuemax
- & aria.prop.valuemin
- & aria.prop.valuenow
- & aria.prop.valuetext
- )
- aria.role.slider =
- attribute role { string "slider" }
-
- common.attrs.aria |= aria.slider
-
-## spinbutton
- aria.spinbutton =
- ( aria.role.spinbutton
- & aria.prop.activedescendant?
- & aria.prop.valuemax
- & aria.prop.valuemin
- & aria.prop.valuenow
- & aria.prop.valuetext
- )
- aria.role.spinbutton =
- attribute role { string "spinbutton" }
-
- common.attrs.aria |= aria.spinbutton
-
-## status
- aria.status =
- ( aria.role.status
- & aria.prop.activedescendant?
- & aria.state.expanded?
- )
- aria.role.status =
- attribute role { string "status" }
-
- common.attrs.aria |= aria.status
-
-## tab
- aria.tab =
- ( aria.role.tab
- & aria.state.selected?
- & aria.state.expanded?
- )
- aria.role.tab =
- attribute role { string "tab" }
-
- common.attrs.aria |= aria.tab
-
-## tablist
- aria.tablist =
- ( aria.role.tablist
- & aria.prop.activedescendant?
- & aria.state.expanded?
- )
- aria.role.tablist =
- attribute role { string "tablist" }
-
-## tabpanel
- aria.tabpanel =
- ( aria.role.tabpanel
- & aria.state.expanded?
- )
- aria.role.tabpanel =
- attribute role { string "tabpanel" }
-
- common.attrs.aria |= aria.tabpanel
-
-## textbox
- aria.textbox =
- ( aria.role.textbox
- & aria.prop.autocomplete? # not inherited
- & aria.prop.multiline? # not inherited
- & aria.prop.readonly? # not inherited
- )
- aria.role.textbox =
- attribute role { string "textbox" }
-
- common.attrs.aria |= aria.textbox
-
-## timer
- aria.timer =
- ( aria.role.timer
- & aria.prop.activedescendant?
- & aria.state.expanded?
- )
- aria.role.timer =
- attribute role { string "timer" }
-
- common.attrs.aria |= aria.timer
-
-## toolbar
- aria.toolbar =
- ( aria.role.toolbar
- & aria.prop.activedescendant?
- & aria.state.expanded?
- )
- aria.role.toolbar =
- attribute role { string "toolbar" }
-
- common.attrs.aria |= aria.toolbar
-
-## tooltip
- aria.tooltip =
- ( aria.role.tooltip
- & aria.state.expanded?
- )
- aria.role.tooltip =
- attribute role { string "tooltip" }
-
- common.attrs.aria |= aria.tooltip
-
-## tree
- aria.tree =
- ( aria.role.tree
- & aria.prop.multiselectable? # not inherited
- & aria.prop.activedescendant?
- & aria.state.expanded?
- )
- aria.role.tree =
- attribute role { string "tree" }
-
- common.attrs.aria |= aria.tree
-
-## treegrid
- aria.treegrid =
- ( aria.role.treegrid
- & aria.prop.activedescendant?
- & aria.state.expanded?
- & aria.prop.level?
- & aria.prop.multiselectable?
- & aria.prop.readonly?
- )
- aria.role.treegrid =
- attribute role { string "treegrid" }
-
- common.attrs.aria |= aria.treegrid
-
-## treeitem
- aria.treeitem =
- ( aria.role.treeitem
- & aria.state.checked?
- & aria.state.expanded?
- & aria.prop.level?
- & aria.prop.posinset?
- & aria.state.selected?
- & aria.prop.setsize?
- )
- aria.role.treeitem =
- attribute role { string "treeitem" }
-
- common.attrs.aria |= aria.treeitem
-
-
diff --git a/xml/relaxng/testData/highlighting/html5/block.rnc b/xml/relaxng/testData/highlighting/html5/block.rnc
deleted file mode 100644
index 8bfb86abedee..000000000000
--- a/xml/relaxng/testData/highlighting/html5/block.rnc
+++ /dev/null
@@ -1,196 +0,0 @@
-datatypes w = "http://whattf.org/datatype-draft"
-
-# #####################################################################
-## RELAX NG Schema for HTML 5: Basic Prose Markup #
-# #####################################################################
-
-# #####################################################################
-## Paragraph-Level
-
-## Paragraph: <p>
-
- p.elem =
- element p { p.inner & p.attrs }
- p.attrs =
- ( common.attrs
- & common.attrs.aria?
- )
- p.inner =
- ( common.inner.phrasing ) # REVISIT lists in span?
-
- common.elem.flow |= p.elem
-
-## Hint Transition: <hr>
-
- hr.elem =
- element hr { hr.inner & hr.attrs }
- hr.attrs =
- ( common.attrs )
- hr.inner =
- ( empty )
-
- common.elem.flow |= hr.elem
-
-# #####################################################################
-## Preformatting Blocks
-
-## Preformatted Text: <pre>
-
- pre.elem =
- element pre { pre.inner & pre.attrs }
- pre.attrs =
- ( common.attrs
- & common.attrs.aria?
- )
- pre.inner =
- ( common.inner.phrasing )
-
- common.elem.flow |= pre.elem
-
-# #####################################################################
-## Simple Lists
-
-## Unordered List: <ul>
-
- ul.elem =
- element ul { ul.inner & ul.attrs }
- ul.attrs =
- ( common.attrs
- & ( common.attrs.aria
- | common.attrs.aria.implicit.region
- )?
- )
- ul.inner =
- ( li.elem* )
-
- common.elem.flow |= ul.elem
-
-## Unordered List Item: <li>
-
- li.elem =
- element li { li.inner & li.attrs }
- li.attrs =
- ( common.attrs
- & ( common.attrs.aria
- | common.attrs.aria.implicit.listitem
- )?
- )
- li.inner =
- ( common.inner.flow )
-
-## Ordered List: <ol>
-
- ol.elem =
- element ol { ol.inner & ol.attrs }
- ol.attrs =
- ( common.attrs
- & ol.attrs.start?
- & ol.attrs.reversed?
- & ( common.attrs.aria
- | common.attrs.aria.implicit.region
- )?
- )
- ol.attrs.start =
- attribute start {
- common.data.integer
- }
- ol.attrs.reversed =
- attribute reversed {
- w:string "reversed" | w:string ""
- }
- ol.inner =
- ( oli.elem* )
-
- common.elem.flow |= ol.elem
-
-## Ordered List Item: <li>
-
- oli.elem =
- element li { oli.inner & oli.attrs }
- oli.attrs =
- ( common.attrs
- & oli.attrs.value?
- & ( common.attrs.aria
- | common.attrs.aria.implicit.listitem
- )?
- )
- oli.attrs.value =
- attribute value {
- common.data.integer
- }
- oli.inner =
- ( common.inner.flow )
-
-# #####################################################################
-## Definition Lists
-
-## Definition List: <dl>
-
- dl.elem =
- element dl { dl.inner & dl.attrs }
- dl.attrs =
- ( common.attrs
- & common.attrs.aria?
- )
- dl.inner =
- ( ( dt.elem+
- , dd.elem+
- )*
- )
-
- common.elem.flow |= dl.elem
-
-## Definition Term: <dt>
-
- dt.elem =
- element dt { dt.inner & dt.attrs }
- dt.attrs =
- ( common.attrs
- & common.attrs.aria?
- )
- dt.inner =
- ( common.inner.phrasing )
-
-## Definition Description: <dd>
-
- dd.elem =
- element dd { dd.inner & dd.attrs }
- dd.elem.phrasing =
- element dd { dd.inner.phrasing & dd.attrs }
- dd.attrs =
- ( common.attrs
- & common.attrs.aria?
- )
- dd.inner =
- ( common.inner.flow )
- dd.inner.phrasing =
- ( common.inner.phrasing )
-
-# #####################################################################
-## Miscellaneous Elements
-
-## Generic Container: <div>
-
- div.elem =
- element div { div.inner & div.attrs }
- div.attrs =
- ( common.attrs
- & common.attrs.aria?
- )
- div.inner =
- ( style.elem.scoped*
- , common.inner.flow
- )
-
- common.elem.flow |= div.elem
-
-## Title or Explanatory Caption: <legend>
-
- legend.elem =
- element legend { legend.inner & legend.attrs }
- legend.attrs =
- ( common.attrs
- & common.attrs.aria.implicit.region?
- )
- legend.inner =
- ( common.inner.phrasing )
diff --git a/xml/relaxng/testData/highlighting/html5/common.rnc b/xml/relaxng/testData/highlighting/html5/common.rnc
deleted file mode 100644
index dada4b68d50b..000000000000
--- a/xml/relaxng/testData/highlighting/html5/common.rnc
+++ /dev/null
@@ -1,393 +0,0 @@
-datatypes w = "http://whattf.org/datatype-draft"
-
-# #####################################################################
-## RELAX NG Schema for HTML 5: Common Definitions #
-# #####################################################################
-
-
-# #####################################################################
-## Language Parameters - redefine in inclusion block as necessary #
-# #####################################################################
-
-## HTML vs. XHTML restrictions
-
- XMLonly = empty
- HTMLonly = notAllowed
-
-## HTML 4 Compatibility - set to notAllowed to disallow markup introduced in HTML 5
-# (This only affects mixed-version modules; wholly HTML5
-# modules should simply be left out of the inclusion list.)
-
- v5only = empty
-
-## HTML Compatibility Switches - set to notAllowed to disallow
-
- ## XML features that can't be roundtripped HTML <-> XHTML
- # (xml:base on elements other than <html>)
- nonRoundtrippable = empty
-
- ## XML features that can't be serialized as HTML
- nonHTMLizable = empty
-
-# #####################################################################
-## Wildcards #
-# #####################################################################
-
-## Any attribute from any namespace
-
- common.attr.anything =
- attribute * { text }*
-
-## Any element from any namespace
-
- common.elem.anything =
- element * { common.inner.anything & common.attr.anything }
-
-## Any content from any namespace
-
- common.inner.anything =
- ( text
- & common.elem.anything*
- )
-
-# #####################################################################
-## Common Element Classes #
-# #####################################################################
-
-## Metadata Elements
-
- common.elem.metadata =
- ( notAllowed )
-
-## Phrase Elements
-
- common.elem.phrasing =
- ( notAllowed )
-
-## Prose Elements
-
- common.elem.flow =
- ( common.elem.phrasing )
-
-
-# #####################################################################
-## Common Content Models #
-# #####################################################################
-
-## Metadata Content
-
- common.inner.metadata =
- ( common.elem.metadata* )
-
-## Phrase Content
-
- common.inner.phrasing =
- ( text & common.elem.phrasing* )
-
-## Prose Content
-
- common.inner.flow =
- ( text & common.elem.flow* ) # REVISIT <style scoped>
-
-# #####################################################################
-## Common Attributes #
-# #####################################################################
-
-# When updating, check <bdo> definition too
-
-common.attrs =
- ( common.attrs.basic
- & common.attrs.i18n
- & common.attrs.present
- & common.attrs.other
- )
-
-common.attrs.basic =
- ( ( common.attrs.id
- | common.attrs.xml-id
- )? # REVISIT assuming only either one is allowed
- & common.attrs.class?
- & common.attrs.title?
- & common.attrs.base?
- & common.attrs.space?
- )
- common.attrs.id =
- attribute id {
- common.data.id
- }
- common.attrs.xml-id =
- attribute xml:id {
- xsd:NCName
- } & XMLonly
- common.attrs.class =
- attribute class {
- common.data.tokens
- }
- common.attrs.title =
- attribute title {
- text
- }
- common.attrs.base =
- common.attrs.xmlbase
- & nonRoundtrippable
- common.attrs.xmlbase =
- attribute xml:base {
- common.data.uri
- } & XMLonly
- common.attrs.space =
- common.attrs.xmlspace
- common.attrs.xmlspace =
- attribute xml:space {
- string "preserve" # REVISIT this is not allowed per spec
- } & XMLonly
-
-common.attrs.i18n =
- ( common.attrs.dir?
- & common.attrs.language?
- )
- common.attrs.dir =
- attribute dir {
- w:string "ltr" | w:string "rtl"
- }
- # This lang definition is a hack for enviroments where
- # the HTML5 parser maps lang to xml:lang.
- # Sameness check left to Schematron
- common.attrs.language =
- ( common.attrs.xmllang?
- & common.attrs.lang?
- )
- common.attrs.lang =
- attribute lang {
- common.data.langcode
- } & XMLonly
- common.attrs.xmllang =
- attribute xml:lang {
- common.data.langcode
- }
-# common.attrs.language =
-# ( common.attrs.lang
-# | common.attrs.xmllang
-# )
-# common.attrs.lang =
-# attribute lang {
-# common.data.langcode
-# } & HTMLonly
-# common.attrs.xmllang =
-# attribute xml:lang {
-# common.data.langcode
-# } & XMLonly
-
-common.attrs.present =
- ( common.attrs.style?
- & common.attrs.tabindex?
- & common.attrs.accesskey?
- )
- common.attrs.style =
- attribute style {
- string
- }
- common.attrs.tabindex =
- attribute tabindex {
- common.data.integer
- }
- # REVISIT move style to a module and bundle tabindex with ARIA
- common.attrs.accesskey =
- attribute accesskey {
- common.data.keylabellist
- }
-
-common.attrs.other =
- empty
-
-# #####################################################################
-## Common Datatypes #
-# #####################################################################
-
-## Names and Tokens
-
- common.data.tokens =
- list { token* }
-
- common.data.browsing-context =
- w:browsing-context
-
- common.data.browsing-context-or-keyword =
- w:browsing-context-or-keyword
-# xsd:string {
-# pattern = "()|([^_].*)|(_[bB][lL][aA][nN][kK])|(_[sS][eE][lL][fF])|(_[pP][aA][rR][eE][nN][tT])|(_[tT][oO][pP])"
-# }
-
-
-## IDs and IDREFs
-
- common.data.id =
- w:ID
-# xsd:string {
-# pattern = "\S+"
-# }
-
- common.data.idref =
- w:IDREF
-
- common.data.idrefs =
- w:IDREFS
-
- common.data.name =
- w:ID #FIXME
-
- common.data.hash-name =
- w:hash-name
-# xsd:string {
-# pattern = "#.+"
-# }
-
-## Numerical
-
- common.data.integer =
- w:integer
-# xsd:string {
-# pattern = "-?[0-9]+"
-# }
-
- common.data.integer.positive =
- w:integer-positive
-# xsd:string {
-# pattern = "0*[1-9][0-9]*"
-# }
-
- common.data.integer.non-negative =
- w:integer-non-negative
-# xsd:string {
-# pattern = "[0-9]+"
-# }
-
-# common.data.percent =
-# xsd:string {
-# pattern = "(100)|([1-9]?[0-9](\.[0-9]+)?)%"
-# }
-
- common.data.float =
- w:float
-# xsd:string {
-# pattern = "-?[0-9]+(\.[0-9]+)?([eE]-?[0-9]+)?"
-# }
-
- common.data.float.positive =
- w:float-positive
-# xsd:string {
-# pattern = "(0*[1-9][0-9]*(\.[0-9]+)?)|([0-9]+(\.0*[1-9][0-9]*)?)([eE]-?[0-9]+)?"
-# }
-
- common.data.float.non-negative =
- w:float-non-negative
-# xsd:string {
-# pattern = "[0-9]+(\.[0-9]+)?([eE]-?[0-9]+)?"
-# }
-
-## Temporal
-
- common.data.datetime =
- w:datetime-tz
-
- common.data.date-or-time =
- w:date-or-time
-
-## IRIs
-
- common.data.uri =
- w:string "" | w:iri-ref
-
- common.data.uris =
- list { w:iri-ref* }
-
- common.data.uri.absolute =
- w:iri
-
-## <link type='icon'> sizes
-
- common.data.sizes =
-# list { w:sizes }
- list {
- xsd:string {
- pattern = "[1-9][0-9]*x[1-9][0-9]*"
- }+
- }
-
-## MIME types
-
- common.data.mimetype =
- w:mime-type
-
-## Encodings
-
- common.data.charset =
- w:charset
-
- common.data.meta-charset =
- w:meta-charset
-
-## Refresh
-
- common.data.refresh =
- w:refresh
-
-## Default style
-
- common.data.default-style =
- string
-# w:default-style
-
-## Media Queries
-
- common.data.mediaquery =
- w:media-query
-
-## Language Codes
-
- common.data.langcode =
- w:string "" | w:language
-
-## List of Key Labels
- common.data.keylabellist =
- w:keylabellist
-
-## Microdata Identifier
- common.data.microdata-identifier =
- w:microdata-identifier
-
-## Zero
- common.data.zero =
- w:zero
-
-# #####################################################################
-## WF2 Module Hook #
-# #####################################################################
-
-common-form.attrs.form = ( notAllowed )
-
-# #####################################################################
-## ARIA Module Hooks #
-# #####################################################################
-
-common.attrs.aria = ( notAllowed )
-common.attrs.aria.implicit.button = ( notAllowed )
-common.attrs.aria.implicit.input = ( notAllowed )
-common.attrs.aria.implicit.region = ( notAllowed )
-common.attrs.aria.implicit.group = ( notAllowed )
-common.attrs.aria.implicit.th = ( notAllowed )
-common.attrs.aria.implicit.structure = ( notAllowed )
-common.attrs.aria.implicit.link = ( notAllowed )
-common.attrs.aria.implicit.listitem = ( notAllowed )
-common.attrs.aria.implicit.img = ( notAllowed )
-common.attrs.aria.implicit.select = ( notAllowed )
-common.attrs.aria.landmark.application = ( notAllowed )
-common.attrs.aria.landmark.banner = ( notAllowed )
-common.attrs.aria.landmark.complementary = ( notAllowed )
-common.attrs.aria.landmark.contentinfo = ( notAllowed )
-common.attrs.aria.landmark.main = ( notAllowed )
-common.attrs.aria.landmark.navigation = ( notAllowed )
-common.attrs.aria.landmark.search = ( notAllowed )
-# per ARIA spec: article, document, and note are not actually landmarks
-common.attrs.aria.landmark.article = ( notAllowed )
-common.attrs.aria.landmark.document = ( notAllowed )
-common.attrs.aria.landmark.note = ( notAllowed )
diff --git a/xml/relaxng/testData/highlighting/html5/core-scripting.rnc b/xml/relaxng/testData/highlighting/html5/core-scripting.rnc
deleted file mode 100644
index 1b1f9c23c38b..000000000000
--- a/xml/relaxng/testData/highlighting/html5/core-scripting.rnc
+++ /dev/null
@@ -1,331 +0,0 @@
-datatypes w = "http://whattf.org/datatype-draft"
-
-# #####################################################################
-## RELAX NG Schema for HTML 5: Core Scripting #
-# #####################################################################
-
-# #####################################################################
-## Scripting Elements
-
-## Inline Scripts: <script>
-
- script.elem.embedded =
- element script { script.inner.embedded & script.attrs.embedded }
- script.attrs.embedded =
- ( common.attrs
- & script.attrs.type?
- & script.attrs.language? # restricted in Schematron
- )
- script.elem.imported =
- element script { script.inner.imported & script.attrs.imported }
- script.attrs.imported =
- ( common.attrs
- & script.attrs.src
- & script.attrs.defer?
- & script.attrs.async?
- & script.attrs.type?
- & script.attrs.charset?
- & script.attrs.language? # restricted in Schematron
- )
- script.attrs.src =
- attribute src {
- common.data.uri
- }
- script.attrs.defer =
- attribute defer {
- w:string "defer" | w:string ""
- }
- script.attrs.async =
- attribute async {
- w:string "async" | w:string ""
- } & v5only
- script.attrs.type =
- attribute type {
- common.data.mimetype # XXX without charset parameter!
- }
- script.attrs.charset =
- attribute charset {
- common.data.charset
- }
- script.attrs.language =
- attribute language {
- string
- }
- script.inner.embedded =
- ( common.inner.anything )
- script.inner.imported =
- ( common.inner.anything )
-
- script.elem =
- ( script.elem.embedded
- | script.elem.imported
- )
-
- common.elem.metadata |= script.elem
- common.elem.phrasing |= script.elem
-
-## Fallback Unscripted Content: <noscript>
-
- noscript.elem.head =
- element noscript { noscript.inner.head & noscript.attrs }
- & HTMLonly
- noscript.inner.head =
- ( link.elem
- | meta.http-equiv.default-style.elem
- | meta.http-equiv.refresh.elem
- | style.elem
- )*
- noscript.elem.phrasing =
- element noscript { noscript.inner.phrasing & noscript.attrs }
- & HTMLonly
- noscript.inner.phrasing =
- ( common.inner.phrasing )
- noscript.elem.flow =
- element noscript { noscript.inner.flow & noscript.attrs }
- & HTMLonly
- noscript.inner.flow =
- ( common.inner.flow )
- noscript.attrs =
- ( common.attrs )
-
- common.elem.metadata |= noscript.elem.head
- common.elem.phrasing |= noscript.elem.phrasing
- common.elem.flow |= noscript.elem.flow
-
-# #####################################################################
-## Event Handler Attribute Definitions
-
- common.attrs.scripting &=
- ( scripting.attr.onabort?
- & scripting.attr.onblur?
- & scripting.attr.oncanplay?
- & scripting.attr.oncanplaythrough?
- & scripting.attr.onchange?
- & scripting.attr.onclick?
- & scripting.attr.oncontextmenu?
- & scripting.attr.ondblclick?
- & scripting.attr.ondrag?
- & scripting.attr.ondragend?
- & scripting.attr.ondragenter?
- & scripting.attr.ondragleave?
- & scripting.attr.ondragover?
- & scripting.attr.ondragstart?
- & scripting.attr.ondrop?
- & scripting.attr.ondurationchange?
- & scripting.attr.onemptied?
- & scripting.attr.onended?
- & scripting.attr.onerror?
- & scripting.attr.onfocus?
- & scripting.attr.onformchange?
- & scripting.attr.onforminput?
- & scripting.attr.oninput?
- & scripting.attr.oninvalid?
- & scripting.attr.onkeydown?
- & scripting.attr.onkeypress?
- & scripting.attr.onkeyup?
- & scripting.attr.onload?
- & scripting.attr.onloadeddata?
- & scripting.attr.onloadedmetadata?
- & scripting.attr.onloadstart?
- & scripting.attr.onmousedown?
- & scripting.attr.onmousemove?
- & scripting.attr.onmouseout?
- & scripting.attr.onmouseover?
- & scripting.attr.onmouseup?
- & scripting.attr.onmousewheel?
- & scripting.attr.onpause?
- & scripting.attr.onplay?
- & scripting.attr.onplaying?
- & scripting.attr.onprogress?
- & scripting.attr.onratechange?
- & scripting.attr.onreadystatechange?
- & scripting.attr.onscroll?
- & scripting.attr.onseeked?
- & scripting.attr.onseeking?
- & scripting.attr.onselect?
- & scripting.attr.onshow?
- & scripting.attr.onstalled?
- & scripting.attr.onsubmit?
- & scripting.attr.onsuspend?
- & scripting.attr.ontimeupdate?
- & scripting.attr.onvolumechange?
- & scripting.attr.onwaiting?
- )
-
- common.attrs.other &= common.attrs.scripting
-
- scripting.attr.onabort =
- attribute onabort { string }
- scripting.attr.onblur =
- attribute onblur { string }
- scripting.attr.oncanplay =
- attribute oncanplay { string }
- scripting.attr.oncanplaythrough =
- attribute oncanplaythrough { string }
- scripting.attr.onchange =
- attribute onchange { string }
- scripting.attr.onclick =
- attribute onclick { string }
- scripting.attr.oncontextmenu =
- attribute oncontextmenu { string }
- scripting.attr.ondblclick =
- attribute ondblclick { string }
- scripting.attr.ondrag =
- attribute ondrag { string }
- scripting.attr.ondragend =
- attribute ondragend { string }
- scripting.attr.ondragenter =
- attribute ondragenter { string }
- scripting.attr.ondragleave =
- attribute ondragleave { string }
- scripting.attr.ondragover =
- attribute ondragover { string }
- scripting.attr.ondragstart =
- attribute ondragstart { string }
- scripting.attr.ondrop =
- attribute ondrop { string }
- scripting.attr.ondurationchange =
- attribute ondurationchange { string }
- scripting.attr.onemptied =
- attribute onemptied { string }
- scripting.attr.onended =
- attribute onended { string }
- scripting.attr.onerror =
- attribute onerror { string }
- scripting.attr.onfocus =
- attribute onfocus { string }
- scripting.attr.onformchange =
- attribute onformchange { string }
- scripting.attr.onforminput =
- attribute onforminput { string }
- scripting.attr.oninput =
- attribute oninput { string }
- scripting.attr.oninvalid =
- attribute oninvalid { string }
- scripting.attr.onkeydown =
- attribute onkeydown { string }
- scripting.attr.onkeypress =
- attribute onkeypress { string }
- scripting.attr.onkeyup =
- attribute onkeyup { string }
- scripting.attr.onload =
- attribute onload { string }
- scripting.attr.onloadeddata =
- attribute onloadeddata { string }
- scripting.attr.onloadedmetadata =
- attribute onloadedmetadata { string }
- scripting.attr.onloadstart =
- attribute onloadstart { string }
- scripting.attr.onmousedown =
- attribute onmousedown { string }
- scripting.attr.onmousemove =
- attribute onmousemove { string }
- scripting.attr.onmouseout =
- attribute onmouseout { string }
- scripting.attr.onmouseover =
- attribute onmouseover { string }
- scripting.attr.onmouseup =
- attribute onmouseup { string }
- scripting.attr.onmousewheel =
- attribute onmousewheel { string }
- scripting.attr.onpause =
- attribute onpause { string }
- scripting.attr.onplay =
- attribute onplay { string }
- scripting.attr.onplaying =
- attribute onplaying { string }
- scripting.attr.onprogress =
- attribute onprogress { string }
- scripting.attr.onratechange =
- attribute onratechange { string }
- scripting.attr.onreadystatechange =
- attribute onreadystatechange { string }
- scripting.attr.onscroll =
- attribute onscroll { string }
- scripting.attr.onseeked =
- attribute onseeked { string }
- scripting.attr.onseeking =
- attribute onseeking { string }
- scripting.attr.onselect =
- attribute onselect { string }
- scripting.attr.onshow =
- attribute onshow { string }
- scripting.attr.onstalled =
- attribute onstalled { string }
- scripting.attr.onsubmit =
- attribute onsubmit { string }
- scripting.attr.onsuspend =
- attribute onsuspend { string }
- scripting.attr.ontimeupdate =
- attribute ontimeupdate { string }
- scripting.attr.onvolumechange =
- attribute onvolumechange { string }
- scripting.attr.onwaiting =
- attribute onwaiting { string }
-
-# scripting.attr.common =
-# ( scripting.attr.mouse
-# & scripting.attr.keyboard
-# & scripting.attr.focus
-# )
-#
-# scripting.attr.mouse =
-# ( scripting.attr.mouse.click?
-# & scripting.attr.mouse.dblclick?
-# & scripting.attr.mouse.down?
-# & scripting.attr.mouse.up?
-# & scripting.attr.mouse.over?
-# & scripting.attr.mouse.move?
-# & scripting.attr.mouse.out?
-# )
-# scripting.attr.mouse.click =
-# attribute onclick { string }
-# scripting.attr.mouse.dblclick =
-# attribute ondblclick { string }
-# scripting.attr.mouse.down =
-# attribute onmousedown { string }
-# scripting.attr.mouse.up =
-# attribute onmouseup { string }
-# scripting.attr.mouse.over =
-# attribute onmouseover { string }
-# scripting.attr.mouse.move =
-# attribute onmousemove { string }
-# scripting.attr.mouse.out =
-# attribute onmouseout { string }
-#
-# scripting.attr.keyboard =
-# ( scripting.attr.keyboard.press?
-# & scripting.attr.keyboard.down?
-# & scripting.attr.keyboard.up?
-# )
-# scripting.attr.keyboard.press =
-# attribute onkeypress { string }
-# scripting.attr.keyboard.down =
-# attribute onkeydown { string }
-# scripting.attr.keyboard.up =
-# attribute onkeyup { string }
-#
-#
-# scripting.attr.focus =
-# ( scripting.attr.focus.gain?
-# & scripting.attr.focus.lose?
-# )
-# scripting.attr.focus.gain =
-# attribute onfocus { string }
-# scripting.attr.focus.lose =
-# attribute onblur { string }
-#
-# scripting.attr.loading =
-# ( scripting.attr.loading.load?
-# & scripting.attr.loading.unload?
-# )
-# scripting.attr.loading.load =
-# attribute onload { string }
-# scripting.attr.loading.unload =
-# attribute onunload { string }
-
-
-# #####################################################################
-# Event Handler Attribute Assignments
-
-# body.attrs &= scripting.attr.loading
diff --git a/xml/relaxng/testData/highlighting/html5/data.rnc b/xml/relaxng/testData/highlighting/html5/data.rnc
deleted file mode 100644
index 477f66b5d085..000000000000
--- a/xml/relaxng/testData/highlighting/html5/data.rnc
+++ /dev/null
@@ -1,69 +0,0 @@
-datatypes w = "http://whattf.org/datatype-draft"
-
-# #####################################################################
-## RELAX NG Schema for HTML 5: Static Data Markup #
-# #####################################################################
-
-## Time: <time>
-
- time.elem =
- element time { time.inner & time.attrs }
- time.attrs =
- ( common.attrs
- & time.attrs.datetime?
- & time.attrs.pubdate?
- )
- time.attrs.datetime =
- attribute datetime {
- common.data.date-or-time #REVISIT check format
- }
- time.attrs.pubdate =
- attribute pubdate {
- w:string "pubdate" | w:string ""
- }
- time.inner =
- ( common.inner.phrasing ) #Cannot enforce textContent format here
-
- common.elem.phrasing |= time.elem
-
-## Scalar Gauge: <meter>
-
- meter.elem =
- element meter { meter.inner & meter.attrs }
- meter.attrs =
- ( common.attrs
- & meter.attrs.value
- & meter.attrs.min?
- & meter.attrs.low?
- & meter.attrs.high?
- & meter.attrs.max?
- & meter.attrs.optimum?
- )
- meter.attrs.value =
- attribute value {
- common.data.float
- }
- meter.attrs.min =
- attribute min {
- common.data.float
- }
- meter.attrs.low =
- attribute low {
- common.data.float
- }
- meter.attrs.high =
- attribute high {
- common.data.float
- }
- meter.attrs.max =
- attribute max {
- common.data.float
- }
- meter.attrs.optimum =
- attribute optimum {
- common.data.float
- }
- meter.inner =
- ( common.inner.phrasing ) #Cannot enforce textContent format here
-
- common.elem.phrasing |= meter.elem
diff --git a/xml/relaxng/testData/highlighting/html5/embed.rnc b/xml/relaxng/testData/highlighting/html5/embed.rnc
deleted file mode 100644
index 29f7015fb941..000000000000
--- a/xml/relaxng/testData/highlighting/html5/embed.rnc
+++ /dev/null
@@ -1,565 +0,0 @@
-datatypes w = "http://whattf.org/datatype-draft"
-namespace local = ""
-
-# #####################################################################
-## RELAX NG Schema for HTML 5: Embedded Content #
-# #####################################################################
-
-#######################################################################
-## Replaced Content
-
-## Images: <img>
-
- img.elem =
- element img { img.inner & img.attrs }
- img.attrs =
- ( common.attrs
- & img.attrs.src
- & img.attrs.alt?
- & img.attrs.height?
- & img.attrs.width?
- & img.attrs.usemap?
- & img.attrs.ismap?
- & img.attrs.border? # obsolete
- & common.attrs.aria?
- )
- img.attrs.src =
- attribute src {
- common.data.uri
- }
- img.attrs.alt =
- attribute alt {
- text
- }
- img.attrs.height =
- attribute height {
- common.data.integer.non-negative
- }
- img.attrs.width =
- attribute width {
- common.data.integer.non-negative
- }
- img.attrs.usemap =
- attribute usemap {
- common.data.hash-name
- }
- img.attrs.ismap =
- attribute ismap {
- w:string "ismap" | w:string ""
- }
- img.attrs.border =
- attribute border {
- common.data.zero
- }
- img.inner =
- empty
-
- common.elem.phrasing |= img.elem
-
-## Plug-ins: <embed>
-
- embed.elem =
- element embed { embed.inner & embed.attrs }
- embed.attrs =
- ( common.attrs
- & embed.attrs.src?
- & embed.attrs.type?
- & embed.attrs.height?
- & embed.attrs.width?
- & embed.attrs.other*
- )
- embed.attrs.src =
- attribute src {
- common.data.uri
- }
- embed.attrs.type =
- attribute type {
- common.data.mimetype
- }
- embed.attrs.height =
- attribute height {
- common.data.integer.non-negative
- }
- embed.attrs.width =
- attribute width {
- common.data.integer.non-negative
- }
- embed.attrs.other = # REVISIT common.attrs
- attribute local:* - ( src
- | type
- | height
- | width
- | id
- | class
- | title
- | dir
- | lang
- | style
- | tabindex
- | contextmenu
- | contenteditable
- | draggable
- | hidden
- | onabort
- | onblur
- | oncanplay
- | oncanplaythrough
- | onchange
- | onclick
- | oncontextmenu
- | ondblclick
- | ondrag
- | ondragend
- | ondragenter
- | ondragleave
- | ondragover
- | ondragstart
- | ondrop
- | ondurationchange
- | onemptied
- | onended
- | onerror
- | onfocus
- | onformchange
- | onforminput
- | oninput
- | oninvalid
- | onkeydown
- | onkeypress
- | onkeyup
- | onload
- | onloadeddata
- | onloadedmetadata
- | onloadstart
- | onmousedown
- | onmousemove
- | onmouseout
- | onmouseover
- | onmouseup
- | onmousewheel
- | onpause
- | onplay
- | onplaying
- | onprogress
- | onratechange
- | onreadystatechange
- | onscroll
- | onseeked
- | onseeking
- | onselect
- | onshow
- | onstalled
- | onsubmit
- | onsuspend
- | ontimeupdate
- | onvolumechange
- | onwaiting
- | onafterprint
- | onbeforeprint
- | onbeforeunload
- | onhashchange
- | onmessage
- | onoffline
- | ononline
- | onpopstate
- | onredo
- | onresize
- | onstorage
- | onundo
- | onunload
- | role
- | aria-atomic
- | aria-busy
- | aria-controls
- | aria-describedby
- | aria-disabled
- | aria-dropeffect
- | aria-flowto
- | aria-grabbed
- | aria-haspopup
- | aria-hidden
- | aria-invalid
- | aria-label
- | aria-labelledby
- | aria-live
- | aria-owns
- | aria-relevant
- | aria-required
- | spellcheck
- | accesskey
- | itemref
- | itemprop
- | itemscope
- | itemtype
- | itemid
- | name
- | align
- )
- {
- string
- }
- embed.inner =
- empty
-
- common.elem.phrasing |= embed.elem
-
-## Generic Objects: <object>
-
- object.elem.flow =
- element object { object.inner.flow & object.attrs }
- object.elem.phrasing =
- element object { object.inner.phrasing & object.attrs }
- object.attrs =
- ( common.attrs
- & ( ( object.attrs.data
- & object.attrs.type?
- )
- | 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?
- )
- object.attrs.data =
- attribute data {
- common.data.uri
- }
- object.attrs.type =
- attribute type {
- common.data.mimetype
- }
- object.attrs.height =
- attribute height {
- common.data.integer.non-negative
- }
- object.attrs.width =
- 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.flow
- )
- object.inner.phrasing =
- ( param.elem*
- , 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 =
- element iframe { iframe.inner & iframe.attrs }
- iframe.attrs =
- ( common.attrs
- & iframe.attrs.src?
- & iframe.attrs.name?
- & iframe.attrs.width?
- & iframe.attrs.height?
- & iframe.attrs.sandbox?
- & iframe.attrs.seamless?
- & ( common.attrs.aria
- | common.attrs.aria.implicit.region
- )?
- )
- iframe.attrs.src =
- attribute src {
- common.data.uri
- }
- iframe.attrs.name =
- attribute name {
- common.data.browsing-context
- }
- iframe.attrs.height =
- attribute height {
- common.data.integer.non-negative
- }
- iframe.attrs.width =
- attribute width {
- common.data.integer.non-negative
- }
- iframe.attrs.seamless =
- attribute seamless {
- w:string "seamless" | w:string ""
- } & v5only
- iframe.attrs.sandbox =
- attribute sandbox
- { list
- { ( w:string "allow-top-navigation" )?
- , ( w:string "allow-same-origin" )?
- , ( w:string "allow-forms" )?
- , ( w:string "allow-scripts" )?
- }
- | list
- { ( w:string "allow-top-navigation" )?
- , ( w:string "allow-same-origin" )?
- , ( w:string "allow-scripts" )?
- , ( w:string "allow-forms" )?
- }
- | list
- { ( w:string "allow-top-navigation" )?
- , ( w:string "allow-forms" )?
- , ( w:string "allow-same-origin" )?
- , ( w:string "allow-scripts" )?
- }
- | list
- { ( w:string "allow-top-navigation" )?
- , ( w:string "allow-forms" )?
- , ( w:string "allow-scripts" )?
- , ( w:string "allow-same-origin" )?
- }
- | list
- { ( w:string "allow-top-navigation" )?
- , ( w:string "allow-scripts" )?
- , ( w:string "allow-same-origin" )?
- , ( w:string "allow-forms" )?
- }
- | list
- { ( w:string "allow-top-navigation" )?
- , ( w:string "allow-scripts" )?
- , ( w:string "allow-forms" )?
- , ( w:string "allow-same-origin" )?
- }
- | list
- { ( w:string "allow-same-origin" )?
- , ( w:string "allow-top-navigation" )?
- , ( w:string "allow-forms" )?
- , ( w:string "allow-scripts" )?
- }
- | list
- { ( w:string "allow-same-origin" )?
- , ( w:string "allow-top-navigation" )?
- , ( w:string "allow-scripts" )?
- , ( w:string "allow-forms" )?
- }
- | list
- { ( w:string "allow-forms" )?
- , ( w:string "allow-top-navigation" )?
- , ( w:string "allow-same-origin" )?
- , ( w:string "allow-scripts" )?
- }
- | list
- { ( w:string "allow-forms" )?
- , ( w:string "allow-top-navigation" )?
- , ( w:string "allow-scripts" )?
- , ( w:string "allow-same-origin" )?
- }
- | list
- { ( w:string "allow-scripts" )?
- , ( w:string "allow-top-navigation" )?
- , ( w:string "allow-same-origin" )?
- , ( w:string "allow-forms" )?
- }
- | list
- { ( w:string "allow-scripts" )?
- , ( w:string "allow-top-navigation" )?
- , ( w:string "allow-forms" )?
- , ( w:string "allow-same-origin" )?
- }
- | list
- { ( w:string "allow-same-origin" )?
- , ( w:string "allow-forms" )?
- , ( w:string "allow-top-navigation" )?
- , ( w:string "allow-scripts" )?
- }
- | list
- { ( w:string "allow-same-origin" )?
- , ( w:string "allow-scripts" )?
- , ( w:string "allow-top-navigation" )?
- , ( w:string "allow-forms" )?
- }
- | list
- { ( w:string "allow-forms" )?
- , ( w:string "allow-same-origin" )?
- , ( w:string "allow-top-navigation" )?
- , ( w:string "allow-scripts" )?
- }
- | list
- { ( w:string "allow-forms" )?
- , ( w:string "allow-scripts" )?
- , ( w:string "allow-top-navigation" )?
- , ( w:string "allow-same-origin" )?
- }
- | list
- { ( w:string "allow-scripts" )?
- , ( w:string "allow-same-origin" )?
- , ( w:string "allow-top-navigation" )?
- , ( w:string "allow-forms" )?
- }
- | list
- { ( w:string "allow-scripts" )?
- , ( w:string "allow-forms" )?
- , ( w:string "allow-top-navigation" )?
- , ( w:string "allow-same-origin" )?
- }
- | list
- { ( w:string "allow-same-origin" )?
- , ( w:string "allow-forms" )?
- , ( w:string "allow-scripts" )?
- , ( w:string "allow-top-navigation" )?
- }
- | list
- { ( w:string "allow-same-origin" )?
- , ( w:string "allow-scripts" )?
- , ( w:string "allow-forms" )?
- , ( w:string "allow-top-navigation" )?
- }
- | list
- { ( w:string "allow-forms" )?
- , ( w:string "allow-same-origin" )?
- , ( w:string "allow-scripts" )?
- , ( w:string "allow-top-navigation" )?
- }
- | list
- { ( w:string "allow-forms" )?
- , ( w:string "allow-scripts" )?
- , ( w:string "allow-same-origin" )?
- , ( w:string "allow-top-navigation" )?
- }
- | list
- { ( w:string "allow-scripts" )?
- , ( w:string "allow-same-origin" )?
- , ( w:string "allow-forms" )?
- , ( w:string "allow-top-navigation" )?
- }
- | list
- { ( w:string "allow-scripts" )?
- , ( w:string "allow-forms" )?
- , ( w:string "allow-same-origin" )?
- , ( w:string "allow-top-navigation" )?
- }
- } & v5only
- iframe.inner =
- ( text )
-
- common.elem.phrasing |= iframe.elem
-
-#######################################################################
-## Image Maps
-
-## Map Definition: <map>
-
- map.elem.flow =
- element map { map.inner.flow & map.attrs }
- map.elem.phrasing =
- element map { map.inner.phrasing & map.attrs }
- map.attrs =
- ( common.attrs
- & map.attrs.name
- ) # REVISIT make id required in Schematron
- map.attrs.name =
- attribute name {
- common.data.name
- }
- map.inner.flow =
- ( common.inner.flow )
- map.inner.phrasing =
- ( common.inner.phrasing )
-
- common.elem.flow |= map.elem.flow
- common.elem.phrasing |= map.elem.phrasing
-
-## Map Area Definition: <area>
-
- area.elem =
- element area { area.inner & area.attrs }
- area.attrs =
- ( common.attrs
- & ( area.attrs.alt
- & shared-hyperlink.attrs.href
- )?
- & shared-hyperlink.attrs.target?
- & shared-hyperlink.attrs.ping?
- & shared-hyperlink.attrs.rel?
- & shared-hyperlink.attrs.media?
- & shared-hyperlink.attrs.hreflang?
- & shared-hyperlink.attrs.type?
- & area.attrs.shape?
- )
- area.attrs.alt =
- attribute alt {
- text
- }
- area.attrs.shape =
- ( ( area.attrs.shape.rect? & area.attrs.coords.rect )
- | ( area.attrs.shape.circle & area.attrs.coords.circle )
- | ( area.attrs.shape.poly & area.attrs.coords.poly )
- | ( area.attrs.shape.default )
- )
- area.attrs.shape.rect =
- attribute shape {
- w:string "rect"
- }
- area.attrs.coords.rect =
- attribute coords {
- w:rectangle
-# xsd:token {
-# pattern = "-?[0-9]+,-?[0-9]+,-?[0-9]+,-?[0-9]+"
-# }
- }
- area.attrs.shape.circle =
- attribute shape {
- w:string "circle"
- }
- area.attrs.coords.circle =
- attribute coords {
- w:circle
-# xsd:token {
-# pattern = "-?[0-9]+,-?[0-9]+,[0-9]+"
-# }
- }
- area.attrs.shape.poly =
- attribute shape {
- w:string "poly"
- }
- area.attrs.coords.poly =
- attribute coords {
- w:polyline
-# xsd:token {
-# pattern = "-?[0-9]+,-?[0-9]+,-?[0-9]+,-?[0-9]+,-?[0-9]+,-?[0-9]+(,-?[0-9]+,-?[0-9]+)*"
-# }
- }
- area.attrs.shape.default =
- attribute shape {
- w:string "default"
- }
- area.inner =
- ( empty )
-
- common.elem.phrasing |= area.elem
diff --git a/xml/relaxng/testData/highlighting/html5/form-datatypes.rnc b/xml/relaxng/testData/highlighting/html5/form-datatypes.rnc
deleted file mode 100644
index 6debbce69bbe..000000000000
--- a/xml/relaxng/testData/highlighting/html5/form-datatypes.rnc
+++ /dev/null
@@ -1,52 +0,0 @@
-datatypes w = "http://whattf.org/datatype-draft"
-
-# #####################################################################
-## RELAX NG Schema for HTML 5: Datatypes related to forms #
-# #####################################################################
-
-## MIME types
-
- form.data.mimetypelist =
- w:mime-type-list
-
- form.data.charsetlist =
- string # FIXME should be a "a space- and/or comma-delimited
- # list of charset values"
-
-## ECMAScript Regular Expression
-
- form.data.pattern =
- w:pattern
-
-## Temporal
-
- form.data.datetime-local =
- w:datetime-local
-
- form.data.date =
- w:date
-
- form.data.month =
- w:month
-
- form.data.week =
- w:week
-
- form.data.time =
- w:time
-
-## Email
-
- form.data.emailaddress =
- w:email-address
-
- form.data.emailaddresslist =
- w:email-address-list
-
-## Color
-
- form.data.color =
- w:color
-# xsd:string {
-# pattern = "#[a-fA-F0-9]{6}"
-# }
diff --git a/xml/relaxng/testData/highlighting/html5/html5.rnc b/xml/relaxng/testData/highlighting/html5/html5.rnc
deleted file mode 100644
index 14c913aa1fce..000000000000
--- a/xml/relaxng/testData/highlighting/html5/html5.rnc
+++ /dev/null
@@ -1,56 +0,0 @@
-default namespace = "http://www.w3.org/1999/xhtml/html5"
-# #####################################################################
-## RELAX NG Schema for HTML 5 #
-# #####################################################################
-
- # To validate an HTML 5 document, you must first validate against #
- # this schema and then ALSO validate against assertions.sch #
-
- ## HTML flavor RELAX NG schemas can only be used after the #
- ## document has been transformed to well-formed XML. #
- ## - Insert closing slashes in all empty element tags #
- ## - Insert all optional start and end tags #
- ## - Add xmlns "http://www.w3.org/1999/xhtml" #
- ## - Properly escape <script> and <style> CDATA #
- ## - Parse and transform all HTML-only entities to numeric #
- ## character references #
- ## Obviously, syntax-checking involving these features cannot be #
- ## done by the RELAX NG schema and must be checked, along with the #
- ## <!DOCTYPE> requirement, by some other application. #
-
-# #####################################################################
-## Schema Framework & Parameters
-
-include "common.rnc" {
- # XHTML flavor #
- XMLonly = notAllowed
- HTMLonly = empty
- # HTML 4 compat #
- v5only = empty
- # HTML-serializability #
- nonHTMLizable = notAllowed
- # HTML-roundtrippability #
- nonRoundtrippable = notAllowed
-}
-
-# #####################################################################
-## Language Definitions
-
-start = html.elem
-
-include "meta.rnc"
-include "phrase.rnc"
-include "block.rnc"
-include "sectional.rnc"
-include "structural.rnc"
-include "revision.rnc"
-include "embed.rnc"
-include "ruby.rnc"
-include "media.rnc"
-include "core-scripting.rnc"
-include "tables.rnc"
-include "form-datatypes.rnc"
-include "web-forms.rnc"
-include "web-forms2.rnc"
-include "applications.rnc"
-include "data.rnc"
diff --git a/xml/relaxng/testData/highlighting/html5/html5exclusions.rnc b/xml/relaxng/testData/highlighting/html5/html5exclusions.rnc
deleted file mode 100644
index 1fa0915fbe09..000000000000
--- a/xml/relaxng/testData/highlighting/html5/html5exclusions.rnc
+++ /dev/null
@@ -1,63 +0,0 @@
-default namespace = "http://www.w3.org/1999/xhtml"
-# #####################################################################
-## RELAX NG Schema for (X)HTML 5: Exclusions #
-# #####################################################################
-
- ## This file is unmaintained. Please use assertions.sch instead.
-
-# #####################################################################
-## Schema Framework & Parameters
-
- start = normal.elem.all-inclusive
-
-# #####################################################################
-## Normal Element Patterns
-
-## Any attribute from any namespace
-
- normal.attr.anything =
- attribute * { text }*
-
-## Any element from any namespace except exceptional elements,
-## but allowing those elements as descendants
-
- normal.elem.all =
- element * - (dfn) {
- normal.elem.all-inclusive
- }
-
-## Any element from any namespace including exceptional elements
-
- normal.elem.all-inclusive =
- wildcard.elem.exclude-all | dfn.elem.exclude-self
-
-
-# #####################################################################
-## Exclusion Element Patterns
-
- # exclude all exceptional elements from the name classes;
- # list them explicitly in content models instead
-
-normal.elem.exclude-dfn =
- element * - (dfn) {
- normal.elem.exclude-dfn
- }
-
-dfn.elem.exclude-self =
- element dfn {
- ( normal.attr.anything
- & normal.elem.exclude-dfn
- )
- }
-
-# FIXME this part was cut off -- hsivonen
-wildcard.elem.exclude-all =
- notAllowed
-
-#FIXME no nested forms in HTML-serializable docs
-
-#FIXME no nested labels
-
-#FIXME no blockquote inside header or footer
-
-#FIXME exactly one hn in header
diff --git a/xml/relaxng/testData/highlighting/html5/media.rnc b/xml/relaxng/testData/highlighting/html5/media.rnc
deleted file mode 100644
index 7f692a869694..000000000000
--- a/xml/relaxng/testData/highlighting/html5/media.rnc
+++ /dev/null
@@ -1,151 +0,0 @@
-datatypes w = "http://whattf.org/datatype-draft"
-
-# #####################################################################
-## RELAX NG Schema for HTML 5: Advanced Embedded Content #
-# #####################################################################
-
-## Attributes Common to Media Elements
-
- # src not included
- media.attrs =
- ( media.attrs.autoplay?
- & media.attrs.preload?
- & media.attrs.controls?
- & media.attrs.loop?
- )
- media.attrs.autoplay =
- attribute autoplay {
- w:string "autoplay" | w:string ""
- }
- media.attrs.preload =
- attribute preload {
- w:string "none" | w:string "metadata" | w:string "auto" | w:string ""
- }
- media.attrs.controls =
- attribute controls {
- w:string "controls" | w:string ""
- }
- media.attrs.loop =
- attribute loop {
- w:string "loop" | w:string ""
- }
-
-## Source: <source>
-
- source.elem =
- element source { source.inner & source.attrs }
- source.attrs =
- ( common.attrs
- & source.attrs.src
- & source.attrs.type?
- & source.attrs.media?
- )
- source.attrs.src =
- attribute src {
- common.data.uri
- }
- source.attrs.type =
- attribute type {
- common.data.mimetype
- }
- source.attrs.media =
- attribute media {
- common.data.mediaquery
- }
- source.inner =
- ( empty )
-
-## Media Source
-
- media.source =
- ( media.attrs.src
- | source.elem*
- )
-
- media.attrs.src =
- attribute src {
- common.data.uri
- }
-
-## Video: <video>
-
- video.elem.flow =
- element video { video.inner.flow & video.attrs }
- video.elem.phrasing =
- element video { video.inner.phrasing & video.attrs }
- video.attrs =
- ( common.attrs
- & media.attrs
- & video.attrs.poster?
- & video.attrs.height?
- & video.attrs.width?
- )
- video.attrs.poster =
- attribute poster {
- common.data.uri
- }
- video.attrs.height =
- attribute height {
- common.data.integer.non-negative
- }
- video.attrs.width =
- attribute width {
- common.data.integer.non-negative
- }
- video.inner.flow =
- ( media.source
- , common.inner.flow
- )
- video.inner.phrasing =
- ( media.source
- , common.inner.phrasing
- )
-
- common.elem.flow |= video.elem.flow
- common.elem.phrasing |= video.elem.phrasing
-
-## Audio: <audio>
-
- audio.elem.flow =
- element audio { audio.inner.flow & audio.attrs }
- audio.elem.phrasing =
- element audio { audio.inner.phrasing & audio.attrs }
- audio.attrs =
- ( common.attrs
- & media.attrs
- )
- audio.inner.flow =
- ( media.source
- , common.inner.flow
- )
- audio.inner.phrasing =
- ( media.source
- , common.inner.phrasing
- )
-
- common.elem.flow |= audio.elem.flow
- common.elem.phrasing |= audio.elem.phrasing
-
-## Captioned Content: <figure>
-
- figure.elem =
- element figure { figure.inner & figure.attrs }
- figure.attrs =
- ( common.attrs
- & common.attrs.aria.implicit.img?
- )
- figure.inner =
- ( ( figcaption.elem, common.inner.flow )
- | ( common.inner.flow, figcaption.elem? )
- )
-
- common.elem.flow |= figure.elem
-
-## Figure caption: <figcaption>
-
- figcaption.elem =
- element figcaption { figcaption.inner & figcaption.attrs }
- figcaption.attrs =
- ( common.attrs )
- figcaption.inner =
- ( common.inner.flow )
diff --git a/xml/relaxng/testData/highlighting/html5/meta.rnc b/xml/relaxng/testData/highlighting/html5/meta.rnc
deleted file mode 100644
index ba0b886330ed..000000000000
--- a/xml/relaxng/testData/highlighting/html5/meta.rnc
+++ /dev/null
@@ -1,331 +0,0 @@
-datatypes w = "http://whattf.org/datatype-draft"
-
-# #####################################################################
-## RELAX NG Schema for HTML 5: Global Structure & Metadata #
-# #####################################################################
-
-## Root Element: <html>
-
- html.elem =
- element html { html.inner & html.attrs }
- html.attrs =
- ( common.attrs )
- html.inner =
- ( head.elem
- , body.elem
- )
-
-## Metadata Container: <head>
-
- head.elem =
- element head { head.inner & head.attrs }
- head.attrs =
- ( common.attrs
-# & head.attrs.profile?
- )
-# head.attrs.profile =
-# attribute profile {
-# common.data.uris #REVISIT should these be absolute (zero or more)
-# }
- head.inner =
- ( title.elem
- & base.elem? # REVISIT need a non-schema checker or Schematron
- & common.inner.metadata # Limit encoding decl position in Schematron
- )
-# head.inner =
-# ( meta.elem.encoding?
-# , ( title.elem
-# & base.elem? # REVISIT need a non-schema checker or Schematron
-# & common.inner.metadata
-# )
-# )
-
-## Content Container: <body>
-
- body.elem =
- element body { body.inner & body.attrs }
- body.attrs =
- ( common.attrs
- & ( common.attrs.aria.landmark.application
- | common.attrs.aria.landmark.document
- | common.attrs.aria.implicit.structure
- )?
- & body.attrs.onafterprint?
- & body.attrs.onbeforeprint?
- & body.attrs.onbeforeunload?
- & body.attrs.onhashchange?
- & body.attrs.onmessage?
- & body.attrs.onoffline?
- & body.attrs.ononline?
- & body.attrs.onpopstate?
- & body.attrs.onredo?
- & body.attrs.onresize?
- & body.attrs.onstorage?
- & body.attrs.onundo?
- & body.attrs.onunload?
- )
- body.inner =
- ( common.inner.flow )
-
- body.attrs.onafterprint =
- attribute onafterprint { string }
- body.attrs.onbeforeprint =
- attribute onbeforeprint { string }
- body.attrs.onbeforeunload =
- attribute onbeforeunload { string }
- body.attrs.onhashchange =
- attribute onhashchange { string }
- body.attrs.onmessage =
- attribute onmessage { string }
- body.attrs.onoffline =
- attribute onoffline { string }
- body.attrs.ononline =
- attribute ononline { string }
- body.attrs.onpopstate =
- attribute onpopstate { string }
- body.attrs.onredo =
- attribute onredo { string }
- body.attrs.onresize =
- attribute onresize { string }
- body.attrs.onstorage =
- attribute onstorage { string }
- body.attrs.onundo =
- attribute onundo { string }
- body.attrs.onunload =
- attribute onunload { string }
-
-## Document Title: <title>
-
- title.elem =
- element title { title.inner & title.attrs }
- title.attrs =
- ( common.attrs )
- title.inner =
- ( text )
-
-## Base URI: <base>
-
- base.elem =
- element base { base.inner & base.attrs }
- base.attrs =
- ( common.attrs
- & ( ( base.attrs.href
- & base.attrs.target?
- )
- | base.attrs.target
- )
- )
- base.attrs.href =
- attribute href {
- common.data.uri
- }
- base.attrs.target =
- attribute target {
- common.data.browsing-context-or-keyword
- }
- base.inner =
- ( empty )
-
-## Global Relationships: <link>
-
- link.elem =
- element link { link.inner & link.attrs }
- link.attrs =
- ( common.attrs
- & shared-hyperlink.attrs.href
- & shared-hyperlink.attrs.rel
- & shared-hyperlink.attrs.hreflang?
- & shared-hyperlink.attrs.media?
- & shared-hyperlink.attrs.type?
- & link.attrs.sizes?
- # link.attrs.title included in common.attrs
- )
- link.attrs.sizes =
- attribute sizes {
- w:string "any" | common.data.sizes
- }
- link.inner =
- ( empty )
-
- common.elem.metadata |= link.elem
-
-## Global Style: <style>
-
- style.elem =
- element style { style.inner & style.attrs }
- style.attrs =
- ( common.attrs
- & style.attrs.type?
- & style.attrs.media?
- # style.attrs.title included in common.attrs
- )
- style.attrs.type =
- attribute type {
- common.data.mimetype
- }
- style.attrs.media =
- attribute media {
- common.data.mediaquery
- }
- style.inner =
- ( common.inner.anything )
-
- common.elem.metadata |= style.elem
-
-## Scoped Style: <style scoped>
-
- style.elem.scoped =
- element style { style.inner & style.scoped.attrs }
- style.scoped.attrs =
- ( common.attrs
- & style.attrs.type?
- & style.attrs.media?
- & style.attrs.scoped
- # style.attrs.title included in common.attrs
- )
- style.attrs.scoped =
- attribute scoped {
- w:string "scoped" | w:string ""
- }
-
-## Name-Value Metadata: <meta name>
-
- meta.name.elem =
- element meta { meta.inner & meta.name.attrs }
- meta.name.attrs =
- ( common.attrs.basic
- & common.attrs.i18n
- & common.attrs.present
- & common.attrs.other
- & meta.name.attrs.name
- & meta.name.attrs.content
- )
- meta.name.attrs.name =
- attribute name {
- string
- }
- meta.name.attrs.content =
- attribute content {
- string
- }
- meta.inner =
- ( empty )
-
- common.elem.metadata |= meta.name.elem
-
-## "refresh" pragma directive: <meta http-equiv='refresh'>
-
- meta.http-equiv.refresh.elem =
- element meta { meta.inner & meta.http-equiv.refresh.attrs }
- meta.http-equiv.refresh.attrs =
- ( common.attrs.basic
- & common.attrs.i18n
- & common.attrs.present
- & common.attrs.other
- & meta.http-equiv.attrs.http-equiv.refresh
- & meta.http-equiv.attrs.content.refresh
- )
- meta.http-equiv.attrs.http-equiv.refresh =
- attribute http-equiv {
- w:string "refresh"
- }
- meta.http-equiv.attrs.content.refresh =
- attribute content {
- common.data.refresh
- }
- common.elem.metadata |= meta.http-equiv.refresh.elem # not quite right per spec
- # if the definition is
- # reused in another language
-
-## "default-style" pragma directive: <meta http-equiv='default-style'>
-
- meta.http-equiv.default-style.elem =
- element meta { meta.inner & meta.http-equiv.default-style.attrs }
- meta.http-equiv.default-style.attrs =
- ( common.attrs.basic
- & common.attrs.i18n
- & common.attrs.present
- & common.attrs.other
- & meta.http-equiv.attrs.http-equiv.default-style
- & meta.http-equiv.attrs.content.default-style
- )
- meta.http-equiv.attrs.http-equiv.default-style =
- attribute http-equiv {
- w:string "default-style"
- }
- meta.http-equiv.attrs.content.default-style =
- attribute content {
- common.data.default-style
- }
-
- common.elem.metadata |= meta.http-equiv.default-style.elem # not quite right per spec
- # if the definition is
- # reused in another language
-
-## "content-language" pragma directive: <meta http-equiv='content-language'> (obsolete)
-
- 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 {
- common.data.langcode
- }
-
- common.elem.metadata |= meta.http-equiv.content-language.elem # not quite right per spec
- # if the definition is
- # reused in another language
-
-## Inline Character Encoding Statement for HTML: <meta charset>
-
- meta.charset.elem =
- element meta { meta.inner & meta.charset.attrs }
- meta.charset.attrs =
- ( common.attrs.basic
- & common.attrs.i18n
- & common.attrs.present
- & common.attrs.other
- & meta.charset.attrs.charset
- )
- meta.charset.attrs.charset =
- attribute charset {
- (common.data.charset & HTMLonly)
- | (xsd:string {
- pattern = "[uU][tT][fF]-8"
- } & XMLonly )
- }
-
-## Inline Character Encoding Statement for HTML: <meta http-equiv='content-type'>
-
- meta.http-equiv.content-type.elem =
- element meta { meta.inner & meta.http-equiv.content-type.attrs }
- & HTMLonly
- meta.http-equiv.content-type.attrs =
- ( common.attrs.basic
- & common.attrs.i18n
- & common.attrs.present
- & common.attrs.other
- & meta.http-equiv.attrs.http-equiv.content-type
- & meta.http-equiv.attrs.content.content-type
- )
- meta.http-equiv.attrs.http-equiv.content-type =
- attribute http-equiv {
- w:string "content-type"
- }
- meta.http-equiv.attrs.content.content-type =
- attribute content {
- common.data.meta-charset
- }
-
- common.elem.metadata |= ( meta.charset.elem | meta.http-equiv.content-type.elem )
diff --git a/xml/relaxng/testData/highlighting/html5/microdata.rnc b/xml/relaxng/testData/highlighting/html5/microdata.rnc
deleted file mode 100644
index 72ab7ac4a335..000000000000
--- a/xml/relaxng/testData/highlighting/html5/microdata.rnc
+++ /dev/null
@@ -1,80 +0,0 @@
-datatypes w = "http://whattf.org/datatype-draft"
-
-# #####################################################################
-## RELAX NG Schema for HTML 5: Microdata #
-# #####################################################################
-
-common.attrs.microdata =
- ( common.attrs.microdata.itemref?
- & common.attrs.microdata.itemprop?
- & common.attrs.microdata.itemscope?
- & common.attrs.microdata.itemtype?
- & common.attrs.microdata.itemid?
- )
- common.attrs.microdata.itemref =
- attribute itemref {
- common.data.idrefs
- }
- common.attrs.microdata.itemprop =
- attribute itemprop {
- common.data.microdata-identifier
- }
- common.attrs.microdata.itemscope =
- attribute itemscope {
- w:string "itemscope" | w:string ""
- }
- common.attrs.microdata.itemtype =
- attribute itemtype {
- common.data.uri
- }
- common.attrs.microdata.itemid =
- attribute itemid {
- common.data.uri
- }
-
-common.attrs &= common.attrs.microdata
-
- link.elem.phrasing =
- element link { link.inner & link.phrasing.attrs }
- link.phrasing.attrs =
- ( common.attrs.basic
- & common.attrs.i18n
- & common.attrs.present
- & common.attrs.other
- & common.attrs.microdata.itemprop
- & common.attrs.microdata.itemref?
- & common.attrs.microdata.itemscope?
- & common.attrs.microdata.itemtype?
- & common.attrs.microdata.itemid?
- & shared-hyperlink.attrs.href
- & shared-hyperlink.attrs.rel
- & shared-hyperlink.attrs.hreflang?
- & shared-hyperlink.attrs.media?
- & shared-hyperlink.attrs.type?
- & link.attrs.sizes?
- # link.attrs.title included in common.attrs
- )
- common.elem.phrasing |= link.elem.phrasing
-
-## Property Metadata: <meta itemprop>
-
- meta.itemprop.elem =
- element meta { meta.inner & meta.itemprop.attrs }
- meta.itemprop.attrs =
- ( common.attrs.basic
- & common.attrs.i18n
- & common.attrs.present
- & common.attrs.other
- & common.attrs.microdata.itemprop
- & common.attrs.microdata.itemref?
- & common.attrs.microdata.itemscope?
- & common.attrs.microdata.itemtype?
- & common.attrs.microdata.itemid?
- & meta.itemprop.attrs.content
- )
- meta.itemprop.attrs.content =
- attribute content {
- string
- }
- common.elem.metadata |= meta.itemprop.elem
- common.elem.phrasing |= meta.itemprop.elem
diff --git a/xml/relaxng/testData/highlighting/html5/phrase.rnc b/xml/relaxng/testData/highlighting/html5/phrase.rnc
deleted file mode 100644
index 8925ccb7fa37..000000000000
--- a/xml/relaxng/testData/highlighting/html5/phrase.rnc
+++ /dev/null
@@ -1,324 +0,0 @@
-datatypes w = "http://whattf.org/datatype-draft"
-
-# #####################################################################
-## RELAX NG Schema for HTML 5: Phrase Markup #
-# #####################################################################
-
-## Contextual Hyperlink: <a>
-
- a.elem.phrasing =
- element a { a.inner.phrasing & a.attrs }
- a.elem.flow =
- element a { a.inner.flow & a.attrs }
- a.attrs =
- ( common.attrs
- & a.attrs.name?
- & shared-hyperlink.attrs.href?
- & shared-hyperlink.attrs.target?
- & shared-hyperlink.attrs.rel?
- & shared-hyperlink.attrs.hreflang?
- & shared-hyperlink.attrs.media?
- & shared-hyperlink.attrs.type?
- & shared-hyperlink.attrs.ping?
- & ( common.attrs.aria
- | common.attrs.aria.implicit.link
- )?
- )
- a.attrs.name =
- attribute name {
- common.data.id # XXX not what the spec says
- }
- a.inner.phrasing =
- ( common.inner.phrasing )
- a.inner.flow =
- ( common.inner.flow )
-
- common.elem.phrasing |= a.elem.phrasing
- common.elem.flow |= a.elem.flow
-
-## Shared hyperlink attributes
-
- shared-hyperlink.attrs.href =
- attribute href {
- common.data.uri
- }
- shared-hyperlink.attrs.target =
- attribute target {
- common.data.browsing-context-or-keyword
- }
- shared-hyperlink.attrs.rel =
- attribute rel {
- common.data.tokens
- }
- shared-hyperlink.attrs.hreflang =
- attribute hreflang {
- common.data.langcode
- }
- shared-hyperlink.attrs.media =
- attribute media {
- common.data.mediaquery
- }
- shared-hyperlink.attrs.type =
- attribute type {
- common.data.mimetype
- }
- shared-hyperlink.attrs.ping =
- attribute ping {
- common.data.uris
- } & v5only
-
-## Emphatic Stress: <em>
-
- em.elem =
- element em { em.inner & em.attrs }
- em.attrs =
- ( common.attrs
- & common.attrs.aria?
- )
- em.inner =
- ( common.inner.phrasing )
-
- common.elem.phrasing |= em.elem
-
-## Strong Importance: <strong>
-
- strong.elem =
- element strong { strong.inner & strong.attrs }
- strong.attrs =
- ( common.attrs
- & common.attrs.aria?
- )
- strong.inner =
- ( common.inner.phrasing )
-
- common.elem.phrasing |= strong.elem
-
-## Small Print and Side Comments: <small>
-
- small.elem =
- element small { small.inner & small.attrs }
- small.attrs =
- ( common.attrs
- & common.attrs.aria?
- )
- small.inner =
- ( common.inner.phrasing )
-
- common.elem.phrasing |= small.elem
-
-## Marked (Highlighted) Text: <mark>
-
- mark.elem =
- element mark { mark.inner & mark.attrs }
- & v5only
- mark.attrs =
- ( common.attrs )
- mark.inner =
- ( common.inner.phrasing )
-
- common.elem.phrasing |= mark.elem
-
-## Abbreviation: <abbr>
-
- abbr.elem =
- element abbr { abbr.inner & abbr.attrs }
- abbr.attrs =
- ( common.attrs
- # abbr.attrs.title included in common.attrs
- & common.attrs.aria?
- )
- abbr.inner =
- ( common.inner.phrasing )
-
- common.elem.phrasing |= abbr.elem
-
-## Defining Instance: <dfn>
-
- dfn.elem =
- element dfn { dfn.inner & dfn.attrs }
- dfn.attrs =
- ( common.attrs
- # dfn.attrs.title included in common.attrs
- & common.attrs.aria?
- )
- dfn.inner =
- ( common.inner.phrasing )
-
- common.elem.phrasing |= dfn.elem
-
-## Italic: <i>
-
- i.elem =
- element i { i.inner & i.attrs }
- i.attrs =
- ( common.attrs
- & common.attrs.aria?
- )
- i.inner =
- ( common.inner.phrasing )
-
- common.elem.phrasing |= i.elem
-
-## Bold: <b>
-
- b.elem =
- element b { b.inner & b.attrs }
- b.attrs =
- ( common.attrs
- & common.attrs.aria?
- )
- b.inner =
- ( common.inner.phrasing )
-
- common.elem.phrasing |= b.elem
-
-## Code Fragment: <code>
-
- code.elem =
- element code { code.inner & code.attrs }
- code.attrs =
- ( common.attrs
- & common.attrs.aria?
- )
- code.inner =
- ( common.inner.phrasing )
-
- common.elem.phrasing |= code.elem
-
-## Variable or Placeholder: <var>
-
- var.elem =
- element var { var.inner & var.attrs }
- var.attrs =
- ( common.attrs
- & common.attrs.aria?
- )
- var.inner =
- ( common.inner.phrasing )
-
- common.elem.phrasing |= var.elem
-
-## (Sample) Output: <samp>
-
- samp.elem =
- element samp { samp.inner & samp.attrs }
- samp.attrs =
- ( common.attrs
- & common.attrs.aria?
- )
- samp.inner =
- ( common.inner.phrasing )
-
- common.elem.phrasing |= samp.elem
-
-## User Input: <kbd>
-
- kbd.elem =
- element kbd { kbd.inner & kbd.attrs }
- kbd.attrs =
- ( common.attrs
- & common.attrs.aria?
- )
- kbd.inner =
- ( common.inner.phrasing )
-
- common.elem.phrasing |= kbd.elem
-
-## Superscript: <sup>
-
- sup.elem =
- element sup { sup.inner & sup.attrs }
- sup.attrs =
- ( common.attrs )
- sup.inner =
- ( common.inner.phrasing )
-
- common.elem.phrasing |= sup.elem
-
-## Subscript: <sub>
-
- sub.elem =
- element sub { sub.inner & sub.attrs }
- sub.attrs =
- ( common.attrs )
- sub.inner =
- ( common.inner.phrasing )
-
- common.elem.phrasing |= sub.elem
-
-## Quotation: <q>
-
- q.elem =
- element q { q.inner & q.attrs }
- q.attrs =
- ( common.attrs
- & q.attrs.cite?
- & common.attrs.aria?
- )
- q.attrs.cite =
- attribute cite {
- common.data.uri
- }
- q.inner =
- ( common.inner.phrasing )
-
- common.elem.phrasing |= q.elem
-
-## Title of Work: <cite>
-
- cite.elem =
- element cite { cite.inner & cite.attrs }
- cite.attrs =
- ( common.attrs
- & common.attrs.aria?
- )
- cite.inner =
- ( common.inner.phrasing )
-
- common.elem.phrasing |= cite.elem
-
-## Generic Span: <span>
-
- span.elem =
- element span { span.inner & span.attrs }
- span.attrs =
- ( common.attrs
- & common.attrs.aria?
- )
- span.inner =
- ( common.inner.phrasing ) # REVISIT allow ol and ul?
-
- common.elem.phrasing |= span.elem
-
-## Bidirectional Override: <bdo>
-
- bdo.elem =
- element bdo { bdo.inner & bdo.attrs }
- bdo.attrs =
- ( common.attrs ) # dir required in Schematron
- bdo.inner =
- ( common.inner.phrasing )
-
- common.elem.phrasing |= bdo.elem
-
-## Line Break: <br>
-
- br.elem =
- element br { br.inner & br.attrs }
- br.attrs =
- ( common.attrs )
- br.inner =
- ( empty )
-
- common.elem.phrasing |= br.elem
-
-## Line-break opportunity: <wbr>
-
- wbr.elem =
- element wbr { wbr.inner & wbr.attrs }
- wbr.attrs =
- ( common.attrs )
- wbr.inner =
- ( empty )
-
- common.elem.phrasing |= wbr.elem
diff --git a/xml/relaxng/testData/highlighting/html5/revision.rnc b/xml/relaxng/testData/highlighting/html5/revision.rnc
deleted file mode 100644
index b0d77a4527bb..000000000000
--- a/xml/relaxng/testData/highlighting/html5/revision.rnc
+++ /dev/null
@@ -1,52 +0,0 @@
-# #####################################################################
-## RELAX NG Schema for HTML 5: Revision Annotations #
-# #####################################################################
-
-## Common Attributes
-
- edit.attrs.cite =
- attribute cite {
- common.data.uri
- }
- edit.attrs.datetime =
- attribute datetime {
- common.data.datetime
- }
-
-## Inserts: <ins>
-
- ins.elem.flow =
- element ins { ins.inner.flow & ins.attrs }
- ins.elem.phrasing =
- element ins { ins.inner.phrasing & ins.attrs }
- ins.attrs =
- ( common.attrs
- & edit.attrs.cite?
- & edit.attrs.datetime?
- )
- ins.inner.flow =
- ( common.inner.flow )
- ins.inner.phrasing =
- ( common.inner.phrasing )
-
- common.elem.flow |= ins.elem.flow
- common.elem.phrasing |= ins.elem.phrasing
-
-## Deletions: <del>
-
- del.elem.flow =
- element del { del.inner.flow & del.attrs }
- del.elem.phrasing =
- element del { del.inner.phrasing & del.attrs }
- del.attrs =
- ( common.attrs
- & edit.attrs.cite?
- & edit.attrs.datetime?
- )
- del.inner.flow =
- ( common.inner.flow )
- del.inner.phrasing =
- ( common.inner.phrasing )
-
- common.elem.flow |= del.elem.flow
- common.elem.phrasing |= del.elem.phrasing
diff --git a/xml/relaxng/testData/highlighting/html5/ruby.rnc b/xml/relaxng/testData/highlighting/html5/ruby.rnc
deleted file mode 100644
index cd95ff855d29..000000000000
--- a/xml/relaxng/testData/highlighting/html5/ruby.rnc
+++ /dev/null
@@ -1,51 +0,0 @@
-datatypes w = "http://whattf.org/datatype-draft"
-namespace local = ""
-
-# #####################################################################
-## RELAX NG Schema for HTML 5: Ruby #
-# #####################################################################
-
-#######################################################################
-
-## Ruby Annotation: <ruby>
-
- ruby.elem =
- element ruby { ruby.inner & ruby.attrs }
- ruby.attrs =
- ( common.attrs
- & common.attrs.aria?
- )
- ruby.inner =
- ( ( common.inner.phrasing
- , ( rt.elem
- | ( rp.elem
- , rt.elem
- , rp.elem
- )
- )
- )+
- )
-
- common.elem.phrasing |= ruby.elem
-
-## Ruby Text: <rt>
-
- rt.elem =
- element rt { rt.inner & rt.attrs }
- rt.attrs =
- ( common.attrs
- & common.attrs.aria?
- )
- rt.inner =
- ( common.inner.phrasing )
-
-## Ruby Parenthesis: <rp>
-
- rp.elem =
- element rp { rp.inner & rp.attrs }
- rp.attrs =
- ( common.attrs
- & common.attrs.aria?
- )
- rp.inner =
- ( common.inner.phrasing )
diff --git a/xml/relaxng/testData/highlighting/html5/sectional.rnc b/xml/relaxng/testData/highlighting/html5/sectional.rnc
deleted file mode 100644
index f7931bc2ab71..000000000000
--- a/xml/relaxng/testData/highlighting/html5/sectional.rnc
+++ /dev/null
@@ -1,140 +0,0 @@
-# #####################################################################
-## RELAX NG Schema for HTML 5: Sectioning Markup #
-# #####################################################################
-
-# #####################################################################
-## Headings
-
-## Heading (Rank 1): <h1>
-
- h1.elem =
- element h1 { h1.inner & h1.attrs }
- h1.attrs =
- ( common.attrs
- & common.attrs.aria.implicit.structure?
- )
- h1.inner =
- ( common.inner.phrasing )
-
- common.elem.flow |= h1.elem
-
-## Heading (Rank 2): <h2>
-
- h2.elem =
- element h2 { h2.inner & h2.attrs }
- h2.attrs =
- ( common.attrs
- & common.attrs.aria.implicit.structure?
- )
- h2.inner =
- ( common.inner.phrasing )
-
- common.elem.flow |= h2.elem
-
-## Heading (Rank 3): <h3>
-
- h3.elem =
- element h3 { h3.inner & h3.attrs }
- h3.attrs =
- ( common.attrs
- & common.attrs.aria.implicit.structure?
- )
- h3.inner =
- ( common.inner.phrasing )
-
- common.elem.flow |= h3.elem
-
-## Heading (Rank 4): <h4>
-
- h4.elem =
- element h4 { h4.inner & h4.attrs }
- h4.attrs =
- ( common.attrs
- & common.attrs.aria.implicit.structure?
- )
- h4.inner =
- ( common.inner.phrasing )
-
- common.elem.flow |= h4.elem
-
-## Heading (Rank 5): <h5>
-
- h5.elem =
- element h5 { h5.inner & h5.attrs }
- h5.attrs =
- ( common.attrs
- & common.attrs.aria.implicit.structure?
- )
- h5.inner =
- ( common.inner.phrasing )
-
- common.elem.flow |= h5.elem
-
-## Heading (Rank 6): <h6>
-
- h6.elem =
- element h6 { h6.inner & h6.attrs }
- h6.attrs =
- ( common.attrs
- & common.attrs.aria.implicit.structure?
- )
- h6.inner =
- ( common.inner.phrasing )
-
- common.elem.flow |= h6.elem
-
-## Heading Group: <hgroup>
-
- hgroup.elem =
- element hgroup { hgroup.inner & hgroup.attrs }
- hgroup.attrs =
- ( common.attrs
- & common.attrs.aria.implicit.structure?
- )
- hgroup.inner =
- ( h1.elem
- | h2.elem
- | h3.elem
- | h4.elem
- | h5.elem
- | h6.elem
- )+
-
- common.elem.flow |= hgroup.elem
-
-# #####################################################################
-## Section Meta
-
-## Contact Info: <address>
-
- address.elem =
- element address { address.inner & address.attrs }
- address.attrs =
- ( common.attrs
- & common.attrs.aria.implicit.region?
- )
- address.inner =
- ( common.inner.flow )
-
- common.elem.flow |= address.elem
-
-# #####################################################################
-## Quotations
-
-## Block Quotes: <blockquote>
-
- blockquote.elem =
- element blockquote { blockquote.inner & blockquote.attrs }
- blockquote.attrs =
- ( common.attrs
- & blockquote.attrs.cite?
- & common.attrs.aria?
- )
- blockquote.attrs.cite =
- attribute cite {
- common.data.uri
- }
- blockquote.inner =
- ( common.inner.flow )
-
- common.elem.flow |= blockquote.elem
diff --git a/xml/relaxng/testData/highlighting/html5/structural.rnc b/xml/relaxng/testData/highlighting/html5/structural.rnc
deleted file mode 100644
index f79fcadeaf75..000000000000
--- a/xml/relaxng/testData/highlighting/html5/structural.rnc
+++ /dev/null
@@ -1,105 +0,0 @@
-# #####################################################################
-## RELAX NG Schema for HTML 5: Block Markup Added in HTML5 #
-# #####################################################################
-
-## Section: <section>
-
- section.elem =
- element section { section.inner & section.attrs }
- section.attrs =
- ( common.attrs
- & ( common.attrs.aria
- | common.attrs.aria.implicit.region
- )?
- )
- section.inner =
- ( style.elem.scoped*
- , common.inner.flow
- )
-
- common.elem.flow |= section.elem
-
-## Navigational Links: <nav>
-
- nav.elem =
- element nav { nav.inner & nav.attrs }
- nav.attrs =
- ( common.attrs
- & ( common.attrs.aria.implicit.region
- | common.attrs.aria.landmark.navigation
- )?
- )
- nav.inner =
- ( common.inner.flow )
-
- common.elem.flow |= nav.elem
-
-## Article: <article>
-
- article.elem =
- element article { article.inner & article.attrs }
- article.attrs =
- ( common.attrs
- & ( common.attrs.aria.implicit.region
- | common.attrs.aria.landmark.article
- | common.attrs.aria.landmark.main
- | common.attrs.aria.landmark.document
- | common.attrs.aria.landmark.application
- )?
- )
- article.inner =
- ( style.elem*
- , common.inner.flow
- )
-
- common.elem.flow |= article.elem
-
-## Tangential Aside: <aside>
-
- aside.elem =
- element aside { aside.inner & aside.attrs }
- aside.attrs =
- ( common.attrs
- & ( common.attrs.aria.implicit.region
- | common.attrs.aria.landmark.complementary
- | common.attrs.aria.landmark.search
- | common.attrs.aria.landmark.note
- )?
- )
- aside.inner =
- ( style.elem*
- , common.inner.flow
- )
-
- common.elem.flow |= aside.elem
-
-## Header: <header>
-
- header.elem =
- element header { header.inner & header.attrs }
- header.attrs =
- ( common.attrs
- & ( common.attrs.aria.implicit.region
- | common.attrs.aria.landmark.banner
- )?
- )
- header.inner =
- ( common.inner.flow )
-
- common.elem.flow |= header.elem
-
-## Footer: <footer>
-
- footer.elem =
- element footer { footer.inner & footer.attrs }
- footer.attrs =
- ( common.attrs
- & ( common.attrs.aria.implicit.region
- | common.attrs.aria.landmark.contentinfo
- )?
- )
- footer.inner =
- ( common.inner.flow )
-
- common.elem.flow |= footer.elem
-
diff --git a/xml/relaxng/testData/highlighting/html5/tables.rnc b/xml/relaxng/testData/highlighting/html5/tables.rnc
deleted file mode 100644
index ad5da39f3e71..000000000000
--- a/xml/relaxng/testData/highlighting/html5/tables.rnc
+++ /dev/null
@@ -1,224 +0,0 @@
-datatypes w = "http://whattf.org/datatype-draft"
-
-# #####################################################################
-## RELAX NG Schema for HTML 5: Tables #
-# #####################################################################
-
-# #####################################################################
-## Table Envelope
-
-## Table Datatypes
-
-# tables.data.multilen =
-# ( common.data.integer.positive
-# | common.data.percent
-# | xsd:token { pattern = "[0-9]+\*" } #REVISIT should this one be string?
-# )
-
-## Table Alignment Attributes
-
- tables.attrs.alignment =
- ( tables.attrs.align?
- & tables.attrs.char?
- & tables.attrs.valign?
- )
- tables.attrs.align =
- attribute align {
- ( w:string "left"
- | w:string "center"
- | w:string "right"
- | w:string "justify"
- | w:string "char"
- )
- }
- tables.attrs.char =
- attribute char {
- xsd:string { pattern = "." }
- }
- tables.attrs.valign =
- attribute valign {
- ( w:string "top"
- | w:string "middle"
- | w:string "bottom"
- | w:string "baseline"
- )
- }
-
-## Data Table: <table>
-
- table.elem =
- element table { table.inner & table.attrs }
- table.attrs =
- ( common.attrs
- & table.attrs.summary? # obsolete
- & common.attrs.aria?
- )
- table.attrs.summary =
- attribute summary {
- string
- }
- table.inner =
- ( caption.elem?
- , colgroup.elem*
- , thead.elem?
- , ( ( tfoot.elem
- , ( tbody.elem* | tr.elem+ )
- )
- | ( ( tbody.elem* | tr.elem+ )
- , tfoot.elem?
- )
- )
- )
-
- common.elem.flow |= table.elem
-
-## Table Caption: <caption>
-
- caption.elem =
- element caption { caption.inner & caption.attrs }
- caption.attrs =
- ( common.attrs
- & common.attrs.aria.implicit.region?
- )
- caption.inner =
- ( common.inner.flow )
-
-# #####################################################################
-## Table Super Structure
-
-## Table Column Group: <colgroup>
-
- colgroup.elem =
- element colgroup { colgroup.inner & colgroup.attrs }
- colgroup.attrs =
- ( common.attrs )
- colgroup.attrs.span =
- attribute span {
- common.data.integer.positive
- }
- colgroup.inner =
- ( col.elem*
- | colgroup.attrs.span?
- )
-
-## Table Column: <col>
-
- col.elem =
- element col { col.inner & col.attrs }
- col.attrs =
- ( common.attrs
- & col.attrs.span?
- )
- col.attrs.span =
- attribute span {
- common.data.integer.positive
- }
- col.inner =
- ( empty )
-
-## Table Header Row Group
-
- thead.elem =
- element thead { thead.inner & thead.attrs }
- thead.attrs =
- ( common.attrs )
- thead.inner =
- ( tr.elem* )
-
-## Table Footer Row Group
-
- tfoot.elem =
- element tfoot { tfoot.inner & tfoot.attrs }
- tfoot.attrs =
- ( common.attrs )
- tfoot.inner =
- ( tr.elem* )
-
-## Table Row Group
-
- tbody.elem =
- element tbody { tbody.inner & tbody.attrs }
- tbody.attrs =
- ( common.attrs )
- tbody.inner =
- ( tr.elem* )
-
-# #####################################################################
-## Cell Structure
-
-## Table Row
-
- tr.elem =
- element tr { tr.inner & tr.attrs }
- tr.attrs =
- ( common.attrs
- & common.attrs.aria?
- )
- tr.inner =
- ( ( td.elem | th.elem )* )
-
-## Common Table Cell Attributes
-
- tables.attrs.cell-structure =
- ( tables.attrs.colspan?
- & tables.attrs.rowspan?
- )
- tables.attrs.colspan =
- attribute colspan {
- common.data.integer.positive
- }
- tables.attrs.rowspan =
- attribute rowspan {
- common.data.integer.non-negative
- }
-
- tables.attrs.access-headers =
- ( tables.attrs.headers? )
- tables.attrs.headers =
- attribute headers {
- common.data.idrefs
- }
-
- tables.attrs.define-headers =
- ( tables.attrs.scope? )
- tables.attrs.scope =
- attribute scope {
- ( w:string "row"
- | w:string "col"
- | w:string "rowgroup"
- | w:string "colgroup"
- )
- }
- tables.attrs.abbr =
- attribute abbr {
- text
- }
-
-## Table Data Cell: <td>
-
- td.elem =
- element td { td.inner & td.attrs }
- td.attrs =
- ( common.attrs
- & tables.attrs.cell-structure
- & tables.attrs.headers?
-# & tables.attrs.alignment
- & common.attrs.aria?
- )
- td.inner =
- ( common.inner.flow )
-
-## Table Header Cells: <th>
-
- th.elem =
- element th { th.inner & th.attrs }
- th.attrs =
- ( common.attrs
- & tables.attrs.cell-structure
- & tables.attrs.scope?
- & tables.attrs.headers?
-# & tables.attrs.alignment
- & common.attrs.aria.implicit.th?
- )
- th.inner =
- ( common.inner.phrasing )
diff --git a/xml/relaxng/testData/highlighting/html5/web-forms-scripting.rnc b/xml/relaxng/testData/highlighting/html5/web-forms-scripting.rnc
deleted file mode 100644
index 63fe1c4dfa6d..000000000000
--- a/xml/relaxng/testData/highlighting/html5/web-forms-scripting.rnc
+++ /dev/null
@@ -1,27 +0,0 @@
-# #####################################################################
-## RELAX NG Schema for HTML 5: Web Forms 1.0 Scripting #
-# #####################################################################
-
- scripting.attr.form.select =
- attribute onselect { string }
- scripting.attr.form.change =
- attribute onchange { string }
-
-# input.text.attrs &=
-# ( scripting.attr.form.select?
-# )
-
-# shared-form.attrs &=
-# ( scripting.attr.form.change?
-# )
-
-# form.attrs &=
-# ( scripting.attr.form.reset?
-# & scripting.attr.form.submit?
-# )
- scripting.attr.form.submit =
- attribute onsubmit { string }
- scripting.attr.form.reset =
- attribute onreset { string }
-
-
diff --git a/xml/relaxng/testData/highlighting/html5/web-forms.rnc b/xml/relaxng/testData/highlighting/html5/web-forms.rnc
deleted file mode 100644
index 8c22d4818e9e..000000000000
--- a/xml/relaxng/testData/highlighting/html5/web-forms.rnc
+++ /dev/null
@@ -1,536 +0,0 @@
-datatypes w = "http://whattf.org/datatype-draft"
-
-# #####################################################################
-## RELAX NG Schema for HTML 5: Web Forms 1.0 markup #
-# #####################################################################
-
-## Shared attributes for form controls
-
- common-form.attrs =
- ( common-form.attrs.name?
- & common-form.attrs.disabled?
- )
-
- common-form.attrs.name =
- attribute name {
- string #REVISIT should this be restricted somehow? No & and = perhaps?
- }
-
- common-form.attrs.disabled =
- attribute disabled {
- w:string "disabled" | w:string ""
- }
-
- shared-form.attrs.readonly =
- attribute readonly {
- w:string "readonly" | w:string ""
- }
-
- shared-form.attrs.maxlength =
- attribute maxlength {
- common.data.integer.positive #REVISIT should this be non-negative?
- }
-
- shared-form.attrs.size =
- attribute size {
- common.data.integer.positive
- }
-
- # REVISIT tabindex goes in common.attrs
-
-## Shared attributes for <input>
-
- input.attrs.checked =
- attribute checked {
- w:string "checked" | w:string ""
- }
-
-## Text Field: <input type='text'>
-
- input.text.elem =
- element input { input.text.attrs }
- input.text.attrs =
- ( common.attrs
- & common-form.attrs
- & input.text.attrs.type?
- & shared-form.attrs.maxlength?
- & shared-form.attrs.readonly?
- & shared-form.attrs.size?
- & input.text.attrs.value?
- & ( common.attrs.aria
- | common.attrs.aria.implicit.input
- )?
- )
- input.text.attrs.type =
- attribute type {
- w:string "text"
- }
- input.text.attrs.value =
- attribute value {
- string #REVISIT "nominally" free of line breaks?
- }
-
- input.elem = input.text.elem
-
-## Password Field: <input type='password'>
-
- input.password.elem =
- element input { input.password.attrs }
- input.password.attrs =
- ( common.attrs
- & common-form.attrs
- & input.password.attrs.type
- & shared-form.attrs.maxlength?
- & shared-form.attrs.readonly?
- & shared-form.attrs.size?
- & input.password.attrs.value?
- & common.attrs.aria.implicit.input?
- )
- input.password.attrs.type =
- attribute type {
- w:string "password"
- }
- input.password.attrs.value =
- attribute value {
- string #REVISIT "nominally" free of line breaks?
- }
-
- input.elem |= input.password.elem
-
-## Checkbox: <input type='checkbox'>
-
- input.checkbox.elem =
- element input { input.checkbox.attrs }
- input.checkbox.attrs =
- ( common.attrs
- & common-form.attrs
- & input.checkbox.attrs.type
- & input.attrs.checked?
- & input.checkbox.attrs.value?
- & common.attrs.aria.implicit.input?
- )
- input.checkbox.attrs.type =
- attribute type {
- w:string "checkbox"
- }
- input.checkbox.attrs.value =
- attribute value {
- string #REVISIT require non-empty value?
- }
-
- input.elem |= input.checkbox.elem
-
-## Radiobutton: <input type='radio'>
-
- input.radio.elem =
- element input { input.radio.attrs }
- input.radio.attrs =
- ( common.attrs
- & common-form.attrs
- & input.radio.attrs.type
- & input.attrs.checked?
- & input.radio.attrs.value?
- & common.attrs.aria.implicit.input?
- )
- input.radio.attrs.type =
- attribute type {
- w:string "radio"
- }
- input.radio.attrs.value =
- attribute value {
- string #REVISIT require non-empty value?
- }
-
- input.elem |= input.radio.elem
-
-## Scripting Hook Button: <input type='button'>
-
- input.button.elem =
- element input { input.button.attrs }
- input.button.attrs =
- ( common.attrs
- & common-form.attrs
- & input.button.attrs.type
- & input.button.attrs.value?
- & ( common.attrs.aria
- | common.attrs.aria.implicit.button
- )?
- )
- input.button.attrs.type =
- attribute type {
- w:string "button"
- }
- input.button.attrs.value =
- attribute value {
- string #REVISIT require non-empty value?
- }
-
- input.elem |= input.button.elem
- #REVISIT should this be enabled by a scripting module only?
-
-## Submit Button: <input type='submit'>
-
- input.submit.elem =
- element input { input.submit.attrs }
- input.submit.attrs =
- ( common.attrs
- & common-form.attrs
- & input.submit.attrs.type
- & input.submit.attrs.value?
- & common.attrs.aria.implicit.button?
- )
- input.submit.attrs.type =
- attribute type {
- w:string "submit"
- }
- input.submit.attrs.value =
- attribute value {
- string #REVISIT require non-empty value?
- }
-
- input.elem |= input.submit.elem
-
-## Reset Button: <input type='reset'>
-
- input.reset.elem =
- element input { input.reset.attrs }
- input.reset.attrs =
- ( common.attrs
- & common-form.attrs
- & input.reset.attrs.type
- & input.reset.attrs.value?
- & common.attrs.aria.implicit.button?
- )
- input.reset.attrs.type =
- attribute type {
- w:string "reset"
- }
- input.reset.attrs.value =
- attribute value {
- string #REVISIT require non-empty value?
- }
-
- input.elem |= input.reset.elem
- # REVISIT does reset make sense outside a form?
-
-## File Upload: <input type='file'>
-
- input.file.elem =
- element input { input.file.attrs }
- input.file.attrs =
- ( common.attrs
- & common-form.attrs
- & input.file.attrs.type
- & input.file.attrs.accept?
- & common.attrs.aria.implicit.input?
- )
- input.file.attrs.type =
- attribute type {
- w:string "file"
- }
- input.file.attrs.accept =
- attribute accept {
- form.data.mimetypelist
- }
-
- input.elem |= input.file.elem
-
-## Hidden String: <input type='hidden'>
-
- input.hidden.elem =
- element input { input.hidden.attrs }
- input.hidden.attrs =
- ( common.attrs
- & common-form.attrs
- & input.hidden.attrs.type
- & input.hidden.attrs.value?
- )
- input.hidden.attrs.type =
- attribute type {
- w:string "hidden"
- }
- input.hidden.attrs.value =
- attribute value {
- string
- }
-
- input.elem |= input.hidden.elem
-
-## Image Submit Button: <input type='image'>
-
- input.image.elem =
- element input { input.image.attrs }
- input.image.attrs =
- ( common.attrs
- & common-form.attrs
- & input.image.attrs.type
- & input.image.attrs.alt
- & input.image.attrs.src?
- & ( common.attrs.aria
- | common.attrs.aria.implicit.button
- )?
- )
- input.image.attrs.type =
- attribute type {
- w:string "image"
- }
- input.image.attrs.alt =
- attribute alt {
- string # XXX non-empty
- }
- input.image.attrs.src =
- attribute src {
- common.data.uri
- }
-
- input.elem |= input.image.elem
-
- common.elem.phrasing |= input.elem
-
-## Text Area: <textarea>
-
- textarea.elem =
- element textarea { textarea.inner & textarea.attrs }
- textarea.attrs =
- ( common.attrs
- & common-form.attrs
- & shared-form.attrs.readonly?
- & textarea.attrs.rows-and-cols-wf1
- & common.attrs.aria.implicit.input?
- #FIXME onfocus, onblur, onselect,onchange
- )
- # This is ugly.
- textarea.attrs.rows-and-cols-wf1 =
- textarea.attrs.rows-and-cols-wf1.inner
- textarea.attrs.rows-and-cols-wf1.inner =
- ( textarea.attrs.cols
- & textarea.attrs.rows
- )
- textarea.attrs.cols =
- attribute cols {
- common.data.integer.positive
- }
- textarea.attrs.rows =
- attribute rows {
- common.data.integer.positive
- }
- textarea.inner =
- ( text )
-
- common.elem.phrasing |= textarea.elem
-
-# Due to limitations with interleave, handling single/multiple selection
-# enforcement in RELAX NG seems to be possible but really awkward.
-# Tried it. Leaving it to Schematron.
-
-## Select menu option: <option selected>
-
- option.elem =
- element option { option.inner & option.attrs }
- option.attrs =
- ( common.attrs
- & common-form.attrs.disabled?
- & option.attrs.selected?
- & option.attrs.label?
- & option.attrs.value?
- & common.attrs.aria.implicit.input?
- )
- option.attrs.selected =
- attribute selected {
- w:string "selected" | w:string ""
- }
- option.attrs.label =
- attribute label {
- string
- }
- option.attrs.value =
- attribute value {
- string
- }
- option.inner =
- ( text )
-
-## Option Group: <optgroup>
-
- optgroup.elem =
- element optgroup { optgroup.inner & optgroup.attrs }
- optgroup.attrs =
- ( common.attrs
- & optgroup.attrs.label
- & common-form.attrs.disabled?
- )
- optgroup.attrs.label =
- attribute label {
- string
- }
- optgroup.inner =
- ( option.elem* )
-
-## Selection Menu: <select>
-
- select.elem =
- element select { select.inner & select.attrs }
- select.attrs =
- ( common.attrs
- & common-form.attrs
- & select.attrs.size?
- & select.attrs.multiple?
- # FIXME onfocus, onblur, onchange
- )
- select.attrs.size =
- attribute size {
- common.data.integer.positive
- }
- select.attrs.multiple =
- attribute multiple {
- w:string "multiple" | w:string ""
- }
- select.inner =
- ( optgroup.elem*
- & option.elem*
- )
-
- common.elem.phrasing |= select.elem
-
-## Shared Definitions for Complex Button
-
- button.attrs.value =
- attribute value {
- string
- }
- button.inner =
- ( common.inner.phrasing )
-
-## Complex Submit Button: <button type='submit'>
-
- button.submit.elem =
- element button { button.inner & button.submit.attrs }
- button.submit.attrs =
- ( common.attrs
- & common-form.attrs
- & button.submit.attrs.type?
- & button.attrs.value?
- & common.attrs.aria.implicit.button?
- )
- button.submit.attrs.type =
- attribute type {
- w:string "submit"
- }
-
- button.elem = button.submit.elem
-
-## Complex Reset Button: <button type='reset'>
-
- button.reset.elem =
- element button { button.inner & button.reset.attrs }
- button.reset.attrs =
- ( common.attrs
- & common-form.attrs
- & button.reset.attrs.type
- & button.attrs.value? #REVISIT I guess this still affects the DOM
- & common.attrs.aria.implicit.button?
- )
- button.reset.attrs.type =
- attribute type {
- w:string "reset"
- }
-
- button.elem |= button.reset.elem
-
-## Complex Push Button: <button type='button'>
-
- button.button.elem =
- element button { button.inner & button.button.attrs }
- button.button.attrs =
- ( common.attrs
- & common-form.attrs
- & button.button.attrs.type
- & button.attrs.value? #REVISIT I guess this still affects the DOM
- & ( common.attrs.aria
- | common.attrs.aria.implicit.button
- )?
- )
- button.button.attrs.type =
- attribute type {
- w:string "button"
- }
-
- button.elem |= button.button.elem
-
- common.elem.phrasing |= button.elem
-
-## Form: <form>
-
- form.elem =
- element form { form.inner & form.attrs }
- form.attrs =
- ( common.attrs
- & form.attrs.action? #REVISIT Should this be required anyway?
- & form.attrs.method?
- & form.attrs.enctype?
- & common-form.attrs.name?
- & form.attrs.accept-charset?
- & ( common.attrs.aria
- | common.attrs.aria.implicit.region
- )?
- )
- form.attrs.action =
- attribute action {
- common.data.uri
- }
- form.attrs.method =
- attribute method {
- form.attrs.method.data
- }
- form.attrs.method.data =
- ( w:string "get" | w:string "post" )
- form.attrs.enctype =
- attribute enctype {
- form.attrs.enctype.data
- }
- form.attrs.enctype.data =
- ( w:string "application/x-www-form-urlencoded"
- | w:string "multipart/form-data"
- )
- form.attrs.accept-charset =
- attribute accept-charset {
- form.data.charsetlist
- }
- form.inner =
- ( common.inner.flow )
-
- common.elem.flow |= form.elem
-
-## Fieldset: <fieldset>
-
- fieldset.elem =
- element fieldset { fieldset.inner & fieldset.attrs }
- fieldset.attrs =
- ( common.attrs
- & common.attrs.aria.implicit.group?
- )
- fieldset.inner =
- ( legend.elem? #REVISIT should this be required?
- , common.inner.flow
- )
-
- common.elem.flow |= fieldset.elem
-
-## Label: <label>
-
- label.elem =
- element label { label.inner & label.attrs }
- label.attrs =
- ( common.attrs
- & label.attrs.for?
- & common.attrs.aria.implicit.region?
- )
- label.attrs.for =
- attribute for {
- common.data.idref
- }
- label.inner =
- ( common.inner.phrasing ) #REVISIT making obvious guess
-
- common.elem.phrasing |= label.elem
-
diff --git a/xml/relaxng/testData/highlighting/html5/web-forms2-scripting.rnc b/xml/relaxng/testData/highlighting/html5/web-forms2-scripting.rnc
deleted file mode 100644
index aedf81c68bb9..000000000000
--- a/xml/relaxng/testData/highlighting/html5/web-forms2-scripting.rnc
+++ /dev/null
@@ -1,15 +0,0 @@
-# #####################################################################
-## RELAX NG Schema for HTML 5: Web Forms 2.0 Scripting #
-# #####################################################################
-
- scripting.attr.form.formchange =
- attribute onformchange { string }
-
- scripting.attr.form.forminput =
- attribute onforminput { string }
-
-# output.attrs &=
-# ( scripting.attr.form.formchange?
-# & scripting.attr.form.forminput?
-# & scripting.attr.form.change?
-# )
diff --git a/xml/relaxng/testData/highlighting/html5/web-forms2.rnc b/xml/relaxng/testData/highlighting/html5/web-forms2.rnc
deleted file mode 100644
index 175c224a206c..000000000000
--- a/xml/relaxng/testData/highlighting/html5/web-forms2.rnc
+++ /dev/null
@@ -1,790 +0,0 @@
-datatypes w = "http://whattf.org/datatype-draft"
-
-# #####################################################################
-## RELAX NG Schema for HTML 5: Web Forms 2.0 markup #
-# #####################################################################
-
-## Shared attributes for form controls
-
- common-form.attrs &=
- ( common-form.attrs.form? )
-
- common-form.attrs.form |=
- attribute form {
- common.data.idref
- }
-
- shared-form.attrs.formaction =
- attribute formaction {
- common.data.uri
- }
-
- shared-form.attrs.formenctype =
- attribute formenctype {
- shared-form.attrs.formenctype.data
- }
- shared-form.attrs.formenctype.data =
- ( w:string "application/x-www-form-urlencoded"
- | w:string "multipart/form-data"
- | w:string "text/plain"
- )
-
- shared-form.attrs.formmethod =
- attribute formmethod {
- shared-form.attrs.formmethod.data
- }
- shared-form.attrs.formmethod.data =
- ( w:string "get"
- | w:string "post"
- | w:string "put"
- | w:string "delete"
- )
-
- shared-form.attrs.formtarget =
- attribute formtarget {
- common.data.browsing-context-or-keyword
- }
-
- shared-form.attrs.formnovalidate =
- attribute formnovalidate {
- w:string "formnovalidate" | w:string ""
- }
-
- shared-form.attrs.autofocus =
- attribute autofocus {
- w:string "autofocus" | w:string ""
- }
-
- shared-form.attrs.pattern =
- attribute pattern {
- form.data.pattern
- }
-
- shared-form.attrs.template =
- attribute template {
- common.data.idref
- }
-
- shared-form.attrs.required =
- attribute required {
- w:string "required" | w:string ""
- }
-
- shared-form.attrs.placeholder =
- attribute placeholder {
- string # FIXME line breaks
- }
-
-## Shared attributes for <input>
-
- input.attrs.autocomplete =
- attribute autocomplete {
- w:string "on" | w:string "off"
- }
-
- input.attrs.list =
- attribute list {
- common.data.idref
- }
-
- input.attrs.step.float =
- attribute step {
- w:string "any" | common.data.float.positive
- }
-
- input.attrs.step.integer =
- attribute step {
- w:string "any" | common.data.integer.positive
- }
-
- input.attrs.multiple =
- attribute multiple {
- w:string "multiple" | w:string ""
- }
-
-## Text Field: <input type='text'>, Extensions
-
- input.text.attrs &=
- ( input.attrs.autocomplete?
- & shared-form.attrs.autofocus?
- & input.attrs.list?
- & shared-form.attrs.pattern?
- & shared-form.attrs.required?
- & shared-form.attrs.placeholder?
- )
-
-## Password Field: <input type='password'>, Extensions
-
- input.password.attrs &=
- ( input.attrs.autocomplete?
- & shared-form.attrs.autofocus?
- & shared-form.attrs.pattern?
- & shared-form.attrs.required?
- & shared-form.attrs.placeholder?
- )
-
-## Checkbox <input type='checkbox'>, Extensions
-
- input.checkbox.attrs &=
- ( shared-form.attrs.autofocus?
- & shared-form.attrs.required?
- )
-
-## Radiobutton: <input type='radio'>, Extensions
-
- input.radio.attrs &=
- ( shared-form.attrs.autofocus?
- & shared-form.attrs.required?
- )
-
-## Scripting Hook Button: <input type='button'>, Extensions
-
- input.button.attrs &=
- ( shared-form.attrs.autofocus? )
-
-## Submit Button: <input type='submit'>, Extensions
-
- input.submit.attrs &=
- ( shared-form.attrs.formaction?
- & shared-form.attrs.autofocus?
- & shared-form.attrs.formenctype?
- & shared-form.attrs.formmethod?
- & shared-form.attrs.formtarget?
- & shared-form.attrs.formnovalidate?
- )
-
-## Reset Button: <input type='reset'>, Extensions
-
- input.reset.attrs &=
- ( shared-form.attrs.autofocus? )
-
-## File Upload: <input type='file'>, Extensions
-
- input.file.attrs &=
- ( shared-form.attrs.autofocus?
- & shared-form.attrs.required?
- & input.attrs.multiple?
- )
-
-## Image Submit Button: <input type='image'>, Extensions
-
- input.image.attrs &=
- ( shared-form.attrs.formaction?
- & shared-form.attrs.autofocus?
- & shared-form.attrs.formenctype?
- & shared-form.attrs.formmethod?
- & shared-form.attrs.formtarget?
- & shared-form.attrs.formnovalidate?
- & input.image.attrs.height?
- & input.image.attrs.width?
- )
- input.image.attrs.height =
- attribute height {
- common.data.integer.non-negative
- }
- input.image.attrs.width =
- attribute width {
- common.data.integer.non-negative
- }
-
-## Global Date and Time: <input type='datetime'>
-
- input.datetime.elem =
- element input { input.datetime.attrs }
- input.datetime.attrs =
- ( common.attrs
- & common-form.attrs
- & input.datetime.attrs.type
- & input.attrs.autocomplete?
- & shared-form.attrs.autofocus?
- & input.attrs.list?
- & input.datetime.attrs.min?
- & input.datetime.attrs.max?
- & input.attrs.step.float?
- & shared-form.attrs.readonly?
- & shared-form.attrs.required?
- & input.datetime.attrs.value?
- & common.attrs.aria.implicit.input?
- )
- input.datetime.attrs.type =
- attribute type {
- w:string "datetime"
- }
- input.datetime.attrs.min =
- attribute min {
- common.data.datetime
- }
- input.datetime.attrs.max =
- attribute max {
- common.data.datetime
- }
- input.datetime.attrs.value =
- attribute value {
- common.data.datetime
- }
-
- input.elem |= input.datetime.elem
-
-## Date and Time with No Time Zone Information: <input type='datetime-local'>
-
- input.datetime-local.elem =
- element input { input.datetime-local.attrs }
- input.datetime-local.attrs =
- ( common.attrs
- & common-form.attrs
- & input.datetime-local.attrs.type
- & input.attrs.autocomplete?
- & shared-form.attrs.autofocus?
- & input.attrs.list?
- & input.datetime-local.attrs.min?
- & input.datetime-local.attrs.max?
- & input.attrs.step.float?
- & shared-form.attrs.readonly?
- & shared-form.attrs.required?
- & input.datetime-local.attrs.value?
- & common.attrs.aria.implicit.input?
- )
- input.datetime-local.attrs.type =
- attribute type {
- w:string "datetime-local"
- }
- input.datetime-local.attrs.min =
- attribute min {
- form.data.datetime-local
- }
- input.datetime-local.attrs.max =
- attribute max {
- form.data.datetime-local
- }
- input.datetime-local.attrs.value =
- attribute value {
- form.data.datetime-local
- }
-
- input.elem |= input.datetime-local.elem
-
-## Date: <input type='date'>
-
- input.date.elem =
- element input { input.date.attrs }
- input.date.attrs =
- ( common.attrs
- & common-form.attrs
- & input.date.attrs.type
- & input.attrs.autocomplete?
- & shared-form.attrs.autofocus?
- & input.attrs.list?
- & input.date.attrs.min?
- & input.date.attrs.max?
- & input.attrs.step.integer?
- & shared-form.attrs.readonly?
- & shared-form.attrs.required?
- & input.date.attrs.value?
- & common.attrs.aria.implicit.input?
- )
- input.date.attrs.type =
- attribute type {
- w:string "date"
- }
- input.date.attrs.min =
- attribute min {
- form.data.date
- }
- input.date.attrs.max =
- attribute max {
- form.data.date
- }
- input.date.attrs.value =
- attribute value {
- form.data.date
- }
-
- input.elem |= input.date.elem
-
-## Year and Month: <input type='month'>
-
- input.month.elem =
- element input { input.month.attrs }
- input.month.attrs =
- ( common.attrs
- & common-form.attrs
- & input.month.attrs.type
- & input.attrs.autocomplete?
- & shared-form.attrs.autofocus?
- & input.attrs.list?
- & input.month.attrs.min?
- & input.month.attrs.max?
- & input.attrs.step.integer?
- & shared-form.attrs.readonly?
- & shared-form.attrs.required?
- & input.month.attrs.value?
- & common.attrs.aria.implicit.input?
- )
- input.month.attrs.type =
- attribute type {
- w:string "month"
- }
- input.month.attrs.min =
- attribute min {
- form.data.month
- }
- input.month.attrs.max =
- attribute max {
- form.data.month
- }
- input.month.attrs.value =
- attribute value {
- form.data.month
- }
-
- input.elem |= input.month.elem
-
-## Time without Time Zone Information: <input type='time'>
-
- input.time.elem =
- element input { input.time.attrs }
- input.time.attrs =
- ( common.attrs
- & common-form.attrs
- & input.time.attrs.type
- & input.attrs.autocomplete?
- & shared-form.attrs.autofocus?
- & input.attrs.list?
- & input.time.attrs.min?
- & input.time.attrs.max?
- & input.attrs.step.float?
- & shared-form.attrs.readonly?
- & shared-form.attrs.required?
- & input.time.attrs.value?
- & common.attrs.aria.implicit.input?
- )
- input.time.attrs.type =
- attribute type {
- w:string "time"
- }
- input.time.attrs.min =
- attribute min {
- form.data.time
- }
- input.time.attrs.max =
- attribute max {
- form.data.time
- }
- input.time.attrs.value =
- attribute value {
- form.data.time
- }
-
- input.elem |= input.time.elem
-
-## Year and Week: <input type='week'>
-
- input.week.elem =
- element input { input.week.attrs }
- input.week.attrs =
- ( common.attrs
- & common-form.attrs
- & input.week.attrs.type
- & input.attrs.autocomplete?
- & shared-form.attrs.autofocus?
- & input.attrs.list?
- & input.week.attrs.min?
- & input.week.attrs.max?
- & input.attrs.step.integer?
- & shared-form.attrs.readonly?
- & shared-form.attrs.required?
- & input.week.attrs.value?
- & common.attrs.aria.implicit.input?
- )
- input.week.attrs.type =
- attribute type {
- w:string "week"
- }
- input.week.attrs.min =
- attribute min {
- form.data.week
- }
- input.week.attrs.max =
- attribute max {
- form.data.week
- }
- input.week.attrs.value =
- attribute value {
- form.data.week
- }
-
- input.elem |= input.week.elem
-
-## Number: <input type='number'>
-
- input.number.elem =
- element input { input.number.attrs }
- input.number.attrs =
- ( common.attrs
- & common-form.attrs
- & input.number.attrs.type
- & input.attrs.autocomplete?
- & shared-form.attrs.autofocus?
- & input.attrs.list?
- & input.number.attrs.min?
- & input.number.attrs.max?
- & input.attrs.step.float?
- & shared-form.attrs.readonly?
- & shared-form.attrs.required?
- & input.number.attrs.value?
- & common.attrs.aria.implicit.input?
- )
- input.number.attrs.type =
- attribute type {
- w:string "number"
- }
- input.number.attrs.min =
- attribute min {
- common.data.float
- }
- input.number.attrs.max =
- attribute max {
- common.data.float
- }
- input.number.attrs.value =
- attribute value {
- common.data.float
- }
-
- input.elem |= input.number.elem
-
-## Imprecise Number: <input type='range'>
-
- input.range.elem =
- element input { input.range.attrs }
- input.range.attrs =
- ( common.attrs
- & common-form.attrs
- & input.range.attrs.type
- & input.attrs.autocomplete?
- & shared-form.attrs.autofocus?
- & input.attrs.list?
- & input.range.attrs.min?
- & input.range.attrs.max?
- & input.attrs.step.float?
- & input.range.attrs.value?
- & common.attrs.aria.implicit.input?
- )
- input.range.attrs.type =
- attribute type {
- w:string "range"
- }
- input.range.attrs.min =
- attribute min {
- common.data.float
- }
- input.range.attrs.max =
- attribute max {
- common.data.float
- }
- input.range.attrs.value =
- attribute value {
- common.data.float
- }
-
- input.elem |= input.range.elem
-
-## Email Address: <input type='email'>
-
- input.email.elem =
- element input { input.email.attrs }
- input.email.attrs =
- ( common.attrs
- & common-form.attrs
- & input.email.attrs.type
- & input.attrs.autocomplete?
- & shared-form.attrs.autofocus?
- & input.attrs.list?
- & shared-form.attrs.maxlength?
- & shared-form.attrs.pattern?
- & shared-form.attrs.readonly?
- & shared-form.attrs.required?
- & shared-form.attrs.size?
- & shared-form.attrs.placeholder?
- & ( ( input.attrs.multiple
- & input.email.attrs.value.multiple?
- )
- | input.email.attrs.value.single?
- )?
- & common.attrs.aria.implicit.input?
- )
- input.email.attrs.type =
- attribute type {
- w:string "email"
- }
- input.email.attrs.value.single =
- attribute value {
- form.data.emailaddress
- }
- input.email.attrs.value.multiple =
- attribute value {
- form.data.emailaddresslist
- }
-
- input.elem |= input.email.elem
-
-## IRI: <input type='url'>
-
- input.url.elem =
- element input { input.url.attrs }
- input.url.attrs =
- ( common.attrs
- & common-form.attrs
- & input.url.attrs.type
- & input.attrs.autocomplete?
- & shared-form.attrs.autofocus?
- & input.attrs.list?
- & shared-form.attrs.maxlength?
- & shared-form.attrs.pattern?
- & shared-form.attrs.readonly?
- & shared-form.attrs.required?
- & shared-form.attrs.size?
- & shared-form.attrs.placeholder?
- & input.url.attrs.value?
- & common.attrs.aria.implicit.input?
- )
- input.url.attrs.type =
- attribute type {
- w:string "url"
- }
- input.url.attrs.value =
- attribute value {
- w:string "" | common.data.uri.absolute
- }
-
- input.elem |= input.url.elem
-
-## Search: <input type='search'>
-
- input.search.elem =
- element input { input.search.attrs }
- input.search.attrs =
- ( common.attrs
- & common-form.attrs
- & input.search.attrs.type
- & input.attrs.autocomplete?
- & shared-form.attrs.autofocus?
- & input.attrs.list?
- & shared-form.attrs.maxlength?
- & shared-form.attrs.pattern?
- & shared-form.attrs.readonly?
- & shared-form.attrs.required?
- & shared-form.attrs.size?
- & shared-form.attrs.placeholder?
- & input.search.attrs.value?
- & common.attrs.aria.implicit.input?
- )
- input.search.attrs.type =
- attribute type {
- w:string "search"
- }
- input.search.attrs.value =
- attribute value {
- string # FIXME line breaks
- }
-
- input.elem |= input.search.elem
-
-## Telephone Number: <input type='tel'>
-
- input.tel.elem =
- element input { input.tel.attrs }
- input.tel.attrs =
- ( common.attrs
- & common-form.attrs
- & input.tel.attrs.type
- & input.attrs.autocomplete?
- & shared-form.attrs.autofocus?
- & input.attrs.list?
- & shared-form.attrs.maxlength?
- & shared-form.attrs.pattern?
- & shared-form.attrs.readonly?
- & shared-form.attrs.required?
- & shared-form.attrs.size?
- & shared-form.attrs.placeholder?
- & input.tel.attrs.value?
- & common.attrs.aria.implicit.input?
- )
- input.tel.attrs.type =
- attribute type {
- w:string "tel"
- }
- input.tel.attrs.value =
- attribute value {
- string # FIXME line breaks
- }
-
- input.elem |= input.tel.elem
-
-## Color: <input type='color'>
-
- input.color.elem =
- element input { input.color.attrs }
- input.color.attrs =
- ( common.attrs
- & common-form.attrs
- & input.color.attrs.type
- & input.attrs.autocomplete?
- & shared-form.attrs.autofocus?
- & input.attrs.list?
- & input.color.attrs.value?
- & common.attrs.aria.implicit.input?
- )
- input.color.attrs.type =
- attribute type {
- w:string "color"
- }
- input.color.attrs.value =
- attribute value {
- form.data.color
- }
-
- input.elem |= input.color.elem
-
-## Form Output: <output>
-
- output.elem =
- element output { output.inner & output.attrs }
- output.attrs =
- ( common.attrs
- & common-form.attrs.name?
- & common-form.attrs.form?
- & output.attrs.for?
- & common.attrs.aria.implicit.region?
- )
- output.attrs.for =
- attribute for {
- common.data.idrefs #REVISIT spec says space--not whitespace
- }
- output.inner =
- ( common.inner.phrasing )
-
- common.elem.phrasing |= output.elem
-
-## Text Area: <textarea>, extensions
-
- textarea.attrs.rows-and-cols-wf1.inner &=
- notAllowed
- textarea.attrs.rows-and-cols-wf1 |=
- empty
- textarea.attrs &=
- ( shared-form.attrs.maxlength?
- & shared-form.attrs.autofocus?
- & shared-form.attrs.required?
- & shared-form.attrs.placeholder?
- & textarea.attrs.rows?
- & ( ( textarea.attrs.wrap.hard
- & textarea.attrs.cols
- )
- | ( textarea.attrs.wrap.soft?
- & textarea.attrs.cols?
- )
- )
- )
- textarea.attrs.wrap.hard =
- attribute wrap {
- w:string "hard"
- }
- textarea.attrs.wrap.soft =
- attribute wrap {
- w:string "soft"
- }
-
-## List of Prefill Data: <datalist>
-
- #REVISIT should the options in datalist be non-selectable?
-
- datalist.elem =
- element datalist { datalist.inner & datalist.attrs }
- datalist.inner =
- ( option.elem* & common.inner.phrasing )
- datalist.attrs =
- ( common.attrs )
-
- common.elem.phrasing |= datalist.elem
-
-## Complex Submit Button: <button type='submit'>, extensions
-
- button.submit.attrs &=
- ( shared-form.attrs.formaction?
- & shared-form.attrs.autofocus?
- & shared-form.attrs.formenctype?
- & shared-form.attrs.formmethod?
- & shared-form.attrs.formtarget?
- & shared-form.attrs.formnovalidate?
- )
-
-## Complex Reset Button: <button type='reset'>, extensions
-
- button.reset.attrs &=
- ( shared-form.attrs.autofocus? )
-
-## Complex Push Button: <button type='button'>, extensions
-
- button.button.attrs &=
- ( shared-form.attrs.autofocus? )
-
-## Form: <form>, extensions
- form.attrs &=
- ( form.attrs.novalidate?
- & form.attrs.target?
- & form.attrs.autocomplete?
- )
- form.attrs.novalidate =
- attribute novalidate {
- w:string "novalidate" | w:string ""
- }
- form.attrs.target =
- attribute target {
- common.data.browsing-context-or-keyword
- }
- form.attrs.autocomplete =
- attribute autocomplete {
- w:string "on" | w:string "off"
- }
- # REVISIT should this be case-insensitive in conforming XHTML documents?
- form.attrs.enctype.data |=
- ( w:string "text/plain" )
- form.attrs.method.data |=
- ( w:string "put" | w:string "delete" )
-
-## Fieldset: <fieldset>, extensions
-
- fieldset.attrs &=
- ( common-form.attrs )
-
-## Label: <label>, extensions
-
- label.attrs &=
- ( common-form.attrs.form? )
-
-## Key-pair generator/input control: <keygen>
-
- keygen.elem =
- element keygen { keygen.inner & keygen.attrs }
- keygen.attrs =
- ( common.attrs
- & keygen.attrs.challenge?
- & keygen.attrs.keytype?
- & shared-form.attrs.autofocus?
- & common-form.attrs?
- #REVISIT which ARIA attributes needed here
- )
- keygen.attrs.challenge =
- attribute challenge {
- string
- }
- keygen.attrs.keytype =
- attribute keytype {
- w:string "rsa"
- }
- keygen.inner =
- ( empty )
-
- common.elem.phrasing |= keygen.elem
-
diff --git a/xml/relaxng/testData/highlighting/html5/xhtml5.rnc b/xml/relaxng/testData/highlighting/html5/xhtml5.rnc
deleted file mode 100644
index 01ec782ac821..000000000000
--- a/xml/relaxng/testData/highlighting/html5/xhtml5.rnc
+++ /dev/null
@@ -1,40 +0,0 @@
-default namespace = "http://www.w3.org/1999/xhtml/html5"
-# #####################################################################
-## RELAX NG Schema for XHTML 5 #
-# #####################################################################
-
- # To validate an XHTML 5 document, you must first validate against #
- # this schema and then ALSO validate against assertions.sch #
-
-# #####################################################################
-## Schema Framework & Parameters
-
-include "common.rnc" {
- # XHTML flavor #
- XMLonly = empty
- HTMLonly = notAllowed
- # HTML 4 compat #
- v5only = empty
-}
-
-# #####################################################################
-## Language Definitions
-
-start = html.elem
-
-include "meta.rnc"
-include "phrase.rnc"
-include "block.rnc"
-include "sectional.rnc"
-include "structural.rnc"
-include "revision.rnc"
-include "embed.rnc"
-include "ruby.rnc"
-include "media.rnc"
-include "core-scripting.rnc"
-include "tables.rnc"
-include "form-datatypes.rnc"
-include "web-forms.rnc"
-include "web-forms2.rnc"
-include "applications.rnc"
-include "data.rnc"
diff --git a/xml/tests/src/com/intellij/codeInspection/htmlInspections/XmlInspectionToolProvider.java b/xml/tests/src/com/intellij/codeInspection/htmlInspections/XmlInspectionToolProvider.java
index 287591f79901..aa576def52f7 100644
--- a/xml/tests/src/com/intellij/codeInspection/htmlInspections/XmlInspectionToolProvider.java
+++ b/xml/tests/src/com/intellij/codeInspection/htmlInspections/XmlInspectionToolProvider.java
@@ -40,7 +40,8 @@ public class XmlInspectionToolProvider implements InspectionToolProvider {
XmlUnusedNamespaceInspection.class,
XmlHighlightVisitorBasedInspection.class,
XmlPathReferenceInspection.class,
- HtmlUnknownTargetInspection.class
+ HtmlUnknownTargetInspection.class,
+ HtmlUnknownAnchorTargetInspection.class
};
}
}