Подготовка (исправление) XML схем

Публикация № 1207538

Разработка - Инструментарий разработчика - Прочие инструменты разработчика

onescript oscript xsd xml schema

Иногда, XML схемы не соответствуют стандарту w3.org и это грустно :-( . Скрипт публикации исправляет ошибки XML схем в автоматическом режиме.

Вступление

Понадобилось мне для XML схемы формата CommerceML2 сделать человекочитаемую документацию. Очень удобно, знаете ли вместо такого документа

<complextype name="КоммерческаяИнформация">
    <annotation>
        <documentation>
            Собирательный компонент для всего, что может быть упомянуто в процессе обмена
        </documentation>
    </annotation>
    <sequence>
        <element ref="cml:Классификатор" minoccurs="0"></element>
        <choice>
            <element ref="cml:Каталог" minoccurs="0"></element>
            <element ref="cml:ПакетПредложений" minoccurs="0"></element>
            <element ref="cml:Документ" minoccurs="0" maxoccurs="unbounded"></element>
            <element ref="cml:ИзмененияПакетаПредложений" minoccurs="0" maxoccurs="unbounded"></element>
        </choice>
    </sequence>
    <attribute name="ВерсияСхемы" use="required">
        <simpletype>
            <restriction base="xsd:string">
                <maxlength value="5"></maxlength>
            </restriction>
        </simpletype>
    </attribute>
    <attribute name="ДатаФормирования" type="cml:ДатаВремяТип" use="required"></attribute>
</complextype>

пользоваться при разработке вот таким

Сказано - сделано, тем более ничего сложного в этом нет. Делаю следующие шаги.

На сайте v8.1c.ru я скачал файл схемы и сохранил его в файл CommerceML2-10.xsd.

На сайте liquid-technologies.com я скачал триальную версию замечательного и очень дорогого продукта Liquid Studio. Компания Liquid technologies дает полнофункциональную лицензию на 15 дней. После установки запустите программу и воспользуйтесь мастером получения триальной лицензии.

Открыл ранее скачанный файл XML схемы в Liquid Studio и остался последний шаг, воспользоваться командой Tols - Generate Documentation, но...

получаю список ошибок.

Выясняю, что не так с этой схемой и прихожу к выводу, что руками мне ее править (приводить в порядок) ужас как не хочется.

Задача

Данный скрипт исправляет следующие ошибки:

У открывающих и закрывающих тегов узлов схемы устанавливается префикс пространства имен w3.org, объявленный в заголовке схемы.

<!-- пример заголовока схемы -->
<schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:cml="urn:1C.ru:commerceml_2" targetnamespace="urn:1C.ru:commerceml_2">

<!-- было -->
<simpletype>
    <restriction base="cml:НаименованиеТип"></restriction>
</simpletype>

<!-- стало -->
<xsd:simpletype>
    <xsd:restriction base="cml:НаименованиеТип"></xsd:restriction>
</xsd:simpletype>

Наименования узлов схемы регистрозависимые, поэтому наименование узла simpletype неправильно, а simpleType правильно. Для этого был создан словарь в соответствии с пространством имен w3.org по которому и переименовываются проблемные наименования.

<!-- было -->
<xsd:simpletype>
    <xsd:restriction base="cml:НаименованиеТип"></xsd:restriction>
</xsd:simpletype>

<!-- стало -->
<xsd:simpleType>
    <xsd:restriction base="cml:НаименованиеТип"></xsd:restriction>
</xsd:simpleType>

Зависимости

Скрипт разработан в среде OScript 1.3.0 Тестирование на более ранних версиях интерпретатора не проводилось.

Требуется библиотека cmdline Установите библиотеку через пакетный менеджер OScript: opm install cmdline Устанавливайте библиотеку в окне CMD, которое запущено от имени администратора.

Параметры

У скрипта один аргумент командной строки

-path <полный путь к схеме> - полный путь, включающий имя файла обрабатываемой XML схемы

Результат

Скрипт получает префикс пространства имен w3.org из атрибута xmlns:xsd="http://www.w3.org/2001/XMLSchema" заголовка XML схемы

Скрипт определяет необходимость устанавливать префикс в тегах по узлу <xsd:schema Если узел schema уже с префиксом, то считаю, что вся схема с префиксами.

Скрипт, если нужно, устанавливает префикс пространства имен w3.org в открывающих и закрывающих тегах XML схемы

Скрипт по словарю меняет наименования элементов, в которых используется camelCase стиль, пример simpleType

Скрипт создает новый результирующий файл XML схемы с суффиксом _modify

Примеры использования

oscript cxs.os -path d:\tmp\CommerceML2-10.xsd
где d:\tmp\CommerceML2-10.xsd - путь к файлу, который нужно обработать

Заключение

Наведя порядок в XML схеме, я сформировал документацию, с которой можно удобно работать.

Страничка этого проекта на GitHub

Скачать файлы

Наименование Файл Версия Размер
Подготовка (исправление) XML схем:
.os 14,73Kb
17.03.20
0
.os 1-02 14,73Kb Скачать

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. genayo 10.03.20 20:41 Сейчас в теме
Ещё бы кто скрипт написал, который валидные xsd схемы приводит к виду, который 1С прочитает. От 1С же решения этой проблемы не дождаться :((
2. infosoft-v 453 10.03.20 20:52 Сейчас в теме
(1) хорошее предложение, спасибо. Я подумаю, как это можно сделать. 1С хорошо работает со стилем схемы Венецианские жалюзи https://habr.com/ru/company/cit/blog/259167/
Нужно искать преобразователь стилей.
3. genayo 10.03.20 21:24 Сейчас в теме
(2) О, спасибо за ссылку на статью, утащил в закладки :))
Оставьте свое сообщение

См. также

Валидация данных

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Прочие инструменты разработчика

Пример универсального механизма для валидации данных: проверка типов, связей между таблицами, заполненности полей.

1 стартмани

01.04.2020    2220    relines    8       

Онлайн-интенсив "1C:Предприятие для программистов: Бухгалтерские задачи" с 22 июня по 8 июля 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, которые предназначены для решения задач бухгалтерского учета. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей прикладного решения “1С:Бухгалтерия” и прочих прикладных решений, в которых реализованы соответствующие механизмы для автоматизации бухгалтерских задач.

4900 рублей

Отладка шаблонов ограничений

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Прочие инструменты разработчика

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

1 стартмани

26.03.2020    1791    10    vadim1980    2       

Имена таблиц на сервере

Инструменты и обработки Системный администратор Программист Стажер Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Прочие инструменты разработчика

Обработка позволяющая удобно определить, в какой таблице на сервере баз данных находится той или иной объект 1С. Только для управляемого приложения! Тестировалось на платформе 1с 8.3.15.1565.

1 стартмани

19.03.2020    814    alexyur    2       

Онлайн-курс «Автоматизация процессов управления МТО: методика сбора и формализации требований» с 1 апреля по 13 мая 2020 года. Промо

Цель курса - повысить полноту и качество сбора и формализации требований к автоматизации процессов управления материально-техническим обеспечением. Курс основан на процессном подходе, позволяет в полном объеме выявить и учесть все факторы, влияющие на специфику процессов управления МТО. Участники курса получают теоретические знания в области организации процессов управления МТО и готовый инструментарий для сбора и формализации требований по автоматизации этих процессов (шаблоны, опросники, модели).

40000 рублей

Внешний регламент для 1С

Инструменты и обработки Программист Архив с данными v8 Россия Абонемент ($m) Прочие инструменты разработчика

Внешний регламент сделан для тех, кто ценит свое время и время заказчика. После одноразового встраивания в конфигурацию, внешний регламент на лету позволяет добавлять, изменять внешние модули, которые могут выполнятся как регламентные задачи с указанным интервалом или запускаться в ручном режиме для отладки. Все модули (внешние обработки) находятся и выполняются на стороне сервера, что позволяет исключить подмену алгоритмов со стороны клиента.

1 стартмани

05.03.2020    917    2    moolex    4       

Пишем код в режиме предприятия на УФ

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Windows Абонемент ($m) Прочие инструменты разработчика

Тестирование кода прямо в режиме предприятия. Изменение документов и справочников. Управляемые формы. Сохранение и форматирование кода.

1 стартмани

27.02.2020    981    1    HAMAZ    9       

Базовый курс по обмену данными в системе 1С:Предприятие. Онлайн-интенсив с 12 по 28 мая 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, обеспечивающих обмен данными между различными прикладными 1С-решениями и взаимодействие с другими информационными системами. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”.

5500 рублей

Выполнение произвольного кода 1С на управляемых формах

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Россия Абонемент ($m) Прочие инструменты разработчика

Часто при работе в режиме предприятия необходимо выполнить какой-либо код. Для этого необходимо написать внешнюю обработку, а можно воспользоваться нашей обработкой для выполнения произвольного кода в режиме предприятия.

2 стартмани

18.02.2020    1298    6    seregapolygon    8       

БСП - Дополнительная обработка - Заполнение объекта - Произвольный алгоритм

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) БСП (Библиотека стандартных подсистем) Прочие инструменты разработчика

Информационная система 1С ИТС: "При разработке решений следует учитывать, что опасно не только непосредственное выполнение кода, написанного в режиме Предприятие, но и те места, где методами Выполнить или Вычислить исполняется код, сконструированный на основе параметров, переданных в серверные функции и процедуры. Ограничение не распространяется на код, выполняемый на клиенте."

1 стартмани

13.02.2020    1062    duhh    2       

Подборка программ для взаимодействия с ЕГАИС Промо

ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.

Простая параллельная обработка данных

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Производительность и оптимизация (HighLoad) Прочие инструменты разработчика

Предлагаю способ быстрой параллельной обработки "неких" данных. Методика проста как дважды два. Предварительно подготовленная обработка запускается вручную в нескольких сеансах, и каждый сеанс занимается обработкой своей части (случайного диапазона). Может пригодиться для ускоренной обработки данных. К примеру, необходимо заполнить реквизит большого справочника, заполнение в один поток идёт долго, а сроки поджимают.

1 стартмани

10.02.2020    1238    Amadeus007    8       

Онлайн-курс «Практические аспекты внедрения регламентированного учета и расчета себестоимости в 1С:ERP на крупных промышленных предприятиях» с 20 апреля по 15 мая 2020 года. Промо

Курс рассчитан для подготовки экспертов по регламентированному учету и учету затрат для внедрения на крупных промышленных предприятиях с «исторически сложившимся» учетом

9000 рублей

Очень простая и удобная отладка внешних обработок

Инструменты и обработки Программист Расширение (cfe) v8 v8::УФ 1cv8.cf Абонемент ($m) Прочие инструменты разработчика

Расширение для отладки внешних отчётов и обработок в несколько кликов.

1 стартмани

07.02.2020    1897    21    for_sale    0       

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Набор скриптов .bat для автообновления списка баз и версии платформы 1С

Инструменты и обработки Системный администратор Программист Архив с данными v8 1cv8.cf Россия Windows Абонемент ($m) Прочие инструменты разработчика

Автоматическое обновление списка информационных баз 1С, автоматическая установка новой версии платформы на компьютер пользователя.

1 стартмани

23.01.2020    1382    4    ManyakRus    4       

Конструктор запросов при внешнем подключении

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Россия Windows Абонемент ($m) Консоль запросов Прочие инструменты разработчика

Конструктор запроса при внешнем подключении (с возможностью выборки по табличным частям объектов конфигурации). Управляемые формы, тонкий клиент.

1 стартмани

23.01.2020    1357    2    falcon_wild    1       

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

1C и защищенное хранение данных на блокчейне: модуль интеграции от Acryl Platform

Инструменты и обработки Программист Расширение (cfe) v8 1cv8.cf Абонемент ($m) Защита и шифрование Блокчейн Расширения Прочие инструменты разработчика

Модуль интеграция 1С и блокчейн платформы "Acryl Platform" без использования внешних компонент. Под катом реализация механизмов Base58, Blake2b, Keccak, Curv25519 (the elliptic curve Diffie–Hellman) в подсистеме "Crypt", примеры генерации ключей, адресов, подписи транзакций, запись данных в блокчейн, чтение и восстановление данных из блокчейн. Код открыть. Лицензия MIT.

1 стартмани

21.01.2020    2643    ArtemSerov    11       

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

Универсальные инструменты 1С

Инструменты и обработки Программист Расширение (cfe) v8 1cv8.cf Абонемент ($m) Универсальные обработки Прочие инструменты разработчика

Свободно распространяемый набор универсальных обработок и отчетов в виде расширения для разработки и поддержки, которое работает во ВСЕХ видах клиентских приложений и во всех операционных системах, которые поддерживает платформа 1С:Предприятие, кроме мобильных. Консоль запросов - консоль отчетов - консоль кода - редактор объектов базы данных - удаление помеченных объектов - поиск и удаление дублей - редактор констант - консоль заданий - групповая обработка справочников и документов - динамический список - поиск ссылок на объект - регистрация изменений для обмена данными - структура хранения базы - консоль HTTP запросов-консоль вебсервисов- консоль сравнения данных- информация о лицензиях- загрузка из табличного документа-файловый менеджер-все функции- навигатор по конфигурации-конструктор регулярных выражений-Выгрузка загрузка XML с фильтрами

1 стартмани

21.01.2020    13920    254    cprit    74       

Редактор справки 1С

Инструменты и обработки Программист Архив с данными v8 Windows Абонемент ($m) Прочие инструменты разработчика

Конфигурация для разработки справочной информации для конфигураций 1С. Тестировалось на 1С:Предприятие 8.3 (8.3.13.1690). Файловая база.

3 стартмани

16.01.2020    3549    13    lastpioneer    12       

1C:Предприятие для программистов: Расчетные задачи (зарплата). Онлайн-интенсив с 01 по 17 июня 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, которые предназначены для автоматизации периодических расчетов, а именно - для расчета зарплаты. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей прикладного решения “1С:Зарплата и управление персоналом” и прочих прикладных решений, в которых реализован функционал расчета зарплаты.

4900 рублей

Документация по объектам расширения конфигурации 1С

Инструменты и обработки Программист Архив с данными v8 v8::УФ 1cv8.cf Абонемент ($m) Прочие инструменты разработчика

Обработка для автоматического создания документации для программистов по доработкам в расширении конфигурации.

1 стартмани

14.01.2020    2736    13    ManyakRus    2       

Неиндексированные измерения регистров сведений. В помощь 1С:Эксперту

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Прочие инструменты разработчика

Обработка показывает неиндексированные измерения регистров сведений, из-за которых случаются блокировки. Для любых баз 1С - на обычных и управляемых формах.

1 стартмани

07.01.2020    3759    12    Rustig    30       

Базовый курс для начинающих 1С-программистов. Онлайн-интенсив со 2 июня по 2 июля 2020 г. Промо

Данный онлайн-курс является начальной ступенью по изучению базовых принципов программирования в системе “1С:Предприятие” и предназначен для обучения 1С-программированию “с нуля”.

4500-9500 рублей

Версионирование объектов 1С сторонними средствами

Инструменты и обработки Программист Архив с данными v8 УПП1 БП3.0 КА2 Россия MS SQL Абонемент ($m) Прочие инструменты разработчика

В больших информационных системах встает острая необходимость хранения ИСТОРИИ изменений объектов. Она предоставляет материал как для проведения следственных действий, так и для инкрементарного сбора данных в data ware house из 1С конфигураций. Настоящая статья описывает способ версионирования объектов 1С, таких как Документы и Справочники средствами СУБД. Применение такого метода не вызывает рост и фрагментацию основной (рабочей) базы данных (1С) и позволяет сохранять информацию обо всех изменениях, сделанные пользователями.

1 стартмани

06.01.2020    1431    pit201201    0       

Глобальный поиск и замена в модулях конфигурации

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Россия Абонемент ($m) Поиск данных Прочие инструменты разработчика

Зачастую у программиста возникает желание работать с кодом модулей конфигурации средствами встроенного языка: так, как мы сейчас работаем с данными. Как результат реализации данной потребности и родилась данная обработка. Она предназначена для минимизации ручного труда при внесении однотипных изменений в модули конфигурации. Она представляет из себя расширение глобального поиска и замены в конфигураторе. Отличие в предоставлении ряда дополнительных возможностей, таких, как: наложение условий И, ИЛИ, НЕ; поиск только в названии процедуры / функции, либо в теле определенной процедуры / функции; управление поиском в комментариях и др.

1 стартмани

06.01.2020    1405    1    keifaya    0       

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Подсистема перевода базы данных

Инструменты и обработки Программист Конфигурация (md, cf) v8 1cv8.cf Абонемент ($m) Прочие инструменты разработчика Локализация решений

В базе данных работают разноязычные пользователи и приходится писать наименования объектов сразу на нескольких языках? ЕСТЬ РЕШЕНИЕ!

2 стартмани

04.01.2020    1361    1    onec.developer    0       

Новый раздел на Инфостарте - Electronic Software Distribution Промо

Инфостарт напоминает: на нашем сайте можно купить не только ПО, связанное с 1С. В нашем арсенале – ESD-лицензии на ПО от ведущих вендоров: Microsoft, Kaspersky, ESET, Dr.Web, Аскон и другие.

  • Низкие цены, без скрытых платежей и наценок
  • Оперативная отгрузка
  • Возможность оплаты с личного счета (кешбек, обмен стартмани на рубли и т.п.)
  • Покупки идут в накопления для получения скидочных карт лояльности Silver (5%) и Gold (10%)

Расширение для отладки внешних печатных форм

Инструменты и обработки Программист Расширение (cfe) v8 v8::УФ 1cv8.cf Абонемент ($m) Прочие инструменты разработчика

При разработке внешних печатных форм иногда возникают проблемы с отладкой. Данное расширение позволяет указать путь к файлу с печатной формой и произвести его отладку через конфигуратор.

1 стартмани

31.12.2019    1651    7    Sergspectr    7       

Генератор форматированной строки (с визуальным редактором)

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Прочие инструменты разработчика

Обработка позволяет создать любую форматированную строку в визуальном редакторе и сгенерировать код её программного создания.

1 стартмани

26.12.2019    3336    5    XilDen    6