From: Sergey Matveev Date: Thu, 9 Oct 2025 20:02:00 +0000 (+0300) Subject: Проверка отсутствия лишних полей в KEKS X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=021d6a90d3dfc6c0b812c66f1b4e811a444644fe;p=stargrave-blog.git Проверка отсутствия лишних полей в KEKS KEKS/Schema я написал уже относительно давно. Но только сегодня был шокирован осознанием того, что у меня не было возможности убедиться через схемы в том, что в MAP нет лишних полей, за исключением явно перечисленных, пускай даже и optional. Это вообще поведение по умолчанию как и в ASN.1, так и в CDDL. И мои команды валидации не позволяли это проверить. Добавил команду EXAMINED, которая декрементирует счётчик кол-ва неучтённых/необработанных полей в MAP. По завершению проверки схемы напротив MAP-а, он проверяет что равен нулю. Проверка включается только если хотя бы одна команды EXAMINED была встречена. Соответственно в Tcl схеме, если не указать "len=~", то EXAMINED команды будут добавляться после каждого TAKE создаваемого во время выполнения "field" команды схемы. Иначе EXAMINED не добавляется и проверки на кол-во учтённых полей не будет. Для меня на удивление мало кода потребовалось для поддержки этой команды и вообще проверки. ---