From 021d6a90d3dfc6c0b812c66f1b4e811a444644fe Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Thu, 9 Oct 2025 23:02:00 +0300 Subject: [PATCH] =?utf8?q?=D0=9F=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D0=B0?= =?utf8?q?=20=D0=BE=D1=82=D1=81=D1=83=D1=82=D1=81=D1=82=D0=B2=D0=B8=D1=8F?= =?utf8?q?=20=D0=BB=D0=B8=D1=88=D0=BD=D0=B8=D1=85=20=D0=BF=D0=BE=D0=BB?= =?utf8?q?=D0=B5=D0=B9=20=D0=B2=20KEKS?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit KEKS/Schema я написал уже относительно давно. Но только сегодня был шокирован осознанием того, что у меня не было возможности убедиться через схемы в том, что в MAP нет лишних полей, за исключением явно перечисленных, пускай даже и optional. Это вообще поведение по умолчанию как и в ASN.1, так и в CDDL. И мои команды валидации не позволяли это проверить. Добавил команду EXAMINED, которая декрементирует счётчик кол-ва неучтённых/необработанных полей в MAP. По завершению проверки схемы напротив MAP-а, он проверяет что равен нулю. Проверка включается только если хотя бы одна команды EXAMINED была встречена. Соответственно в Tcl схеме, если не указать "len=~", то EXAMINED команды будут добавляться после каждого TAKE создаваемого во время выполнения "field" команды схемы. Иначе EXAMINED не добавляется и проверки на кол-во учтённых полей не будет. Для меня на удивление мало кода потребовалось для поддержки этой команды и вообще проверки. -- 2.52.0