diff options
author | Tor Norbye <tnorbye@google.com> | 2013-04-24 10:43:41 -0700 |
---|---|---|
committer | Tor Norbye <tnorbye@google.com> | 2013-04-24 10:43:41 -0700 |
commit | b17587c84879dd2ea42495f1fbdadbc806b9475b (patch) | |
tree | b4d9014f69cb8289627ddc75339a6b0b3fe1bc5e /xml | |
parent | b569bc6aa78f6eacf72e8b90622d300e1a9db25f (diff) | |
download | idea-b17587c84879dd2ea42495f1fbdadbc806b9475b.tar.gz |
Snapshot e242282deb41c328afbe971fc167e47ddfb26df9 from master branch of git://git.jetbrains.org/idea/community.git
Change-Id: Ifdc1818cde7b63f6d7bf42801f18c7f1557b8d85
Diffstat (limited to 'xml')
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 }; } } |