Sparkplug Template: экземпляр должен ссылаться на известное определение
Фотография конкретного исполнения не приложена.
Template позволяет передавать сложный тип и его экземпляры. Определение публикуется в NBIRTH, а экземпляр ссылается на него через template_ref. Экземпляр не может ссылаться на определение, которого не было в соответствующем начальном описании.
В BIRTH экземпляр содержит полный набор предусмотренных членов, в последующем DATA допускается только изменившееся подмножество. Поэтому декодер должен хранить известный контекст структуры. Неполный DATA нельзя автоматически считать полной новой версией экземпляра.
Параметры шаблона также имеют правила значений по умолчанию и переопределений. Перед интеграцией фиксируют типы, состав членов и способ обновления схемы. Одного сходного имени типа в двух приложениях недостаточно для подтверждения их совместимости.
В приёмке проверяют начальное объявление, создание нескольких экземпляров и частичное обновление одного из них. Изменение схемы не должно незаметно приписывать старые поля новым данным. Наличие корректного template_ref само по себе не подтверждает весь жизненный цикл структуры.
Основание — Eclipse Sparkplug Specification 3.0.0, 2022-11-16, физические страницы PDF 80, 81, 82, 83. Пример описывает проектную проверку; конкретные broker, gateway и Host не испытывались. Поддержка этой версии каждой реализацией требует подтверждения.