Содержание   Далее >>>

Общее правила формата XML



1. Все XML файлы для работы с ядром пишутся ТОЛЬКО в кодировке UTF8. Для этого необходимо найти подходящий редактор (например Microsoft Visual Studio, Bred3 (http://www.astonshell.ru/freeware/bred3/), Programmer's Notepad 2 (http://www.pnotepad.org/) или любой другой. Главное, чтобы он поддерживал UTF8 и желательно умел подсвечивать синтаксис XML файлов.

В редакторах, которые не поддерживают UTF8, файлы, написанные в этой кодировке не будут корректно читаться полностью. В этом случае будет видны только латинские буквы, цифры, знаки ASCII таблицы с кодом символов до 128. На месте других символов и символов национальных кодировок будут видны последовательности различных значков. Выбор этой кодировки обусловлен тем, что закладывается возможность использовать движок с любым языком (не только русским).

2. Первой строкой XML - файла должна быть такая строка:

<?xml version="1.0" encoding="UTF-8"?>
Эта строка даст информацию о том, что кодировка символов в файле - UTF8 (это нужно как ядру, так и редакторам).

3. Сам формат XML похож на формат HTML - используются теги, но в XML ошибки недопустимы. Должны присутствовать как открывающий, так и закрывающий теги, причем в строгой обратной последовательности, пропуски тегов или нарушения порядка следования тегов (как это можно было делать в HTML) недопустимо.

4. В самом XML файле может существовать только один корневой узел (тег). В корневом теге может быть сколько угодно других вложенных тегов, но главный тег в файле может быть только один.

5. Проверить правильность XML - файла можно например с помощью Internet Explorer 6 и выше. Если файл был удачно и правильно открыт и при этом браузер не показал нигде ошибку, то файл считается правильным (с точки зрения правил XML).

Общий вид любого XML файла такой :

 <?xml version="1.0" encoding="UTF-8"?>
 <mainteg>
 ...
 </mainteg>
6. Как и у HTML, в XML есть атрибуты. Атрибуты могут указываться только в открывающей части тега. Значения атрибута указываются в двойных кавычках: "" после знака равно: =
Пример наличия атрибутов у XML-тега :

 <teg atribute1="значение" atribute2="значение">
Между открывающим и закрывающим тегом допускается наличие текста.
Пример:

 <teg>Текст ...</teg>
Также существует краткая форма записи тега, когда открывающий тег является одновременно и закрывающим.
Пример:

 <teg atribute1="значение"/>
Такая форма записи используется если вся нужная информация находится в атрибутах тега, а у самого тега нет дочерних подтегов.

7. В самом XML все теги и атрибуты тегов должны быть написаны только маленькими латинскими буквами (это правило ядра, а не XML). Любые большие буквы, а также цифры и буквы национальных алфавитов допустимы только как значения атрибутов, заключенные в двойные кавычки : "", либо как текстовое значение между тегами. Например (так и только так) :

<string id="Значение атрибута id - ЛЮБЫЕ БУКВЫ">Дополнительный текст - ЛЮБЫЕ БУКВЫ</string>
8. В XML есть специальный тег, который предназначен для описания сложных данных в формате текста. Этот тег выглядит так:

 <![CDATA[
 ...
 ]]>
Этот тег будет использоваться совместно со скриптами ядра. Это было необходимо из-за того, что сам стандарт XML накладывает достаточно жесткие правила на свой формат, а требования к скриптам нарушает эти правила.

Формат скриптов Lua в теле XML файлов



Ядро очень сильно завязано на скрипты. Они используются максимально, насколько это возможно. Все скрипты пишутся на языке Lua. Это достаточно гибкий и простой язык. Он будет описан в других главах.

Сами Lua-скрипты содержаться внутри XML файлов ядра в следующем формате :

<script id="идентификатор"><![CDATA[
 ...тело скрипта...
]]></script>
Он состоит из 2 тегов : script и CDATA. У скрипта есть его идентификатор и его тело. Идентификатор слушит для служебных целей, а тело - это текст скрипта на языке Lua.

Основная причина, почему скрипты не были вынесены в отдельные файлы - это кодировка символов. Так как через скрипты можно отправлять текстовые сообщения, то текст в скриптах должен быть в формате UTF-8. Для этого пришлось бы указывать кодировку в текстовых файлах со скриптами, но формат текстовых файлов UTF-8 содержит ньюансы, о которых нужно помнить. Это накладывает дополнительные сложности при работе.

Вторая причина - это идентификация скриптов. Скрипты будут использоваться для различных целей и различных задач. Поэтому нужно как-то выделять отдельные скрипты друг от друга. Это потребовало бы механизма выделения отдельного тела скрипта из общего файла (при общей системе) либо создание отдельных файлов, что загромоздило бы файловую систему. А в XML уже есть готовый механизм выборки отдельных скриптов по определенным ключам.

Третья причина - уменьшение количество файлов с конфигурационными данными и скриптами. Отдельные файлы скриптов увеличили бы в 2 раза (примерно) количество файлов мира, которых итак будет очень много.

Содержание   Далее >>>