《一种语言解析器和应用该解析器的解析方法.pdf》由会员分享,可在线阅读,更多相关《一种语言解析器和应用该解析器的解析方法.pdf(32页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN102053994A43申请公布日20110511CN102053994ACN102053994A21申请号200910211716522申请日20091110G06F17/30200601G06F9/44200601G06Q30/0020060171申请人阿里巴巴集团控股有限公司地址英属开曼群岛大开曼岛资本大厦一座四层847号邮箱72发明人余庆王社安李永74专利代理机构北京集佳知识产权代理有限公司11227代理人马敬逯长明54发明名称一种语言解析器和应用该解析器的解析方法57摘要本申请公开了一种语言解析器和解析方法,所述方法包括解析服务器通过前台业务框架接受来自用户终端的应。
2、用请求,判断出缓存服务器内不存在与所述应用请求相对应的已解析后的第二语言时,抓取所述应用请求所对应的页面;所述解析服务器将抓取到页面内第一语言所采用的标签、类型样式及JAVASCRIPT脚本转换成第二语言所支持的标签、类型样式及JAVASCRIPT脚本,获得转换后的第二语言,将转换后的第二语言存入缓存服务器;所述解析服务器通过前台业务框架将缓存服务器中的第二语言传送给用户终端。应用本申请,不但确保了解析的安全性,还提高了解析效率。而且,更好的支持网站平台的应用扩展和第三方开发,使得扩展更方便。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书19页附图9页CN1。
3、02054001A1/3页21一种语言解析方法,其特征在于,包括解析服务器通过前台业务框架接受来自用户终端的应用请求,判断出缓存服务器内不存在与所述应用请求相对应的已解析后的第二语言时,抓取所述应用请求所对应的页面;所述解析服务器通过编译语言将抓取到页面内第一语言所采用的标签、类型样式及JAVASCRIPT脚本转换成第二语言所支持的标签、类型样式及JAVASCRIPT脚本,获得转换后的第二语言,将转换后的第二语言存入缓存服务器;所述解析服务器通过前台业务框架将缓存服务器中的第二语言传送给用户终端。2根据权利要求1所述的方法,其特征在于,所述来自用户终端的应用请求中包括URL;所述解析服务器判断。
4、出缓存服务器内不存在与所述应用请求相对应的已解析后的第二语言时,抓取所述应用请求所对应的页面的步骤具体包括通过URL判断缓存服务器内是否存在与所述URL相对应的已解析后的第二语言,若不存在,则抓取与所述URL对应的页面。3根据权利要求1所述的方法,其特征在于,所述将第一语言所采用的标签和类型样式转换成第二语言所支持的标签和类型样式的步骤包括过滤掉第一语言中的第一类字符;构造缓冲区;将第一语言中的所有应用进行分块处理,令每个应用对应一个模块;将所述每个模块中的第一语言所采用的标签都处理为第二语言所支持的标签,将处理后的第二语言所支持的标签存入所述缓冲区;将第一语言中分散在不同位置的所有类型样式进。
5、行合并,将合并后的类型样式存入所述缓冲区的最后位置;将缓冲区中的内容写入缓存服务器中。4根据权利要求3所述的方法,其特征在于,将一个模块中的第一语言所采用的标签都处理为第二语言所支持的标签的步骤包括遍历第一语言中的字符串,如果获取到一个合法的标签,则如果所述合法的标签是闭合标签,则当其不是第一语言所特有的标签,且在栈中有匹配的开始标签时,在缓冲区中追加标签闭合字符,并让所述开始标签出栈;如果所述合法标签是非闭合标签,则当所述非闭合标签是第一语言所特有的标签时,调用该标签所对应的处理函数进行处理,之后,返回遍历第一语言中的字符串的步骤;当所述非闭合标签不是第一语言所特有的标签且有与之对应的回调函。
6、数时,调用该标签所对应的回调函数进行处理,之后,返回遍历第一语言中的字符串的步骤;当所述非闭合标签不是第一语言所特有的标签且没有与之对应的回调函数时,在缓冲区追加标签开始字符,并判断所述不是第一语言所特有的标签且没有与之对应的回调函数的非闭合标签是否需要闭合,若需要,则将当前标签放入栈中,若不需要,返回遍历第一语言中的字符串的步骤。5根据权利要求1所述的方法,其特征在于,所述将第一语言所采用的JAVASCRIPT脚本转换成第二语言所支持的JAVASCRIPT脚本的步骤包括初始化一用于存储TBJS各个标志TOKEN的链表;权利要求书CN102053994ACN102054001A2/3页3将第一。
7、语言所采用的JAVASCRIPT脚本解析为各个TOKEN,并解析出每个TOKEN的类型;检查第一语言所采用的JAVASCRIPT脚本是否符合预设的框架格式要求,若符合,转换为第一语言所采用的JAVASCRIPT脚本框架语法,之后,遍历所述链表,根据链表中TOKEN的类型作相应处理,将所述链表中的各个TOKEN转换为第二语言所支持的JAVASCRIPT脚本。6根据权利要求1所述的方法,其特征在于,所述将转换后的第二语言存入缓存服务器的步骤包括01根据前台业务框架的设置,判断是否需要将所述转换后的第二语言存入缓存服务器,若是,再执行步骤02;02将第二语言的标记语言页面存入缓存服务器;03将第二语。
8、言所支持的类型样式和JAVASCRIPT脚本存入缓存服务器。7根据权利要求6所述的方法,其特征在于,将第二语言的标记语言页面存入缓存服务器的步骤包括判断是否满足预设的缓存要求,若满足,再按照已生成的缓存关键值所指示的位置进行缓存;所述预设的缓存要求包括所抓取的页面正确,且该页面URL的请求类型为GET。8根据权利要求6所述的方法,其特征在于,将第二语言所支持的类型样式和脚本存入缓存服务器的步骤包括分别获取类型样式标签和脚本标签所对应的URL和内容;根据应用路径,获取所述内容的长度及内容的哈希值,根据所述长度及哈希值生成缓存关键值;对所述内容进行语法检查并生成用于转换的中间代码;将所述中间代码加。
9、入到所述类型样式标签和脚本标签所对应的内容中,获得转换后的类型样式标签和脚本标签;缓存所述转换后的类型样式标签和脚本标签;在所述转换后的类型样式标签和脚本标签中插入用于区别标记语言页面的符号。9根据权利要求1所述的方法,其特征在于,所述方法还包括在解析服务器判断出缓存服务器中存在与所述应用请求相对应的已解析后的第二语言时,将所述缓存服务器中的第二语言通过前台业务框架传送给用户终端。10根据权利要求19任一所述的方法,其特征在于,所述第一语言为TBML,第二语言为HTML。11根据权利要求10所述的方法,其特征在于,所述前台业务框架通过PHP扩展的方式与用户终端进行交互;所述解析服务器所执行的转。
10、换操作由C语言实现。12一种语言解析服务器,其特征在于,包括判断模块,用于通过前台业务框架接受来自用户终端的应用请求,判断出缓存服务器内不存在与所述应用请求相对应的已解析后的第二语言时,通知抓取模块;抓取模块,用于根据接收到的通知抓取所述应用请求所对应的页面;转换模块,用于通过编译语言将抓取到页面内第一语言所采用的标签、类型样式及JAVASCRIPT脚本转换成第二语言所支持的标签、类型样式及JAVASCRIPT脚本,获得转换后权利要求书CN102053994ACN102054001A3/3页4的第二语言;缓存模块,用于将转换后的第二语言存入缓存服务器;传送模块,用于通过前台业务框架将缓存服务器。
11、中的第二语言传送给用户终端。13根据权利要求12所述的语言解析服务器,其特征在于,所述转换模块包括过滤模块,用于过滤掉第一语言中的第一类字符;构造模块,用于构造缓冲区;分割模块,用于将第一语言中的所有应用进行分块处理,令每个应用对应一个模块;处理模块,用于将所述每个模块中的第一语言所采用的标签都处理为第二语言所支持的标签,将处理后的第二语言所支持的标签存入所述缓冲区;合并模块,用于将第一语言中分散在不同位置的所有类型样式进行合并,将合并后的类型样式存入所述缓冲区的最后位置;写入模块,用于将缓冲区中的内容写入缓存服务器中。14根据权利要求12所述的语言解析服务器,其特征在于,所述缓存模块包括页面。
12、缓存模块,用于将第二语言的标记语言页面存入缓存服务器;类型样式和脚本缓存模块,用于将第二语言所支持的类型样式和脚本存入缓存服务器。15根据权利要求12所述的语言解析服务器,其特征在于,所述判断模块,还用于判断出缓存服务器中存在与所述应用请求相对应的已解析后的第二语言时,通知传送模块。16根据权利要求1215任一所述的语言解析服务器,其特征在于,所述第一语言为TBML,第二语言为HTML。权利要求书CN102053994ACN102054001A1/19页5一种语言解析器和应用该解析器的解析方法技术领域0001本申请涉及计算机软件技术领域,特别涉及一种语言解析器和应用该解析器的解析方法。背景技术。
13、0002API开放平台提供了访问数据的开放接口。购物网站可以被理解为一种API开放平台,其可以满足商家快速、个性建站的需求,可以方便商家建立外部网店的一个系统。商家可以使用这个开发平台,更好的塑造自己的品牌。第三方可以基于这个开放平台,开发第三方应用,满足用户的需求,同时实现自己的价值。0003如果第三方开发者基于HTML直接在购物网站平台上开发应用,因为HTML的灵活性,安全性得不到保证,同时因为HTML的限制性,又不能方便的使用旺店内部的数据,这便诞生了淘宝扩展HTML标记语言TBML。它既可以保证第三方开发者开发的安全性、灵活性,又提供了一个访问淘宝内部数据的通道。但TBML语言并不能在。
14、用户浏览器中直接解析展现。0004现有的FBML的解析器PARSER是美国著名的社交网站FACEBOOK的后端模块,其所采用的语言为FBML语言。FBML的PARSER实现机理如下0005核心的算法由MOZILLA引擎和自定义的SINK模块FBMLCONTENTSINK完成;其中,MOZILLA是一个为标准的兼容性,跨平台性和可移植特性而设计的一个开放源码WEB浏览器和工具包;0006PARSER以PHP扩展PHP,PERSONALHOMEPAGES模块的方式提供使用;0007FB标签的扩展,渲染以及整个HTML文档的重构则在PHP层面进行。0008页面的渲染过程其实就是一个以深度优先遍历一颗。
15、文档对象模型DOM,DOCUMENTOBJECTMODEL树的过程,遇到特殊节点时调用相应的回调函数进行渲染,例如CSS,JS以及FB自定义标签等回调函数可以用PHP编写,通过PHP模块提供给MOZILLA引擎使用。0009从上述实现机理可知,FBML的PARSER底层使用MOZILLAPARSER,虽然该引擎成熟稳定,功能强大,可大大减少程序员开发工作,但由于将解析和转换过程独立开,增加了灵活性同时降低了效率;虽然通过PHP的反射机制动态扩展标签而无需重新编译,但由于大量工作在PHP层面进行,存在效率问题,例如反射机制的使用。0010FACEBOOK的FBMLPARSER是针对于交友网络的,。
16、对商务开放平台需要改造很多;FBML在安全性上要求不严格,会造成HTML注入漏洞;页面渲染等工作在PHP层面完成,效率较低,影响性能。发明内容0011本申请实施例在于提供一种语言解析器和应用该解析器的解析方法,不但能确保解析的安全性,还能够提高解析效率。0012本发明实施例提供了一种语言解析方法,包括说明书CN102053994ACN102054001A2/19页60013解析服务器通过前台业务框架接受来自用户终端的应用请求,判断出缓存服务器内不存在与所述应用请求相对应的已解析后的第二语言时,抓取所述应用请求所对应的页面;0014所述解析服务器通过编译语言将抓取到页面内第一语言所采用的标签、类。
17、型样式及JAVASCRIPT脚本转换成第二语言所支持的标签、类型样式及JAVASCRIPT脚本,获得转换后的第二语言,将转换后的第二语言存入缓存服务器;0015所述解析服务器通过前台业务框架将缓存服务器中的第二语言传送给用户终端。0016其中,所述来自用户终端的应用请求中包括URL;0017所述解析服务器判断出缓存服务器内不存在与所述应用请求相对应的已解析后的第二语言时,抓取所述应用请求所对应的页面的步骤具体包括0018通过URL判断缓存服务器内是否存在与所述URL相对应的已解析后的第二语言,若不存在,则抓取与所述URL对应的页面。0019其中,所述将第一语言所采用的标签和类型样式转换成第二语。
18、言所支持的标签和类型样式的步骤包括0020过滤掉第一语言中的第一类字符;0021构造缓冲区;0022将第一语言中的所有应用进行分块处理,令每个应用对应一个模块;0023将所述每个模块中的第一语言所采用的标签都处理为第二语言所支持的标签,将处理后的第二语言所支持的标签存入所述缓冲区;0024将第一语言中分散在不同位置的所有类型样式进行合并,将合并后的类型样式存入所述缓冲区的最后位置;0025将缓冲区中的内容写入缓存服务器中。0026其中,将一个模块中的第一语言所采用的标签都处理为第二语言所支持的标签的步骤包括0027遍历第一语言中的字符串,0028如果获取到一个合法的标签,则0029如果所述合法。
19、的标签是闭合标签,则当其不是第一语言所特有的标签,且在栈中有匹配的开始标签时,在缓冲区中追加标签闭合字符,并让所述开始标签出栈;0030如果所述合法标签是非闭合标签,则当所述非闭合标签是第一语言所特有的标签时,调用该标签所对应的处理函数进行处理,之后,返回遍历第一语言中的字符串的步骤;当所述非闭合标签不是第一语言所特有的标签且有与之对应的回调函数时,调用该标签所对应的回调函数进行处理,之后,返回遍历第一语言中的字符串的步骤;当所述非闭合标签不是第一语言所特有的标签且没有与之对应的回调函数时,在缓冲区追加标签开始字符,并判断所述不是第一语言所特有的标签且没有与之对应的回调函数的非闭合标签是否需要。
20、闭合,若需要,则将当前标签放入栈中,若不需要,返回遍历第一语言中的字符串的步骤。0031其中,所述将第一语言所采用的JAVASCRIPT脚本转换成第二语言所支持的JAVASCRIPT脚本的步骤包括0032初始化一用于存储TBJS各个标志TOKEN的链表;0033将第一语言所采用的JAVASCRIPT脚本解析为各个TOKEN,并解析出每个TOKEN的说明书CN102053994ACN102054001A3/19页7类型;0034检查第一语言所采用的JAVASCRIPT脚本是否符合预设的框架格式要求,若符合,转换为第一语言所采用的JAVASCRIPT脚本框架语法,之后,遍历所述链表,根据链表中TO。
21、KEN的类型作相应处理,将所述链表中的各个TOKEN转换为第二语言所支持的JAVASCRIPT脚本。0035其中,所述将转换后的第二语言存入缓存服务器的步骤包括003601根据前台业务框架的设置,判断是否需要将所述转换后的第二语言存入缓存服务器,若是,再执行步骤02;003702将第二语言的标记语言页面存入缓存服务器;003803将第二语言所支持的类型样式和JAVASCRIPT脚本存入缓存服务器。0039其中,将第二语言的标记语言页面存入缓存服务器的步骤包括0040判断是否满足预设的缓存要求,若满足,再按照已生成的缓存关键值所指示的位置进行缓存;0041所述预设的缓存要求包括所抓取的页面正确,。
22、且该页面URL的请求类型为GET。0042其中,将第二语言所支持的类型样式和脚本存入缓存服务器的步骤包括0043分别获取类型样式标签和脚本标签所对应的URL和内容;0044根据应用路径,获取所述内容的长度及内容的哈希值,根据所述长度及哈希值生成缓存关键值;0045对所述内容进行语法检查并生成用于转换的中间代码;0046将所述中间代码加入到所述类型样式标签和脚本标签所对应的内容中,获得转换后的类型样式标签和脚本标签;0047缓存所述转换后的类型样式标签和脚本标签;0048在所述转换后的类型样式标签和脚本标签中插入用于区别标记语言页面的符号。0049其中,所述方法还包括在解析服务器判断出缓存服务器。
23、中存在与所述应用请求相对应的已解析后的第二语言时,将所述缓存服务器中的第二语言通过前台业务框架传送给用户终端。0050其中,其特征在于,所述第一语言为TBML,第二语言为HTML。0051其中,所述前台业务框架通过PHP扩展的方式与用户终端进行交互;所述解析服务器所执行的转换操作由C语言实现。0052本发明实施例还提供了一种语言解析服务器,包括0053判断模块,用于通过前台业务框架接受来自用户终端的应用请求,判断出缓存服务器内不存在与所述应用请求相对应的已解析后的第二语言时,通知抓取模块;0054抓取模块,用于根据接收到的通知抓取所述应用请求所对应的页面;0055转换模块,用于通过编译语言将抓。
24、取到页面内第一语言所采用的标签、类型样式及JAVASCRIPT脚本转换成第二语言所支持的标签、类型样式及JAVASCRIPT脚本,获得转换后的第二语言;0056缓存模块,用于将转换后的第二语言存入缓存服务器;0057传送模块,用于通过前台业务框架将缓存服务器中的第二语言传送给用户终端。0058其中,所述转换模块包括说明书CN102053994ACN102054001A4/19页80059过滤模块,用于过滤掉第一语言中的第一类字符;0060构造模块,用于构造缓冲区;0061分割模块,用于将第一语言中的所有应用进行分块处理,令每个应用对应一个模块;0062处理模块,用于将所述每个模块中的第一语言所。
25、采用的标签都处理为第二语言所支持的标签,将处理后的第二语言所支持的标签存入所述缓冲区;0063合并模块,用于将第一语言中分散在不同位置的所有类型样式进行合并,将合并后的类型样式存入所述缓冲区的最后位置;0064写入模块,用于将缓冲区中的内容写入缓存服务器中。0065其中,所述缓存模块包括0066页面缓存模块,用于将第二语言的标记语言页面存入缓存服务器;0067类型样式和脚本缓存模块,用于将第二语言所支持的类型样式和脚本存入缓存服务器。0068其中,所述判断模块,还用于判断出缓存服务器中存在与所述应用请求相对应的已解析后的第二语言时,通知传送模块。0069其中,所述第一语言为TBML,第二语言为。
26、HTML。0070应用本申请,不但确保了解析的安全性,还提高了解析效率。而且,更好的支持购物网站平台的应用扩展和第三方开发,使得扩展更方便。由于对第三方应用实现了代码级的监控,所以能够严格、适当、有效的控制第三方应用,保证购物网站平台的健壮和安全性。附图说明0071为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。0072图1是根据本申请实施例的TBML解析器的网络示意图;0073图2是根据本申请实施例的解析服务器。
27、的逻辑层示意图;0074图3是根据本申请实施例的语言解析方法流程图;0075图4是根据本申请实施例的将TBML所采用的标签和类型样式转换成HTML所支持的标签和类型样式的流程图;0076图5是根据本申请实施例的将一个模块中的TBML所采用的标签都处理为HTML所支持的标签的处理流程图,即步骤404的详细处理流程图;0077图6是根据本申请实施例的将TBML所采用的JAVASCRIPT脚本转换成HTML所支持的JAVASCRIPT脚本的流程图;0078图7是根据本申请实施例的判断缓存服务器内是否存在与应用请求相对应的已解析后的HTML的流程图;0079图8是根据本申请实施例的将HTML页面存入缓。
28、存服务器的流程图;0080图9是将HTML所支持的类型样式和脚本存入缓存服务器的流程图;0081图10是根据本申请实施例的用于电子商务的解析服务器的逻辑结构示意图。说明书CN102053994ACN102054001A5/19页9具体实施方式0082下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。0083为了更好的说明本申请,下面先对TBML做一简单介绍。0084TBMLTAOBAOM。
29、ARKUPLANGUAGE,是一种HTML商务扩展标记语言,是基于超文本标记语言HTML,HYPERTEXTMARKUPLANGUAGE子集进行扩展后的标记语言。0085TBML包含两种类型的标签或元素0086标准HTML标签TBML支持绝大部分常用的HTML标签和属性,不支持的标签和属性如下0087不支持在浏览器中引用外部对象的标签,如、等;0088不支持HTML401中弃用的标签,如、等;0089部分支持样式相关属性如BORDER、BGCOLOR、COLOR等;0090不支持极少数会使用到的属性,如CHARSET、CHAR、CLEAR、ISMAP等;0091TBML扩展标签用来表示购物网站。
30、的网页中特殊的数据或组件,这些标签以TB开头。如等,这部分标签将逐步提供。0092TBJSTAOBAOJAVASCRIPT,可以称为淘宝JAVASCRIPT脚本,是基于JAVASCRIPT脚本JAVASCRIPT子集进行扩展后的标记语言。TBJS是为在下一代电子商务平台NCP,NEXTCOMMERCEPLATFORM版外部网店平台上开发应用程序的开发者提供支持JAVASCRIPT的解决方案。其中,JAVASCRIPT是一种由NETSCAPE的LIVESCRIPT发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言。0093TBML支持的标签及其属性如表1所示0094表10095。
31、标签名称属性AHREF,NAME,REL,TARGET,TYPE,TITLE,ID,DIR,CLASS,STYLEABBRTITLE,ID,DIR,CLASS,STYLEACRONYMTITLE,ID,DIR,CLASS,STYLEADDRESSTITLE,ID,DIR,CLASS,STYLEAREAID,CLASS,HREF,ALT,SHAPE,COORDS,TARGET,STYLEBTITLE,ID,DIR,CLASS,STYLE说明书CN102053994ACN102054001A6/19页10BDOTITLE,ID,CLASS,STYLE,DIRBIGTITLE,ID,DIR,CLAS。
32、S,STYLEBLOCKQUOTETITLE,ID,DIR,CLASS,STYLE,CITEURLBRTITLE,ID,CLASS,STYLEBUTTONDISABLED,NAME,TYPE,VALUE,TITLE,ID,DIR,CLASS,STYLE,TABINDEX,SIZECAPTIONTITLE,ID,DIR,CLASS,STYLE,ALIGN,SPANCENTERTITLE,ID,CLASSCITETITLE,ID,DIR,CLASS,STYLECOLALIGN,SPAN,VALIGN,TITLE,ID,DIR,CLASS,STYLECOLGROUPALIGN,SPAN,VALIGN。
33、,WIDTH,TITLE,ID,DIR,CLASS,STYLEDDTITLE,ID,DIR,CLASS,STYLEDELDATETIME,TITLE,ID,DIR,CLASS,STYLE,CITEURLDFNTITLE,ID,DIR,CLASS,STYLEDIVTITLE,ID,DIR,CLASS,STYLE,ALIGNDLTITLE,ID,DIR,CLASS,STYLEDTTITLE,ID,DIR,CLASS,STYLEEMTITLE,ID,DIR,CLASS,STYLEEMBEDSRC,WIDTH,HEIGHT,WMODE,VAR,STYLE,FLASHVARS,QUALITY,ID,NA。
34、ME,TYPEALLOWNETWORKING强制写为INTERNAL,ALLOWSCRIPTACCESS强制写为NEYERFIELDSETTITLE,ID,DIR,CLASS,STYLEFONTTITLE,ID,CLASS,FACE,SIZE,COLOR,STYLEFORMACTION,ENCTYPE,METHOD,TARGET,TITLE,ID,DIR,CLASS,STYLEH1TITLE,ID,DIR,CLASS,STYLE,ALIGN说明书CN102053994ACN102054001A7/19页11H2TITLE,ID,DIR,CLASS,STYLE,ALIGNH3TITLE,ID,D。
35、IR,CLASS,STYLE,ALIGNH4TITLE,ID,DIR,CLASS,STYLE,ALIGNH5TITLE,ID,DIR,CLASS,STYLE,ALIGNH6TITLE,ID,DIR,CLASS,STYLE,ALIGNHRSIZE,WIDTH,TITLE,ID,CLASS,STYLE,HEIGHT,NOSHADEITITLE,ID,DIR,CLASS,STYLEIMGALT,HEIGHT,SRC,WIDTH,TITLE,ID,DIR,CLASS,STYLE,BORDER,USEMAP,ALIGN,VALIGN,VSPACE,HSPACEINPUTALT,CHECKED,DISAB。
36、LED,MAXLENGTH,NAME,READONLY,SIZE,SRC,TYPE,VALUE,TITLE,ID,DIR,CLASS,STYLE,TABINDEX,USEMAPINSDATETIME,TITLE,ID,DIR,CLASS,STYLE,CITEURLKBDTITLE,ID,DIR,CLASS,STYLELABELTITLE,ID,DIR,CLASS,STYLE,FORLEGENDTITLE,ID,DIR,CLASS,STYLE1ITYPE,TITLE,ID,DIR,CLASS,STYLELINKHREF,STYLE,REL,TYPEMAPNAME,TITLE,ID,DIR,CLA。
37、SS,STYLENOBRCLASS,ID,TITLE,STYLENOSCRIPTTITLE,ID,DIR,CLASS,STYLEOLTYPE,TITLE,ID,DIR,CLASS,STYLEOPTGROUPDISABLED,LABEL,TITLE,ID,DIR,CLASS,STYLE说明书CN102053994ACN102054001A8/19页12OPTIONDISABLED,LABEL,SELECTED,VALUE,TITLE,ID,DIR,CLASS,STYLEPTITLE,ID,DIR,CLASS,STYLE,ALIGNQTITLE,ID,DIR,CLASS,STYLE,CITEURL。
38、STITLE,ID,CLASSSCRIPTSRC,TYPESELECTDISABLED,MULTIPLE,NAME,SIZE,TITLE,ID,DIR,CLASS,STYLE,TABINDEXSMALLTITLE,ID,DIR,CLASS,STYLESPANTITLE,ID,DIR,CLASS,STYLESTRIKETITLE,ID,CLASSSTRONGTITLE,ID,DIR,CLASS,STYLESTYLEMEDIA,TYPE,DIRSUBTITLE,ID,DIR,CLASS,STYLESUPTITLE,ID,DIR,CLASS,STYLETABLEBORDER,CELLPADDING,。
39、CELLSPACING,SUMMARY,WIDTH,TITLE,ID,DIR,CLASS,STYLE,BGCOLOR,BACKGROUND,HEIGHT,ALIGN,VALIGN,COLORTBODYALIGN,VALIGN,TITLE,ID,DIR,CLASS,STYLE,BGCOLORTDABBR,ALIGN,COLSPAN,HEADERS,ROWSPAN,SCOPE,VALIGN,WIDTH,TITLE,ID,DIR,CLASS,STYLE,BGCOLOR,BACKGROUND,HEIGHTTEXTAREACOLS,DISABLED,NAME,READONLY,ROWS,TITLE,ID。
40、,DIR,CLASS,STYLE,WRAPSOFT|HARD|OFF,TABINDEX132767TFOOTALIGN,VALIGN,TITLE,ID,DIR,CLASS,STYLE,BGCOLORTHABBR,ALIGN,COLSPAN,HEADERS,ROWSPAN,SCOPE,VALIGN,WIDTH,TITLE,ID,DIR,CLASS,STYLE,BGCOLOR,BACKGROUND,HEIGHT说明书CN102053994ACN102054001A9/19页13THEADALIGN,VALIGN,TITLE,ID,DIR,CLASS,STYLE,BGCOLORTITLEDIRTRA。
41、LIGN,VALIGN,TITLE,ID,DIR,CLASS,STYLE,BGCOLOR,BACKGROUND,HEIGHTTTTITLE,ID,DIR,CLASS,STYLEUTITLE,ID,CLASSULTYPE,TITLE,ID,DIR,CLASS,STYLEVARTITLE,ID,DIR,CLASS,STYLE00960097009800990100TBML支持的CSS样式属性如表2所示0101表20102说明书CN102053994ACN102054001A10/19页14ASCENTBACKGROUNDBACKGROUNDATTACHMENTBACKGROUNDCOLORBACK。
42、GROUNDIMAGEBACKGROUNDPOSITIONBACKGROUNDREPEATBORDERBORDERBOTTOMBORDERBOTTOMCOLORBORDERBOTTOMSTYLEBORDERBOTTOMWIDTHBORDERCOLLAPSEBORDERCOLORBORDERLEFTBORDERLEFTCOLORBORDERLEFTSTYLEBORDERLEFTWIDTHBORDERRIGHTBORDERRIGHTCOLORBORDERRIGHTSTYLEBORDERRIGHTWIDTHBORDERSPACINGBORDERSTYLEBORDERTOPBORDERTOPCOLOR。
43、BORDERTOPSTYLEBORDERTOPWIDTHBORDERWIDTHCAPHEIGHTCAPTIONSIDECLEAR说明书CN102053994ACN102054001A11/19页15COLORCOUNTERINCREMENTCOUNTERRESETCURSORDESCENTDIRECTIONDISPLAYEMPTYCELLSFLOATFONTFONTFAMILYFONTSIZEFONTSIZEADJUSTFONTSTRETCHFONTSTYLEFONTVARIANTFONTWEIGHTHEIGHTLETTERSPACINGLINEHEIGHTLISTSTYLELISTSTYLE。
44、IMAGELISTSTYLEPOSITIONLISTSTYLETYPEMARGINMARGINBOTTOMMARGINLEFTMARGINRIGHTMARGINTOPMAXHEIGHTMAXWIDTHMINHEIGHTMINWIDTHORPHANSOUTLINEOUTLINECOLOROUTLINESTYLEOUTLINEWIDTHOVERFLOWX,YPADDING说明书CN102053994ACN102054001A12/19页16PADDINGBOTTOMPADDINGLEFTPADDINGRIGHTPADDINGTOPPANOSE1SLOPESTEMHSTEMVTABLELAYOUTT。
45、EXTALIGNTEXTDECORATIONTEXTINDENTTEXTTRANSFORMUNICODEBIDIVERTICALALIGNVISIBILITYWHITESPACEWIDOWSWIDTHWORDSPACINGWORDBREAKWORDWRAPWRITINGMODEXHEIGHT说明书CN102053994ACN102054001A13/19页1701030104TBML具有如下优点0105扩展方便更好的支持购物网站平台的应用扩展和第三方开发;0106解析快速采用编译语言C实现解析,响应速度更迅速;0107内嵌缓存实现了缓存机制,提高应用的响应速度并减轻应用服务器压力;0108安全。
46、严格对第三方应用实现了代码级的监控,严格、适当、有效的控制第三方应用保证旺店平台的健壮和安全;0109淘宝建站中用TBML来定义应用要展示的内容。应用回调接口输出的内容必须以TBML的形式返回给淘宝旺店,淘宝站点的前台业务框架再将TBML转换为HTML并嵌入最终页面。0110本申请所涉及的语言解析器PARSER,是基于第一语言的扩展标记语言解析器,可以将第一语言转化为第二语言,这里,第一语言是指TBML/TBJS,第二语言是指HTML/JAVASCRIPT。0111简单而言,TBML是基于HTML子集进行扩展后的标记语言,也就是说TBML只支持部分最常用的HTML标记,同时增加了TBML支持而。
47、HTML不支持的标记。0112TBJS是为第三方的应用程序开发者提供支持JAVASCRIPT的解决方案。出于安全方面的考虑,本发明对原生的JAVASCRIPT做了一些限制,也就是说必须按照指定的规则写JAVASCRIPT代码。0113参见图1,其是根据本申请实施例的TBML解析器的网络示意图;本实施例中,解析服务器102通过前台业务框架接受来自用户终端101的应用请求,如果解析服务器102确定缓存服务器104中存在与所述应用请求对应的已解析后的第二语言,则将该第二语言通过前台业务框架发送给用户终端101,如果不存在,则从应用服务器103中抓取与所述应用请求对应的页面,将抓取到页面内第一语言所采。
48、用的标签、类型样式及JAVASCRIPT脚本转换成第二语言所支持的标签、类型样式及JAVASCRIPT脚本,获得转换后的第二语言,将转换后的第二语言存入缓存服务器104;之后,再从缓存服务器104中获取与应用请求对应已解析后的第二语言,通过前台业务框架传送给用户终端101。0114上述抓取操作可以通过CURL工具一个开源的抓取页面的工具实现,缓存服务器可以通过现有的MEMCACHE的分布式缓存工具实现,也可以通过自开发的FASTDHT缓存工具实现。0115参见图2,其是根据本申请实施例的解析服务器的逻辑层示意图;PARSER是用C语言开发的一个SO文件,通过PHP扩展EXTENSION的方式由。
49、前台页面框架调用。解析器内核PARSERCORE是一个共享的函数库或称为共享程序库。PARSER还包括抓取工具和缓存工具。其中,SO文件是一个UNIX的动态连接库,是二进制文件,相当于WINDOWS下的DLL文件。0116参见图3,其是根据本申请实施例的用于电子商务的语言解析方法流程图。本实施例中,解析服务器的框架会把用户请求的应用的各种参数预先传给PARSER,其中,TBML为第一语言,HTML为第二语言,所述流程具体包括0117步骤301,解析服务器通过前台业务框架接受来自用户终端的应用请求,该请求中包含统一资源定位符URL信息;说明书CN102053994ACN102054001A14/19页180118这里,上述应用请求实际就是用户打开一个网页,即一个HTTP页面请求,上述URL指示待访问应用服务器的地址;0119步骤302,判断缓存服务器内是否存在与所述应用请求相对应的已解析后的HTML,若存在,执行步骤306,若不存在,执行步骤303;0120上述判断的具体方式可以是通过URL判断缓存服务器内是否存在与所述URL相对应的已解析后的HTML。0121步骤303,抓取所述应用请求所对应的页面;0122步骤304,解析服务器通过PARSERCORE将TBML转换为HTML,具体的,通过编译语言将抓取到页面内TBML所采用的标签、类型样式及JAVASCRIPT脚本转换。