XML-кодирование атрибута в KMIP
Я анализирую KMIP для реализации прототипа в Scala. Я пытаюсь понять все концепции для реализации архитектуры для различных профилей кодирования (байты, JSON, XML).
В разделе спецификации 5.4.1.6 "Кодирование элементов XML" предусмотрено:
[...] структурные значения кодируются как вложенные элементы xml, а неструктурные значения кодируются с использованием атрибута 'value'
С этим примером:
<ActivationDate type="DateTime" value="2001-01-01T10:00:00+10:00"/>
Я не понимаю этот синтаксис, так как Дата активации является атрибутом. В разделе 2.1.1 Атрибут атрибут описывается структурой, содержащей имя атрибута, индекс атрибута, значение атрибута.
XML-представление Activation Date или других атрибутов должно быть:
<Attribute>
<AttributeName type="TextString" value="Activation Date"/
<AttributeValue type="DateTime" value="2001-01-01T10:00:00+10:00"/>
</Attribute>
Более того, тестовый пример KMIP использует это второе представление.
Если первое представление показано в качестве примера, оно будет использовано. Так в каком случае?
1 ответ
Спецификация KMIP в этом отношении очень расплывчата. ОБА формы описанного вами атрибута считаются действительными KMIP и должны обрабатываться.
Я настоятельно рекомендую документ "Дополнительные кодировки сообщений KMIP" при реализации кодировки http/json/xml - https://docs.oasis-open.org/kmip/kmip-addtl-msg-enc/v1.0/os/kmip-addtl-msg-enc-v1.0-os.html
раздел 6.1.6 описывает еще один формат, который не рассматривается в основной спецификации: <TTLV tag="0x420001" name="ActivationDate" type="DateTime" value="2001-01-01T10:00:00+10:00"/>