Skip to content

Instantly share code, notes, and snippets.

@achudars
Last active August 29, 2015 14:16
Show Gist options
  • Save achudars/d1850fb914a9ec56eaa6 to your computer and use it in GitHub Desktop.
Save achudars/d1850fb914a9ec56eaa6 to your computer and use it in GitHub Desktop.
HTML 5 metamodel in EMF (being updated)
@namespace(
uri="HTML",
prefix="HTML")
package HTML;
class Model {
val HTMLHtmlElement HTMLHtmlElement;
}
abstract class HTMLHtmlElement {
val HTMLHeadElement[1] HTMLHeadElement;
val HTMLBodyElement[1] HTMLBodyElement;
}
abstract class HTMLAnchorElement extends HTMLElement {
attr String href;
attr String target;
attr String download;
attr String rel;
attr String hreflang;
attr String type;
}
abstract class HTMLAreaElement {
attr String alt;
attr String coords;
attr String download;
attr String href;
attr String hreflang;
attr String rel;
attr String shape;
attr String target;
attr String type;
}
abstract class HTMLAudioElement extends HTMLMediaElement {
}
abstract class HTMLBaseElement extends HTMLElement {
attr String href;
attr String target;
}
abstract class HTMLBodyElement {
attr String accesskey;
attr String CLASS;
attr boolean contenteditable;
attr String dir;
attr boolean hidden;
attr String ID;
attr String lang;
attr boolean spellcheck;
attr String style;
attr String tabindex;
attr String title;
attr boolean translate;
val HTMLElement[*] bodyElements;
}
abstract class HTMLBRElement extends HTMLElement {
//
}
abstract class HTMLButtonElement extends HTMLElement {
attr boolean autofocus;
attr boolean disabled;
attr String formAction;
attr String formEnctype;
attr String formMethod;
attr boolean formNoValidate;
attr String formTarget;
attr String name;
attr String type;
attr String value;
attr boolean willValidate;
attr String validationMessage;
}
abstract class HTMLCanvasElement extends HTMLElement {
attr long width;
attr long height;
}
abstract class HTMLDataElement extends HTMLElement {
attr String value;
}
abstract class HTMLDataListElement extends HTMLElement {
//
}
abstract class HTMLDivElement extends HTMLElement {
//
}
abstract class HTMLDListElement extends HTMLElement {
//
}
abstract class HTMLElement {
// globals that are applicable to all HTML elements
attr String accesskey;
attr String CLASS;
attr boolean contenteditable;
attr String dir;
attr boolean hidden;
attr String ID;
attr String lang;
attr boolean spellcheck;
attr String style;
attr String tabindex;
attr String title;
attr boolean translate;
}
abstract class HTMLEmbedElement extends HTMLElement {
attr String src;
attr String type;
attr String width;
attr String height;
}
abstract class HTMLFieldSetElement extends HTMLElement {
attr boolean disabled;
attr String name;
attr String type;
attr boolean willValidate;
attr String validationMessage;
}
abstract class HTMLFormElement extends HTMLElement {
attr String acceptCharset;
attr String action;
attr String autocomplete;
attr String enctype;
attr String encoding;
attr String method;
attr String name;
attr boolean noValidate;
attr String target;
}
abstract class HTMLHeadElement {
attr String accesskey;
attr String CLASS;
attr boolean contenteditable;
attr String dir;
attr boolean hidden;
attr String ID;
attr String lang;
attr boolean spellcheck;
attr String style;
attr String tabindex;
attr String title;
attr boolean translate;
val HTMLElement[*] headElements;
}
abstract class HTMLHeadingElement extends HTMLElement {
//
}
abstract class HTMLHRElement extends HTMLElement {
//
}
abstract class HTMLIFrameElement extends HTMLElement {
attr String src;
attr String srcdoc;
attr String name;
attr String width;
attr String height;
}
abstract class HTMLImageElement extends HTMLElement {
attr String alt;
attr String src;
attr String crossOrigin;
attr String useMap;
attr boolean isMap;
attr long width;
attr long height;
attr long naturalWidth;
attr long naturalHeight;
attr boolean complete;
}
abstract class HTMLInputElement extends HTMLElement {
attr String accept;
attr String alt;
attr String autocomplete;
attr boolean autofocus;
attr boolean defaultChecked;
attr boolean checked;
attr String dirName;
attr boolean disabled;
attr String formAction;
attr String formEnctype;
attr String formMethod;
attr boolean formNoValidate;
attr String formTarget;
attr long height;
attr boolean indeterminate;
attr String max;
attr long maxLength;
attr String min;
attr long minLength;
attr boolean multiple;
attr String name;
attr String pattern;
attr String placeholder;
attr boolean READONLY;
attr boolean required;
attr long size;
attr String src;
attr String step;
attr String type;
attr String defaultValue;
attr long width;
}
abstract class HTMLKeygenElement extends HTMLElement {
attr boolean autofocus;
attr String challenge;
attr boolean disabled;
attr String keytype;
attr String name;
attr String type;
}
abstract class HTMLLabelElement extends HTMLElement {
attr String htmlFor;
}
abstract class HTMLLegendElement extends HTMLElement {
//
}
abstract class HTMLLIElement extends HTMLElement {
attr long value;
}
abstract class HTMLLinkElement extends HTMLElement {
attr boolean disabled;
attr String href;
attr String crossOrigin;
attr String rel;
attr String rev;
attr String media;
attr String hreflang;
attr String type;
}
abstract class HTMLMapElement extends HTMLElement {
attr String name;
}
abstract class HTMLMediaElement extends HTMLElement {
attr String src;
attr String currentSrc;
attr String crossOrigin;
attr short networkState;
attr String preload;
attr boolean paused;
attr double defaultPlaybackRate;
attr double playbackRate;
attr boolean ended;
attr boolean autoplay;
attr boolean loop;
attr String mediaGroup;
attr boolean controls;
attr double volume;
attr boolean muted;
attr boolean defaultMuted;
}
abstract class HTMLMetaElement extends HTMLElement {
attr String name;
attr String httpEquiv;
attr String content;
}
abstract class HTMLMeterElement extends HTMLElement {
attr double value;
attr double min;
attr double max;
attr double low;
attr double high;
attr double optimum;
}
abstract class HTMLModElement extends HTMLElement {
attr String cite;
attr String dateTime;
}
abstract class HTMLObjectElement extends HTMLElement {
attr String data;
attr String type;
attr boolean typeMustMatch;
attr String name;
attr String useMap;
attr String width;
attr String height;
attr boolean willValidate;
attr String validationMessage;
}
abstract class HTMLOListElement extends HTMLElement {
attr boolean reversed;
attr long start;
attr String type;
}
abstract class HTMLOptGroupElement extends HTMLElement {
attr boolean disabled;
attr String label;
}
abstract class HTMLOptionElement extends HTMLElement {
attr boolean disabled;
attr String label;
attr boolean defaultSelected;
attr boolean selected;
attr String value;
attr String text;
attr long index;
}
abstract class HTMLOutputElement extends HTMLElement {
attr String for;
attr String form;
attr String name;
}
abstract class HTMLParagraphElement extends HTMLElement {
//
}
abstract class HTMLParamElement extends HTMLElement {
attr String name;
attr String value;
}
abstract class HTMLPreElement extends HTMLElement {
//
}
abstract class HTMLProgressElement extends HTMLElement {
attr double value;
attr double max;
attr double position;
}
abstract class HTMLQuoteElement extends HTMLElement {
attr String cite;
}
abstract class HTMLScriptElement extends HTMLElement {
attr String src;
attr String type;
attr String charset;
attr boolean async;
attr boolean defer;
attr String crossOrigin;
attr String text;
}
abstract class HTMLSelectElement extends HTMLElement {
attr String autofocus;
attr String disabled;
attr String form;
attr String multiple;
attr String name;
attr String required;
attr String size;
}
abstract class HTMLSourceElement extends HTMLElement {
attr String src;
attr String type;
attr String media;
}
abstract class HTMLSpanElement extends HTMLElement {
//
}
abstract class HTMLStyleElement extends HTMLElement {
attr boolean disabled;
attr String media;
attr String type;
}
abstract class HTMLTableCaptionElement extends HTMLElement {
//
}
abstract class HTMLTableCellElement extends HTMLElement {
attr long colSpan;
attr long rowSpan;
}
abstract class HTMLTableColElement extends HTMLElement {
attr long span;
}
abstract class HTMLTableDataCellElement extends HTMLTableCellElement {
//
}
abstract class HTMLTableElement extends HTMLElement {
attr String border;
attr String sortable;
}
abstract class HTMLTableHeaderCellElement extends HTMLTableCellElement {
attr String scope;
attr String abbr;
}
abstract class HTMLTableRowElement extends HTMLElement {
attr long rowIndex;
attr long sectionRowIndex;
}
abstract class HTMLTableSectionElement extends HTMLElement {
//
}
abstract class HTMLTemplateElement extends HTMLElement {
//
}
abstract class HTMLTextAreaElement extends HTMLElement {
attr String autocomplete;
attr String autofocus;
attr String cols;
attr String dirname;
attr String disabled;
attr String form;
attr String inputmode;
attr String maxlength;
attr String minlength;
attr String name;
attr String placeholder;
attr boolean READONLY;
attr String required;
attr String rows;
attr String wrap;
}
abstract class HTMLTimeElement extends HTMLElement {
attr String dateTime;
}
abstract class HTMLTitleElement extends HTMLElement {
attr String text;
}
abstract class HTMLTrackElement extends HTMLElement {
attr String kind;
attr String src;
attr String srclang;
attr String label;
attr boolean default;
}
abstract class HTMLUListElement extends HTMLElement {
//
}
abstract class HTMLUnknownElement extends HTMLElement {
//
}
abstract class HTMLVideoElement extends HTMLMediaElement {
attr String src;
attr String crossorigin;
attr String poster;
attr String preload;
attr String autoplay;
attr String mediagroup;
attr String loop;
attr String muted;
attr String controls;
attr String width;
attr String height;
}
// ------------------------------------------------------------------------------------
// Hyperlink
class A extends HTMLAnchorElement {
// globals; href; target; download; rel; hreflang; type
}
// Abbreviation
class ABBR extends HTMLElement {
// globals
}
// Contact information for a page or article element
class ADDRESS extends HTMLElement {
// globals
}
// Hyperlink or dead area on an image map
class AREA extends HTMLAreaElement {
// globals; alt; coords; shape; href; target; download; rel; hreflang; type
}
// Self-contained syndicatable or reusable composition
class ARTICLE extends HTMLElement {
// globals
}
// Sidebar for tangentially related content
class ASIDE extends HTMLElement {
// globals
}
// Audio player
class AUDIO extends HTMLAudioElement {
// globals; src; crossorigin; preload; autoplay; mediagroup; loop; muted; controls
}
// Keywords
class B extends HTMLElement {
// globals
}
// Base URL and default target browsing context for hyperlinks and forms
class BASE extends HTMLBaseElement {
// globals; href; target
}
// Text directionality isolation
class BDI extends HTMLElement {
// globals
}
// Text directionality formatting
class BDO extends HTMLElement {
// globals
}
// A section quoted from another source
class BLOCKQUOTE extends HTMLQuoteElement {
// globals; cite
}
// Document body
class BODY extends HTMLBodyElement {
// globals; onafterprint; onbeforeprint; onbeforeunload; onhashchange;
// onmessage; onoffline; ononline; onpagehide; onpageshow; onpopstate;
// onstorage; onunload
}
// Line break, e.g. in poem or postal address
class BR extends HTMLBRElement {
// globals;
}
// Button control
class BUTTON extends HTMLButtonElement {
// globals; autofocus; disabled; form; formaction; formenctype;
// formmethod; formnovalidate; formtarget; name; type; value
}
// Scriptable bitmap canvas
class CANVAS extends HTMLCanvasElement {
// globals; width; height
}
// Table caption
class CAPTION extends HTMLTableCaptionElement {
// globals
}
// Title of a work
class CITE extends HTMLElement {
// globals
}
// Computer code
class CODE extends HTMLElement {
// globals
}
// Table column
class COL extends HTMLTableColElement {
// globals; span
}
// Group of columns in a table
class COLGROUP extends HTMLTableColElement {
// globals; span
}
// Machine-readable equivalent
class DATA extends HTMLDataElement {
// globals; value
}
// Container for options for combo box control
class DATALIST extends HTMLDataListElement {
// globals
}
// Content for corresponding dt element(s)
class DD extends HTMLElement {
// globals
}
// A removal from the document
class DEL extends HTMLModElement {
// globals; cite; datetime
}
// Defining instance
class DFN extends HTMLElement {
// globals
}
// Generic flow container
class DIV extends HTMLDivElement {
// globals
}
// Association list consisting of zero or more name-value groups
class DL extends HTMLDListElement {
// globals
}
// Legend for correspondingdd element(s)
class DT extends HTMLElement {
// globals
}
// Stress emphasis
class EM extends HTMLElement {
// globals
}
// Plugin
class EMBED extends HTMLEmbedElement {
// globals; src; type; width; height; any*
}
// Group of form controls
class FIELDSET extends HTMLFieldSetElement {
// globals; disabled; form; name
}
// Caption forfigure
class FIGCAPTION extends HTMLElement {
// globals
}
// Figure with optional caption
class FIGURE extends HTMLElement {
// globals
}
// Footer for a page or section
class FOOTER extends HTMLElement {
// globals
}
// User-submittable form
class FORM extends HTMLFormElement {
// globals; accept-charset; action; autocomplete;
// enctype; method; name; novalidate; target
}
// Section heading
class H1 extends HTMLHeadingElement {
// globals
}
// Section heading
class H2 extends HTMLHeadingElement {
// globals
}
// Section heading
class H3 extends HTMLHeadingElement {
// globals
}
// Section heading
class H4 extends HTMLHeadingElement {
// globals
}
// Section heading
class H5 extends HTMLHeadingElement {
// globals
}
// Section heading
class H6 extends HTMLHeadingElement {
// globals
}
// Container for document metadata
class HEAD extends HTMLHeadElement {
// globals
}
// Introductory or navigational aids for a page or section
class HEADER extends HTMLElement {
// globals
}
// Thematic break
class HR extends HTMLHRElement {
// globals
}
// Root element
class HTML extends HTMLHtmlElement {
// globals; manifest
}
// Alternate voice
class I extends HTMLElement {
// globals
}
// Nested browsing context
class IFRAME extends HTMLIFrameElement {
// globals; src; srcdoc; name; sandbox; width; height
}
// Image
class IMG extends HTMLImageElement {
// globals; alt; src; crossorigin; usemap; ismap; width; height
}
// Form control
class INPUT extends HTMLInputElement {
// globals; accept; alt; autocomplete; autofocus; checked;
// dirname; disabled; form; formaction; formenctype; formmethod;
// formnovalidate; formtarget; height; list; max; maxlength; min;
// minlength; multiple; name; pattern; placeholder; readonly;
// required; size; src; step; type; value; width
}
// An addition to the document
class INS extends HTMLModElement {
// globals; cite; datetime
}
// User input
class KBD extends HTMLElement {
// globals
}
// Cryptographic key-pair generator form control
class KEYGEN extends HTMLKeygenElement {
// globals; autofocus; challenge; disabled; form; keytype; name
}
// Caption for a form control
class LABEL extends HTMLLabelElement {
// globals; form; for
}
// Caption for fieldset
class LEGEND extends HTMLLegendElement{
// globals
}
// List item
class LI extends HTMLLIElement {
// globals; value*
}
// Link metadata
class LINK extends HTMLLinkElement {
// globals; href; crossorigin; rel; media; hreflang; type; sizes
}
// Main content of a document
class MAIN extends HTMLElement {
// globals
}
// Image map
class MAP extends HTMLMapElement {
// globals; name
}
// Highlight
class MARK extends HTMLElement {
// extends
}
// Text metadata
class META extends HTMLMetaElement {
// globals; name; http-equiv; content; charset
}
// Gauge
class METER extends HTMLMeterElement {
// globals; value; min; max; low; high; optimum
}
// Section with navigational links
class NAV extends HTMLElement {
// globals
}
// Fallback content for script
class NOSCRIPT extends HTMLElement {
// globals
}
// Image, nested browsing context, or plugin
class OBJECT extends HTMLObjectElement {
// globals; data; type; typemustmatch; name; usemap; form; width height
}
// Ordered list
class OL extends HTMLOListElement {
// globals; reversed; start; type
}
// Group of options in a list box
class OPTGROUP extends HTMLOptGroupElement {
// globals; disabled; label
}
// Option in a list box or combo box control
class OPTION extends HTMLOptionElement {
// globals; disabled; label; selected; value
}
// Calculated output value
class OUTPUT extends HTMLOutputElement {
// globals; for; form; name
}
// Paragraph
class P extends HTMLParagraphElement {
// globals
}
// Parameter for object
class PARAM extends HTMLParamElement {
// globals; name; value
}
// Block of preformatted text
class PRE extends HTMLPreElement {
// globals
}
// Progress bar
class PROGRESS extends HTMLProgressElement {
// globals; value; max
}
// Quotation
class Q extends HTMLQuoteElement {
// globals; cite
}
// Ruby base
class RB extends HTMLElement {
// globals
}
// Parenthesis for ruby annotation text
class RP extends HTMLElement {
// globals
}
// Ruby annotation text
class RT extends HTMLElement {
// globals
}
// Ruby annotation text container
class RTC extends HTMLElement {
// globals
}
// Ruby annotation(s)
class RUBY extends HTMLElement {
// globals
}
// Inaccurate text
class S extends HTMLElement {
// globals
}
// Computer output
class SAMP extends HTMLElement {
// globals
}
// Embedded script
class SCRIPT extends HTMLScriptElement {
// globals; src; type; charset; async; defer; crossorigin
}
// Generic document or application section
class SECTION extends HTMLElement {
// globals
}
// List box control
class SELECT extends HTMLSelectElement {
// globals; autofocus; disabled; form; multiple; name; required; size
}
// Side comment
class SMALL extends HTMLElement {
// globals
}
// Media source for video oraudio
class SOURCE extends HTMLSourceElement {
// globals; src; type; media
}
// Generic phrasing container
class SPAN extends HTMLSpanElement {
// globals
}
// Importance
class STRONG extends HTMLElement {
// globals
}
// Embedded styling information
class STYLE extends HTMLStyleElement {
// globals; media; type
}
// Subscript
class SUB extends HTMLElement {
// globals
}
// Superscript
class SUP extends HTMLElement {
// globals
}
// Table
class TABLE extends HTMLTableElement {
// globals; border
}
// Group of rows in a table
class TBODY extends HTMLTableSectionElement {
// globals
}
// Table cell
class TD extends HTMLTableDataCellElement {
// globals; colspan; rowspan; headers
}
// Template
class TEMPLATE extends HTMLTemplateElement {
// globals
}
// Multiline text field
class TEXTAREA extends HTMLTextAreaElement {
// globals; autofocus; cols; dirname; disabled; form; maxlength;
// minlength; name; placeholder; readonly; required; rows; wrap
}
// Group of footer rows in a table
class TFOOT extends HTMLTableSectionElement {
// globals
}
// Table header cell
class TH extends HTMLTableHeaderCellElement {
// globals; colspan; rowspan; headers; scope; abbr
}
// Group of heading rows in a table
class THEAD extends HTMLTableSectionElement {
// globals
}
// Machine-readable equivalent of date- or time-related data
class TIME extends HTMLTimeElement {
// globals; datetime
}
// Document title
class TITLE extends HTMLTitleElement {
}
// Table row
class TR extends HTMLTableRowElement {
}
// Timed text track
class TRACK extends HTMLTrackElement {
// globals; default; kind; label; src; srclang
}
// Keywords
class U extends HTMLElement {
// globals
}
// List
class UL extends HTMLUListElement {
// globals
}
// Variable
class VAR extends HTMLElement {
// globals
}
// Video player
class VIDEO {
// globals; src; crossorigin; poster; preload; autoplay;
// mediagroup; loop; muted; controls; width; height
}
// Line breaking opportunity
class WBR extends HTMLVideoElement {
// globals
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment