| тег | атрибут | свойство | стиль | ||
| новые html-термины | line | aling | point | default | |
| значения новых html-терминов | side | romb | |||
| старые html-термины | td | id | list | ||
| значения старых html-терминов | circle | ||||
| коммуникационный xml | sound | sync | power | ||
| значения коммуникационного xml | nouser | ||||
| клавиатурные и мышиные команды | enter |
Какие языки нужно знать, чтобы визуализировать базу данных? SQL, потому что промышленный стандарт баз данных. HTML, потому что промышленный стандарт визуализации. Что еще? Больше ничего.
Представьте, что запрос в базу данных вернул вам дерево, состоящее из произвольных (неизвестных браузеру) тегов (например, названия тегов совпадают с названиями таблиц базы данных). Я предлагаю наделить любые теги свойствами и тем определить их отображение в браузере (назовем такой html расширенным, extended html, eHTML). И перечислять свойства произвольных тегов в css-файле (это проще, чем писать для них xsl-файл). Старые, уже известные html-теги нужно рассматривать как html-теги с заранее предопределенными значениями свойств - но таким же набором свойств могут обладать и другие теги.
Пусть, например, браузеру встретился незнакомый тег "anytag" с текстом "internal text" внутри.
Если до и после какого-либо тега должен произойти переход на новую строку,
для такого случая соответствующее свойство все еще не названо.
Пусть это будет
newstring со значениями
yes и
no.
Значением yes обладают ранее известные теги
p,
br,
hr,
table,
caption,
tr.
Выстраивание в колонки может быть выполнено автономно для разных
частей документа и порождать разные ширины колонок в каждой части.
Отделение частей документа друг от друга должно быть выполнено каким-либо тегом со
специальным свойством.
Пусть таким свойстваом будет
kind=table.
Из ранее известных тегов этим свойством обладал только тег
table.
Таким образом, если определен css-файл
Все теги, не зависимо от их названия, непосредственно вложенные в тег с
kind=table,
интерпретируются как теги с данными.
Может одновременно присутствовать несколько разноименных тегов с данными.
При этом имя тега и имя его класса (значение атрибута class)
всегда совпадают:
если у тега определен атрибут class,
то имя тега игнорируется;
если этот атрибут не определен (отсутствует),
то имя тега есть имя класса.
Для симметрии позволим заполнять документ "по-колонно", для чего для тегов
table, tbody, tfoot, thead,
Аналогично должно быть выполнено отделение частей документа друг от друга для построения списков и линий - пусть это будут теги со свойствами kind=list и kind=line.
Все теги, не зависимо от их названия, непосредственно вложенные в тег с kind=list, интерпретируются как элементы списка. Может одновременно присутствовать несколько разноименных тегов-элементов списка.
Все теги, не зависимо от их названия, непосредственно вложенные в тег с kind=line, интерпретируются как элементы линии. Может одновременно присутствовать несколько разноименных тегов-элементов линии.
Свойство kind определяет, какие еще свойства существуют у данного тега.
Присвоение этому свойству любого значения, в т.ч. и того, которое содержалось в нем ранее, сбрасывает в "null" все остальные свойства тега.
Это свойство может иметь более одного значения одновременно.
Для поисковых роботов предназначено свойство
semantics со значениями
(свойство может иметь несколько значений одновременно):
address (страна, сайт, электронная почта, телефон - теги
address, cite);
idea (dfn),
important (em, strong),
quote (backquote, q);
example (code),
input (kbd),
output (samp),
rating,
price,
author,
date.
Свойство semantics не описывает аббревиатуру,
т.к. ее легко обнаружить по тому ее качеству, что все ее буквы - прописные.
Специальное значение звездочка
*
атрибутов
colspan,
rowspan
означает использование всех оставшихся колонок (или строк соответственно) как одной.
Теги в таблице ниже,
для которых вторая колонка таблицы не заполнена, не выражаемы через свойства.
Но их (например, тег object)
можно применять как таковые.
Внутри тега select вместо тегов
option и optgroup могут применяться теги
ti.
| html-тег | свойства xml-тега | свойства обрамляющего xml-тега, т.е. тега [-1]-го уровня |
свойства xml-тега [-2]-го уровня |
| <a href= > | kind:anchor; src:/dir/filename; | ||
| <a name=A > | kind:mark; id:A; | ||
| <abbr> | |||
| <address> | font-type:oblique; semantics:address; | ||
| <b> | font-weight:+100%; | ||
| <backquote> | semantics:quote; | ||
| <big> | font-size:+30%; font-weight:+100%; | ||
| <body> | kind:body; | ||
| <br> | newstring:yes; | ||
| <caption> | newstring:yes; colspan:* ; | kind:table; | |
| <code> | font-family:courier; semantics:example; | ||
| <contour> | kind:contour; | ||
| <cite> | font-type:oblique; semantics:address; src:www.com; | ||
| <def> | font-type:oblique; semantics:idea; | ||
| <del> | |||
| <div> | |||
| <dd> | padding-left:10mm; | ||
| <dl> | |||
| <dt> | padding-left:0; | ||
| <em> | font-type:oblique; semantics:important; | ||
| <form> | kind:form; | ||
| <h1> | text-align:left; font-size:+100%; | ||
| <h2> | text-align:left; font-size:+50%; | ||
| <h3> | text-align:left; font-size:+20%; | ||
| <h4> | text-align:left; | ||
| <h5> | text-align:left; font-size:-20%; | ||
| <h6> | text-align:left; font-size:-40%; | ||
| <head> | kind:head; | ||
| <hidden> | kind:hidden; | ||
| <hr> | kind:hr; | ||
| <i> | font-type:oblique; | ||
| <img src= > | <link src= > | ||
| <input type=button> | kind:anchor; src:/dir/filename; look:button; | ||
| <input type=checkbox> | kind:checkbox; | ||
| <input type=file> | kind:file; | ||
| <input type=hidden> | <hidden> | ||
| <input type=image> | kind:image; | ||
| <input type=password> | kind:password; | ||
| <input type=pic> | kind:pic; | ||
| <input type=radio> | kind:radio; | ||
| <input type=reset> | kind:reset; | ||
| <input type=select> | kind:select; | ||
| <input type=submit> | kind:submit; | ||
| <input type=text> | <input type=textarea> | ||
| <input type=textarea> | kind:area; | ||
| <ins> | |||
| <interface> | kind:interface; | ||
| <kbd> | font-type:courier; semantics:input; | ||
| <label> | |||
| <legend> | |||
| <li> | kind:list / line; | ||
| <line> | kind:line; | ||
| <link href= > | kind:link; src:/dir/filename; | ||
| <map name= > | |||
| <menu> | kind:menu; | ||
| <module> | kind:module; | ||
| <object data= > | |||
| <ol> | <ul> | ||
| <optgroup> | |||
| <option> | |||
| <p> | newstring:yes; indent:N; | ||
| <pre> | font-family:courier; white-space:pre; | ||
| <q> | semantics:quote; | ||
| <samp> | font-type:courier; semantics:output; | ||
| <small> | font-size:-50%; | ||
| <span> | |||
| <strong> | font-weight:+100%; semantics:important; | ||
| <sub> | vertical-align:sub; | ||
| <sup> | vertical-align:super; | ||
| <table> | kind:table; | ||
| <table-dim> | kind:table-dimensional; | ||
| <tree> | kind:tree; | ||
| <ti> | kind:ti; | ||
| <tbody> | kind:tbody; | ||
| <tc> | type:column; newstring:yes; | kind:table/tbody/tfoot/thead; | |
| <tfoot> | kind:tfoot; | ||
| <thead> | kind:thead; | ||
| <td> | newstring: yes; | kind:table/tbody/tfoot/thead; | |
| <th> | font-weight:+100%; | newstring: yes; | kind:table/tbody/tfoot/thead; |
| <tr> | type:row; newstring:yes; | kind:table/tbody/tfoot/thead; | |
| <tt> | font-family:courier; | ||
| <u> | |||
| <ul> | kind:list; |
Ячейки таблицы могут быть текстовыми виджетами (полями ввода) непосредственно (отредактировал текст в ячейке таблицы - таблица автоматически переформатировалась). При этом возможно копирование из буфера обмена (clipboard) сразу в несколько ячеек таблицы.
Значения всех свойств распространяются на все под-теги. Следующие два css-файла означают одно и то же.
tag {
kind: table;
}
sub_tag {
newstring: yes;
}
sub_sub_tag {
kind: area;
}
|
tag {
kind: table area;
}
sub_tag {
newstring: yes;
}
sub_sub_tag {
}
|
Некоторый тег может быть меткой и ссылкой одновременно.
Тег может соответствовать шаблону более чем в одном атрибуте.
tag1.class1 tag2.class2 {}
|
= |
<tag1 class=class1> <tag2 class=class2> { }
|
| тег | атрибут | список возможных значений |
link |
type |
vector |
| свойство | значение по умолчанию | список возможных значений |
| kind | anchor, checkbox, contour, file, form, hidden, hr, image, line, link, list, mark, password, radio, reset, table, table-dimensional, tbody, tfoot, thead, ti, tree, area, select, submit | |
| newstring | no | no, yes |
| semantics | address, idea, important, quote, example, input, output | |
| type | row | row, column |
html60author