Дескриптор аплета
Дескриптор аплета необходим для того, чтобы приложение Check-Engine, запускающее автомобильный аплет
знало как это сделать, какой класс сборки (assembly) аплета реализует интерфейс CarApplet.Applet.
Кроме информации о сборке (assembly) и об основном классе аплета, дескриптор содержит
читабельное название аплета, то название, которе Check-Engine должно выдавать пользователю.
Читабельное название может быть указано сразу на нескольких языках, что совсем не обязательно,
но довольно важно, если аплет использует многоязычный интерфейс.
Дескриптор аплета размещается в фале .xml
В одном .xml-файле может быть несколько дескрипторов, это предусмотрено прежде всего для "многоаплетных"
сборок. Обычно в сборке один аплет и .xml файл дескриптора содержит один дескриптор этого аплета.
Тэги, используемые в файле дескриптора
Файл, содержащий дескриптор обязательно должен включать корневой тэг <carapplets>,
который в свою очередь должен содержать по крайней мере один тэг <applet>.
Для включения в один файл нескольких дескрипторов необходимо в <carapplets> включить несколько
дочерних тегов <applet> одного уровня (см. пример).
В тэге <applet> должен быть включен тэг <descriptor>, который в свою очередь
содержит информационные тэги, содержащие информацию по аплету. Внутри <descriptor>...</descriptor>
предусмотрены следующие поля (тэги):
- <assembly>...</assembly>
Задает относительный путь к файлу сборки (assembly), содержащей аплет.
Обычно это основной .dll файл проекта автомобильного аплета.
Путь указывается относительно файла дискриптора. Если аплет собран в MyApplets.dll и эта dll размещена
в томже каталоге, в которм размещен файл дескриптора, дескриптор должен содержать:
<assembly>MyApplets.dll</assembly>
- <classname>...</classname>
Полное имя (включая namespace) основного класса аплета, реализующего интерфейс CarApplet.Applet.
Например для такого аплета:
namespace MyApplets {
class MyApplet:CarApplet.Applet
{
...
}
}
В дескрипторе нужн указать:
<classname>MyApplets.MyApplet</classname>
- <title>...</title>
Читабельное название аплета - для пользователя.
Это то название, которое Check-Engine показывает пользователю как название аплета.
Если аплет поддерживает несколько языков, то в дескриптор можно включить несколько таких тэгов,
с разными значениями атрибута lang, например:
<title>Экономичное вождение</title>
и
<title lang="en">Green driving</title>
Пример
В даном примере дискриптор содержит информацию по двум автомобильным аплетам - SpeedUp и WarmUp.
Оба аплета реализованы в одной библиотеке (в одной assembly).
Для каждого аплета указано название на языке "по умолчанию" (в данном случае на русском) и
альтернативное название для англоязычного интерфейса.
<?xml version="1.0" encoding="utf-8" ?>
<carapplets>
<applet name="SpeedUp">
<descriptor>
<assembly>Applets.dll</assembly>
<classname>Applets.SpeedUp.Applet</classname>
<title>Разгон</title>
<title lang="en">Speeding-up</title>
</descriptor>
</applet>
<applet name="WarmUp">
<descriptor>
<assembly>Applets.dll</assembly>
<classname>Applets.WarmUp.Applet</classname>
<title>Прогрев</title>
<title lang="en">Warmup</title>
</descriptor>
</applet>
</carapplets>