Вывод дерева осуществляется постановкой знака после него.
Будем полагать, что слова "запись" (из СУБД) и "тег" (из XML) являются синонимами, а также что слова "поле" и "атрибут" также являются синонимами. Например, совершенно законны выражения "вложенная запись" и "вложенная таблица".
Для предотвращения вывода некоторых таблиц и полей перед их именами нужно поставить знак "#".
a[data |
<a id=1 data=10.1> <c id=100 /> <c id=101 /> <c id=200 /> <c id=201 /> <c id=200 /> </a> |
a[data |
<a id=1 data=10.1> <c id=100 /> <c id=101 /> <c id=200 /> <c id=201 /> <c id=200 /> </a> |
Если звено является списком, то вывод его элементов (записей) можно упорядочить по возрастанию или убыванию значений некоторых полей. Для этого перед именами этих полей нужно поставить целое число и знак "§" (будем называть это число фактором, factor. Фактор не может быть равен нулю). Поля будут использованы для сортировки в той последовательности, в какой возрастают модули их факторов. Положительный фактор означает сортировку по возрастанию, отрицательный - по убыванию. Таким образом TML-выражение
a.b.c |
<a id=1 data=12.3> <b id=10 data=23.4> <c id=100 data=56.7/> <c id=101 data=67.8/> </b> <b id=20 data=34.5> <c id=200 data=78.9/> <c id=201 data=89.1/> </b> <b id=30 data=45.6> <c id=200 data=91.2/> </b> </a> |
a.b[-1§data].c[-1§data] |
<a id=1 data=12.3> <b id=30 data=45.6> <c id=200 data=91.2/> </b> <b id=20 data=34.5> <c id=201 data=89.1/> <c id=200 data=78.9/> </b> <b id=10 data=23.4> <c id=101 data=67.8/> <c id=100 data=56.7/> </b> </a> |
Можно запросить не все неотсортированные записи, а только начинающиеся с какой-то определенной записи, для которой нам известны значения всех ее полей. Для этого перед именами всех полей нужно поставить знак "§", а после них знак "=" и значение поля. Таким образом TML-выражение
Можно запросить не все отсортированные записи, а только начинающиеся с какой-то определенной записи - для этого надо одновременно применить сортировку и стартировку. Таким образом TML-выражение
Значением поля базы данных может быть картинка, но по TML-запросу как значение поля отправляется не она, а ее URL для отдельного HTTP-запроса браузера. В HTML4 браузер сможет использовать этот атрибут (поле) только если его имя есть "src" и он находится в теге (таблице) "IMG". В HTML5 браузер может использовать его в атрибуте "src" любого тега, если последний имеет свойство "display: img".
x |
<x id="10" data1="Larry" data2="http://distination.org/?file_id=6382503452"> |
Вывести можно произвольный текст
'<?xml-stylesheet type="text/xsl" href="a.xsl"?>' |
<?xml-stylesheet type="text/xsl" href="a.xsl"?> |
'text' |
text |
'<anytag>' |
<anytag> |
'</anytag>' |
</anytag> |
a[data |
<a id=1 data=10.1> <b id=10 data=23.4> <c id=100 data=56.7/> <c id=101 data=67.8/> </b> <b id=20 data=34.5> <c id=200 data=78.9/> <c id=201 data=89.1/> </b> <b id=30 data=45.6> <c id=200 data=91.2/> </b> </a> |
Данные отправляются тому адресату, который в момент отправки указан в полях ral и ru таблицы sys. При старте триггера корневой таблицы (чаще всего это 'formdata, tabledata, treedata, html') эти значения указывают на агент пользователя (программу-терминал, браузер и т.д.), приславший запрос, но их в любой момент можно изменить (таким образом база данных сама может сделать запрос в другие базы данных для формирования ответа браузеру).
Для того, чтобы задублировать дерево в базе данных, нужно отправить его самому себе - для этого ran=0.