https://github.com/diev/smev-works
XSL Transformation of an incoming Request.xml into its response XML + printable HTML/TEXT files. Формирование с помощью XSLT подтверждения на получение файла XML из Адаптера СМЭВ для отправки ответного XML обратно + формирование печатного бланка HTML/TEXT.
https://github.com/diev/smev-works
adapter csharp fns html smev text transform xml xsl xslt
Last synced: 16 days ago
JSON representation
XSL Transformation of an incoming Request.xml into its response XML + printable HTML/TEXT files. Формирование с помощью XSLT подтверждения на получение файла XML из Адаптера СМЭВ для отправки ответного XML обратно + формирование печатного бланка HTML/TEXT.
- Host: GitHub
- URL: https://github.com/diev/smev-works
- Owner: diev
- License: apache-2.0
- Created: 2023-05-19T09:47:48.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-11-01T18:50:44.000Z (over 1 year ago)
- Last Synced: 2025-01-03T01:28:44.662Z (over 1 year ago)
- Topics: adapter, csharp, fns, html, smev, text, transform, xml, xsl, xslt
- Language: XSLT
- Homepage:
- Size: 65.4 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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
Выходной файл зависит от значения метода вывода ``
в файле 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` (при указании ``
в файле `.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].
[Apache License, Version 2.0]: LICENSE