From 3ef4f440288d60471d12bea5f9405f70a700f8bc Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Sat, 23 May 2026 21:16:43 +0300 Subject: [PATCH] =?UTF-8?q?fix(skd-validate):=20=D0=BF=D1=80=D0=B8=D0=BD?= =?UTF-8?q?=D0=B8=D0=BC=D0=B0=D1=82=D1=8C=20=20=D0=B1=D0=B5?= =?UTF-8?q?=D0=B7=20xsi:type=20=D0=BA=D0=B0=D0=BA=20StructureItemGroup?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Platform эмитит StructureItemGroup как короткую форму без xsi:type (это дефолтный тип). Раньше валидатор выдавал error на любой реальный XML с такой формой. Теперь — отсутствие xsi:type трактуется как dcsset:StructureItemGroup (с warning только для нестандартных типов). --- .claude/skills/skd-validate/scripts/skd-validate.ps1 | 6 ++---- .claude/skills/skd-validate/scripts/skd-validate.py | 4 ++-- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/.claude/skills/skd-validate/scripts/skd-validate.ps1 b/.claude/skills/skd-validate/scripts/skd-validate.ps1 index ead1a77e..6f8eb918 100644 --- a/.claude/skills/skd-validate/scripts/skd-validate.ps1 +++ b/.claude/skills/skd-validate/scripts/skd-validate.ps1 @@ -655,10 +655,8 @@ function Check-StructureItem { if ($script:stopped) { return } $xsiType = $itemNode.GetAttribute("type", "http://www.w3.org/2001/XMLSchema-instance") - if (-not $xsiType) { - Report-Error "Variant '$variantName': structure item missing xsi:type" - return - } + # StructureItemGroup — дефолтный тип, platform эмитит без xsi:type. + if (-not $xsiType) { $xsiType = 'dcsset:StructureItemGroup' } if ($validStructureTypes -notcontains $xsiType) { Report-Warn "Variant '$variantName': unusual structure item type '$xsiType'" } diff --git a/.claude/skills/skd-validate/scripts/skd-validate.py b/.claude/skills/skd-validate/scripts/skd-validate.py index fc0555ca..e5935bec 100644 --- a/.claude/skills/skd-validate/scripts/skd-validate.py +++ b/.claude/skills/skd-validate/scripts/skd-validate.py @@ -622,9 +622,9 @@ def check_structure_item(item_node, variant_name): return xsi_type = item_node.get(XSI_TYPE, "") + # StructureItemGroup — дефолтный тип, platform эмитит без xsi:type. if not xsi_type: - report_error(f"Variant '{variant_name}': structure item missing xsi:type") - return + xsi_type = "dcsset:StructureItemGroup" if xsi_type not in valid_structure_types: report_warn(f"Variant '{variant_name}': unusual structure item type '{xsi_type}'")