CN102195959B - Sip信令的xml数据的解析方法及装置 - Google Patents
Sip信令的xml数据的解析方法及装置 Download PDFInfo
- Publication number
- CN102195959B CN102195959B CN201010133802.1A CN201010133802A CN102195959B CN 102195959 B CN102195959 B CN 102195959B CN 201010133802 A CN201010133802 A CN 201010133802A CN 102195959 B CN102195959 B CN 102195959B
- Authority
- CN
- China
- Prior art keywords
- data
- xml
- sip
- xml schema
- data structure
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000011664 signaling Effects 0.000 title claims abstract description 43
- 238000004458 analytical method Methods 0.000 title claims abstract description 8
- 238000000034 method Methods 0.000 claims abstract description 46
- 238000012545 processing Methods 0.000 claims abstract description 21
- 230000008569 process Effects 0.000 claims description 16
- 238000013500 data storage Methods 0.000 claims description 4
- 230000003252 repetitive effect Effects 0.000 abstract 1
- 239000003643 water by type Substances 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000739 chaotic effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种SIP信令的XML数据的解析方法及装置,上述方法中,SIP设备接收携带XML数据的SIP信令;确定该XML数据对应的XML Schema类型;根据上述XML Schema类型的数据结构解析该XML数据。根据本发明的技术方案,解决了现有技术中SIP设备在处理大量XML字符流时要进行许多重复性质的解析调试工作的问题,进而提高了SIP-XML编解码效率,降低了编解码对嵌入式系统软硬件资源的要求,并规范了目前SIP-XML开发的混乱局面。
Description
技术领域
本发明涉及移动通信领域,尤其涉及一种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类型判断模块以及解析模块。其中,接收模块901,用于接收携带XML数据的SIP信令;XML Schema类型判断模块,用于判断接收模块接收的XML数据对应的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数据的解析装置包括:接收模块501、XML Schema类型判断模块502以及解析模块503。其中,接收模块501,用于接收携带XML数据的SIP信令;XML Schema类型判断模块502,用于判断接收模块501接收的XML数据对应的XML Schema类型;解析模块503,用于根据判断出的XML Schema类型的数据结构解析上述XML数据。
优选地,如图5所示,根据本发明实施例的SIP信令的XML数据的解析装置还可以包括:数据结构创建模块504,用于在XMLSchema类型的数据结构没有被创建的情况下,创建该XML Schema类型的数据结构,其中,该数据结构包括:多个节点,每个节点包括对应于该XML Schema类型的字段名称以及相应字段的数据域指针。
优选地,如图5所示,根据本发明实施例的SIP信令的XML数据的解析装置还可以包括:数据存储模块505,用于存储上述XMLSchema类型的数据结构以及解析后的XML数据各个字段的数据值。
从以上的描述中,可以看出,本发明实现了如下技术效果:本发明针对SIP协议中不同的XML Schema类型提供通用的解析及编码方法,提高了SIP-XML编解码效率,降低编解码对嵌入式系统软硬件资源的要求,并规范目前混乱的SIP-XML开发局面。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种SIP信令的XML数据的解析方法,其特征在于,包括:
接收携带XML数据的SIP信令;
确定所述XML数据对应的XML Schema类型;
根据所述XML Schema类型的数据结构解析所述XML数据;
其中,在接收携带XML数据的SIP信令之前,创建所述XML Schema类型的数据结构;或者,
在根据所述XML Schema类型的数据结构解析所述XML数据之前,判断所述XML Schema类型的数据结构是否已被创建;如果否,则创建所述XML Schema类型的数据结构。
2.根据权利要求1所述的方法,其特征在于,所述数据结构包括:多个节点,每个节点包括对应于所述XML Schema类型的字段名称以及所述字段的数据域指针。
3.根据权利要求2所述的方法,其特征在于,所述XML Schema类型的数据结构为树形数据结构。
4.根据权利要求2所述的方法,其特征在于,根据所述XMLSchema类型的数据结构解析所述XML数据包括:
在遍历所述XML Schema类型的数据结构的各个节点的过程中,根据当前遍历的节点的字段名称,在所述XML数据中查找与所述字段名称匹配的字段的数据值,并将所述数据值存储至该节点的数据域指针指向的数据区。
5.根据权利要求4所述的方法,其特征在于,在解析所述XML数据之后,所述方法还包括:读取所述数据区的数据值并进行SIP处理。
6.根据权利要求5所述的方法,其特征在于,对所述数据区的数据值进行SIP处理之后,所述方法还包括:
根据所述SIP处理的结果,更新所述数据区的数据值;
对更新后的所述数据区的数据值进行统一编码,生成新的XML数据。
7.一种SIP信令的XML数据的解析装置,其特征在于,包括:
接收模块,用于接收携带XML数据的SIP信令;
XML Schema类型判断模块,用于判断所述接收模块接收的所述XML数据对应的XML Schema类型;
解析模块,用于根据所述XML Schema类型的数据结构解析所述XML数据;
创建模块,用于在接收携带XML数据的SIP信令之前创建所述XML Schema类型的数据结构;或者,
数据结构创建模块,用于在根据所述XML Schema类型的数据结构解析所述XML数据之前,所述XML Schema类型的数据结构没有被创建的情况下,创建所述XML Schema类型的数据结构。
8.根据权利要求7所述的装置,其特征在于,所述数据结构包括:多个节点,每个节点包括对应于所述XML Schema类型的字段名称以及所述字段的数据域指针。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括:
数据存储模块,用于存储所述XML Schema类型的数据结构以及解析后的XML数据各个字段的数据值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010133802.1A CN102195959B (zh) | 2010-03-11 | 2010-03-11 | Sip信令的xml数据的解析方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010133802.1A CN102195959B (zh) | 2010-03-11 | 2010-03-11 | Sip信令的xml数据的解析方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102195959A CN102195959A (zh) | 2011-09-21 |
CN102195959B true CN102195959B (zh) | 2015-08-12 |
Family
ID=44603354
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010133802.1A Active CN102195959B (zh) | 2010-03-11 | 2010-03-11 | Sip信令的xml数据的解析方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102195959B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103052045B (zh) * | 2011-10-17 | 2019-03-12 | 中兴通讯股份有限公司 | 一种消息类型的指示方法、系统及装置 |
CN103428180B (zh) * | 2012-05-18 | 2017-07-28 | 南京中兴力维软件有限公司 | 一种基于xml的sip协议数据传输方法及系统 |
CN103902700A (zh) * | 2014-04-01 | 2014-07-02 | 浙江大学 | 树形结构的数据处理方法 |
CN106469137A (zh) * | 2015-08-19 | 2017-03-01 | 互联网域名系统北京市工程研究中心有限公司 | Xml文档解析方法及装置 |
CN108319684A (zh) * | 2018-01-31 | 2018-07-24 | 国信优易数据有限公司 | 一种可扩展标记语言xml文件的存储方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1623308A (zh) * | 2002-01-23 | 2005-06-01 | 索尼国际(欧洲)股份有限公司 | 用于强制实施旨在为多流和多媒体应用提供QoS支持的端到端协商协议的不同阶段的模型 |
CN1889618A (zh) * | 2005-06-30 | 2007-01-03 | 华为技术有限公司 | 一种模拟计费方法 |
CN101022427A (zh) * | 2007-03-13 | 2007-08-22 | 中兴通讯股份有限公司 | 一种ims终端上联系人头像呈现方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030135825A1 (en) * | 2001-12-05 | 2003-07-17 | Matthew Gertner | Dynamically generated mark-up based graphical user interfaced with an extensible application framework with links to enterprise resources |
CN1314208C (zh) * | 2003-11-28 | 2007-05-02 | 北京大学 | 可扩展标记语言数据流压缩器及其压缩方法 |
US7761479B2 (en) * | 2006-09-11 | 2010-07-20 | Oracle International Corporation | Management of complex XML schemas in a database system |
CN101039185B (zh) * | 2007-04-29 | 2010-05-26 | 清华大学 | 可扩展标识语言安全应用中的可扩展标识语言解析方法 |
CN101625694A (zh) * | 2009-08-17 | 2010-01-13 | 中国科学院地理科学与资源研究所 | 一种存储多种标准地学元数据的方法及系统 |
-
2010
- 2010-03-11 CN CN201010133802.1A patent/CN102195959B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1623308A (zh) * | 2002-01-23 | 2005-06-01 | 索尼国际(欧洲)股份有限公司 | 用于强制实施旨在为多流和多媒体应用提供QoS支持的端到端协商协议的不同阶段的模型 |
CN1889618A (zh) * | 2005-06-30 | 2007-01-03 | 华为技术有限公司 | 一种模拟计费方法 |
CN101022427A (zh) * | 2007-03-13 | 2007-08-22 | 中兴通讯股份有限公司 | 一种ims终端上联系人头像呈现方法 |
Non-Patent Citations (1)
Title |
---|
A. Johnston等.Session Initiation Protocol(SIP) Call Control-Conferencing for User Agents.《Internet Engineering Task Force(IETF),RFC4579》.2006, * |
Also Published As
Publication number | Publication date |
---|---|
CN102195959A (zh) | 2011-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2359422C2 (ru) | Способ, система и компьютерная программа для запроса ресурсов в определенном контексте путем определения пакета событий протокола sip | |
US10630614B2 (en) | Opaque message parsing | |
US8943100B2 (en) | System and method for storing data in a relational database | |
US9928251B2 (en) | System and method for distributed categorization | |
CN102195959B (zh) | Sip信令的xml数据的解析方法及装置 | |
US8521748B2 (en) | System and method for managing metadata in a relational database | |
KR100881356B1 (ko) | 컨텍스트 정보 위에 생성된 커뮤니티 내에서 서비스 및콘텐츠의 sip 이벤트 기반 디스커버리를 수행하는방법, 시스템 및 컴퓨터 프로그램 | |
EP2057817A2 (en) | System and method of xml based content fragmentation for rich media streaming | |
CN100444635C (zh) | TV-Anytime元数据服务中的利用了get_Data操作的请求域提供方法 | |
US8019894B2 (en) | System, method and engine for playing SMIL based multimedia contents | |
EP3217632A1 (en) | Oid configuration, parsing method, client, node, database and storage medium | |
Chellouche et al. | Flexible user profile management for context-aware ubiquitous environments | |
US20140067401A1 (en) | Provide services using unified communication content | |
US9058181B2 (en) | Conditional processing method and apparatus | |
US9736044B2 (en) | Adaptive centralized collection of performance management data using a metamodel | |
CN114490889A (zh) | 配置信息处理方法、装置、设备、介质及程序产品 | |
CN102090039B (zh) | 执行数据中间处理的方法、数据中间处理设备和信息系统 | |
US20190045238A1 (en) | Method and system of push-template and url list for dash on full-duplex protocols | |
US7716272B2 (en) | Analysis of operations having input and output parameters and relating to network service | |
US20230274746A1 (en) | Dynamic redfish query uri binding from context oriented interaction | |
ITPN20100067A1 (it) | Procedimento per la trasmissione selettiva e personalizzata di dati ad un dispositivo mobile e sistema client/server che attua il procedimento | |
JP4966412B2 (ja) | メディアリソース予約方法、サービスパッケージ情報取得方法、及び装置 | |
Tarkoma et al. | Spice: A service platform for future mobile ims services | |
US10657155B2 (en) | Device for processing large-scale data streams | |
US7752293B1 (en) | Command processing in a telecommunications network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |