From 64b461930bf026034cc33bac93bdaaf6f3ccef40 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Sun, 26 Jul 2026 16:25:47 +0300 Subject: [PATCH] =?UTF-8?q?docs(xdto-dsl-spec):=20=D0=BE=D1=82=D0=BE=D0=B1?= =?UTF-8?q?=D1=80=D0=B0=D0=B6=D0=B5=D0=BD=D0=B8=D0=B5=20fixed=20=D0=B8=20?= =?UTF-8?q?=D0=BE=D1=82=D1=81=D1=83=D1=82=D1=81=D1=82=D0=B2=D0=BE=D0=B2?= =?UTF-8?q?=D0=B0=D0=B2=D1=88=D0=B5=D0=B5=20=D0=B7=D0=B5=D1=80=D0=BA=D0=B0?= =?UTF-8?q?=D0=BB=D0=BE=20xdto:fixed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Таблица соответствий утверждала «@nillable, @default, @fixed — те же имена». Для fixed это неверно: в модели признак и значение разнесены, fixed="V" из XSD превращается в fixed="true" + default="V". Компилятор был написан ровно по этой строке — неверная строка спеки воспроизвелась в коде буквально и дожила до первой проверки платформой. Плюс в таблице аннотаций не было xdto:fixed, хотя компилятор его принимает: зеркало нужно для fixed="false" при заданном default. Co-Authored-By: Claude Opus 5 (1M context) --- docs/xdto-dsl-spec.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/xdto-dsl-spec.md b/docs/xdto-dsl-spec.md index ebd91953..db8a1a48 100644 --- a/docs/xdto-dsl-spec.md +++ b/docs/xdto-dsl-spec.md @@ -51,7 +51,8 @@ | `xs:attribute` (локальный) | `property form="Attribute"` | | `@minOccurs` | `@lowerBound` | | `@maxOccurs="unbounded"` | `@upperBound="-1"` | -| `@nillable`, `@default`, `@fixed` | те же имена | +| `@nillable`, `@default` | те же имена | +| `@fixed="V"` | `@fixed="true"` + `@default="V"` — в модели признак и значение разнесены | | `xs:element/@ref` | `property/@ref` | | анонимный `xs:simpleType` в объявлении | `typeDef xsi:type="ValueType"` | | анонимный `xs:complexType` в объявлении | `typeDef xsi:type="ObjectType"` | @@ -115,6 +116,7 @@ | `xdto:order` | `xs:complexType` | исходный порядок свойств, если он не «атрибуты первыми»; имена через `\|` | | `xdto:textName`, `xdto:textlowerBound`, `xdto:textupperBound`, `xdto:textnillable` | `xs:extension` в `xs:simpleContent` | параметры свойства `form="Text"`, если оно названо не `__content` | | `xdto:elementFormQualified`, `xdto:attributeFormQualified` | `xs:schema` | записать флаги явно | +| `xdto:fixed` | объявление | признак фиксированного значения отдельно от самого значения: в XSD `fixed="V"` совмещает их, в модели это `fixed="true"` + `default="V"`. Нужен только для `fixed="false"` при заданном `default` | | `xdto:type` | `xs:enumeration` | `xsi:type` литерала перечисления | | `xdto:prefix` | объявление | осмысленный префикс пространства имён вместо генерируемого `dNpM` (например `dcsset`) | | `xdto:declareNs` | `xs:union` | объявить префикс пространства имён на узле (при нотации Кларка платформа иногда его пишет, иногда нет) |