Аналіз XML-редакторів для внесення змін до Liquibase XML-Changelog файлів

Функціональні сценарії

  • Внесення змін до Liquibase XML-Changelog файлів опису дата моделі

Приклади коду для редагування

Liquibase XML-Changelog опису дата моделі

<?xml version="1.1" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.5.xsd
        http://www.liquibase.org/xml/ns/dbchangelog-ext https://nexus-public-mdtu-ddm-edp-cicd.apps.cicd2.mdtu-ddm.projects.epam.com/repository/extensions/com/epam/digital/data/platform/liquibase-ext-schema/latest/liquibase-ext-schema-latest.xsd">

<changeSet id="table koatuu" author="registry owner">
        <createTable tableName="koatuu" ext:historyFlag="true">
            <column name="koatuu_id" type="UUID" defaultValueComputed="uuid_generate_v4()">
                <constraints nullable="false" primaryKey="true" primaryKeyName="pk_koatuu_id"/>
            </column>
            <column name="code" type="TEXT">
                <constraints nullable="false"/>
            </column>
            <column name="level1" type="TEXT">
                <constraints nullable="false"/>
            </column>
            <column name="level2" type="TEXT">
                <constraints nullable="false"/>
            </column>
            <column name="type" type="TEXT"/>
            <column name="category" type="CHAR(1)"/>
            <column name="name" type="TEXT">
                <constraints nullable="false"/>
            </column>
        </createTable>
    </changeSet>
</databaseChangeLog>

Ключові вимоги до редактора

  • Підтримка автодоповнення

  • Синтаксичний аналіз

  • Підтримка валідації вибраної schema

  • Підтримка автодоповнення для вибраної schema

Розглянуті рішення

Аналіз на відповідність вимогам

Критерій / Функціональність monaco-editor

Підтримка автодоповнення

Так

Підтримка валідації вибраної schema

Базовий функціонал відсутній, але є можливість інтеграції з мовним сервером

В якості мовного серверу використовується XML Language Server (LemMinX)

Синтаксичний аналіз

Базовий функціонал відсутній, але є можливість інтеграції з мовним сервером

В якості мовного серверу використовується XML Language Server (LemMinX)

Підтримка автодоповнення для вибраної schema

Базовий функціонал відсутній, але є можливість інтеграції з мовним сервером

В якості мовного серверу використовується XML Language Server (LemMinX)

Підтримка можливості порівняння версій xml

Так

Підтримка коментарів

Так

Можливість згортання та розгортання блока з кодом

Так

Рішення за результатами аналізу

Рекомендовано використовувати бібліотеку monaco-editor, яка повністю покриває вимоги до XML редактора.

Підтримка темування та стилізації

Бібліотека monaco-editor надає доступні варіанти теми "vs-dark" | «light». Також ми можемо визначати власні теми за допомогою monaco.editor.defineTheme Приклад

Інтерфейс веб-редактора

Основний інтерфейс редактора

xml

Автодоповнення

xml autocomplete

Порівняння версій xml

xml diff