Примеры
Простой файл описания:
<?xml version="1.0" encoding="utf-8"?>
<!-- Описание формы ввода информации. Версия 1.0.3 -->
<qform version="2.0.2" debug="1">
<database>
<table name="risk_b1" />
<key name="id" type="integer" />
</database>
<list rowsperpage="50" hidenewrec="0" hidetoolbars="0">
<text>
<windowtitle>Вероятность проявления опасности</windowtitle>
<title>Вероятность проявления опасности</title>
</text>
<sql key="id">
SELECT risk_b1.*
FROM risk_b1
WHERE 1 AND !risk_b1.deleted
ORDER BY 1
</sql>
<cols defaultsort="mark">
<col field="mark" caption="Балл оценки" hint="Балл оценки вероятности проявления опасности" type="int" align="center" />
<col field="title" caption="Описание вероятности проявления опасности" sortable="0" />
<col field="comment" caption="Примечание" hidden="1" sortable="0" />
</cols>
</list>
<form width="640">
<text>
<windowtitle>Вероятность проявления опасности</windowtitle>
<title>Вероятность проявления опасности</title>
<before></before>
<after></after>
<help></help>
</text>
<elements>
<field name="mark" prompt="Балл оценки вероятности проявления опасности" type="integer" size="8" maxlength="6" />
<field name="title" prompt="Описание вероятности проявления опасности" type="text" maxlength="1024" />
<field name="comment" prompt="Примечание" type="text" maxlength="255" />
</elements>
</form>
</qform>
Синтаксис QForm
Особенности синтаксиса XML
Синтаксис XML
QForm основан на XML (например, см. здесь: http://www.w3schools.com/xml/default.asp или http://citforum.ru/internet/xml/index.shtml), поэтому многое из его синтаксиса унаследовалось в QForm. Часто в коде будут использоваться комментарии вида:
...
<!--Текст комментария-->
...
«Недопустимые» символы и секция CDATA
В коде нельзя использовать символы «<», «>», «&». Чтобы их использовать, произведите замену символа на служебную комбинацию:
Символ |
Служебная комбинация |
& |
& |
< |
< |
> |
> |
Часто используется несколько символов в одном месте, например, в генерирующем SQL-запросе (в параметре WHERE). Заменять каждый символ служебной комбинацией в подобных случаях становится весьма трудоемко. Для таких случаев существует секция CDATA: фрагмент, помещённый внутрь CDATA,— это часть содержания элемента, помеченная для парсера, что она содержит только символьные данные, не разметку. CDATA — это просто альтернативный синтаксис для отображения символьных данных, нет никакой смысловой разницы между символьными данными, которые объявлены как CDATA и символьными данными, которые объявлены в обычном синтаксисе и где «<» и «&» будут представлены как «<» и «&», соответственно (http://www.w3schools.com/xml/xml_cdata.asp). Пример:
<![CDATA[
SELECT
...
<!--Код запроса-->
...
WHERE 1
ORDER BY 1
]]>
Важно! секцию CDATA нельзя использовать внутри атрибута, указанного в краткой форме (пример: sql=%“…”%) — секция будет проигнорирована, возможно использование только внутри тэга. Для использования CDATA атрибут необходимо вынести в отдельный тэг.
Пример:
<sql><![CDATA[ SELECT ... ]]> </sql>
Обратите внимание: внутри секции CDATA использование системных комментариев QForm недопустимо в силу особенностей работы самой CDATA!
