1.3.1 String值
本博客采用知识共享署名 4.0 国际许可协议进行许可
所有的SAML string值都是xs:string
类型的,该类型内置在W3C XML Schema数据类型规范[Schema2]中。除非在规范或者专门的资料中另有说明,否则,SAML消息中的所有String值都必须包含至少一个非空格字符(空格字符在XML Recommendation [XML]2.3节中定义)。
除非在规范或专门的资料中另有说明,否则在SAML文档中所有xs:string
类型的元素,或者由其衍生出的元素,都必须使用精确的二进制比较。特别说明,SAML的实现和部署必须不能
依赖大小写不敏感的字符串比较、空格的规范化或去空格、或与区域相关的格式转换(数字或者货币。这些要求旨在符合W3C工作草案中对于字符串标识、匹配和字符串索引的要求。
如果一种实现正在比较使用不同字符编码所表示的值,那么,这种实现必须使用一个比较方法,该比较方法和下列过程返回的结果一致。该过程为:首先把它们转化为Unicode编码,然后规范化为Unicode-C格式(UNICODE-C),然后执行一个精确的二进制比较。此要求旨在符合万维网的 W3C字符模型 [W3C-CharMod],尤其是Unicode规范化文本的规则。
一个需要把从SAML文本中获取的数据和从外部源获取的数据进行比较的应用,必须要考虑为XML指定的规范化规则。 元素中包含的文本被标准化,以便使用换行符(ASCII code 10Decimal)表示行尾,正如在XML推荐2.11小节所描述的那样。被定义成string类型的XML属性值按照XML推荐3.3.3小节描述的那样进行规范化。所有的空格字符都替换为空白字符(ASCII code 32Decimal)。
SAML规范没有为XML属性值或元素内容定义排序规则或排序顺序。SAML实现不能依赖于值的特定排序顺序,因为这些排序顺序可能会随着主机的本地化设置而变得不同。
Last updated
Was this helpful?