2.1. Структура xml-файлов

2.1. Структура xml-файлов.

Каждый xml-файл должен исполняться в русской однобайтовой кодировке win1251 и иметь следующую структуру:

<?xml version="1.0" encoding="windows-1251"?>

<company id="CompanyId" kind="msfo" period="Period">

...

</company>

где CompanyId - регистрационный номер ССД по единому государственному реестру субъектов страхового дела (от одной до четырех цифр без лидирующих нулей);

Period - последний календарный день отчетного периода в формате дд.мм.гггг, например: 31.03.2017.

Запись вида <xxx> в дальнейшем будет называться открывающимся, а </xxx> - закрывающимся тэгом xxx. Объявление тэга не должно содержать пробелов и символов табуляции. Текстовый блок между открывающимся <xxx> и закрывающимся </xxx> тэгами будет называться секцией xxx.

Таким образом, xml-файлы состоят из заголовка и единственной секции company.

Внутри секции company может содержаться информация по одной форме описания (файл 0.xml) или отчетной форме:

<form id="fid">

...

</form>

Здесь fid - идентификатор формы, совпадающий с именем xml-файла без расширения.

Внутри секции form могут содержаться следующие секции:

table - описывает данные таблицы или списка;

cloneset - описывает данные набора повторяющихся фрагментов, содержащих данные таблиц и списков.

В составе одной формы может быть представлено несколько таблиц и наборов.

Структура секции table имеет вид:

<table id="TableId">

<line id="LineId">

<col id="ColNo">Val</col>

<col id="ColNo">Val</col>

<col id="ColNo">Val</col>

...

</line>

...

</part>

где

TableId - идентификатор таблицы или списка

LineId - код строки без лидирующих нулей

ColNo - номер колонки (графы)

Для списка итоговая строка (при ее наличии) показывается с кодом LineId=0, остальные строки нумеруются, начиная от единицы по возрастанию.

Структура секции cloneset имеет вид:

<cloneset id="ClonesetId">

<clone id="CloneNo">

<line id="params">

<col id="ParamName">ParamVal</col>

<col id="ParamName">ParamVal</col>

...

</line>

<table id="ClonesetId">..</table>

</clone>

<clone id="CloneNo">

</clone>

</cloneset>

где

ClonesetId - идентификатор набора

CloneNo - порядковый номер фрагмента в наборе начиная с единицы

ParamName - название параметра фрагмента в наборе

ParamVal - значение параметра фрагмента в наборе

Как видно из приведенного выше примера, внутри каждого фрагмента содержится секция table, описывающая табличные данные в контексте этого фрагмента.