• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 15
    • 下载费用:30 金币  

    重庆时时彩老几点开始: SIP信令的XML数据的解析方法及装置.pdf

    关 键 词:
    SIP XML 数据 解析 方法 装置
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201010133802.1

    申请日:

    2010.03.11

    公开号:

    CN102195959A

    公开日:

    2011.09.21

    当前法律状态:

    授权

    有效性:

    有权

    法律详情: 授权|||实质审查的生效IPC(主分类):H04L 29/06申请日:20100311|||公开
    IPC分类号: H04L29/06; G06F17/30 主分类号: H04L29/06
    申请人: 中兴通讯股份有限公司
    发明人: 赵秋荷; 张乐
    地址: 518057 广东省深圳市南山区科技南路55号
    优先权:
    专利代理机构: 北京康信知识产权代理有限责任公司 11240 代理人: 余刚;吴孟秋
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201010133802.1

    授权公告号:

    ||||||

    法律状态公告日:

    2015.08.12|||2013.01.30|||2011.09.21

    法律状态类型:

    授权|||实质审查的生效|||公开

    摘要

    本发明公开了一种SIP信令的XML数据的解析方法及装置,上述方法中,SIP设备接收携带XML数据的SIP信令;确定该XML数据对应的XML?Schema类型;根据上述XML?Schema类型的数据结构解析该XML数据。根据本发明的技术方案,解决了现有技术中SIP设备在处理大量XML字符流时要进行许多重复性质的解析调试工作的问题,进而提高了SIP-XML编解码效率,降低了编解码对嵌入式系统软硬件资源的要求,并规范了目前SIP-XML开发的混乱局面。

    权利要求书

    1.一种SIP信令的XML数据的解析方法,其特征在于,包括:接收携带XML数据的SIP信令;确定所述XML数据对应的XML?Schema类型;根据所述XML?Schema类型的数据结构解析所述XML数据。2.根据权利要求1所述的方法,其特征在于,在根据所述XMLSchema类型的数据结构解析所述XML数据之前,所述方法还包括:判断所述XML?Schema类型的数据结构是否已被创建;如果否,则创建所述XML?Schema类型的数据结构。3.根据权利要求1或2所述的方法,其特征在于,所述数据结构包括:多个节点,每个节点包括对应于所述XML?Schema类型的字段名称以及所述字段的数据域指针。4.根据权利要求3所述的方法,其特征在于,所述XML?Schema类型的数据结构为树形数据结构。5.根据权利要求3所述的方法,其特征在于,根据所述XMLSchema类型的数据结构解析所述XML数据包括:在遍历所述XML?Schema类型的数据结构的各个节点的过程中,根据当前遍历的节点的字段名称,在所述XML数据中查找与所述字段名称匹配的字段的数据值,并将所述数据值存储至该节点的数据域指针指向的数据区。6.根据权利要求5所述的方法,其特征在于,在解析所述XML数据之后,所述方法还包括:读取所述数据区的数据值并进行SIP处理。7.根据权利要求6所述的方法,其特征在于,对所述数据区的数据值进行SIP处理之后,所述方法还包括:根据所述SIP处理的结果,更新所述数据区的数据值;对更新后的所述数据区的数据值进行统一编码,生成新的XML数据。8.一种SIP信令的XML数据的解析装置,其特征在于,包括:接收???,用于接收携带XML数据的SIP信令;XML?Schema类型判断???,用于判断所述接收??榻邮盏乃鯴ML数据对应的XML?Schema类型;解析???,用于根据所述XML?Schema类型的数据结构解析所述XML数据。9.根据权利要求8所述的装置,其特征在于,所述装置还包括:数据结构创建???,用于在所述XML?Schema类型的数据结构没有被创建的情况下,创建所述XML?Schema类型的数据结构,其中,所述数据结构包括:多个节点,每个节点包括对应于所述XML?Schema类型的字段名称以及所述字段的数据域指针。10.根据权利要求8所述的装置,其特征在于,所述装置还包括:数据存储???,用于存储所述XML?Schema类型的数据结构以及解析后的XML数据各个字段的数据值。

    说明书

    SIP信令的XML数据的解析方法及装置

    技术领域

    本发明涉及移动通信领域,尤其涉及一种SIP信令的XML数据的解析方法及装置。

    背景技术

    SIP(Session?Initiation?Protocol)协议是IETF制定的关于多方多媒体通信的一种协议,用于建立、修改和终止IP网上的双方或多方多媒体会话。通过与RTP/RTCP、SDP、RTSP等协议及DNS配合,SIP协议支持语音、视频、数据、E-mail、IM、聊天、游戏等业务的双方或多方多媒体会话。随着技术的发展和厂商之间逐渐走向统一,SIP协议已经成为下一代网络(NGN)最重要的通信协议之一。

    XML(Extensible?Markup?Language)是W3C定义的一种数据存储语言,它使用一系列简单的标记来描述数据。将XML语言应用于SIP协议消息中,可以直观地表示协议中各信息字段,并降低解析SIP协议消息的复杂性。目前,SIP协议提供的三方通话、会议等服务采用XML语言表示相关字段并传递信息。

    相关技术针对每一条SIP消息的XML字符流单独进行解析,这样就导致SIP在处理大量XML字符流时要进行许多重复性质的解析调试工作,不仅占用大量的嵌入式系统资源,而且增加了后期维护阶段的难度和成本。

    发明内容

    本发明的主要目的在于提供一种SIP信令的XML数据的解析方案,以至少解决相关技术中,SIP设备在处理大量XML字符流时要进行许多重复性质的解析调试工作,从而占用大量的嵌入式系统资源,增加了后期维护阶段的难度和成本的问题。

    根据本发明的一个方面,提供了一种SIP信令的XML数据的解析方法。

    根据本发明的SIP信令的XML数据的解析方法包括:接收携带XML数据的SIP信令;确定该XML数据对应的XML?Schema类型;根据上述XML?Schema类型的数据结构解析该XML数据。

    进一步地,在根据上述XML?Schema类型的数据结构解析该XML数据之前,该方法还包括:判断上述XML?Schema类型的数据结构是否已被创建;如果否,则创建该XML?Schema类型的数据结构。

    进一步地,上述XML?Schema类型的数据结构包括:多个节点,每个节点包括对应于所述XML?Schema类型的字段名称以及所述字段的数据域指针。

    根据本发明的一个改进,上述XML?Schema类型的数据结构为树形数据结构。

    进一步地,根据上述XML?Schema类型的数据结构解析XML数据包括:在遍历上述XML?Schema类型的数据结构的各个节点的过程中,根据当前节点的字段名称,在上述XML数据中查找与上述字段名称匹配的字段的数据值,并将该数据值存储至该节点的数据域指针指向的数据区。

    进一步地,在解析上述XML数据之后,该方法还包括:读取上述数据区的数据值并进行SIP处理。

    根据本发明的另一个改进,对上述数据区的数据值进行SIP处理之后,所述方法还包括:根据上述SIP处理的结果,更新上述数据区的数据值;对更新后的数据区的数据值进行统一编码,生成新的XML数据。

    根据本发明的另一个方面,提供了一种SIP信令的XML数据的解析装置。

    根据本发明的SIP信令的XML数据的解析装置包括:接收???、XML?Schema类型判断??橐约敖馕瞿??。其中,接收???01,用于接收携带XML数据的SIP信令;XML?Schema类型判断???,用于判断接收??榻邮盏腦ML数据对应的XML?Schema类型;解析???,用于根据判断出的XML?Schema类型的数据结构解析上述XML数据。

    根据本发明的一个改进,该装置还包括:数据结构创建???,用于在XML?Schema类型的数据结构没有被创建的情况下,创建该XML?Schema类型的数据结构,其中,该数据结构包括:多个节点,每个节点包括对应于该XML?Schema类型的字段名称以及相应字段的数据域指针。

    根据本发明的另一个改进,该装置还包括:数据存储???,用于存储上述XML?Schema类型的数据结构以及解析后的XML数据各个字段的数据值。

    通过本发明,采用一次创建特定XML?Schema类型的数据结构,之后所有该XML?Schema类型的XML数据都根据上述XMLSchema类型的数据结构进行解析,解决了现有技术中SIP设备在处理大量XML字符流时要进行许多重复性质的解析调试工作的问题,进而提高了SIP-XML编解码效率,降低了编解码对嵌入式系统软硬件资源的要求,并规范了目前SIP-XML开发的混乱局面。

    附图说明

    此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

    图1是适用于本发明实施例的SIP信令的XML数据的解析方法的通信系统的结构示意图;

    图2是根据本发明实施例的SIP信令的XML数据的解析方法的流程图;

    图3是根据本发明实施例的针对SIP会议业务的SIP信令的XML数据的解析方法的流程图;

    图4是根据本发明实施例的SIP会议的XML?Schema的树形数据结构的树形示意图;

    图5是根据本发明实施例的SIP信令的XML数据的解析装置的结构示意图。

    具体实施方式

    下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

    图1是适用于本发明实施例的SIP信令的XML数据的解析方法的通信系统的结构示意图。

    如图1所示,该系统包括:多个SIP设备,这些SIP设备支持SIP协议,并通过建立、修改和终止IP网上的双方或多方多媒体会话。通过与RTP/RTCP、SDP、RTSP等协议及DNS配合,SIP协议支持语音、视频、数据、E-mail、IM、聊天、游戏等业务的双方或多方多媒体会话。上述网元可以是支持SIP协议的移动终端或接入设备,也可以是针对不同业务的SIP服务器。

    下面对本发明实施例的SIP信令的XML数据的解析方法进行详细介绍。

    根据本发明实施例,首先提供了一种的SIP信令的XML数据的解析方法。

    图2是根据本发明实施例的SIP信令的XML数据的解析方法的流程图,如图2所示,该方法包括:

    步骤S202、接收携带XML数据的SIP信令;

    步骤S204、确定该XML数据对应的XML?Schema类型;

    步骤S206、根据确定的XML?Schema类型的数据结构解析该XML数据。

    其中,XML?Schema是负责定义和描述XML文档的结构和内容模式,它定义了XML文档中存在哪些元素以及元素之间的关系,目前SIP标准(如RFC3858)对信令中带XML信息的部分已经有了相关定义。

    由于XML是基于内容的,针对某一特定业务内容的SIP消息的XML?Schema是固定的,并且不同业务内容的SIP消息的XMLSchema不同(例如,针对ISDN-SIP转换的Schema与针对SIP会议的Schema完全不同)。因此,利用XML?Schema的对XML文档的结构和内容模式定义的唯一性,针对某一特定类型的XMLSchema创建该类型唯一的数据结构,用于解析隶属于这种XMLSchema的所有XML数据,使得SIP设备解析XML数据时,不需要每次都对其编码结构进行解析,不仅能克服现有技术中SIP在处理大量XML字符流时要进行许多重复性质的解析调试工作的问题,而且能够节省SIP设备的软硬件资源,缩短处理时间,同时便于未来针对新的XML?Schema进行快速有效的扩展。

    在上述步骤S204中,从接收到的携带XML数据的SIP信令中提取出XML数据,此时需要判断该XML数据隶属于哪一种XMLSchema,其目的在于为执行上述步骤206中的解析操作做好准备,具体的判断,可以根据SIP信令中用于标识业务名称的参数识别应用该SIP信令的具体业务,根据业务名称判断出该XML数据属于哪一种XML?Schema。

    在上述步骤S206中,在确定了该XML数据的XML?Schema类型后,选择当前SIP设备中的对应于该XML?Schema类型的数据结构对该XML数据进行解析。

    由于针对某一特定类型的XML?Schema只需创建一次该类型的数据结构,因此,选择合适的数据结构的创建时机本发明实施例的技术方案的关键。对于XML?Schema类型的数据结构包括但不限于以下两种创建方式:

    方式一、在执行上述步骤S202之前,一次创建并保存与SIP相关的所有XML?Schema类型的数据结构。

    采用该方式创建XML?Schema的数据结构,使得针对后续输入的SIP信令的XML数据,可以直接选择隶属的XML?Schema类型的数据结构对输入的XML数据进行解析。避免了对大量相同XMLSchema类型的XML字符流进行解析时需要进行许多重复性质的解析调试工作。

    方式二、在执行上述步骤S206之前,需要判断当前SIP设备中是否已经创建了上述XML?Schema的数据结构,如果已经创建,则直接选择该XML?Schema类型的数据结构对输入的XML数据进行解析,如果没有创建,则需要在执行上述步骤206之前创建该XML?Schema类型的数据结构?;痪浠八?,在执行上述步骤206之前,判断当前SIP设备中是否已经创建了上述XML?Schema的数据结构,就是判断上述XML?Schema类型是否被解析过。

    采用该方式动态创建XML?Schema的数据结构,通过判断上述XML?Schema类型是否被解析过,选择是创建新的XML?Schema类型的数据结构对输入的XML数据进行解析,还是利用已创建的XML?Schema类型的数据结构对输入的XML数据进行解析,从而确保了同一XML?Schema类型的数据结构只被创建一次,在该XMLSchema类型的数据结构创建之后,所有隶属于该XML?Schema类型的XML数据均利用已经创建的该XML?Schema类型的数据结构进行解析。进而避免了对大量相同ML?Schema类型的XML字符流进行解析时需要进行许多重复性质的解析调试工作。并且,相对与方式一,该方式可以节省XML?Schema的数据结构的存储空间,便于对各种类型XML?Schema的数据结构的动态维护。

    上文已经提到XML是基于内容的,针对某一特定业务内容的SIP消息的XML?Schema是固定的,下面以针对SIP会议的XMLSchema为例,说明如何创建SIP会议的XML?Schema的数据结构,该数据结构的具体特征,以及如何根据SIP会议的XML?Schema类型的数据结构解析用于SIP会议的XML数据。

    下面给出一段定义SIP会议XML?Schema的XML代码,由于SIP会议的XML?Schema过大,因此,以下代码只取出主要字段以便直观地说明。

    <?xml?version=″1.0″encoding=″UTF-8″?>

    <xs:schema>

    <!--

    CONFERENCE?ELEMENT

    -->

    <xs:element?name=″conference-info″type=″conference-type″/>

    <!--

    CONFERENCE?TYPE

    -->

    <xs:complexType?name=″conference-type″>

    <xs:sequence>

    <xs:element?name=″conference-description″type=″conference-description-type″minOccurs=″0″/>

    <xs:element?name=″host-info″type=″host-type″minOccurs=″0″/>

    <xs:element?name=″conference-state″type=″conference-state-type″minOccurs=″0″/>

    <xs:element?name=″users″type=″users-type″minOccurs=″0″/>

    <xs:element?name=″sidebars-by-ref″type=″uris-type″minOccurs=″0″/>

    </xs:sequence>

    </xs:complexType>

    <!--

    CONFERENCE?DESCRIPTION?TYPE

    -->

    <xs:complexType?name=″conference-description-type″>

    <xs:sequence>

    <xs:element?name=″display-text″type=″xs:string″minOccurs=″0″/>

    <xs:element?name=″subject″type=″xs:string″minOccurs=″0″/>

    <xs:element?name=″free-text″type=″xs:string″minOccurs=″0″/>

    <xs:element?name=″keywords″type=″keywords-type″minOccurs=″0″/>

    <xs:element?name=″conf-uris″type=″uris-type″minOccurs=″0″/>

    </xs:sequence>

    </xs:complexType>

    </xs:schema>

    如上述代码所示,<?xml?version=″1.0″encoding=″UTF-8″?>表示XML声明部分,从<xs:schema>到</xs:schema>是SIP会议的主体部分,其中,conference-info字段包括了conference-description,host-info,conference-state等5个子字段,而conference-description字段又包括了display-text,subject等一系列子子字段,(host-info,conference-state等子字段也包括相应子子字段,本发明实施例为了描述上的清晰直观,此处仅详细说明conference-description的子子字段)。

    根据上述代码的SIP会议的XML?Schema可知,任何类型的XML?Schema的每个字段所包含的主要信息包括:字段名称和该字段的数据值,因此,创建的XML?Schema的数据结构需要涵盖进行后续SIP处理所必需的字段,该数据结构包括对应于所有字段的多个节点,并且,每个节点包括对应于SIP会议的XML?Schema类型的字段名称以及字段的数据域指针。其中,每个节点的字段名称作为查找的关键字查找输入的XML数据中相应字段的数据值,每个节点的数据域指针用于指示将查找到的相应字段的数据值存储至该指针指向的数据区。

    在具体实施过程中,由于XML不是为SIP定制的,含有大量不必要字段,因此,通过上述方式,仅取SIP需要的字段作为上述数据结构的节点,可以提高XML数据的存取效率(如SIP会议取conference-info,conf-description等字段)。

    在具体实施过程中,上述XML?Schema的数据结构可以采用顺序存储结构或链表结构,只要顺序存储结构或链表结构的每个节点包括字段名称以及字段的数据域指针即可。

    根据上述代码所示的SIP会议的XML?Schema,conference-info字段包括了conference-description,host-info,conference-state等5个子字段,而conference-description字段又包括了display-text,subject等一系列子子字段,(host-info,conference-state等子字段也包括相应子子字段,由此可知,任何类型的XML?Schema是按照树形规则定义其各个字段的。因此,优选的,可以根据当前处理的XMLSchema中划分的字段层次,创建树形的数据结构,该数据结构的每个节点还可以包括:父节点指针、子结点指针以及兄弟节点指针,以便于该树形数据结构的创建和解析过程中的节点遍历。

    在具体实施过程中,上述树形数据结构可看作具有父子节点关系的树形结构,树中的各个元素称为节点。(至此,XML?Schema就根据字段相应地分解为节点1,节点2,节点3……)。各节点分别定义父节点指针,兄弟节点指针,子节点指针,特别还定义了一个指向数据区的指针。其中,当前节点的上层节点称为父节点,同级节点称为兄弟节点,下层节点称为子节点,最上层节点无父节点,最下层节点无子节点。通过各节点及其父、子、兄弟节点,可以快速有效地遍历XML?Schema生成树,利用数据区指针快速访问数据区内存。

    根据XML?Schema中字段组织的特点,将XML?Schema的数据结构创建为相应的树形数据结构,使得XML?Schema的数据结构对节点的组织与XML?Schema中对字段的组织完全统一,便于在遍历该树形数据结构的过程中解析输入的XML数据,同时便于维护解析后的数据和后续编码工作,并且便于未来针对新的XML?Schema进行快速有效的扩展。

    上述步骤S206中,根据所述XML?Schema类型的数据结构解析所述XML数据包括:在遍历所述XML?Schema类型的数据结构的各个节点的过程中,根据当前节点的字段名称,在所述XML数据中查找与所述字段名称匹配的字段的数据值,并将所述数据值存储至该节点的数据域指针指向的数据区。

    如果上述XML?Schema类型的数据结构采用顺序存储结构或链表结构,则在顺序或按照链表指针遍历该数据结构的所有节点的过程中,将与当前遍历的节点字段名称匹配的XML数据的相应字段的数据值存储至当前节点的数据域指针指向的数据区。

    如果上述XML?Schema类型的数据结构采用树形存储结构,则可以采用按层次遍历或适用于树形结构的其他遍历策略对该数据结构的所有节点遍历,在遍历过程中,将与当前遍历的节点字段名称匹配的XML数据的相应字段的数据值存储至当前节点的数据域指针指向的数据区。

    采用上述通过遍历XML?Schema类型的数据结构各个节点的方法解析输入的XML数据,在解析的过程中,无需分析输入的XML数据的字段组织结构,无需判断各字段之间的关系(例如继承关系),相对于现有技术SIP设备对XML数据的解析,不仅减少了用于XML数据的解析的辅助空间,也减少了解析的时间,从而节省了SIP设备解析XML数据的软硬件资源,提高了XML数据的解析效率。

    在具体实施过程中,SIP设备在接收并解析SIP信令中的XML数据后,还需要对解析后的XML数据进行SIP协议的相关处理。例如响应上述SIP信令的相关处理或转发上述SIP信令的相关处理。

    由于XML不是为SIP定制的,含有大量不必要字段,而XMLSchema的数据结构中只提取相关业务SIP处理所必要的字段作为节点,因此,经过上述XML?Schema的数据结构对输入的XML数据解析后,SIP设备无需从原始的XML数据中读取各个有用的字段进行处理,只需根据XML?Schema的数据结构中的节点读取其指针指向的数据区的数据值,进行XML?Schema的数据结构。从而减少了SIP协议的相关处理的时间,节省了SIP设备的软硬件资源,提高了SIP协议的相关处理的效率。

    在具体的实施过程中,在对数据区的数据值进行SIP处理之后,如果需要回复SIP响应消息或转发SIP消息,SIP设备还需要根据之前SIP处理的结果,更新相应的数据区的数据值,并对更新后的相应数据区的数据值进行统一编码,生成新的XML数据。

    由于采取了上述XML?Schema的数据结构对相应数据区进行更新,使得生成的新的XML数据中至包含了必要的字段,从而使得SIP信令更加精简,也方便了其他SIP进行解析和SIP处理。

    下面结合具体的实施例对上述SIP信令的XML数据的解析方法进行详细的介绍。

    在本实施例中,携带XML数据的SIP信令针对SIP会议业务,该XML数据的XML?Schema为SIP会议的Schema,并且XMLSchema的数据结构采用树形数据结构。

    图3是根据本发明实施例的针对SIP会议业务的SIP信令的XML数据的解析方法的流程图,如图3所示,该流程包括以下步骤(步骤S301-步骤S305):

    步骤S301、输入如下的XML字符流:

    <?xml?version=″1.0″encoding=″UTF-8″?>

    <conference-info″>

    <conference-description>

    <display-text>display-text?old?data</display-text>

    <subject>subject?old?data</subject>

    <free-text>free-text?old?data</free-text>

    <keywords>keywords?old?data</keywords>

    <conf-uris>conf-uris?old?data</conf-uris>

    </conference-description>

    <host-info>host-info?old?data</host-info>

    <conference-state>conference-state?old?data</conference-state>

    <users>users?old?data</users>

    <sidebars-by-ref>sidebars-by-ref?old?data</sidebars-by-ref>

    </conference-info>

    验证上述XML字符流,判断该XML字符流的XML?Schema为SIP会议的XML?Schema,并且判断SIP会议的XML?Schema是否解析过,如果已经过解析,执行步骤S304,否则执行步骤S302;

    步骤S302、分解SIP会议的XML?Schema。按照“Id,isLeaf,occuredTime,subStructCount,structSize,dataType,TagName,child,attributeCount,attribute”的顺序,将XML?Schema分解得到辅助数据结构中,该辅助数据结构的代码如下:

    static?XmlTree?confXmlTree[]=

    {

    /*Id,isLeaf,occuredTime,subStructCount,structSize,dataType,TagName,child,attributeCount,attrbute*/

    {0,0,1,6,0,DataType_Invalid,″conference-info″,{1,2,3,4,5},3,{0,4,5}},

    {1,0,1,8,0,DataType_Invalid,″conference-description″,{7,8,9,10},0},

    {2,0,1,3,0,DataType_Invalid,″host-info″,{7,15,16},0},

    {3,0,1,3,0,DataType_Invalid,″conference-state″,{17,18,19},0},

    {4,0,1,1,0,DataType_Invalid,″users″,{29},1,{4}},

    {5,0,1,1,0,DataType_Invalid,″sidebars-by-ref″,{24},1,{4}},

    {6,1,1,0,sizeof(DISPLAYTEXT),DataType_String,″display-text″,{0},0},

    {7,1,1,0,sizeof(SUBJECT),DataType_String,″subject″,{0},0},

    {8,1,1,0,sizeof(FREETEXT),DataType_String,″free-text″,{0},0},

    {9,1,1,0,sizeof(KEYWORDS),DataType_String,″keywords″,{0},0},

    {10,0,1,1,0,DataType?Invalid,″conf-uris″,{24},1,{4}},

    }

    其中,Id是成员的排列索引;isLeaf代表该成员有无子节点(子成员);1代表该成员有子节点;occuredTime代表出现次数,subStructCount表示该成员子节点的个数;structSize表示结构大??;dataType说明该成员在Schema中的类型;child代表了该成员的子节点在此数据结构中的索引号,如名为conference-info的数据成员的子节点是Id为{1,2,3,4,5}的几个数据成员;attributeCount代表该数据成员的属性个数;attribute为其属性,如0代表属性为Uri;

    步骤S303、根据上述辅助数据结构生成如图4所示的树形数据结构XMLTree;

    至此,SIP会议的XML?Schema的解析过程结束。此时XMLTree已经生成,与SIP会议业务相关的XML字符流输入后可直接通过XMLTree获取或存储信息,而不需要再次解析其结构特征。

    步骤S304、利用XMLTree中的几个指针遍历各节点,对输入的上述XML字符流进行解析,并将XML字符流中的各个字段的内容存入相应节点的数据域指针指向的数据区;

    步骤S305、对SIP??榇硗瓿傻氖萸氖萃骋槐嗦?,最后生成新的XML字符串,新生成的XML字符串代码如下:

    <?xml?version=″1.0″encoding=″UTF-8″?>

    <conference-info″>

    <conference-description>

    <display-text>display-text?new?data</display-text>

    <subject>subject?new?data</subject>

    <free-text>free-text?new?data</free-text>

    <keywords>keywords?new?data</keywords>

    <conf-uris>conf-uris?new?data</conf-uris>

    </conference-description>

    <host-info>host-info?new?data</host-info>

    <conference-state>conference-state?new?data</conference-state>

    <users>users?new?data</users>

    <sidebars-by-ref>sidebars-by-ref?new?data</sidebars-by-ref>

    </conference-info>

    在具体实施过程中,如果SIP会议的XML?Schema未发生改变,则步骤S301到步骤S303只需进行一次,每次只XMLTree解析SIP会议的XML字符流,如果SIP会议的XML?Schema发生变化,将流程转入步骤S301重新分解生成新的XMLTree。

    根据本发明实施例,还提供了一种SIP信令的XML数据的解析装置。

    图5是根据本发明实施例的SIP信令的XML数据的解析装置的结构示意图。如图5所示,根据本发明实施例的SIP信令的XML数据的解析装置包括:接收???01、XML?Schema类型判断???02以及解析???03。其中,接收???01,用于接收携带XML数据的SIP信令;XML?Schema类型判断???02,用于判断接收???01接收的XML数据对应的XML?Schema类型;解析???03,用于根据判断出的XML?Schema类型的数据结构解析上述XML数据。

    优选地,如图5所示,根据本发明实施例的SIP信令的XML数据的解析装置还可以包括:数据结构创建???04,用于在XMLSchema类型的数据结构没有被创建的情况下,创建该XML?Schema类型的数据结构,其中,该数据结构包括:多个节点,每个节点包括对应于该XML?Schema类型的字段名称以及相应字段的数据域指针。

    优选地,如图5所示,根据本发明实施例的SIP信令的XML数据的解析装置还可以包括:数据存储???05,用于存储上述XMLSchema类型的数据结构以及解析后的XML数据各个字段的数据值。

    从以上的描述中,可以看出,本发明实现了如下技术效果:本发明针对SIP协议中不同的XML?Schema类型提供通用的解析及编码方法,提高了SIP-XML编解码效率,降低编解码对嵌入式系统软硬件资源的要求,并规范目前混乱的SIP-XML开发局面。

    显然,本领域的技术人员应该明白,上述的本发明的各??榛蚋鞑街杩梢杂猛ㄓ玫募扑阕爸美词迪?,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路???,或者将它们中的多个??榛虿街柚谱鞒傻ジ黾傻缏纺?槔词迪?。这样,本发明不限制于任何特定的硬件和软件结合。

    以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的?;し段е?。

    关于本文
    本文标题:SIP信令的XML数据的解析方法及装置.pdf
    链接地址://www.4mum.com.cn/p-5875125.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
  • 欢乐生肖怎么玩技巧 老时时20110701 双色球中奖 无错30码特围 ss彩稳赚玩法 双色球机选一般中不了 11选5手机版免费计划软件 时时彩二星直选稳赚 11选5任一稳赚技巧 黑马人工计划软件安装 pk10助赢软件手机版 幸运飞艇趋势分析软件 双色球今晚开奖直播 后三组选包胆百度百科 福彩3d投注金额计算表 后三组六稳赚方法包号