Flex Config. Описание синтаксиса конфигурационного файла

в 4:18, , рубрики: Flash-платформа, flex, синтаксис, метки: ,

Вольный перевод документа из 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

image

Ниже приводится запись для параметра 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

Поделиться

* - обязательные к заполнению поля