SMEV-Works
Описание
XSL Transformation of an incoming Request.xml into its response XML + printable HTML/TEXT files. Формирование с помощью XSLT подтверждения на получение файла XML из Адаптера СМЭВ для отправки ответного XML обратно + формирование печатного бланка HTML/TEXT.
Языки
XSLT
- Batchfile
- C#
- HTML
SMEV-Works
XSL Transformation of an incoming Request.xml into its response XML + printable HTML/TEXT.
Формирование с помощью XSLT подтверждения на получение файла XML из Адаптера СМЭВ для отправки ответного XML обратно + формирование печатного бланка в формате HTML или TEXT. Образцы можно посмотреть здесь - XslTrans/samples/save
В комплекте прилагаются эталонный образец входящего запроса из СМЭВ Адаптера
и файлы шаблонов XSLT для вида сведений ФНС 313-19
"Сведения о снятии физического лица с учета...", а также могут быть добавлены
другие доработки, если в них не содержится персональных данных:
- '313-19.xslt' для формирования ответного response XML с помощью пользовательских скриптов.
- '313-19a.xslt' для формирования ответного response XML с помощью параметров XSLT без использования скриптов.
- '313-19p.xslt' для формирования печатного бланка в формате HTML.
- '313-19t.xslt' для формирования печатного бланка в формате TEXT.
Файлы в кодировке utf8 формируются без BOM (нетипично для XSLT), который не позволен в СМЭВ.
Usage
Выходной файл зависит от значения метода вывода
в файле XSLT:
- 'xml' (по умолчанию):
XslTrans.exe Request.xml Trans.xslt [Request.response.xml] - 'html':
XslTrans.exe Request.xml Trans.xslt [Request.html] - 'text':
XslTrans.exe Request.xml Trans.xslt [Request.txt]
Если третий параметр не указан, будет создан файл в папке исходного файла с изменением его расширения в зависимости от указанного метода вывода в указанном вторым параметром файле XSLT.
Если третий параметр указан, то:
- если указано имя файла с путем - будут созданы все папки этого пути;
- если указано имя существующей папки - в ней будет создан файл с именем исходного файла;
- если указано имя несуществующей папки с
на конце - будет создана эта папка и в ней будет создан файл с именем исходного файла;\ - если вместо имени
илиguid
, то при использовании XSLT с параметрами будет подставлено в имя файла значение{guid}
.client_id
Коды возврата:
: Преобразование успешно выполнено.0
: Ошибка в числе параметров - показ Usage.1
: Не найден указанный в параметрах исходный файл (XML или XSLT).2
: Возникло исключение при работе.3
Полезности в шаблонах XSLT:
- Отладка файлов XML и HTML - переключить в
. выдавать XML/HTML в одну строку - переключить вindent="yes"
.indent="no" - Отладка таблиц в HTML - добавить
в тэгborder="1"
;table
Usage 2
Также возможна пакетная обработка и иных XML/XSLT файлов.
Если в файле конфигурации указан параметр
и указанный файл
существует, то программа меняет режим входных параметров - этот файл
начинает выполнять роль второго обязательного параметра командной
строки при обычном запуске, а все параметры (файлы и маски) командной
строки будут рассматриваться только как исходные файлы - это удобно для
Drag-n-Drop, например. Помимо файлов с расширением
, можно бросить
файлы архивов с расширением
- будут обработаны все файлы
,
содержащиеся внутри них.
Если в файле конфигурации указать в параметре
путь к папке для
сохранения результатов, то файлы будут сохранены туда вместо текущей
(поведение третьего опционального параметра при обычном запуске).
Examples
- XslTrans.exe in\SampleRequest.xml XSLT\313-19.xslt
делает 'in\SampleRequest.response.xml' для передачи обратно (по умолчанию). - XslTrans.exe in\SampleRequest.xml XSLT\313-19.xslt out\Response.xml
делает 'out\Response.xml' для передачи обратно (файл указан). - XslTrans.exe in\SampleRequest.xml XSLT\313-19a.xslt out\Guid.xml
делает 'out\36a96404-df69-...89.xml' для передачи обратно (файл указан
как
, будет подставлено значение поляguid
без скобок).client_id - XslTrans.exe in\SampleRequest.xml XSLT\313-19a.xslt out\{Guid}.xml
делает 'out{36a96404-df69-...89}.xml' для передачи обратно (файл указан
как
, будет подставлено значение поля{guid}
со скобками).client_id - XslTrans.exe in\SampleRequest.xml XSLT\313-19p.xslt
делает 'in\SampleRequest.html' для печати (по умолчанию). - XslTrans.exe in\SampleRequest.xml XSLT\313-19p.xslt Request-print.htm
делает 'Request-print.htm' для печати (файл указан). - XslTrans.exe in\SampleRequest.xml XSLT\313-19t.xslt save\Request.txt
делает 'save\Request.txt' для сохранения/печати в формате TEXT (файл указан). - XslTrans.exe in\SampleRequest.xml XSLT\313-19t.xslt save
делает 'save\SampleRequest.txt' (файл не указан, но есть такая папка). - XslTrans.exe in\SampleRequest.xml XSLT\313-19t.xslt save\2023\
делает 'save\2023\SampleRequest.txt' (указано создать такую папку).
Примеры второго варианта использования:
(при указанииXslTrans.exe *.xml
в файле<add key="XsltFile" value="GUTDF30.xslt"/>
) сделает соответствующие файлы в формате TEXT для просмотра файлов в формате GUTDF XML (или ZIP) из HБКИ..config
- аналогичное действие.XslTrans.exe *.xml GUTDF30.xslt out\
- аналогичное действие.XslTrans.exe *.zip GUTDF30.xslt
Requirements
- .Net Framework 4.8 (другие версии не тестировались - часто можно просто
поправить в файле
, и будет работать на старых версиях)..config
License
Licensed under the Apache License, Version 2.0.