通过变换定位xml的制作方法

文档序号:6627223阅读:148来源:国知局
专利名称:通过变换定位xml的制作方法
领域以下描述的各种实施例通常涉及置标文件的变换,且更特别地是其不仅仅与置标文件的本地已知变换相关。
背景现在的商业处理大量的置标格式数据,并且特别是可扩展标记语言(XML)格式。商业建立了围绕置标文件的处理,并且可以将它们从一种形式变换到另一种形式,以达到一个要求的最终结果。当这些处理围绕XML文件建立时,典型地,不同的XML块被变换和集合,以在处理最终得到期待的输出。虽然能使用许多其它的语言,但是当前优选可扩展设计语言(XSL)用于实施这些变换。
当前,能满意地执行变换语言,允许将原始的XML置标选择、集合、并分割为希望的输出,但是,典型地,它们没有全局/本地支持。换句话说,现有技术没有提供一个机制用于自动地将已定位数据包含到一个变换过程。相反地,因为变换过程在每个本地执行,必须为每个本地创建不同的变换。直到现在,妥善解决这些问题已经难倒了那些本领域技术人员。
概要本发明针对将全局体地合并到已有的变换过程或引擎(例如,XSL变换)中的技术和机制。简要来说,变换接收包含置标的输入文件和变换指令,该指令包括一个特别元素的标识符,该标识符具有基于本地化变量的不同值。该变换指令可以是XSL样式页的形式。该变换确定主系统中本地化变量的特定状态。使用该本地化变量的状态,该变换通过该本地化变量从数据结构检索与标识符有关的本地化值。该变换则使用该本地化值继续进行变换。
附图的简要说明参考下列附图描述非限制性和非详尽的实施例,其中,除非另作说明,否则整个所有的视图中同样的参考标记表示相同的部分。


图1是举例说明将索引映射到该索引的本地化值的数据结构。
图2是原理框图,说明在输入置标文件中执行可本地化变换的系统。
图3是流程图,大致说明执行本地化置标变换的过程。
图4是流程图,大致说明将来自输入置标文件的字符串翻译为基于设置在主系统中本地变量的翻译字符串的特定过程。
图5是原理框图,大致说明一个说明性的计算环境,在其中可以实施所有在此描述的本技术和机制的实施例。
详细说明下列技术和机制是针对启动可本地化的置标变换。总的来说,一个变接收作为输入的二个事物(1)包含置标的输入文件,和(2)变换指令,该指令包括特别元素的标识符,该标识符具有基于本地化变量的不同值。在处理期间,该变换从数据结构中检索与标识符有关的本地化值。该变换则使用该本地化值继续进行变换。现在描述这个一般概念的特定实施例。
图1是在其中存储信息的数据结构(例如,表格101)示意图,该信息通过调节器充分将索引映射到值。这些特定的实施例使用一个三栏表格索引112,调节器114,和值116。索引112是用于特定的可本地化内容的标识符,其实际值依靠本地控制该变换。换句话说,索引112以非局限的方式确定期望结果的内容。索引112对于要本地化的数据的每个项目都是唯一的。
调节器114是用于特定环境的标识符环境,它用于在其中变换索引112。例如,在执行基于本地语言变量的变换中,调节器114可以确定期望的特定语言。图1中说明的示例显示了三个不同的调节器114,用于三不同的语言en-US用于英语,ca-ES用于加泰罗尼亚语,且fr-FR用于法语。注意这里说明的调节器只是说明性的,并可实施为许多其它的形式。值116是相对于各调节器的预期结果。值116也可以包括插入点标识符120,以指出在哪里可以将附加文本或数据包含到值数据中。这些特征将在后面详细描述。
例如,如果该变换是基于本地语言的,则值116可以包括特定的文本,用于通过索引112确定内容,而该索引112在通过调节器114确定的语言中。在图1中说明的特定的示例中,对于三种不同的语言(英语、加泰罗尼亚语,和法语),存在一个索引(idGoodMorning)和三个不同的条目。
在这个特定的实施例中,所包括的第四个条目125用作引退条目。该引退条目可被认为是缺省或全选情况,其中表101中不提供特别期望的调节器114。使用语言标识符只作为一个示例,开头两个字符(例如,“en”)可以用来指出一类语言(比如英语),而最后两个字符(例如,“US”)可以用来指出那类语言的一种(比如美国英语)。如此,如果该期望语言标识符是“en-CA”,它在表中没有显示,就可以使用引退条目125。也能使用多个引退条目。一个单个、最后的引退条目,可以是一个空白条目,也可以用于没有其它可识别的引退的情况。
表101中包含的信息的位置可保存在任何一或多个位置中,比如独立表或文件,数据库或类似储存库中的元数据或数据,XML置标,或变换过程可访问的任何其它位置。
图2是一个原理框图,大致说明一个系统201,其向输入XML文件203使用XSL变换。总的来说,在XSL变换中,XSL处理器205读入该输入XML文件203和XSL样式页207。基于该XSL样式页207中的指令,处理器205输出新(已变换)XML文件211,它可以包括全部、部分、或没有输入XML文件203的原始内容。
输入XML文件203包含任意的用户希望使用XSL变换进行翻译的置标。下面是一个XML置标的示例,其可包括在输入XML文件203中<contact>
<name>John Smith</name>
<phone>11111111</phone>
</contact>
这个样本置标将被理解为定义一个contact元素,该元素有name子元素和phone子元素。实际上,可以想见,该输入XML文件203很可能包括任何样式的任意的置标,有各式各样的元素和数据。
系统210还包括翻译器扩充215,它是一个可以访问翻译表219(如上连同图1所述)的对象,并揭示将索引分配到本地化值中的各种方法,比如在不同的语言中执行翻译或格式化句子。一个特定的示例可以是下列翻译器扩充215的伪码interface Translator{string Translate(string index);string Translate(string index,object argument);
}在这个示例中,这两个方法分别执行静态和动态的翻译。例如,翻译(“idGoodMorning”)可以翻译为“Bon jour”,而如果指定语言(调节器)是法语(fr-FR),那么翻译(“idGoodMorning”,“John”)可以翻译为“Bonjour John”。
地区ID221定义一些本地变量的特定状态,比如本地系统所使用的语言,其还用于决定哪个调节器(见图1)用于该变换。虽然这里提供的示例集中在本地语言上,应该理解的是,任何环境变量都可以用作该地区ID221,例如系统的当前用户,系统设定的特定时区,货币配置,或任何其它环境或动态变量,可本地化的或不可本地化的。
最后,XSL样式页207包含定义样式的指令或命令,在该样式中,将修改该输入XML文件203以达到期望的最终结果。因此,XSL样式页207可包括表达式,该表达式按照定义在地区ID221中的本地变量,调用翻译器扩充215,以执行任意的本地操作。例如,考虑以下样本XSL置标<xslstylesheet version=″1.0″xmlnsxsl=″http//www.w3.org/1999/XSL/Transform″xmlnstranslator=″TranslatorExtension″>
<xsltemplate match=″/contact/name″>
<xslvalue-of select=″translatorTranslate(″idGoodMorning″,.)″/>
</xsltemplate>
</xslstylesheet >
当通过XSL处理器执行时,这个样本XSL置标调用该翻译器扩充215的翻译方法,所述翻译器扩充215具有在XML文件203中的索引“idGoodMorning”和第一个“/contact/name”元素的内容。这个指令使翻译器扩充215检索本地系统的地区ID221的当前状态,并从翻译表219中检索相应于地区ID 221索引的本地化值。换句话说,使用该地区ID221作为调节器,翻译器扩充215检索该索引“idgGoodMorning”的本地化值。给出对于XML文件203的上述样的示例置标,如果该本地语言是法语(fr-FR),则翻译的结果会是“Bon jour JohnSmith”。注意与这里描述的特定的方法一致,“/content/name”元素的内容(本示例中的“John Smith”)在插入点120(图1)加入到该本地化值。
现在转到图3,说明执行本地化置标变换的广义处理器300。处理器300在一个如上所述XSL处理器接收输入置标文件(块301)和包括索引(块303)的变换指令时开始。出现索引表明请求本地化数据,因此,使XSL处理器检索相对于索引(块305)的调节器(本地变量)。换句话说,如果在主系统中设置与特定本地语言相关的索引,那么该调节器可以是语言标识符等等。可以理解的是,该操作可以由一个对于XSL处理器的扩展来执行,或可以通过整合在XSL处理器内的功能执行。
然后特定调节器用于检索对应于索引(块307)的本地化值。更确切地说,该索引可以有不同的本地化值,这些值依赖于本地变量的特定状态,例如主系统的语言。调节器定义主系统中的本地变量的状态,从而用于确定在主系统中的合适的索引本地化值。在一个实施例中,本地化值可以从翻译表等中得到。
使用那些信息,该XSL处理器执行使用刚刚得到的本地化值的变换。可以理解使用这个处理,相同的XSL样式页可用于在任意不同的主系统上执行变换,而仍然得到本地化最终结果。
图4是一个流程图,大致说明一个特定的过程,该过程基于主系统中设置的本地变量,将输入置标文件的字符串翻译为翻译字符串。这个特定处理说明可以执行循环过程,以确定翻译字符串(例如,本地化值),即使在翻译表中不能找到本地变量的理想匹配。
处理400在将索引(图中TranslationID)和调节器(图中“地区ID”)提供到变换(块401)时开始。使用该索引和调节器,该变换试图为对应于调节器(块403)的索引检索本地化值(图中“翻译字符串”)。如果找到合适的本地化值(翻译字符串),那么该变换返回那个字符串(块413),处理400结束。
如果如果没有找到一个理想的本地化值(翻译字符串)的匹配,那么会决定该当前调节器(地区ID)是否具有双亲(块407)。有时,调节器(地区ID)可以与对象或其它具有双亲的环境相关,并且该双亲可有它自己的与子对象或环境不同的独立调节器(地区ID)。在那种情况下(块409),该变换可以再尝试检索使用该双亲的调节器(地区ID)本地化值(翻译字符串)。否则,该变换可以检索缺省或引退本地化值(翻译字符串)(块411),并返回那个值(块413)。一种这样做的方法是使用最相近的匹配。于是,对于“en-CA”,最相近的匹配子串是“en”。
虽然顺序地说明和描述了上述处理,但在其它实施例中,可以按不同的顺序、多个时间、和/或并行执行框图中描述的操作。
说明性的操作环境上述各种实施例可以在服务器和客户端的计算机环境中实施。下面结合图5描述一个适合在服务器和客户端中使用的示例性计算机环境。
参考图5,一个实施本发明的示范系统包括计算机设备,如计算机设备500。在其最基本的配置中,计算机设备500典型地包括至少一个处理部件502和内存504。根据计算机设备的确切配置和类型,内存504可以是易失(比如RAM)的、非易失的(比如ROM,闪存等等)或一些二者的结合。这个最基本配置在图5由虚线506说明。另外,设备500可能也有附加的特征/功能。例如,设备500可能也包括辅助存储器(可移动的和/或固定的),包括,但不局限于磁盘或光盘或磁带。在图5中,通过可移动存储器508和固定存储器510,说明这样的辅助存储器。计算机存储器介质包括易失的和非易失的、可移动的和固定的介质,它们可用任何信息存储器的方法或技术,如计算机可读指令、数据结构、程序模块或其它数据实现。内存504,可移动存储器508和固定存储器510都是计算机存储介质的示例。计算机存储器介质包括,但不局限于RAM、ROM、EEPROM、闪存或其它存储技术、CD-ROM、数字化视频光盘(DVD)或其它光存储器、卡式磁带、磁带、磁盘存储器或其它磁性存储器、或任何其它可用于存储期望信息并且设备500可以访问的介质。任何这样的计算机存储介质都可以属于设备500。
设备500可以也包含通讯联接512,其允许该设备与其它设备通讯。通讯联接512是通讯介质的示例。通讯介质典型地包含计算机可读指令、数据结构、程序模块或其它在已调整数据信号中的数据,已调整数据信号如载波或其它传送机制并包括任何信息传输介质。术语“已调整数据信号”指一种信号,它有一或多个它的特征集合,或以某种方式变化作为信号中的信息编码。作为非限制性的举例,通讯介质包括有线介质,如有线网络或直接有线联接,和无线介质,如声波、RF、红外线及其它无线介质。在此使用的术语计算机可读介质包括存储介质和通讯介质。
设备500也可有一或多个输入设备514,比如键盘、鼠标、手写笔、声音输入装置、触摸输入设备等等。输出设备516也可以包括如显示器、喇叭、打印机等等。所有这些设备在该领域都是众所周知的,这里不必详细论述。
设备500可以包括多种计算机可读介质。计算机可读介质可以是任何可用的介质,其可被设备500访问,并且既包括易失介质也包括非易失介质,可移动的和固定的介质作为非限制性举例,计算机可读介质可以包括计算机存储器介质和通讯介质。计算机存储器介质包括易失的和非易失的、可移动的和固定的介质,它们可实施为任何信息存储器的方法或技术,如计算机可读指令、数据结构、程序模块或其它数据。计算机存储器介质包括,但不局限于RAM、ROM、EEPROM、闪存或其它存储技术、CD-ROM、数字化视频光盘(DVD)或其它光盘存储器、卡式磁带、磁带、磁盘存储器或其它磁性存储器、或任何其它可用于存储期望信息并且可由装置500访问的介质。典型地,通讯介质包含;计算机可读指令、数据结构、程序模块或其它在已调整数据信号中的数据,所述已调整数据信号例如载波或其它传送机制,并包括任何信息传输介质。术语“已调整数据信号”指一种信号,它有一或多个它的特征集合,或以某种方式变化作为信号中的信息编码。举例来说,并且不限制,通讯介质包括有线介质如有线网络或直接有线联接,和无线介质如声波、RF、红外线及其它无线介质。计算机可读介质范围同样包括上述的任意结合。
通过一个或多个计算机或其它设备执行这里在计算机可执行指令的一般环境中所描述不同的模块和技术,比如程序模块。程序模块通常包括用于执行特定任务或实施特定抽象数据类型的规则、程序、对象、组件、数据结构等等。这些程序模块等等可以当做本机码执行或下载执行,比如在虚拟机或其它及时编译执行环境种。典型地,可以如不同的实施例中所期望的那样任意合并或分配程序模块的功能。
这些模式和技术的实施例可以在一些计算机可读介质形式中存储或传送。计算机可读介质可以是任何可由计算机访问的可用介质。作为非限制性举例,计算机可读介质可以包括“计算机存储器介质”和“通讯介质”。
“计算机存储器介质”包括易失的和非易失的、可移动的和固定的介质,它们可用任何信息存储方法或技术,如计算机可读指令、数据结构、程序模块、或其它数据实现。计算机存储器介质包括,但不局限于RAM、ROM、EEPROM、闪存或其它存储技术、CD-ROM、数字化视频光盘(DVD)或其它光存储器、卡式磁带、磁带、磁盘存储器或其它磁性存储器、或任何其它可用于存储期望信息并且可被计算机访问的介质。
通讯介质典型地包含计算机可读指令、数据结构、程序模块、或其它在已调整数据信号中的数据,比如载波或其它传送机制。通讯介质也包括任何信息传输介质。术语“已调整数据信号”指一种信号,它有一或多个它的特征集合,或以某种方式变化作为信号中的信息编码。只作为非限制示例,通讯介质包括有线介质如有线网络或直接有线联接,和无线介质如声波、RF、红外线及其它无线介质。对上述的任意综合也在包括在计算机可读介质范围内。
本说明书中的参考“一个实施例”、“实施例”或“一个示例性实施例”意思是本发明至少一个实施例包含特定描述特征、结构、或特点。如此,该字句的使用可能涉及多于一个实施例。此外,一个或多个实施例中可以包含所述特征、结构、或特点的任何合适方式。
本领域技术人员可以理解,无论如何,本发明能够在没有一个或多个该特定细节,或用其它方法、资源、材料等等实现。在其它情况中,为避免本发明的不易描述之处,没有示出或详细描述众所周知的结构、资源、或操作。
由于已经说明和描述了示例性实施例和实施,可以理解的是,本发明不限于上述精确配置和资源。在不脱离本发明权利要求的范围下,本发明这里公开的方法和系统的方案、操作和细节的各种修改、改动、和变化对于本领域普通技术人员来说都是显而易见的。
权利要求
1.一种计算机实施方法,用于变换本地化信息,包括接收输入置标文件;确定在对该输入置标文件的变换指令中定义的索引的本地化值;和在该输入置标文件使用该本地化值执行变换。
2.如权利要求1中所述的计算机实施方法,其中,输入置标文件包括可扩展置标语言文件。
3.如权利要求1中所述的计算机实施方法,其中,该输入置标文件包括至少一个想要按照该索引的本地化值进行变换的元素。
4.如权利要求3中所述的计算机实施方法,其中,至少一个元素包括字符串,该本地化值包括对应于设置在主机中本地语言集的信息,其中变换在该主机上执行,且该变换包括将该字符串合并为使用该本地化值的本地语言。
5.如权利要求1中所述的计算机实施方法,其中,该本地化值包括由该索引确定的本地变量的值。
6.如权利要求1中所述的计算机实施方法,其中,确定该索引的本地化值包括从执行变换的主机检索确定该主机的特征的调节器,并从多个本地化值选项中检索该本地化值,该特征用来辨别多选项中哪个值适合作为该本地化值。
7.如权利要求6中所述的计算机实施方法,其中,该特征包括设置在主机的特定语言集,并且该多选项包括不同的语言集。
8.如权利要求6中所述的计算机实施方法,进一步包括,如果该特征不能用来肯定地辨别哪个多选项合适,则从该多选项中选择引退选项。
9.如权利要求1中所述的计算机实施方法,其中,样式页文件中包括变换指令。
10.一种计算机可读介质,编码有用于执行如权利要求1中所述的计算机实施方法的计算机可执行指令。
11.一种计算机可读介质,其具有用于本地化信息的计算机可执行组件,该组件包括映射装置,用于将索引映射到本地化值;和翻译扩展器,其与翻译处理器有效地通讯,该翻译处理器配制成使用变换指令以变换输入置标文件,该翻译扩展器响应来自翻译处理器的请求,配制成从映射装置检索本地化值,该请求包括该索引。
12.如权利要求11中所述的计算机可读介质,其中,映射装置使用调节器将该索引映射到本地化值,调节器为本地化值确定多选项中的一个。
13.如权利要求12中所述的计算机可读介质,其中,调节器确定设置在主机的本地。
14.如权利要求11中所述的计算机可读介质,其中,映射装置包括一张表。
15.如权利要求11中所述的计算机可读介质,其中,翻译处理器包括可扩展样式页的变换处理器。
16.如权利要求15中所述的计算机可读介质,其中,样式页文件包括变换指令。
17.一种编码数据结构的计算机可读介质,该数据结构包括第一区域,其包含确定可本地化内容的索引;多个第二区域,每个第二区域都包含可本地化内容的可能的本地化值,而该可本地化内容由该索引确定;和多个第三区域,每个第三区域都与第二区域相联系,每个第三区域都包含与本地有关的调节器,其中,每个调节器基于该与调节器相关的本地,将该索引映射到特定的本地化值。
18.如权利要求17中所述的计算机可读介质,其中,该数据结构包括可扩展置标语言文件。
19.如权利要求17中所述的计算机可读介质,其中,该数据结构包括一张表。
20.如权利要求17中所述的计算机可读介质,其中,至少一个第二区域包括插入点标识符,该标识符在可能的可本地化值中确定可以合并信息的位置。
21.如权利要求20中所述的计算机可读介质,其中,该信息包括与该索引结合提供的输入信息。
全文摘要
本发明描述了针对启动可本地化的置标变换的技术和机制。总的来说,变接收作为输入的二种事物(1)包含置标的输入文件,和(2)变换指令,该指令包括特别元素的标识符,该标识符基于本地变量而具有不同的值。在处理过程中,该变换从数据结构检索与标识符有关的本地化值。该变换则使用该本地化值继续进行变换。
文档编号G06F17/30GK1722133SQ20051008175
公开日2006年1月18日 申请日期2005年5月23日 优先权日2004年7月14日
发明者C·斯坦丘, R·R·达尔弗 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1