【摘要】:facets 根据二进制常量部分中指定的值类型进行编码,min/max 值类型由它们的父对象隐含。表6-11自定义Facets自定义facets 是本标准规范未指定的方面,而是由特定实现提供的facets。与facet 关联的字符串和值对象都必须提供值,并且这2 个对象都不能包含其他facet 或任何子对象。此外,与facet 关联的值对象必须是bool、in、real、str、enum、uri、abstime、reltime、date 或time 类型对象之一,其他类型都是不支持的。
facets 根据二进制常量部分中指定的值类型进行编码,min/max 值类型由它们的父对象隐含。父对象必须与对象值匹配,而str 除外,它使用最小/最大的整数。来看一些例子:
第一个例子中list 的Obj 编码为0x30,因此第一个字节为30;第二个字节08 为name 的facet 编码;66 6F 6F 00 为字符串foo 的编码。
第二个例子中list 有多个元素,首字节为Obj 编码为0x30 的掩码(最高位置1),因此是B0;第二个字节为name 的facet 编码和0x08 的掩码,因此为88;66 6F 6F 00 为字符串foo 的编码;之后的28 为displayName 的facet 编码;46 6F 6F 00 为字符串Foo 的编码。
自定义facets 支持以下扩展编码,具体说明如表6-11 所示。
表6-11 自定义Facets(www.xing528.com)
自定义facets 是本标准规范未指定的方面,而是由特定实现提供的facets。自定义facet 将包含紧跟在头字节之后的两个对象:字符串对象,用于指定facet的名称,以及值对象,指定与facet 关联的值。
与facet 关联的字符串和值对象都必须提供值,并且这2 个对象都不能包含其他facet 或任何子对象。此外,与facet 关联的值对象必须是bool、in、real、str、enum、uri、abstime、reltime、date 或time 类型对象之一,其他类型都是不支持的。
例如:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。