From 05856abe258be9baf7ad17495769a5eb52e00af1 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Sun, 26 Jul 2026 16:36:38 +0300 Subject: [PATCH] =?UTF-8?q?docs(xdto-guide,xdto-decompile):=20=D0=B2=D0=B5?= =?UTF-8?q?=D1=80=D0=BD=D1=83=D1=82=D1=8C=20=D1=80=D0=B5=D1=86=D0=B5=D0=BF?= =?UTF-8?q?=D1=82=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D0=BE=D0=BD=D0=BD=D0=BE?= =?UTF-8?q?=D0=B9=20=D0=BA=D0=BE=D0=BF=D0=B8=D0=B8=20=D0=B8=D1=81=D0=BF?= =?UTF-8?q?=D0=BE=D0=BB=D0=BD=D0=B8=D1=82=D0=B5=D0=BB=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Предыдущая правка гайда изложила копирование пакета пошагово в повелительном наклонении, и стало неясно, кому эти шаги адресованы: гайд построен на том, что задачу ставят словами, а шаги делает агент. Пользователь мог прочитать это как работу, которую надо сделать самому. В гайде теперь сказано, что происходит и чего достаточно назвать в задаче. Сами шаги и острая кромка (менять targetNamespace вместе с объявлением xmlns, не заменять все вхождения строки) — в SKILL.md навыка выгрузки, там же, где описан путь «выгрузить → поправить → собрать». Co-Authored-By: Claude Opus 5 (1M context) --- .claude/skills/xdto-decompile/SKILL.md | 7 +++++++ docs/xdto-guide.md | 19 ++++++------------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.claude/skills/xdto-decompile/SKILL.md b/.claude/skills/xdto-decompile/SKILL.md index f00005f5..782bc069 100644 --- a/.claude/skills/xdto-decompile/SKILL.md +++ b/.claude/skills/xdto-decompile/SKILL.md @@ -36,6 +36,13 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/xdto-decompile.ps1" включая имя, синоним и комментарий объекта метаданных — они выгружаются в `xs:annotation/xs:appinfo`. +Этот же путь даёт версионную копию пакета: смени в схеме `targetNamespace` и собери +её с `-Name` нового пакета — имя и синоним задаются флагами `/xdto-compile`, внутри +схемы их править не нужно. Меняя пространство имён, поправь **и объявление `xmlns` +с тем же URI**: внутренние ссылки пользуются им как префиксом. Заменять все вхождения +строки нельзя — пострадает импорт пространства имён, для которого старый URI является +префиксом (`urn:пример:обмен` и `urn:пример:обмен:legacy`). + Этот путь нужен, когда схему меняют широко или сначала надо разобраться, как она устроена. Чтобы поправить одно свойство, схему целиком читать не нужно — `/xdto-edit`. Если нужна не схема, а сводка «что присвоить и что обязательно», — `/xdto-info`. diff --git a/docs/xdto-guide.md b/docs/xdto-guide.md index 7801c688..0bdc06ea 100644 --- a/docs/xdto-guide.md +++ b/docs/xdto-guide.md @@ -113,20 +113,13 @@ Типовой приём: рядом со старым пакетом появляется новый с другим пространством имён (`EnterpriseData_1_19` → `_1_20`), а старые потребители продолжают смотреть -на прежний namespace. Копия делается через выгрузку схемы и сборку под новым именем: +на прежний namespace. -1. `/xdto-decompile` исходного пакета в файл схемы; -2. в схеме поменять `targetNamespace` — **и связанное с ним объявление `xmlns`**, - которым внутренние ссылки пользуются как префиксом; -3. `/xdto-compile` этой схемы с `-Name` нового пакета (имя и синоним задаются - флагами, править их внутри схемы не нужно). - -Внутренние ссылки при этом переводятся на новый namespace целиком, импорты чужих -пакетов сохраняются, исходный пакет не меняется. - -Менять `targetNamespace` **заменой всех вхождений строки** — плохая идея: если пакет -импортирует пространство имён, у которого старый URI является префиксом -(`urn:example:exchange` и `urn:example:exchange:legacy`), заменится и оно. +Отдельной команды для этого нет: агент выгружает схему исходного пакета, меняет в ней +пространство имён и собирает под новым именем. Дополнительных действий это не требует — +достаточно назвать в задаче исходный пакет, новое имя и новый namespace. Внутренние +ссылки переводятся на него целиком, импорты чужих пакетов сохраняются, исходный пакет +остаётся как был. Если же надо сменить namespace **у существующего** пакета, а не сделать копию, агент перепишет все внутренние ссылки и перечислит пакеты, которые импортируют старый — но