NEW! Новый релиз 12.0.0 уже доступен! Подробности в Центре заботы

SMEV-Works

0

Описание

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

Языки

XSLT

  • Batchfile
  • C#
  • HTML
Сообщить о нарушении
3 месяца назад
2 года назад
2 года назад
2 года назад
3 месяца назад
2 года назад
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.

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.