Files
cc-1c-skills/tests/skills/cases/xdto-compile/snapshots/nested-particles/nested-particles.xsd
T
Nick ShirokovandClaude Opus 5 7ca6dfa6b2 fix(xdto-compile,xdto-validate): не терять конструкции молча; вычитать инструкции
xdto-compile терял свойства без единого слова: на реалистичной чужой схеме
из шести объявленных доезжало одно. Вложенные xs:sequence/xs:choice теперь
уплощаются (модель хранит плоский список), xs:all трактуется как
последовательность, xs:group и xs:attributeGroup раскрываются по ссылке —
и о каждом приближении навык пишет предупреждение. Молчаливая потеря — тот же
класс дефекта, что мы ловим у платформы, лечится так же: сообщением, не отказом.

xdto-validate получил проверки на грабли, найденные при разработке: порядок
элементов верхнего уровня (платформа отвергает пакет, не называя причины),
конфликты объявлений (name+ref, type+вложенный тип, тип без разновидности),
несовпадение рода базового типа, дубли имён свойств.

Новые правила прогнаны по всем 760 пакетам выгрузок: всё, что породила
платформа, валидно по определению, поэтому каждая ошибка там — ошибка правила.
Первый прогон дал 7, и все три класса оказались реальным поведением платформы:
length вместе с minLength/maxLength встречается, два пакета делят один
targetNamespace (Envelope и SOAP_Envelope_1_1 в БП), form="Text" называется
не только __content. Правила понижены до предупреждений либо сняты. Заодно
убран шум: предупреждение о неиспользуемом import срабатывало на четверти
корпуса — теперь только вместе с anyType, где оно и означает проблему.
Итог: 0 ошибок на корпусе, предупреждений 53 вместо 242.

Инструкции переписаны под читателя-исполнителя: убраны детали реализации
и наши мерки, каталог проверок валидатора (его вывод самодостаточен),
локальные пути в примерах заменены нейтральными. Таблица соответствий
XSD и справочник аннотаций вынесены в xdto-compile/xsd-reference.md.

Round-trip 760/760 сохранён, паритет PS/PY сохранён.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-25 21:48:48 +03:00

29 lines
1.1 KiB
XML

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="urn:t" targetNamespace="urn:t">
<xs:group name="Общие">
<xs:sequence><xs:element name="ИзГруппы" type="xs:string"/></xs:sequence>
</xs:group>
<xs:attributeGroup name="Служебные">
<xs:attribute name="Версия" type="xs:string"/>
</xs:attributeGroup>
<xs:complexType name="Документ">
<xs:sequence>
<xs:element name="Первый" type="xs:string"/>
<xs:choice>
<xs:element name="ВариантА" type="xs:string"/>
<xs:element name="ВариантБ" type="xs:string"/>
</xs:choice>
<xs:group ref="tns:Общие"/>
<xs:sequence maxOccurs="unbounded">
<xs:element name="Повторяемый" type="xs:string"/>
</xs:sequence>
</xs:sequence>
<xs:attributeGroup ref="tns:Служебные"/>
</xs:complexType>
<xs:complexType name="Всё">
<xs:all><xs:element name="Любой" type="xs:string"/></xs:all>
</xs:complexType>
<xs:complexType name="ЧерезГруппу">
<xs:group ref="tns:Общие"/>
</xs:complexType>
</xs:schema>