ГОСТ Р ИСО/МЭК 19831—2017
Примечание — При сериализации массивов совместимые реализации не должны содержать пустых
массивов (т. е. массивов, которые не содержатдочерних свойств) а сериализации JSON. При этом дочерний эле
мент свойства «things» определен с «+», что означает необходимость наличия по меньшей мере одногодочерне го
элемента. Это требование гарантирует, что сериализация JSON минимизирована и содержит элемент "things’*
(«предметы») только в том случае, если в массиве присутствует "thing”.
Сериализация XML:
При сериализации массивов в XML требуется, чтобы каждый элемент массива был представлен
как отдельный элемент. Эти элементы должны быть последовательными и непрерывными в сериали
зации. и наименованием каждого элемента (наименованием тега) должно быть наименование типа
элемента (наименование, которое появляется перед «[]» в типе массива). Например атрибут things
(«предметы») должен быть сериализован как перечень элементов с наименованием thing («предмет»),
где "thing" — наименование структуры:
<thing>...
<ЛЫпд> *
Для массива в XML нет ни одного внешнего оборачивающего элемента.
При наличии массива ссылок, т. е. когда тип ’геГ относится к каждому элементу массива, массив
сериализуется как перечень элементов XML без внешнего оборачивающего элемента. Наименование
каждого элемента совпадает со значением «наименование элемента массива», указанном в опреде
лении атрибута. Например массив "things" типа "reff]". где «наименование элемента массива» равно
’thing", сериализуется следующим образом:
<thinghref = "xs:anyURI7> ♦
5.5.12 Наборы
Как и массивы, Наборы представляют собой группы Ресурсов одного типа. В отличие от массивов
Наборы являются самостоятельными Ресурсами, которые имеют свой собственный URI и к ним мож но
получить независимый доступ. Наборы также допускают оптимизированный и удобный сценарий
взаимодействия, предоставляя специализированную совокупность операций, что позволяет избежать
замены большого числа элементов при обновлении совокупности.
Настоящий стандарт распространяется на Наборы, в которых совокупность элементов в списке
изменяется часто и потенциально многими Потребителями. С другой стороны, массивы используются,
если ожидается, что перечень элементов не изменяется часто или его можно легко изменить путем
замены всего перечня, то есть накладные расходы на выполнение служебных операций управления
отдельными элементами как отдельными Ресурсы могут оказаться чрезмерными.
Атрибуты, которые являются Наборами, представлены как тип *cotlection(itemType]H. Тип ресурса
элементов Набора определен в скобках; например атрибут, который является Набором Ресурсов типа
Machine, представлен как "collection[Machinej". Данные атрибуты сериализуются как ссылки на Ресурс
Набора. Для краткости слово ’ссылка’ не используется в таблицах определения модели, несмотря на то.
что все данные атрибуты являются ссылками: указывается тип "collection[itemType]\
Каждому из элементов Ресурсов будет соответствовать запись в Наборе. Предполагается, что эти
элементы Ресурсов имеют составной тип. они независимо адресуемы и управляемы. Несмотря на то,
что различные Наборы содержат записи различных Типов ресурсов, все Наборы соответствуют следу
ющему шаблону:
- Наборы должны содержать атрибут id, который действует как «указатель на себя». Получение
данных по этой ссылке должно возвратить Набор. В представлении XML каждый Набор должен быть
обернут элементом «Collection>:
- Наборы должны содержать атрибут count, который содержит число Ресурсов в Наборе на мо
мент, когда Набор был запрошен;
- Наборы должны содержать перечень Ресурсов, которые составляют Набор. Как и в случае мас
сивов, при отсутствии Ресурсов в Наборе сериализация перечня должна быть опущена:
- аналогично Ресурсам в модели CIMI, каждый Ресурс в Наборе должен иметь атрибут id. который
действует как «указатель на себя». Получение данных в этой ссылке должно возвратить этот единич
ный Ресурс, а не любой родительский Ресурс, такой как Набор или атрибут-массив:
- добавление новых Ресурсов к Набору производят с помощью операции "add*, определенной в
Наборе.
— Отсутствие операции ’add’ в Наборе указывает, что в это время новые Ресурсы не
Примечание
разрешены:
23