用于指定缺省语言,此语言可以是任何通过流发送的人类可读的 XML字符数据。如果属性包含在内,接收实体应当记住此值并做为初始流与响应流的缺省值;如果此属性不包含在内,接收实体应当为两个流使用一个可配置的缺 省值,它必须为响应流在头中通信。对所有通过初始化流发送的节,如果初始实体不包含‘xml:lang’属性,接收实体应当应用缺省值;如果初始实体包含 ‘xml:lang’属性,接收实体不准修改或删除它(参考xml:lang(9.1.5))。‘xml:lang’属性值必须是一个NMTOKEN(定 义在[XML](2.3)),并且必须与定义在RFC3006[LANGTAGS]中的格式一致。
5) version—版本属性出现设到至少是“1.0”信号值,支持定义在说明书中的相关流协议(包括流特征)。有关代与属性处理的具体规则定义如下: 可总结如下:
| initiating to receiving | receiving to initiating ---------+---------------------------+----------------------- to | hostname of receiver | silently ignored from | silently ignored | hostname of receiver id | silently ignored | session key xml:lang | default language | default language
version | signals XMPP 1.0 support | signals XMPP 1.0 support
4.4.1版本支持
XMPP版本在此指定为“1.0”,特别的,这封装了流相关协议(TLS应用(5),SASL应用(6),流错误(4.7)),还有三个已定义的XML节 类型(
者不理解此‘type’属性 值,并因此而不发送它。
以下规则由实现应用于产生与处理在流头中的‘版本’属性:
1) 初始实体必须在初始流头中将版本属性值设到它所支持的最高版本号(例如:如果它所支持的最高版本号定义在此说明中,必须设值为“1.0”)
2) 接收实体必须在响应流头中设置版本属性值或者是初始实体提供的值,或者是接收实体所支持的最高版本号,无论哪一个更低。接收实体必须对主、次版本号做数字比较,而不是\字符串匹配。
3) 如果包含在响应流头中的版本号至少一个主版本号低于包含在初始流头中的版本号,并且新版本实体不能像上述那样与旧版本互操作,初始实体应当产生一个
4) 如果每个实体都收到一个带有“无版本号”属性的流头,实体必须考虑由其它实体支持版本将是“0.0”并不应当在发送响应流时包括‘version’属性。
4.5 命名空间声明
流元素必须拥有流命名空间声明和一个缺省的命名空间声明(命名空间声明定义在XML命名空间说明文档[XML-NAMES]中)。对有关流命名空间与缺省命名空间的更细节的信息,看命名空间名称与前缀(11.2)。
4.6 流特征
如果初始化实体包含版本属性,并在初始流头中,其值至少设为“1.0”,那么接收实体必须发送一个
4.7 流错误
根流元素可能包含一个
子元素感觉到一个流级别错误发生,它必须由一个兼容实体(通常是一个服务器而不是一个客户端)来发送。
4.7.1 规则
以下规则应用于流级别错误:
1) 设想所有流级别错误均是不可恢复的;因此,如果一个错误在流级别层发生,那么检测错误的实体必须发送一个流错误给其它实体,发送一个关闭标记,并终止潜在的TCP连接。
2) 如果在流被建立期间发生错误,接收实体必须一直发送起始
4.7.2 语法
流错误语法如下:
[OPTIONAL application-specific condition element]
1) 必须包含一个子元素,此子元素与以下定义的已定义的节错误条件之一相一致;此元素必须被'urn:ietf:params:xml:ns:xmpp-streams'命名空间认为是合格的。
2) 可能包含一个
3) 可能包含一个用于说明特殊应用错误条件的子元素;此元素必须由一个已定义应用命名空间来认证,并且,它的结构由那个命名空间来定义。
4.7.3 已定义条件
以下定义了流级别错误条件:
1)
2)
4)
5)
6)
7)
8)
9)