syntax = "proto3";
message Document {
Tag root = 1;
}
message Tag {
Name name = 1;
repeated Attribute attrs = 2;
repeated Tag subtags = 3;
enum Name {
A = 0;
ABBR = 1;
ADDRESS = 2;
AREA = 3;
ARTICLE = 4;
ASIDE = 5;
AUDIO = 6;
B = 7;
BASE = 8;
BDI = 9;
BDO = 10;
BLOCKQUOTE = 11;
BODY = 12;
BR = 13;
BUTTON = 14;
CANVAS = 15;
CAPTION = 16;
CITE = 17;
CODE = 18;
COL = 19;
COLGROUP = 20;
DATA = 21;
DATALIST = 22;
DD = 23;
DEL = 24;
DFN = 25;
DIV = 26;
DL = 27;
DT = 28;
EM = 29;
EMBED = 30;
FIELDSET = 31;
FIGCAPTION = 32;
FIGURE = 33;
FOOTER = 34;
FORM = 35;
H1 = 36;
H2 = 37;
H3 = 38;
H4 = 39;
H5 = 40;
H6 = 41;
HEAD = 42;
HEADER = 43;
HR = 44;
HTML = 45;
I = 46;
IFRAME = 47;
IMG = 48;
INPUT = 49;
INS = 50;
KBD = 51;
KEYGEN = 52;
LABEL = 53;
LEGEND = 54;
LI = 55;
LINK = 56;
MAIN = 57;
MAP = 58;
MARK = 59;
META = 60;
METER = 61;
NAV = 62;
NOSCRIPT = 63;
OBJECT = 64;
OL = 65;
OPTGROUP = 66;
OPTION = 67;
OUTPUT = 68;
P = 69;
PARAM = 70;
PRE = 71;
PROGRESS = 72;
Q = 73;
RB = 74;
RP = 75;
RT = 76;
RTC = 77;
RUBY = 78;
S = 79;
SAMP = 80;
SCRIPT = 81;
SECTION = 82;
SELECT = 83;
SMALL = 84;
SOURCE = 85;
SPAN = 86;
STRONG = 87;
STYLE = 88;
SUB = 89;
SUP = 90;
TABLE = 91;
TBODY = 92;
TD = 93;
TEMPLATE = 94;
TEXTAREA = 95;
TFOOT = 96;
TH = 97;
THEAD = 98;
TIME = 99;
TITLE = 100;
TR = 101;
TRACK = 102;
U = 103;
UL = 104;
VAR = 105;
VIDEO = 106;
WBR = 107;
}
}
message Attribute {
Name name = 1;
Value value = 2;
message Value {
oneof value {
bool bool_value = 1;
uint64 uint_value = 2;
int64 int_value = 3;
double double_value = 4;
int64 px_value = 5;
uint32 pct_value = 6;
}
}
enum Name {
ACCEPT = 0;
ACCEPT_CHARSET = 1;
ACCESSKEY = 2;
ACTION = 3;
ALIGN = 4;
ALT = 5;
ASYNC = 6;
AUTOCOMPLETE = 7;
AUTOFOCUS = 8;
AUTOPLAY = 9;
AUTOSAVE = 10;
BGCOLOR = 11;
BORDER = 12;
BUFFERED = 13;
CHALLENGE = 14;
CHARSET = 15;
CHECKED = 16;
CITE = 17;
CLASS = 18;
CODE = 19;
CODEBASE = 20;
COLOR = 21;
COLS = 22;
COLSPAN = 23;
CONTENT = 24;
CONTENTEDITABLE = 25;
CONTEXTMENU = 26;
CONTROLS = 27;
DATA = 28;
DATETIME = 29;
DEFAULT = 30;
DEFER = 31;
DIR = 32;
DIRNAME = 33;
DISABLED = 34;
DOWNLOAD = 35;
DRAGGABLE = 36;
DROPZONE = 37;
ENCTYPE = 38;
FOR = 39;
FORM = 40;
FORMACTION = 41;
HEADERS = 42;
HEIGHT = 43;
HIDDEN = 44;
HIGH = 45;
HREF = 46;
HREFLANG = 47;
ICON = 48;
ID = 49;
ISMAP = 50;
ITEMPROP = 51;
KEYTYPE = 52;
KIND = 53;
LABEL = 54;
LANG = 55;
LANGUAGE = 56;
LIST = 57;
LOOP = 58;
LOW = 59;
MANIFEST = 60;
MAX = 61;
MAXLENGTH = 62;
MEDIA = 63;
METHOD = 64;
MIN = 65;
MULTIPLE = 66;
MUTED = 67;
NAME = 68;
NOVALIDATE = 69;
OPEN = 70;
OPTIMUM = 71;
PATTERN = 72;
PING = 73;
PLACEHOLDER = 74;
POSTER = 75;
PRELOAD = 76;
RADIOGROUP = 77;
READONLY = 78;
REL = 79;
REQUIRED = 80;
REVERSED = 81;
ROWS = 82;
ROWSPAN = 83;
SANDBOX = 84;
SCOPE = 85;
SCOPED = 86;
SEAMLESS = 87;
SELECTED = 88;
SHAPE = 89;
SIZE = 90;
SIZES = 91;
SPAN = 92;
SPELLCHECK = 93;
SRC = 94;
SRCDOC = 95;
SRCLANG = 96;
SRCSET = 97;
START = 98;
STEP = 99;
STYLE = 100;
SUMMARY = 101;
TABINDEX = 102;
TARGET = 103;
TITLE = 104;
TYPE = 105;
USEMAP = 106;
VALUE = 107;
WIDTH = 108;
WRAP = 109;
}
}