% -*- mode: LaTeX; coding: koi8-r -*-
% $Id: rm_contest_xml.tex,v 1.8 2004/04/29 04:12:20 cher Exp $
% Copyright (C) 2003,2004 Alexander Chernov <cher@unicorn.cmc.msu.ru>

\newpage
\section{Конфигурационный файл турниров \V{contest.xml}}
\hypertarget{F:contest.xml}{}

В данном разделе даётся описание формата файла описания параметров турнира.
В системе \S{ejudge} описание каждого турнира хранится в отдельном
XML-файле. Все файлы располагаются в одном каталоге, который
задаётся в элементе \V{contests\_dir} для конфигурационных файлов в
формате XML или в параметре \V{contests\_dir} для
конфигурационных файлов в формате INI. Описание каждого турнира
хранится в этом каталоге в файле с именем \V{$N$.xml},
где $N$ --- идентификатор (номер) турнира в десятичной записи из
6 знаков с ведущими нулями. Например, информация о турнире с
номером 1 хранится в файле \V{000001.xml}, а информация о
турнире с номером 192 --- в файле \V{000192.xml}.
Идентификатор турнира назначается администратором системы
\S{ejudge} и должен быть целым числом в диапазоне
$1 \leqslant N \leqslant 999999$. Никакие два турнира в одной
инсталляции системы \S{ejudge} не могут иметь один и тот же
идентификатор. Для большей эффективности работы системы
\S{ejudge} рекомендуется нумеровать турниры подряд, начиная с 1.
Идентификатор турнира, определяемый по имени файла, в котором
хранится его описание, должен совпадать со значением атрибута
\V{id} элемента верхнего уровня \V{contest} самого файла.

Файл описания турнира должен представлять собой правильно
сформированный XML-файл. Элементом верхнего уровня файла
является элемент \V{contest}, который должен присутствовать и не
может повторяться. Общая структура вложенности элементов файла
приведена в таблице \ref{tableContestXMLStructure}.

\begin{table}[htp]
{\scriptsize
\begin{tabbing}
\hspace{1cm}\=\hspace{1cm}\=\kill
\hyperlink{F:contest.xml,T:contest}{\V{contest}}\\
\>\hyperlink{F:contest.xml,T:name}{\V{name}}\\
\>\hyperlink{F:contest.xml,T:name_en}{\V{name\_en}}\\
\>\hyperlink{F:contest.xml,T:register_access}{\V{register\_access}}\\
\>\>\hyperlink{F:contest.xml,T:ip}{\V{ip}}\\
\>\hyperlink{F:contest.xml,T:users_access}{\V{users\_access}}\\
\>\>\hyperlink{F:contest.xml,T:ip}{\V{ip}}\\
\>\hyperlink{F:contest.xml,T:master_access}{\V{master\_access}}\\
\>\>\hyperlink{F:contest.xml,T:ip}{\V{ip}}\\
\>\hyperlink{F:contest.xml,T:judge_access}{\V{judge\_access}}\\
\>\>\hyperlink{F:contest.xml,T:ip}{\V{ip}}\\
\>\hyperlink{F:contest.xml,T:team_access}{\V{team\_access}}\\
\>\>\hyperlink{F:contest.xml,T:ip}{\V{ip}}\\
\>\hyperlink{F:contest.xml,T:field}{\V{field}}\\
\>\hyperlink{F:contest.xml,T:contestants}{\V{contestants}}\\
\>\>\hyperlink{F:contest.xml,T:field}{\V{field}}\\
\>\hyperlink{F:contest.xml,T:reserves}{\V{reserves}}\\
\>\>\hyperlink{F:contest.xml,T:field}{\V{field}}\\
\>\hyperlink{F:contest.xml,T:coaches}{\V{coaches}}\\
\>\>\hyperlink{F:contest.xml,T:field}{\V{field}}\\
\>\hyperlink{F:contest.xml,T:advisors}{\V{advisors}}\\
\>\>\hyperlink{F:contest.xml,T:field}{\V{field}}\\
\>\hyperlink{F:contest.xml,T:guests}{\V{guests}}\\
\>\>\hyperlink{F:contest.xml,T:field}{\V{field}}\\
\>\hyperlink{F:contest.xml,T:users_header_file}{\V{users\_header\_file}}\\
\>\hyperlink{F:contest.xml,T:users_footer_file}{\V{users\_footer\_file}}\\
\>\hyperlink{F:contest.xml,T:register_header_file}{\V{register\_header\_file}}\\
\>\hyperlink{F:contest.xml,T:register_footer_file}{\V{register\_footer\_file}}\\
\>\hyperlink{F:contest.xml,T:team_header_file}{\V{team\_header\_file}}\\
\>\hyperlink{F:contest.xml,T:team_footer_file}{\V{team\_footer\_file}}\\
\>\hyperlink{F:contest.xml,T:register_email}{\V{register\_email}}\\
\>\hyperlink{F:contest.xml,T:register_url}{\V{register\_url}}\\
\>\hyperlink{F:contest.xml,T:team_url}{\V{team\_url}}\\
\>\hyperlink{F:contest.xml,T:registration_deadline}{\V{registration\_deadline}}\\
\>\hyperlink{F:contest.xml,T:users_head_style}{\V{users\_head\_style}}\\
\>\hyperlink{F:contest.xml,T:users_par_style}{\V{users\_par\_style}}\\
\>\hyperlink{F:contest.xml,T:users_table_style}{\V{users\_table\_style}}\\
\>\hyperlink{F:contest.xml,T:users_verb_style}{\V{users\_verb\_style}}\\
\>\hyperlink{F:contest.xml,T:register_head_style}{\V{register\_head\_style}}\\
\>\hyperlink{F:contest.xml,T:register_par_style}{\V{register\_par\_style}}\\
\>\hyperlink{F:contest.xml,T:register_table_style}{\V{register\_table\_style}}\\
\>\hyperlink{F:contest.xml,T:team_head_style}{\V{team\_head\_style}}\\
\>\hyperlink{F:contest.xml,T:team_par_style}{\V{team\_par\_style}}\\
\\
\>\hyperlink{F:contest.xml,T:caps}{\V{caps}}\\
\>\>\hyperlink{F:contest.xml,T:cap}{\V{cap}}\\
\>\hyperlink{F:contest.xml,T:root_dir}{\V{root\_dir}}\\
\>\hyperlink{F:contest.xml,T:standings_dir}{\V{standings\_url}}\\
\>\hyperlink{F:contest.xml,T:problems_dir}{\V{problems\_url}}\\
\>\hyperlink{F:contest.xml,T:client_flags}{\V{client\_flags}}\\
\>\hyperlink{F:contest.xml,T:serve_user}{\V{serve\_user}}\\
\>\hyperlink{F:contest.xml,T:serve_group}{\V{serve\_group}}\\
\end{tabbing}}

\caption{Структура вложенности элементов конфигурационного файла
\V{contest.xml}}
\label{tableContestXMLStructure}
\end{table}

В конфигурационном файле турнира, в частности, задаются
дополнительные ограничения на допустимые IP-адреса для всех
CGI-программ (элементы ...). Кроме этого, в конфигурационном
файле определяются обязательные и необязательные поля анкеты
участника.

Анкета участника турнира заполняется пользователем, когда он
регистрируется на турнир с помощью CGI-программы
\hyperlink{P:register}{\S{register}}. Участником турнира может
быть как команда (для командных соревнований), так и
единственный человек. Поэтому анкета участника турнира
состоит из нескольких частей. Первую часть составляют данные
общего характера, такие как название участника турнира (то есть
название команды или имя, под которым в турнире выступает
человек), учебное заведение, факультет, город, страна.
Вторую часть анкеты составляют персональные данные всех лиц,
связанных с командой (в случае командного турнира) или
участником. Для командных турниров могут задаваться личные данные членов
команды, запасных игроков, тренеров и руководителей команды, а
также гостей, приглашаемых командой. Для личных турниров могут
задаваться личные данные участника турнира, его тренера и
руководителя.

Поскольку количество требуемой информации об участнике может
варьироваться от турнира к турниру, так же как и ограничения на
число лиц, связанных с участником или командой, в
конфигурационном файле турнира задаются поля анкеты,
предъявляемые для заполнения. Поля анкеты первой части
описываются в элементах \V{field}, вложенных непосредственно в
элемент \V{contest}. Атрибут \V{id} элемента в этом случае может
принимать значения, перечисленные в таблице
\ref{tableGlobalFieldId}.

\begin{table}[ht]
\begin{center}
\begin{tabular}{|>{\small\ttfamily}l|p{12cm}|}
\hline
homepage
  & Домашняя страница пользователя. \\
inst
  & Полное название учебного заведения, к которому относится
    участник. \\
inst\_en
  & Полное название учебного заведения, к которому относится
    участник, на английском языке. \\
instshort
  & Краткое название учебного заведения. \\
instshort\_en
  & Краткое название учебного заведения на английском языке. \\
fac
  & Полное название факультета, к которому относится
  участник. \\
fac\_en
  & Полное название факультета, к которому относится
  участник, на английском языке. \\
facshort
  & Краткое название факультета. \\
facshort\_en
  & Краткое название факультета на английском языке. \\
city
  & Город. \\
city\_en
  & Название города на английском языке. \\
country
  & Страна. \\
country\_en
  & Название страны на английском языке. \\
\hline
\end{tabular}
\end{center}
\caption{Описание полей анкеты участника, допустимых в первой
  части анкеты}
\label{tableGlobalFieldId}
\end{table}

Поля второй части анкеты описываются отдельно по каждой
категории лиц, связанных с участником. Выделяются пять категорий
лиц:
\begin{enumerate}
\item
Непосредственно игроки (\V{contestants}). В случае
командного турнира это --- члены команды, в случае личного
турнира это сам участник турнира.
\item
Запасные игроки (\V{reserves}). В случае личного турнира эта
категория не имеет смысла.
\item
Тренеры (\V{coaches}).
\item
Руководители (\V{advisors}).
\item
Прочие (\V{guests}).
\end{enumerate}
Для каждой из категории атрибутами соответствующего элемента
файла конфигурации турнира задаётся минимальное и максимальное
число лиц этой категории. Поля анкеты задаются с помощью
вложенных элементов \V{field}, атрибут \V{id} которых может
принимать значения, перечисленные в таблице
\ref{tablePersonalFieldId}.

\begin{table}[ht]
\begin{center}
\begin{tabular}{|>{\small\ttfamily}l|p{12cm}|}
\hline
firstname
  & Имя. \\
firstname\_en
  & Имя в английском написании. \\
middlename
  & Отчество. \\
middlename\_en
  & Отчество в английском написании. \\
surname
  & Фамилия. \\
surname\_en
  & Фамилия в английском написании. \\
status
  & Статус: школьник, студент, аспирант, учитель и т. д. \\
grade
  & Класс школы или номер курса ВУЗа. \\
group
  & Название класса или академической группы. \\
group\_en
  & Название класса или академической группы в английском написании. \\
email
  & Личный адрес e-mail. \\
homepage
  & Личная страничка в Интернет. \\
inst
  & Полное название учебного заведения (если отличается от
    заданного для участника в целом). \\
inst\_en
  & Полное название учебного заведения (если отличается от
    заданного для участника в целом) на английском языке. \\
instshort
  & Краткое название учебного заведения. \\
instshort\_en
  & Краткое название учебного заведения на английском языке. \\
fac
  & Полное название факультета. \\
fac\_en
  & Полное название факультета на английском языке. \\
facshort
  & Краткое название факультета. \\
facshort\_en
  & Краткое название факультета на английском языке. \\
occupation
  & Занимаемая должность. \\
occupation\_en
  & Занимаемая должность на английском языке. \\
\hline
\end{tabular}
\end{center}
\caption{Описание полей анкеты участника, допустимых во второй
  части анкеты}
\label{tablePersonalFieldId}
\end{table}

Далее рассматриваются все элементы конфигурационного файла
\V{contest.xml}.

\clearpage
\subsection{Элемент \V{contest}}
\hypertarget{F:contest.xml,T:contest}{}

\begin{tabular}{@{}>{\bfseries}lp{11cm}}
Имя элемента:        & \K{contest} \\
Содержится в:        & \I{нет}\\
Может содержать:     & \strut\small%
  \hyperlink{F:contest.xml,T:name}{\V{name}},
  \hyperlink{F:contest.xml,T:name_en}{\V{name\_en}},
  \hyperlink{F:contest.xml,T:register_access}{\V{register\_access}},
  \hyperlink{F:contest.xml,T:users_access}{\V{users\_access}},
  \hyperlink{F:contest.xml,T:master_access}{\V{master\_access}},
  \hyperlink{F:contest.xml,T:judge_access}{\V{judge\_access}},
  \hyperlink{F:contest.xml,T:team_access}{\V{team\_access}},
  \hyperlink{F:contest.xml,T:field}{\V{field}},
  \hyperlink{F:contest.xml,T:contestants}{\V{contestants}},
  \hyperlink{F:contest.xml,T:reserves}{\V{reserves}},
  \hyperlink{F:contest.xml,T:coaches}{\V{coaches}},
  \hyperlink{F:contest.xml,T:advisors}{\V{advisors}},
  \hyperlink{F:contest.xml,T:guests}{\V{guests}},
  \hyperlink{F:contest.xml,T:users_header_file}{\V{users\_header\_file}},
  \hyperlink{F:contest.xml,T:users_footer_file}{\V{users\_footer\_file}},
  \hyperlink{F:contest.xml,T:register_header_file}{\V{register\_header\_file}},
  \hyperlink{F:contest.xml,T:register_footer_file}{\V{register\_footer\_file}},
  \hyperlink{F:contest.xml,T:team_header_file}{\V{team\_header\_file}},
  \hyperlink{F:contest.xml,T:team_footer_file}{\V{team\_footer\_file}},
  \hyperlink{F:contest.xml,T:register_email}{\V{register\_email}},
  \hyperlink{F:contest.xml,T:register_url}{\V{register\_url}},
  \hyperlink{F:contest.xml,T:team_url}{\V{team\_url}},
  \hyperlink{F:contest.xml,T:registration_deadline}{\V{registration\_deadline}},
  \hyperlink{F:contest.xml,T:caps}{\V{caps}},
  \hyperlink{F:contest.xml,T:root_dir}{\V{root\_dir}},
  \hyperlink{F:contest.xml,T:standings_dir}{\V{standings\_url}},
  \hyperlink{F:contest.xml,T:problems_dir}{\V{problems\_url}},
  \hyperlink{F:contest.xml,T:client_flags}{\V{client\_flags}},
  \hyperlink{F:contest.xml,T:serve_user}{\V{serve\_user}},
  \hyperlink{F:contest.xml,T:serve_group}{\V{serve\_group}},
  \hyperlink{F:contest.xml,T:users_head_style}{\V{users\_head\_style}},
  \hyperlink{F:contest.xml,T:users_par_style}{\V{users\_par\_style}},
  \hyperlink{F:contest.xml,T:users_table_style}{\V{users\_table\_style}},
  \hyperlink{F:contest.xml,T:users_verb_style}{\V{users\_verb\_style}},
  \hyperlink{F:contest.xml,T:register_head_style}{\V{register\_head\_style}},
  \hyperlink{F:contest.xml,T:register_par_style}{\V{register\_par\_style}},
  \hyperlink{F:contest.xml,T:register_table_style}{\V{register\_table\_style}},
  \hyperlink{F:contest.xml,T:team_head_style}{\V{team\_head\_style}},
  \hyperlink{F:contest.xml,T:team_par_style}{\V{team\_par\_style}}\\
Атрибуты:            & \strut%
  \hyperlink{F:contest.xml,T:contest,A:id}{\V{id}},
  \hyperlink{F:contest.xml,T:contest,A:autoregister}{\V{autoregister}},
  \hyperlink{F:contest.xml,T:contest,A:managed}{\V{managed}},
  \hyperlink{F:contest.xml,T:contest,A:run_managed}{\V{run\_managed}},
  \hyperlink{F:contest.xml,T:contest,A:clean_users}{\V{clean\_users}},
  \hyperlink{F:contest.xml,T:contest,A:disable_team_password}{\V{disable\_team\_password}}\\
Тип содержимого:     & игнорируется\\
Может отсутствовать: & \I{нет}\\
Может повторяться:   & \I{нет}\\
\end{tabular}

\B{Описание.} Элемент верхнего уровня конфигурационного файла.
Элемент должен иметь обязательный атрибут \V{id}, определяющий
идентификатор этого турнира.

\subsubsection{Атрибут \V{id}}
\hypertarget{F:contest.xml,T:contest,A:id}{}

\begin{tabular}{@{}>{\bfseries}lp{10cm}}
Имя атрибута:          & \K{id} \\
Содержится в:          & \strut\hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Тип значения:          & \I{integer} \\
Может отсутствовать:   & \I{нет} \\
\end{tabular}

\B{Описание.} Данный атрибут должен содержать идентификатор
турнира. Идентификатор турнира представляет собой число в
десятичной записи в диапазоне от 1 до 999999
включительно. Идентификатор турнира, определяемого в файле,
должен соответствовать имени этого файла.

\newpage
\subsubsection{Атрибут \V{autoregister}}
\hypertarget{F:contest.xml,T:contest,A:autoregister}{}

\begin{tabular}{@{}>{\bfseries}lp{10cm}}
Имя атрибута:          & \K{autoregister} \\
Содержится в:          & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Тип значения:          & \I{boolean} \\
Может отсутствовать:   & \I{да} \\
Значение по умолчанию: & \I{false} \\
\end{tabular}

\B{Описание.} Данный атрибут устанавливает значение флага
авторегистрации. Если атрибут установлен в значение \I{true},
регистрация каждого нового участника турнира автоматически
подтверждается как только он полностью заполнил регистрационную
форму. Сразу после этого участник может заходить на личную
страницу сдачи решений. Если атрибут установлен в значение
\I{false} (по умолчанию), после того, как участник полностью
заполнил регистрационную форму, его регистрации присваивается статус
<<Ожидает подтверждения>>. В этом статусе участник не может
заходить на свою личную страницу. Подтверждение регистрации
может быть сделано привилегированным пользователем турнира,
который имеет полномочие \V{EDIT\_REGISTRATION}.

Значение этого атрибута рекомендуется устанавливать в \I{true}
для постоянно открытых турниров, таких как интернет-туры или
виртуальные турниры. Значение атрибута \I{false} позволяет
регулировать регистрацию на турнир и может применяться для
традиционной формы проведения турниров.

\subsubsection{Атрибут \V{managed}}
\hypertarget{F:contest.xml,T:contest,A:managed}{}

\begin{tabular}{@{}>{\bfseries}lp{10cm}}
Имя атрибута:          & \K{managed} \\
Содержится в:          & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Тип значения:          & \I{boolean} \\
Может отсутствовать:   & \I{да} \\
Значение по умолчанию: & \I{false} \\
\end{tabular}

\B{Описание.} Если значение этого атрибута установлено в \I{true}, программа
управления турниром \hyperlink{P:serve}{\S{serve}} ставится под
управление программы \hyperlink{P:super-serve}{\S{super-serve}},
которая следит одновременно за несколькими турнирами и запускает
программу \S{serve}, как только поступает запрос
соответствующему турниру. Если значение атрибута установлено в
\I{false}, данный турнир игнорируется программой \S{super-serve}.

\subsubsection{Атрибут \V{run\_managed}}
\hypertarget{F:contest.xml,T:contest,A:run_managed}{}

\begin{tabular}{@{}>{\bfseries}lp{10cm}}
Имя атрибута:          & \K{run\_managed} \\
Содержится в:          & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Тип значения:          & \I{boolean} \\
Может отсутствовать:   & \I{да} \\
Значение по умолчанию: & \I{false} \\
\end{tabular}

\B{Описание.} Если значение этого атрибута установлено в
\I{true}, программа проверки решений \hyperlink{P:run}{\S{run}}
ставится под управление программы
\hyperlink{P:super-serve}{\S{super-serve}}, которая следит
одновременно за несколькими турнирами и запускает программу
\S{run}, как только поступает запрос на проверку решения в
соответствующем турнире. Если значение атрибута установлено в
\I{false}, данный турнир игнорируется программой \S{super-serve}.

\newpage
\subsubsection{Атрибут \V{clean\_users}}
\hypertarget{F:contest.xml,T:contest,A:clean_users}{}

\begin{tabular}{@{}>{\bfseries}lp{10cm}}
Имя атрибута:          & \K{clean\_users} \\
Содержится в:          & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Тип значения:          & \I{boolean} \\
Может отсутствовать:   & \I{да} \\
Значение по умолчанию: & \I{true} \\
\end{tabular}

\B{Описание.} Если значение данного атрибута установлено в
\I{true} (значение по умолчанию), программа
\hyperlink{P:clean-users}{\S{clean-users}}
будет сканировать базу сдач решений и вопросов судьям текущего
турнира. Программа \S{clean-users} выявляет пользователей,
занесённых в базу пользователей, возможно зарегистрировавшихся
для участия в каком-либо турнире, но не сделавших ни одной
попытки сдачи решения и не задавших ни один вопрос. Такие
пользователи помечаются как кандидаты на удаление из базы
пользователей. Если значение данного атрибута установлено в
\I{false}, программа \S{clean-users} игнорирует данный турнир.

\subsubsection{Атрибут \V{disable\_team\_password}}
\hypertarget{F:contest.xml,T:contest,A:disable_team_password}{}

\begin{tabular}{@{}>{\bfseries}lp{10cm}}
Имя атрибута:          & \K{disable\_team\_password} \\
Содержится в:          & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Тип значения:          & \I{boolean} \\
Может отсутствовать:   & \I{да} \\
Значение по умолчанию: & \I{false} \\
\end{tabular}

\B{Описание.} По умолчанию
каждый пользователь имеет два пароля: регистрационный и пароль
участника. Регистрационный пароль необходим для доступа к
CGI-программе \hyperlink{P:register}{\S{register}}, которая
позволяет изменять регистрационную информацию и регистрироваться
для участия в турнирах. Пароль участника необходим для доступа к
CGI-программе \hyperlink{P:team}{\S{team}}, то есть
непосредственно для участия в турнире.
Если значение атрибута \V{disable\_team\_password} равно \I{true},
специальный пароль участия в турнире отключается. Для доступа к
CGI-программе \S{team} в этом случае используется
регистрационный пароль.

Пароли участников обычно генерируются администратором турнира
(точнее, пользователем с полномочием
\V{GENERATE\_TEAM\_PASSWORDS}) перед началом турнира. Для
турниров с открытой регистрацией (см. атрибут
\hyperlink{F:contest.xml,T:contest,A:autoregister}{\V{autoregister}} элемента
\hyperlink{F:contest.xml,T:contest}{\V{contest}})
это становится затруднительным. Тогда
использование атрибута \V{disable\_team\_password} может быть удобным.

\subsubsection{Атрибут \V{closed}}
\hypertarget{F:contest.xml,T:contest,A:closed}{}

\begin{tabular}{@{}>{\bfseries}lp{10cm}}
Имя атрибута:          & \K{closed} \\
Содержится в:          & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Тип значения:          & \I{boolean} \\
Может отсутствовать:   & \I{да} \\
Значение по умолчанию: & \I{false} \\
\end{tabular}

\B{Описание.}
Если этот атрибут установлен в \I{true}, данный турнир считается
<<закрытым>> (оконченным), то есть регистрация на него с помощью
CGI-программы \hyperlink{P:register}{\S{register}} невозможна, и
запуск CGI-программы \hyperlink{P:team}{\S{team}} для данного
турнира также невозможен (будет выведено сообщение о том, что
данный турнир закрыт). Данный атрибут турнира может
устанавливаться, когда желательно предотвратить случайные
бессмысленные попытки регистрации на турнир и участия в нём.

\newpage
\subsection{Элемент \V{name}}
\hypertarget{F:contest.xml,T:name}{}

\begin{tabular}{@{}>{\bfseries}lp{11cm}}
Имя элемента:        & \K{name} \\
Содержится в:        & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Может содержать:     & \I{нет} \\
Атрибуты:            & \I{нет} \\
Тип содержимого:     & \I{string}\\
Может отсутствовать: & \I{нет}\\
Может повторяться:   & \I{нет}\\
\end{tabular}

\B{Описание.} Данный элемент позволяет задать имя турнира.

\B{Пример.}
{\small\begin{verbatim}
  <name>Турнир пионеров</name>
\end{verbatim}}

\subsection{Элемент \V{name\_en}}
\hypertarget{F:contest.xml,T:name_en}{}

\begin{tabular}{@{}>{\bfseries}lp{11cm}}
Имя элемента:        & \K{name} \\
Содержится в:        & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Может содержать:     & \I{нет} \\
Атрибуты:            & \I{нет} \\
Тип содержимого:     & \I{string}\\
Может отсутствовать: & \I{да}\\
Может повторяться:   & \I{нет}\\
\end{tabular}

\B{Описание.} Данный элемент позволяет задать имя турнира на
английском языке. Английское имя турнира используется программами
\S{users}, \S{register} и \S{team} когда идентификатор языка
(\V{locale\_id}) равен 0. Если элемент \V{name\_en} не задан,
используется значение элемента \V{name}, то есть имя турнира на
локальном языке (в настоящее время это может быть только русский
язык).

\B{Замечание.} Английское название турнира должно использоваться во
всех случаях, когда идентификатор языка в CGI-программах не совпадает
с идентификатором языка, указанным в конфигурационном файле
турнира. Данная возможность в настоящее время не реализована,
поскольку система \S{ejudge} поддерживает пока только два языка:
английский и русский.

\B{Пример.}
{\small\begin{verbatim}
  <name_en>The pioneer's tournament</name_en>
\end{verbatim}}

\subsection{Элемент \V{register\_access}}
\hypertarget{F:contest.xml,T:register_access}{}

\begin{tabular}{@{}>{\bfseries}lp{11cm}}
Имя элемента:        & \K{register\_access} \\
Содержится в:        & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Может содержать:     & \V{ip} \\
Атрибуты:            & \V{default} \\
Тип содержимого:     & \strut%
  \hyperlink{F:all,IPLimitationsXML}{\I{список IP-ограничений}}\\
Может отсутствовать: & \I{да}\\
Может повторяться:   & \I{нет}\\
\end{tabular}

\B{Описание.} Данный элемент позволяет задать ограничения на
IP-адреса, с которых возможна регистрация на данный турнир с
помощью CGI-программы \hyperlink{P:register}{\S{register}}. Для
подробного описания средств ограничения доступа по IP-адресам
системы \S{ejudge} см. раздел \ref{sectionIPAddressLimitation}.

\newpage
\subsection{Элемент \V{users\_access}}
\hypertarget{F:contest.xml,T:users_access}{}

\begin{tabular}{@{}>{\bfseries}lp{11cm}}
Имя элемента:        & \K{users\_access} \\
Содержится в:        & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Может содержать:     & \V{ip} \\
Атрибуты:            & \V{default} \\
Тип содержимого:     & \strut%
  \hyperlink{F:all,IPLimitationsXML}{\I{список IP-ограничений}}\\
Может отсутствовать: & \I{да}\\
Может повторяться:   & \I{нет}\\
\end{tabular}

\B{Описание.} Данный элемент позволяет задать ограничения на
IP-адреса, с которых возможен просмотр списка участников и
информации об участниках с
помощью CGI-программы \hyperlink{P:users}{\S{users}}. Для
подробного описания средств ограничения доступа по IP-адресам
системы \S{ejudge} см. раздел \ref{sectionIPAddressLimitation}.

\subsection{Элемент \V{master\_access}}
\hypertarget{F:contest.xml,T:master_access}{}

\begin{tabular}{@{}>{\bfseries}lp{11cm}}
Имя элемента:        & \K{master\_access} \\
Содержится в:        & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Может содержать:     & \V{ip} \\
Атрибуты:            & \V{default} \\
Тип содержимого:     & \strut%
  \hyperlink{F:all,IPLimitationsXML}{\I{список IP-ограничений}}\\
Может отсутствовать: & \I{да}\\
Может повторяться:   & \I{нет}\\
\end{tabular}

\B{Описание.} Данный элемент позволяет задать ограничения на
IP-адреса, с которых возможно администрирование данного турнира
с помощью CGI-программы \hyperlink{P:master}{\S{master}}. Для
подробного описания средств ограничения доступа по IP-адресам
системы \S{ejudge} см. раздел \ref{sectionIPAddressLimitation}.

\subsection{Элемент \V{judge\_access}}
\hypertarget{F:contest.xml,T:judge_access}{}

\begin{tabular}{@{}>{\bfseries}lp{11cm}}
Имя элемента:        & \K{judge\_access} \\
Содержится в:        & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Может содержать:     & \V{ip} \\
Атрибуты:            & \V{default} \\
Тип содержимого:     & \strut%
  \hyperlink{F:all,IPLimitationsXML}{\I{список IP-ограничений}}\\
Может отсутствовать: & \I{да}\\
Может повторяться:   & \I{нет}\\
\end{tabular}

\B{Описание.} Данный элемент позволяет задать ограничения на
IP-адреса, с которых возможно судейство данного турнира
с помощью CGI-программы \hyperlink{P:judge}{\S{judge}}. Для
подробного описания средств ограничения доступа по IP-адресам
системы \S{ejudge} см. раздел \ref{sectionIPAddressLimitation}.

\newpage
\subsection{Элемент \V{team\_access}}
\hypertarget{F:contest.xml,T:team_access}{}

\begin{tabular}{@{}>{\bfseries}lp{11cm}}
Имя элемента:        & \K{team\_access} \\
Содержится в:        & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Может содержать:     & \V{ip} \\
Атрибуты:            & \V{default} \\
Тип содержимого:     & \strut%
  \hyperlink{F:all,IPLimitationsXML}{\I{список IP-ограничений}}\\
Может отсутствовать: & \I{да}\\
Может повторяться:   & \I{нет}\\
\end{tabular}

\B{Описание.} Данный элемент позволяет задать ограничения на
IP-адреса, с которых возможно участие в данном турнире
с помощью CGI-программы \hyperlink{P:team}{\S{team}}. Для
подробного описания средств ограничения доступа по IP-адресам
системы \S{ejudge} см. раздел \ref{sectionIPAddressLimitation}.

\subsection{Элемент \V{ip}}
\hypertarget{F:contest.xml,T:ip}{}

\begin{tabular}{@{}>{\bfseries}lp{11cm}}
Имя элемента:        & \K{ip} \\
Содержится в:        & \strut%
  \hyperlink{F:contest.xml,T:register_access}{\V{register\_access}},
  \hyperlink{F:contest.xml,T:users_access}{\V{users\_access}},
  \hyperlink{F:contest.xml,T:master_access}{\V{master\_access}},
  \hyperlink{F:contest.xml,T:judge_access}{\V{judge\_access}},
  \hyperlink{F:contest.xml,T:team_access}{\V{team\_access}} \\
Может содержать:     & \I{нет} \\
Атрибуты:            & \V{allow} \\
Тип содержимого:     & \strut%
  \hyperlink{F:all,IPLimitationsXML}{\I{IP-ограничение}}\\
Может отсутствовать: & \I{да}\\
Может повторяться:   & \I{да}\\
\end{tabular}

\B{Описание.} Данный элемент  задаёт одно ограничения на
IP-адреса. Для
подробного описания средств ограничения доступа по IP-адресам
системы \S{ejudge} см. раздел \ref{sectionIPAddressLimitation}.

\subsection{Элемент \V{field}}
\hypertarget{F:contest.xml,T:field}{}

\begin{tabular}{@{}>{\bfseries}lp{11cm}}
Имя элемента:        & \K{field} \\
Содержится в:        & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}},
  \hyperlink{F:contest.xml,T:contestants}{\V{contestants}},
  \hyperlink{F:contest.xml,T:reserves}{\V{reserves}},
  \hyperlink{F:contest.xml,T:coaches}{\V{coaches}},
  \hyperlink{F:contest.xml,T:advisors}{\V{advisors}},
  \hyperlink{F:contest.xml,T:guests}{\V{guests}} \\
Может содержать:     & \I{нет} \\
Атрибуты:            & \strut%
  \hyperlink{F:contest.xml,T:field,A:id}{\V{id}},
  \hyperlink{F:contest.xml,T:field,A:mandatory}{\V{mandatory}} \\
Тип содержимого:     & игнорируется \\
Может отсутствовать: & \I{да} \\
Может повторяться:   & \I{да} \\
\end{tabular}

\B{Описание.} Элемент \V{field} позволяет указывать поля ввода,
которые будут предъявлены участнику при регистрации на
турнир. Если элемент находится непосредственно в элементе
\V{contest}, он позволяет указывать поля ввода общей информации
об участнике. В этом случае атрибут \V{id} должен принимать одно
из значений, перечисленных в таблице \ref{tableGlobalFieldId}.
Если элемент находится в элементах \V{contestants},
\V{reserves}, \V{coaches}, \V{advisors}, и \V{guests}, с его
помощью указываются поля анкеты, заполняемые для соответствующей
категории лиц. В этом случае атрибут \V{id} должен принимать
одно из значений, перечисленных в таблице \ref{tablePersonalFieldId}.
С помощью атрибута \V{mandatory} элемента \V{field} можно указать,
что данное поле ввода является обязательным для заполнения в анкете.

\newpage
\subsubsection{Атрибут \V{id}}
\hypertarget{F:contest.xml,T:field,A:id}{}

\begin{tabular}{@{}>{\bfseries}lp{10cm}}
Имя атрибута:          & \K{id} \\
Содержится в:          & \strut%
  \hyperlink{F:contest.xml,T:field}{\V{field}} \\
Тип значения:          & См. таблицы \ref{tableGlobalFieldId}
                         и \ref{tablePersonalFieldId}.  \\
Может отсутствовать:   & \I{нет} \\
\end{tabular}

\B{Описание.} С помощью данного атрибута указывается поле ввода
анкеты. Если элемент \V{field} непосредственно вложен в элемент
\V{contest}, данный атрибут должен принимать одно из значений,
перечисленных в таблице \ref{tableGlobalFieldId}. Если элемент
\V{field} вложен в элементы \V{contestants}, \V{reserves},
\V{coaches}, \V{advisors}, и \V{guests}, данный атрибут должен
принимать одно из значений, перечисленных в таблице
\ref{tablePersonalFieldId}.

\subsubsection{Атрибут \V{mandatory}}
\hypertarget{F:contest.xml,T:field,A:mandatory}{}

\begin{tabular}{@{}>{\bfseries}lp{10cm}}
Имя атрибута:          & \K{mandatory} \\
Содержится в:          & \strut%
  \hyperlink{F:contest.xml,T:field}{\V{field}} \\
Тип значения:          & \I{boolean} \\
Может отсутствовать:   & \I{да} \\
Значение по умолчанию: & \I{false} \\
\end{tabular}

\B{Описание.} Данный атрибут позволяет указать, что поле ввода
анкеты, задаваемое с помощью данного элемента \V{field},
обязательно к заполнению.

\newpage
\subsection{Элементы \V{contestants}, \V{reserves}, \V{coaches}, \V{advisors},
  \V{guests}}
\hypertarget{F:contest.xml,T:contestants}{}
\hypertarget{F:contest.xml,T:reserves}{}
\hypertarget{F:contest.xml,T:coaches}{}
\hypertarget{F:contest.xml,T:advisors}{}
\hypertarget{F:contest.xml,T:guests}{}

\begin{tabular}{@{}>{\bfseries}lp{11cm}}
Имя элемента:        & \K{contestants}, \K{reserves},
  \K{coaches}, \K{advisors}, \K{guests} \\
Содержится в:        & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Может содержать:     & \strut%
  \hyperlink{F:contest.xml,T:field}{\V{field}} \\
Атрибуты:            & \strut%
  \hyperlink{F:contest.xml,T:contestants,A:min}{\V{min}},
  \hyperlink{F:contest.xml,T:contestants,A:max}{\V{max}},
  \hyperlink{F:contest.xml,T:contestants,A:initial}{\V{initial}} \\
Тип содержимого:     & игнорируется \\
Может отсутствовать: & \I{да} \\
Может повторяться:   & \I{нет} \\
\end{tabular}

\B{Описание.} Описание нескольких элементов объединено в один раздел,
так как эти элементы очень близки друг другу. Данные элементы
позволяют задавать ограничения на количество лиц соответствующей
категории. Кроме того, данные элементы содержат в себе элементы
\V{field}, задающие поля ввода регистрационной анкеты. Элемент
\V{contestants} соответствует категории игроков турнира, элемент
\V{reserves} соответствует категории запасных игроков, элемент
\V{coaches} --- категории тренеров, элемент \V{advisors} ---
категории руководителей, и элемент \V{guests} --- прочим.

Атрибут \hyperlink{F:contest.xml,T:contestants,A:min}{\V{min}}
позволяет задать минимальное число лиц в данной
категории. Например, минимальное количество игроков одной команды
(contestants) в командном турнире может быть установлено в 2 или
3, а в личном турнире --- в 1. Если у каждого участника должен
быть тренер, минимальное число лиц этой категории (coaches)
должно быть установлено в 1.
Атрибут \hyperlink{F:contest.xml,T:contestants,A:max}{\V{max}}
позволяет задать
максимальное число лиц в данной категории. Например,
максимальное количество игроков одной команды в командном
турнире равно 3, а в личном турнире --- 1.
Атрибут \hyperlink{F:contest.xml,T:contestants,A:initial}{\V{initial}}
позволяет задать, формы ввода для скольких
лиц в данной категории будут выведены при регистрации на турнир,
когда формы печатаются для данного пользователя первый раз.

\subsubsection{Атрибут \V{min}}
\hypertarget{F:contest.xml,T:contestants,A:min}{}

\begin{tabular}{@{}>{\bfseries}lp{10cm}}
Имя атрибута:          & \K{min} \\
Содержится в:          & \strut%
  \hyperlink{F:contest.xml,T:contestants}{\V{contestants}},
  \hyperlink{F:contest.xml,T:reserves}{\V{reserves}},
  \hyperlink{F:contest.xml,T:coaches}{\V{coaches}},
  \hyperlink{F:contest.xml,T:advisors}{\V{advisors}},
  \hyperlink{F:contest.xml,T:guests}{\V{guests}} \\
Тип значения:          & \I{integer} \\
Может отсутствовать:   & \I{да} \\
Значение по умолчанию: & 0 \\
Описание:              & Минимальное количество лиц в данной
                         категории. \\
\end{tabular}

\subsubsection{Атрибут \V{max}}
\hypertarget{F:contest.xml,T:contestants,A:max}{}

\begin{tabular}{@{}>{\bfseries}lp{10cm}}
Имя атрибута:          & \K{max} \\
Содержится в:          & \strut%
  \hyperlink{F:contest.xml,T:contestants}{\V{contestants}},
  \hyperlink{F:contest.xml,T:reserves}{\V{reserves}},
  \hyperlink{F:contest.xml,T:coaches}{\V{coaches}},
  \hyperlink{F:contest.xml,T:advisors}{\V{advisors}},
  \hyperlink{F:contest.xml,T:guests}{\V{guests}} \\
Тип значения:          & \I{integer} \\
Может отсутствовать:   & \I{да} \\
Значение по умолчанию: & 0 \\
Описание:              & Максимальное количество лиц в данной
                         категории. \\
\end{tabular}

\subsubsection{Атрибут \V{initial}}
\hypertarget{F:contest.xml,T:contestants,A:initial}{}

\begin{tabular}{@{}>{\bfseries}lp{10cm}}
Имя атрибута:          & \K{initial} \\
Содержится в:          & \strut%
  \hyperlink{F:contest.xml,T:contestants}{\V{contestants}},
  \hyperlink{F:contest.xml,T:reserves}{\V{reserves}},
  \hyperlink{F:contest.xml,T:coaches}{\V{coaches}},
  \hyperlink{F:contest.xml,T:advisors}{\V{advisors}},
  \hyperlink{F:contest.xml,T:guests}{\V{guests}} \\
Тип значения:          & \I{integer} \\
Может отсутствовать:   & \I{да} \\
Значение по умолчанию: & 0 \\
Описание:              & Начальное количество лиц в данной
                         категории. \\
\end{tabular}

\subsubsection{Пример}

{\small\begin{verbatim}
  <contestants min="2" max="3">
    <field id="firstname" mandatory="yes"/>
    <field id="middlename"/>
    <field id="surname" mandatory="yes"/>
    <field id="status" mandatory="yes"/>
    <field id="grade" mandatory="yes"/>
    <field id="group"/>
  </contestants>
  <reserves min="0" max="1">
    <field id="firstname" mandatory="yes"/>
    <field id="middlename"/>
    <field id="surname" mandatory="yes"/>
    <field id="status" mandatory="yes"/>
    <field id="grade" mandatory="yes"/>
    <field id="group"/>
  </reserves>
  <coaches min="1" max="1">
    <field id="firstname" mandatory="yes"/>
    <field id="middlename"/>
    <field id="surname" mandatory="yes"/>
    <field id="status" mandatory="yes"/>
    <field id="occupation" mandatory="yes"/>
  </coaches>
  <advisors min="0" max="1">
    <field id="firstname" mandatory="yes"/>
    <field id="middlename"/>
    <field id="surname" mandatory="yes"/>
    <field id="status" mandatory="yes"/>
    <field id="occupation" mandatory="yes"/>
  </advisors>
\end{verbatim}}

\newpage
\subsection{Элемент \V{users\_header\_file}}
\hypertarget{F:contest.xml,T:users_header_file}{}

\begin{tabular}{@{}>{\bfseries}lp{11cm}}
Имя элемента:        & \K{users\_header\_file} \\
Содержится в:        & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Может содержать:     & \I{нет} \\
Атрибуты:            & \I{нет} \\
Тип содержимого:     & путь к файлу \\
Может отсутствовать: & \I{да} \\
Может повторяться:   & \I{нет} \\
\end{tabular}

\B{Описание.} Данный элемент позволяет задать путь к файлу,
который содержит <<шапку>> html-файла, генерируемого
CGI-программой \hyperlink{P:users}{\S{users}}. Если элемент
задан, то содержимое указанного файла будет выведено в начале
генерируемого файла. Если элемент не задан, генерируется
заголовок по умолчанию, включающий название турнира и кодировку
страницы. В файле-заголовке допускаются специальные
конструкции, начинающиеся со знака \V{\%} (<<процент>>),
перечисленные в таблице \ref{tableHeaderPercentSpecials}.

\B{Пример.}
{\small\begin{verbatim}
<users_header_file>/home/judges/20/conf/header.shtml</users_header_file>
\end{verbatim}}

\B{Замечание.} Если в файле-заголовке используются server-side
includes (SSI), поддержка SSI в CGI-программах должна быть
включена в используемом http-сервере. Для дальнейшей информации
обратитесь к документации на Ваш http-сервер.

\begin{table}[p]
\begin{center}
\begin{tabular}{|>{\ttfamily}l|p{12cm}|}
\hline
\%L & Заменяется на идентификатор языкового окружения, выбранного
      пользователем. Английскому языку соответствует идентификатор 0,
      а русскому --- 1.\\
\%C & Заменяется на кодировку (charset) страницы, например, \V{koi8-r}. \\
\%T & Заменяется на тип содержимого (content-type) страницы,
      например, \V{text/html}. \\
\%H & Заменяется на заголовок страницы, который может включать в себя
      название турнира и/или имя пользователя. \\
\%\% & Заменяется на один знак \V{\%}. \\
\hline
\end{tabular}
\end{center}
\caption{Специальные конструкции подстановки в
  файлах-заголовках}
\label{tableHeaderPercentSpecials}
\end{table}

\subsection{Элемент \V{users\_footer\_file}}
\hypertarget{F:contest.xml,T:users_footer_file}{}

\begin{tabular}{@{}>{\bfseries}lp{11cm}}
Имя элемента:        & \K{users\_footer\_file} \\
Содержится в:        & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Может содержать:     & \I{нет} \\
Атрибуты:            & \I{нет} \\
Тип содержимого:     & путь к файлу \\
Может отсутствовать: & \I{да} \\
Может повторяться:   & \I{нет} \\
\end{tabular}

\B{Описание.} Данный элемент позволяет задать путь к файлу,
который содержит <<подвал>> html-файла, генерируемого
CGI-программой \hyperlink{P:users}{\S{users}}. Если элемент
задан, то содержимое указанного файла будет выведено в конце
генерируемого файла. Если элемент не задан, генерируется
подвал страницы по умолчанию, включающий информацию об авторских
правах и версии системы \S{ejudge}. В файле-подвале допускаются специальные
конструкции, начинающиеся со знака \V{\%} (<<процент>>),
перечисленные в таблице \ref{tableFooterPercentSpecials}.

\B{Пример.}
{\small\begin{verbatim}
<users_footer_file>/home/judges/20/conf/footer.shtml</users_footer_file>
\end{verbatim}}

\B{Замечание.} Если в файле-подвале используются server-side
includes (SSI), поддержка SSI в CGI-программах должна быть
включена в используемом http-сервере. Для дальнейшей информации
обратитесь к документации на Ваш http-сервер.

\begin{table}[p]
\begin{center}
\begin{tabular}{|>{\ttfamily}l|p{12cm}|}
\hline
\%R & Заменяется на информацию об авторских правах, правах на
      распространение (GNU GPL) и версии системы \S{ejudge}. \\
\%\% & Заменяется на один знак \V{\%}. \\
\hline
\end{tabular}
\end{center}
\caption{Специальные конструкции подстановки в
  файлах-подвалах}
\label{tableFooterPercentSpecials}
\end{table}

\subsection{Элемент \V{register\_header\_file}}
\hypertarget{F:contest.xml,T:register_header_file}{}

\begin{tabular}{@{}>{\bfseries}lp{11cm}}
Имя элемента:        & \K{register\_header\_file} \\
Содержится в:        & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Может содержать:     & \I{нет} \\
Атрибуты:            & \I{нет} \\
Тип содержимого:     & путь к файлу \\
Может отсутствовать: & \I{да} \\
Может повторяться:   & \I{нет} \\
\end{tabular}

\B{Описание.} Данный элемент позволяет задать путь к файлу,
который содержит <<шапку>> html-файла, генерируемого
CGI-программой \hyperlink{P:register}{\S{register}}. Если элемент
задан, то содержимое указанного файла будет выведено в начале
генерируемого файла. Если элемент не задан, генерируется
заголовок по умолчанию, включающий название турнира и кодировку
страницы. В файле-заголовке допускаются специальные
конструкции, начинающиеся со знака \V{\%} (<<процент>>),
перечисленные в таблице \ref{tableHeaderPercentSpecials}.

\B{Пример.}
{\scriptsize\begin{verbatim}
<register_header_file>/home/judges/20/conf/header.shtml</register_header_file>
\end{verbatim}}

\B{Замечание.} Если в файле-заголовке используются server-side
includes (SSI), поддержка SSI в CGI-программах должна быть
включена в используемом http-сервере. Для дальнейшей информации
обратитесь к документации на Ваш http-сервер.

\subsection{Элемент \V{register\_footer\_file}},
\hypertarget{F:contest.xml,T:register_footer_file}{}

\begin{tabular}{@{}>{\bfseries}lp{11cm}}
Имя элемента:        & \K{register\_footer\_file} \\
Содержится в:        & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Может содержать:     & \I{нет} \\
Атрибуты:            & \I{нет} \\
Тип содержимого:     & путь к файлу \\
Может отсутствовать: & \I{да} \\
Может повторяться:   & \I{нет} \\
\end{tabular}

\B{Описание.} Данный элемент позволяет задать путь к файлу,
который содержит <<подвал>> html-файла, генерируемого
CGI-программой \hyperlink{P:register}{\S{register}}. Если элемент
задан, то содержимое указанного файла будет выведено в конце
генерируемого файла. Если элемент не задан, генерируется
подвал страницы по умолчанию, включающий информацию об авторских
правах и версии системы \S{ejudge}. В файле-подвале допускаются специальные
конструкции, начинающиеся со знака \V{\%} (<<процент>>),
перечисленные в таблице \ref{tableFooterPercentSpecials}.

\B{Пример.}
{\scriptsize\begin{verbatim}
<register_footer_file>/home/judges/20/conf/footer.shtml</register_footer_file>
\end{verbatim}}

\B{Замечание.} Если в файле-подвале используются server-side
includes (SSI), поддержка SSI в CGI-программах должна быть
включена в используемом http-сервере. Для дальнейшей информации
обратитесь к документации на Ваш http-сервер.

\newpage
\subsection{Элемент \V{team\_header\_file}}
\hypertarget{F:contest.xml,T:team_header_file}{}

\begin{tabular}{@{}>{\bfseries}lp{11cm}}
Имя элемента:        & \K{team\_header\_file} \\
Содержится в:        & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Может содержать:     & \I{нет} \\
Атрибуты:            & \I{нет} \\
Тип содержимого:     & путь к файлу \\
Может отсутствовать: & \I{да} \\
Может повторяться:   & \I{нет} \\
\end{tabular}

\B{Описание.} Данный элемент позволяет задать путь к файлу,
который содержит <<шапку>> html-файла, генерируемого
CGI-программой \hyperlink{P:team}{\S{team}}. Если элемент
задан, то содержимое указанного файла будет выведено в начале
генерируемого файла. Если элемент не задан, генерируется
заголовок по умолчанию, включающий название турнира и кодировку
страницы. В файле-заголовке допускаются специальные
конструкции, начинающиеся со знака \V{\%} (<<процент>>),
перечисленные в таблице \ref{tableHeaderPercentSpecials}.

\B{Пример.}
{\small\begin{verbatim}
<team_header_file>/home/judges/20/conf/header.shtml</team_header_file>
\end{verbatim}}

\B{Замечание.} Если в файле-заголовке используются server-side
includes (SSI), поддержка SSI в CGI-программах должна быть
включена в используемом http-сервере. Для дальнейшей информации
обратитесь к документации на Ваш http-сервер.

\subsection{Элемент \V{team\_footer\_file}}
\hypertarget{F:contest.xml,T:team_footer_file}{}

\begin{tabular}{@{}>{\bfseries}lp{11cm}}
Имя элемента:        & \K{team\_footer\_file} \\
Содержится в:        & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Может содержать:     & \I{нет} \\
Атрибуты:            & \I{нет} \\
Тип содержимого:     & путь к файлу \\
Может отсутствовать: & \I{да} \\
Может повторяться:   & \I{нет} \\
\end{tabular}

\B{Описание.} Данный элемент позволяет задать путь к файлу,
который содержит <<подвал>> html-файла, генерируемого
CGI-программой \hyperlink{P:team}{\S{team}}. Если элемент
задан, то содержимое указанного файла будет выведено в конце
генерируемого файла. Если элемент не задан, генерируется
подвал страницы по умолчанию, включающий информацию об авторских
правах и версии системы \S{ejudge}. В файле-подвале допускаются специальные
конструкции, начинающиеся со знака \V{\%} (<<процент>>),
перечисленные в таблице \ref{tableFooterPercentSpecials}.

\B{Пример.}
{\small\begin{verbatim}
<team_footer_file>/home/judges/20/conf/footer.shtml</team_footer_file>
\end{verbatim}}

\B{Замечание.} Если в файле-подвале используются server-side
includes (SSI), поддержка SSI в CGI-программах должна быть
включена в используемом http-сервере. Для дальнейшей информации
обратитесь к документации на Ваш http-сервер.

\newpage
\subsection{Элемент \V{users\_head\_style}}
\hypertarget{F:contest.xml,T:users_head_style}{\V{users\_head\_style}}

\begin{tabular}{@{}>{\bfseries}lp{11cm}}
Имя элемента:          & \K{users\_head\_style} \\
Содержится в:          & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Может содержать:       & \I{нет} \\
Атрибуты:              & \I{нет} \\
Тип содержимого:       & строка \\
Может отсутствовать:   & \I{да} \\
Значение по умолчанию: & \V{h2} \\
Может повторяться:     & \I{нет} \\
\end{tabular}

\B{Описание.} Данный элемент позволяет установить тег языка
HTML, который используется для выделения названий секций в
html-странице, генерируемой CGI-программой \S{users}. Если
значение этого элемента не установлено, используется тег \V{h2},
то есть заголовки в генерируемом html-документе будут иметь
примерно следующий вид.
{\small
\begin{verbatim}
<h2>Список участников турнира X</h2>
\end{verbatim}
}

\B{Пример.}
{
\small\begin{verbatim}
<users_head_style>h3</users_head_style>
\end{verbatim}
}

Такое значение данной конфигурационной переменной приведёт к
тому, что тот же самый заголовок будет иметь следующий вид.
{\small
\begin{verbatim}
<h3>Список участников турнира X</h3>
\end{verbatim}
}

\B{Замечание.} В текущей реализации системы \S{ejudge}
отсутствует возможность задать отдельно открывающий и
закрывающий тег. И для того, и для другого будет использоваться
значение данной переменной. Поэтому указание ещё каких-либо
дополнительных атрибутов тега заголовка приведёт к тому, что
дополнительные атрибуты продублируются в закрывающем теге,
приводя, строго говоря, к неправильному html.

\newpage
\subsection{Элемент \V{users\_par\_style}}
\hypertarget{F:contest.xml,T:users_par_style}{\V{users\_par\_style}}

\begin{tabular}{@{}>{\bfseries}lp{11cm}}
Имя элемента:          & \K{users\_par\_style} \\
Содержится в:          & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Может содержать:       & \I{нет} \\
Атрибуты:              & \I{нет} \\
Тип содержимого:       & строка \\
Может отсутствовать:   & \I{да} \\
Значение по умолчанию: & \V{"{}"{}} (пустая строка) \\
Может повторяться:     & \I{нет} \\
\end{tabular}

\B{Описание.} Данный элемент позволяет задать параметры тега \V{<p>} в
html-страницах, генерируемых программой \V{users}. Значение элемента
\V{users\_par\_style} добавляется в открывающий тег \V{<p>}.
Закрывающий тег \V{</p>} остаётся без изменений.

\B{Пример.}
{\small
\begin{verbatim}
<users_par_style> class="common"</users_par_style>
\end{verbatim}
}

Такое значение конфигурационной переменной \V{users\_par\_style}
приведёт к тому, что в генерируемых CGI-программой \S{users}
html-страницах все абзацы будут помечены следующим образом:
{\small
\begin{verbatim}
<p class="common">A paragraph</p>
\end{verbatim}
}

Обратите внимание на пробел в начале строки значения конфигурационной
переменной \V{users\_par\_style}. Если бы он отсутствовал, тег \V{p} и
атрибут \V{class} слились в одно слово \V{pclass}.

\newpage
\subsection{Элемент \V{users\_table\_style}}
\hypertarget{F:contest.xml,T:users_table_style}{\V{users\_table\_style}}

\begin{tabular}{@{}>{\bfseries}lp{11cm}}
Имя элемента:          & \K{users\_table\_style} \\
Содержится в:          & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Может содержать:       & \I{нет} \\
Атрибуты:              & \I{нет} \\
Тип содержимого:       & строка \\
Может отсутствовать:   & \I{да} \\
Значение по умолчанию: & \V{"{}"{}} (пустая строка) \\
Может повторяться:     & \I{нет} \\
\end{tabular}

\B{Описание.} Данный элемент позволяет задать параметры тегов \V{<th>} и
\V{<td>} в html-странице, содержащей таблицу всех участников,
зарегистрированных на турнир, генерируемой программой
\V{users}. Значение элемента \V{users\_table\_style} добавляется в
открывающие теги \V{<th>} и \V{<td>}. Закрывающие теги \V{</th>} и
\V{</td>} остаются без изменений.

\B{Пример.}
{
\small\begin{verbatim}
<users_table_style> class="reg"</users_table_style>
\end{verbatim}
}

Такое значение конфигурационной переменной \V{users\_table\_style}
приведёт к тому, что в генерируемой CGI-программой \S{users} таблице
участников турнира все заголовки столбцов и ячейки таблицы будут
помечены следующим образом:
{\small
\begin{verbatim}
<td class="reg">User</td>
\end{verbatim}
}

Обратите внимание на пробел в начале строки значения конфигурационной
переменной \V{users\_table\_style}. Если бы он отсутствовал, тег
\V{td} и атрибут \V{class} слились в одно слово \V{tdclass}.

\newpage
\subsection{Элемент \V{users\_verb\_style}}
\hypertarget{F:contest.xml,T:users_verb_style}{\V{users\_verb\_style}}

\begin{tabular}{@{}>{\bfseries}lp{11cm}}
Имя элемента:          & \K{users\_verb\_style} \\
Содержится в:          & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Может содержать:       & \I{нет} \\
Атрибуты:              & \I{нет} \\
Тип содержимого:       & строка \\
Может отсутствовать:   & \I{да} \\
Значение по умолчанию: & \V{"{}"{}} (пустая строка) \\
Может повторяться:     & \I{нет} \\
\end{tabular}

\B{Описание.} Данный элемент позволяет задать параметры тегов \V{<th>} и
\V{<td>} в html-странице, содержащей подробную информацию об одном
участнике и генерируемой программой \V{users}. Значение элемента
\V{users\_verb\_style} добавляется в открывающие теги \V{<th>} и
\V{<td>}. Закрывающие теги \V{</th>} и \V{</td>} остаются без изменений.

\B{Пример.}
{
\small\begin{verbatim}
<users_verb_style> class="verb"</users_verb_style>
\end{verbatim}
}

Такое значение конфигурационной переменной \V{users\_verb\_style}
приведёт к тому, что в генерируемой CGI-программой \S{users}
html-странице с подробной информацией об участнике все заголовки
столбцов и ячейки таблицы будут помечены следующим образом:
{\small
\begin{verbatim}
<td class="verb">User</td>
\end{verbatim}
}

Обратите внимание на пробел в начале строки значения конфигурационной
переменной \V{users\_verb\_style}. Если бы он отсутствовал, тег
\V{td} и атрибут \V{class} слились в одно слово \V{tdclass}.

\newpage
\subsection{Элемент \V{register\_head\_style}}
\hypertarget{F:contest.xml,T:register_head_style}{\V{register\_head\_style}}

\begin{tabular}{@{}>{\bfseries}lp{11cm}}
Имя элемента:          & \K{register\_head\_style} \\
Содержится в:          & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Может содержать:       & \I{нет} \\
Атрибуты:              & \I{нет} \\
Тип содержимого:       & строка \\
Может отсутствовать:   & \I{да} \\
Значение по умолчанию: & \V{h2} \\
Может повторяться:     & \I{нет} \\
\end{tabular}

\B{Описание.} Данный элемент позволяет установить тег языка
HTML, который используется для выделения названий секций в
html-странице, генерируемой CGI-программой \S{register}. Если
значение этого элемента не установлено, используется тег \V{h2},
то есть заголовки в генерируемом html-документе будут иметь
примерно следующий вид.
{\small
\begin{verbatim}
<h2>Персональная информация пользователя X</h2>
\end{verbatim}
}

\B{Пример.}
{
\small\begin{verbatim}
<register_head_style>h3</register_head_style>
\end{verbatim}
}

Такое значение данной конфигурационной переменной приведёт к
тому, что тот же самый заголовок будет иметь следующий вид.
{\small
\begin{verbatim}
<h3>Персональная информация пользователя X</h3>
\end{verbatim}
}

\B{Замечание.} В текущей версии системы \S{ejudge}
отсутствует возможность задать отдельно открывающий и
закрывающий тег. И для того, и для другого будет использоваться
значение данной переменной. Поэтому указание ещё каких-либо
дополнительных атрибутов тега заголовка приведёт к тому, что
дополнительные атрибуты продублируются в закрывающем теге,
приводя, строго говоря, к неправильному html.

\newpage
\subsection{Элемент \V{register\_par\_style}}
\hypertarget{F:contest.xml,T:register_par_style}{\V{register\_par\_style}}

\begin{tabular}{@{}>{\bfseries}lp{11cm}}
Имя элемента:          & \K{register\_par\_style} \\
Содержится в:          & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Может содержать:       & \I{нет} \\
Атрибуты:              & \I{нет} \\
Тип содержимого:       & строка \\
Может отсутствовать:   & \I{да} \\
Значение по умолчанию: & \V{"{}"{}} (пустая строка) \\
Может повторяться:     & \I{нет} \\
\end{tabular}

\B{Описание.} Данный элемент позволяет задать параметры тега \V{<p>} в
html-страницах, генерируемых программой \V{register}. Значение
элемента \V{register\_par\_style} добавляется в открывающий тег
\V{<p>}. Закрывающий тег \V{</p>} остаётся без изменений.

\B{Пример.}
{\small
\begin{verbatim}
<register_par_style> class="common"</register_par_style>
\end{verbatim}
}

Такое значение конфигурационной переменной \V{register\_par\_style} 
приведёт к тому, что в генерируемых CGI-программой \S{register}
html-страницах все абзацы будут помечены следующим образом:
{\small
\begin{verbatim}
<p class="common">A paragraph</p>
\end{verbatim}
}

Обратите внимание на пробел в начале строки значения конфигурационной
переменной \V{register\_par\_style}. Если бы он отсутствовал, тег
\V{p} и атрибут \V{class} слились в одно слово \V{pclass}.

\newpage
\subsection{Элемент \V{register\_table\_style}}
\hypertarget{F:contest.xml,T:register_table_style}{\V{register\_table\_style}}

\begin{tabular}{@{}>{\bfseries}lp{11cm}}
Имя элемента:          & \K{register\_table\_style} \\
Содержится в:          & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Может содержать:       & \I{нет} \\
Атрибуты:              & \I{нет} \\
Тип содержимого:       & строка \\
Может отсутствовать:   & \I{да} \\
Значение по умолчанию: & \V{"{}"{}} (пустая строка) \\
Может повторяться:     & \I{нет} \\
\end{tabular}

\B{Описание.} Данный элемент позволяет задать параметры тегов \V{<th>} и
\V{<td>} в html-странице, содержащей таблицу всех турниров, на которые
зарегистрировался данный пользователь, генерируемой программой
\V{register}. Значение элемента \V{register\_table\_style} добавляется
в открывающие теги \V{<th>} и \V{<td>}. Закрывающие теги \V{</th>} и
\V{</td>} остаются без изменений.

\B{Пример.}
{
\small\begin{verbatim}
<register_table_style> class="reg"</register_table_style>
\end{verbatim}
}

Такое значение конфигурационной переменной \V{register\_table\_style}
приведёт к тому, что в генерируемой CGI-программой \S{register} таблице
участников турнира все заголовки столбцов и ячейки таблицы будут
помечены следующим образом:
{\small
\begin{verbatim}
<td class="reg">User</td>
\end{verbatim}
}

Обратите внимание на пробел в начале строки значения конфигурационной
переменной \V{register\_table\_style}. Если бы он отсутствовал, тег
\V{td} и атрибут \V{class} слились в одно слово \V{tdclass}.

\newpage
\subsection{Элемент \V{team\_head\_style}}
\hypertarget{F:contest.xml,T:team_head_style}{\V{team\_head\_style}}

\begin{tabular}{@{}>{\bfseries}lp{11cm}}
Имя элемента:          & \K{team\_head\_style} \\
Содержится в:          & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Может содержать:       & \I{нет} \\
Атрибуты:              & \I{нет} \\
Тип содержимого:       & строка \\
Может отсутствовать:   & \I{да} \\
Значение по умолчанию: & \V{h2} \\
Может повторяться:     & \I{нет} \\
\end{tabular}

\B{Описание.} Данный элемент позволяет установить тег языка
HTML, который используется для выделения названий секций в
html-странице, генерируемой CGI-программой \S{team}. Если
значение этого элемента не установлено, используется тег \V{h2},
то есть заголовки в генерируемом html-документе будут иметь
примерно следующий вид.
{\small
\begin{verbatim}
<h2>Персональная страница участника X</h2>
\end{verbatim}
}

\B{Пример.}
{
\small\begin{verbatim}
<team_head_style>h3</team_head_style>
\end{verbatim}
}

Такое значение данной конфигурационной переменной приведёт к
тому, что тот же самый заголовок будет иметь следующий вид.
{\small
\begin{verbatim}
<h3>Персональная страница участника X</h3>
\end{verbatim}
}

\B{Замечание.} В текущей версии системы \S{ejudge}
отсутствует возможность задать отдельно открывающий и
закрывающий тег. И для того, и для другого будет использоваться
значение данной переменной. Поэтому указание ещё каких-либо
дополнительных атрибутов тега заголовка приведёт к тому, что
дополнительные атрибуты продублируются в закрывающем теге,
приводя, строго говоря, к неправильному html.

\newpage
\subsection{Элемент \V{team\_par\_style}}
\hypertarget{F:contest.xml,T:team_par_style}{\V{team\_par\_style}}

\begin{tabular}{@{}>{\bfseries}lp{11cm}}
Имя элемента:          & \K{team\_par\_style} \\
Содержится в:          & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Может содержать:       & \I{нет} \\
Атрибуты:              & \I{нет} \\
Тип содержимого:       & строка \\
Может отсутствовать:   & \I{да} \\
Значение по умолчанию: & \V{"{}"{}} (пустая строка) \\
Может повторяться:     & \I{нет} \\
\end{tabular}

\B{Описание.} Данный элемент позволяет задать параметры тега \V{<p>} в
html-страницах, генерируемых программой \V{team}. Значение
элемента \V{team\_par\_style} добавляется в открывающий тег
\V{<p>}. Закрывающий тег \V{</p>} остаётся без изменений.

\B{Пример.}
{\small
\begin{verbatim}
<team_par_style> class="common"</team_par_style>
\end{verbatim}
}

Такое значение конфигурационной переменной \V{team\_par\_style} 
приведёт к тому, что в генерируемых CGI-программой \S{team}
html-страницах все абзацы будут помечены следующим образом:
{\small
\begin{verbatim}
<p class="common">A paragraph</p>
\end{verbatim}
}

Обратите внимание на пробел в начале строки значения конфигурационной
переменной \V{team\_par\_style}. Если бы он отсутствовал, тег
\V{p} и атрибут \V{class} слились в одно слово \V{pclass}.

\newpage
\subsection{Элемент \V{register\_email}}
\hypertarget{F:contest.xml,T:register_email}{}

\begin{tabular}{@{}>{\bfseries}lp{11cm}}
Имя элемента:        & \K{register\_email} \\
Содержится в:        & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Может содержать:     & \I{нет} \\
Атрибуты:            & \I{нет} \\
Тип содержимого:     & e-mail адрес \\
Может отсутствовать: & \I{да} \\
Может повторяться:   & \I{нет} \\
\end{tabular}

\B{Описание.} Данный элемент позволяет задать адрес отправителя
(поле \V{From}) электронного письма, посылаемого пользователю
при регистрации в системе. Это письмо посылается по адресу,
который был задан пользователем в регистрационной анкете и
содержит регистрационное имя, пароль пользователя, а также URL,
для дальнейшей регистрации в системе. Если данный элемент в
конфигурационном файле турнира не задан, используется значение
элемента \hyperlink{F:ejudge.xml,T:register_email}{\V{register\_email}}
конфигурационного файла \hyperlink{F:ejudge.xml}{\V{ejudge.xml}}.
Если и тот элемент не задан, используется адрес по умолчанию
\V{team@contest.cmc.msu.ru}.

\B{Пример.}
{\small\begin{verbatim}
<register_email>register@supercontest.ru</register_email>
\end{verbatim}}

\subsection{Элемент \V{register\_url}}
\hypertarget{F:contest.xml,T:register_url}{}

\begin{tabular}{@{}>{\bfseries}lp{11cm}}
Имя элемента:        & \K{register\_url} \\
Содержится в:        & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Может содержать:     & \I{нет} \\
Атрибуты:            & \I{нет} \\
Тип содержимого:     & URL \\
Может отсутствовать: & \I{да} \\
Может повторяться:   & \I{нет} \\
\end{tabular}

\B{Описание.} Данный элемент позволяет задать URL CGI-программы
\hyperlink{P:register}{\S{register}} для дальнейшей регистрации
в системе \S{ejudge}. Этот URL будет помещён в текст
письма-уведомления, посылаемого пользователю при регистрации в
системе. Если в конфигурационном файле турнира
\hyperlink{F:contest.xml}{\V{contest.xml}} данный элемент не
задан, используется URL, заданный в элементе
\hyperlink{F:ejudge.xml,T:register_url}{\V{register\_url}}
конфигурационного файла
\hyperlink{F:ejudge.xml}{\V{ejudge.xml}}.
Если и тот элемент не задан, используется URL по умолчанию
\V{http://contest.cmc.msu.ru/cgi-bin/register}.
К URL, заданному в любом из конфигурационных файлов или по
умолчанию, автоматически добавляется параметр \V{contest\_id} со
значением, равным идентификатору данного турнира, параметр
\V{locale\_id} со значением, равным идентификатору выбранного
языка интерфейса, параметр \V{login} со значением, равным
регистрационному имени нового пользователя, и параметр
\V{action} со значением \V{3} для перехода непосредственно к
странице входа в систему. Таким образом, полностью
сформированный URL для примера ниже может выглядеть следующим
образом:

{\scriptsize\begin{verbatim}
http://www.supercontest.ru/cgi-bin/register?action=3&login=user&contest_id=4&locale_id=1
\end{verbatim}}

\B{Пример.}
{\small\begin{verbatim}
<register_url>http://www.supercontest.ru/cgi-bin/register</register_url>
\end{verbatim}}

\subsection{Элемент \V{team\_url}}
\hypertarget{F:contest.xml,T:team_url}{}

\begin{tabular}{@{}>{\bfseries}lp{11cm}}
Имя элемента:        & \K{team\_url} \\
Содержится в:        & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Может содержать:     & \I{нет} \\
Атрибуты:            & \I{нет} \\
Тип содержимого:     & URL \\
Может отсутствовать: & \I{да} \\
Может повторяться:   & \I{нет} \\
\end{tabular}

\B{Описание.} Данный элемент позволяет задать URL для
CGI-программы \hyperlink{P:team}{\S{team}}, которая позволяет
пользователю непосредственно участвовать в турнире. Если данный
элемент задан, то ссылка на указанный URL будет выведена на
личной странице участника после успешной регистрации участника в
данном турнире, то есть когда статус регистрации участника
установлен в \V{OK}. Если элемент не задан, ссылка не демонстрируется.

\B{Пример.}
{\small\begin{verbatim}
<team_url>http://www.supercontest.ru/cgi-bin/team</team_url>
\end{verbatim}}

\subsection{Элемент \V{registration\_deadline}}
\hypertarget{F:contest.xml,T:registration\_deadline}{}

\begin{tabular}{@{}>{\bfseries}lp{11cm}}
Имя элемента:        & \K{registration\_deadline} \\
Содержится в:        & \strut%
  \hyperlink{F:contest.xml,T:contest}{\V{contest}} \\
Может содержать:     & \I{нет} \\
Атрибуты:            & \I{нет} \\
Тип содержимого:     & \I{астрономическое время} \\
Может отсутствовать: & \I{да} \\
Может повторяться:   & \I{нет} \\
\end{tabular}

\B{Описание.} Данный элемент позволяет задавать крайний срок
приёма регистрационных заявок на данный турнир. Когда
астрономическое время станет больше указанного, заявки на
участие в данном турнире приниматься не будут, и информация о
возможности регистрации на данный турнир не будет выводиться на
личной странице участников. Если данный элемент не задан,
регистрация не имеет ограничений во времени.

Дата должна задаваться в формате
\V{\I{Year}/\I{Month}/\I{Day} \I{Hour}:\I{Min}:\I{Sec}}.
Здесь \I{Year} --- четырёхзначный номер года от 1906 до 2038
(диапазон представимых дат во внутреннем формате для систем
\S{POSIX}). \I{Month} --- номер месяца от 1 до 12,
\I{Day} --- номер дня в месяце от 1 до 31, \I{Hour} --- час
суток от 0 до 23, \I{Min} --- минуты от 0 до 59, \I{Sec} ---
секунды от 0 до 59. Элементы даты могут опускаться, начиная с
последнего. В этом случае подразумевается минимальное
значение. То есть, в спецификации календарного времени могут
быть опущены секунды (например, \V{2003/02/28 14:12}), секунды и
минуты (например, \V{2003/02/28 14}), секунды, минуты и часы
(например, \V{2003/02/28}).
Поскольку для конвертации астрономического времени во внутреннее
представление используется функция \V{mktime(3)}, проверка на
допустимость даты, например, \V{2003/02/30}, не
производится. Такая дата окажется автоматически преобразованной
в \V{2003/03/02}.

\B{Пример.}
{\small\begin{verbatim}
<registration_deadline>2003/10/05 00:00:00</registration_deadline>
\end{verbatim}}

\clearpage

% Local variables:
%  compile-command: "make"
% End:
