Вольный перевод документа из Adobe Live Docs — Configuration file syntax
В данном документе описывается синтаксис конфигурационного файла (flex-config.xml)
В конфигурационном файле значения хранятся в виде XML блоков, которые следуют определенному синтаксису. В основном теги повторяют параметры командной строки.
Корневой тег
По умолчанию корневой тег конф. файла flex-config.xml это <flex-config>. Если вы создает свой конфигурационный файл он также должен иметь корневой тег.
Все конфигурационные файлы должны иметь объявляющий XML тег <flex-config> и закрывающий тег </flex-config>, как показано в следующем примере:
<?xml version="1.0"?>
<flex-config xmlns="http://www.adobe.com/2006/flex-config">
</flex-config>
Вы обязательно должны закрывать тег <flex-config> так же как и любой другой xml тег.
Второй тег в конф. файле это тег . Этот тег служит оберткой для опций компилятора. Однако не все опции компилятора можно указать в данном блоке конфигурационного файла.
Теги которые вы должны использовать в блоке compiler, имеют префикс compiler (на пример, compiler.services). Если не используется точечная нотация (например, include-file) то такие теги указываются в корневом теге конф. файла. И записываются следующим образом:
<compiler>
...
</compiler>
<include-file>
<name>logo.gif</name>
<path>c:/images/logo/logo1.gif</path>
</include-file>
В некоторых случаях, параметры имеют множество вложенных тегов, такие как параметры fonts, compiler.fonts.managers и compiler.fonts.languages.language. Другие параметры, которые так же требуют наличие родительских тегов при добавлении в файл конфигурации, это параметр frames.frame и параметры metadata.
Далее будут описаны методы определения синтаксиса.
Получение списка тегов для конфигурационного файла
Используйте параметр help командной строки компилятора, чтобы узнать ситнаксис параметров компилятора для конф. файла; Например:
mxmlc -help list advanced
Ниже приводится запись для параметра source-path:
-compiler.source-path [path-element][...]
Это означает что в конфигурационном файле, вы можете использовать один и более элементов <path-element> как дочерние теги <source-path> и что <source-path> является дочерним тегом Далее показан пример как это должно выглядеть в файле конфигурации:
<compiler>
<source-path>
<path-element>.</path-element>
<path-element>c:/myclasses/</path-element>
</source-path>
</compiler>
Определение конечных узлов
Команда help использует точечную нотацию для отделения дочерних тегов от родительских, самая крайняя правая запись соответсвует конечному узлу. Например: -tag1.tag2 значит что дочерний тег .
Угловые скобки (< >) или квадратные скобки ([ ]), вокруг параметра указывают на то, является ли параметр конечным узлом или нет.
Квадратные скобки указывают, что может быть список из одного и более значений для данного параметра.
Если же уникальный конечный узел тега заключен в угловые скобки, то в конф. файле не нужно указывать родительские теги.
Например, если help выводит следующее:
compiler.fonts.managers [manager-class][...]
Тогда, вы можете указать в конфигурационном файле, значение для параметра, как показано ниже:
<compiler>
<fonts>
<managers>
<manager-class>flash.fonts.JREFontManager</manager-class>
</managers>
</fonts>
</compiler>
Однако узел <manager-class> уникальный, так что вы можете установить его значение без определения родительских тегов и , как это показано в следующем примере:
<compiler>
<manager-class>flash.fonts.JREFontManager</manager-class>
</compiler>
Если help выводит несколько параметров в угловых скобках, то вы устанавливаете значения для этих параметров на одном уровне, относительно друг друга, а не как дочерние. Например для default-size (default-size ) размер приложения по умолчанию в конф. файле устанавливается так:
<default-size>
<height>height_value</height>
<width>width_value</width>
</default-size>
Использование маркеров (tokens)
Вы можете передать маркер (token) значения в компилятор, используя следующий синтаксис:
+token_name=value
В конфигурационном файле, вы ссылаетесь на значение используя следующий синтаксис:
${token_name}
Вы также можете использовать маркер Context в ваших конф. файлах, для получения корневого контекста вашего приложения. Вы так же можете использовать маркер ${flexlib} для получения директории frameworks (директория фреймворка). Это так же может быть полезно если вы создаете вашу собственную конфигурацию и не используете library-path настройки по умолчанию.
По умолчанию значение маркера ${flexlib} это application_homeframeworks
Добавочные значения
В конф. файле вы можете указать атрибут append для любого тега который принимает список аргументов. Установите этот атрибут true чтобы указать что значения должны быть добавлены а не заменяют уже существующие. По умолчанию установлено значение false.
Установка атрибута append как true позволяет соединять значения параметров, сразу нескольких конфигурационных файлов.
( т.е вы указываете несколько конфигурационных файлов и их значения для параметров не заменяются, добавляются )
В следующем примере добавляются два значения для параметра library-path:
<library-path append="true">
<path-element>/mylibs</path-element>
<path-element>/myotherlibs</path-element>
</library-path>
Автор: iliacmd