README.md

SMEV-Works

XSL Transformation of an incoming Request.xml into its response XML + printable HTML/TEXT.

Формирование с помощью XSLT подтверждения на получение файла XML из Адаптера СМЭВ для отправки ответного XML обратно + формирование печатного бланка в формате HTML или TEXT. Образцы можно посмотреть здесь - XslTrans/samples/save

В комплекте прилагаются эталонный образец входящего запроса из СМЭВ Адаптера in\SampleRequest.xml и файлы шаблонов 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

Выходной файл зависит от значения метода вывода <xsl:output method='*'/> в файле 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 или {guid}, то при использовании XSLT с параметрами будет подставлено в имя файла значение client_id.

Коды возврата:

  • 0: Преобразование успешно выполнено.
  • 1: Ошибка в числе параметров - показ Usage.
  • 2: Не найден указанный в параметрах исходный файл (XML или XSLT).
  • 3: Возникло исключение при работе.

Полезности в шаблонах XSLT:

  • Отладка файлов XML и HTML - переключить в indent="yes". выдавать XML/HTML в одну строку - переключить в indent="no".
  • Отладка таблиц в HTML - добавить border="1" в тэг table;

Usage 2

Также возможна пакетная обработка и иных XML/XSLT файлов.

Если в файле конфигурации указан параметр XsltFile и указанный файл существует, то программа меняет режим входных параметров - этот файл начинает выполнять роль второго обязательного параметра командной строки при обычном запуске, а все параметры (файлы и маски) командной строки будут рассматриваться только как исходные файлы - это удобно для Drag-n-Drop, например. Помимо файлов с расширением .xml, можно бросить файлы архивов с расширением .zip - будут обработаны все файлы .xml, содержащиеся внутри них.

Если в файле конфигурации указать в параметре OutPath путь к папке для сохранения результатов, то файлы будут сохранены туда вместо текущей (поведение третьего опционального параметра при обычном запуске).

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"/> в файле .config) сделает соответствующие файлы в формате TEXT для просмотра файлов в формате GUTDF XML (или ZIP) из HБКИ.
  • 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.

Описание

XSL Transformation of an incoming Request.xml into its response XML + printable HTML/TEXT files. Формирование с помощью XSLT подтверждения на получение файла XML из Адаптера СМЭВ для отправки ответного XML обратно + формирование печатного бланка HTML/TEXT.

Конвейеры
0 успешных
0 с ошибкой