KMIP 中属性的 XML 编码

问题描述 投票:0回答:2

我正在分析 KMIP 以在 scala 中实现原型。我尝试理解为不同编码配置文件(字节、JSON、XML)实现架构的所有概念。

在规范部分5.4.1.6 XML元素编码中,规定:

[...] 结构值被编码为嵌套 xml 元素,非结构值被编码为 值使用“value”属性进行编码

用这个例子:

<ActivationDate type="DateTime" value="2001-01-01T10:00:00+10:00"/>

我不明白这个语法,因为 Activation Date 是一个属性。在2.1.1属性节中,属性是用包含属性名称、属性索引、属性值的结构来描述的。

ActivationDate 或其他属性的 XML 表示形式应该是:

<Attribute> <AttributeName type="TextString" value="Activation Date"/ <AttributeValue type="DateTime" value="2001-01-01T10:00:00+10:00"/> </Attribute>

此外,

KMIP 测试用例 使用第二种表示形式。

如果第一个表示作为示例显示,则将使用它。那么什么情况下呢?

protocols kmip
2个回答
1
投票
KMIP 规范在这一点上非常模糊。您描述的两种形式的属性都被视为有效的 KMIP,应该进行处理。

在实现 http/json/xml 编码时,我强烈推荐 KMIP 附加消息编码文档 -

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"/>


    


0
投票

AttributeIndex

 是一个可选字段,仅存在于 KMIP v1.x 中——即 KMIP v2.x 消除了该字段。

在 KMIP v1.x 中,

AttributeIndex

 字段用于区分一个多实例属性与另一个具有相同名称的属性。例如给定的 
SymmetricKey
 可能有多个 
ObjectGroup
 属性,通过它们的 
AttributeIndex
 来区分: 
ObjectGroup[3] = "dog"
ObjectGroup[8] = "cat"
ObjectGroup[13] = "bird"

在 KMIP v1.x 中,可以为任何属性指定

AttributeIndex

,但对于单实例属性,该字段必须为零 [0](即默认值)。有时必须明确该字段 - 例如仅修改给定多实例属性的多个实例之一时,或者多实例属性的实例零已被删除时。 
AttributeIndex
 对于单实例和多实例属性的示例用法可以在(例如)
KMIP v1.2 测试用例中找到

© www.soinside.com 2019 - 2024. All rights reserved.