CN1320454C - 用于处理xml对象的程序设计语言扩展及相关应用 - Google Patents
用于处理xml对象的程序设计语言扩展及相关应用 Download PDFInfo
- Publication number
- CN1320454C CN1320454C CNB028171241A CN02817124A CN1320454C CN 1320454 C CN1320454 C CN 1320454C CN B028171241 A CNB028171241 A CN B028171241A CN 02817124 A CN02817124 A CN 02817124A CN 1320454 C CN1320454 C CN 1320454C
- Authority
- CN
- China
- Prior art keywords
- definition
- statement
- expression formula
- xml
- script
- 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.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 title description 7
- 238000013507 mapping Methods 0.000 claims abstract description 90
- 238000000034 method Methods 0.000 claims abstract description 44
- 230000014509 gene expression Effects 0.000 claims description 73
- 230000006870 function Effects 0.000 claims description 22
- 230000008569 process Effects 0.000 abstract description 7
- 238000004891 communication Methods 0.000 description 6
- 238000003860 storage Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000011282 treatment Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
提供了一种设备,该设备将数据表示语言的数据对象映射到程序设计语言内相对应的对象,反之亦然。在一个实施例中,配置该设备以接收映射定义,该映射定义将XML数据结构的选定元素映射到一个或多个Java类的选定对象。进一步配置所述设备以判定映射定义是否包括一条或多条定义语句,所述定义语句以脚本语言的面向XML的语言元素来表示。此外,装配所述设备以便依照面向XML的语言元素的语法和语义定义来处理映射定义语句,所述映射定义语句包括脚本语言的面向XML的语言元素。
Description
发明背景
1.发明领域
本发明涉及程序设计语言领域。更具体而言,本发明涉及一种用于在本地程序设计语言环境中操纵中央XML对象的方法。
2.背景信息
XML作为用来在软件应用与web服务之间传输数据结构的事实上的标准而迅速出现。虽然多数的软件应用与web服务是以诸如Java或C++之类的现代程序设计语言来编写的,但是这些程序设计语言当中没有一个提供对于表示和操纵XML的本地支持。因此,程序员在他们的应用及web服务的上下文内,不得不开发或采用用来表示和操纵XML的外部软件包。
一般说来,外部软件包无法提供带有用来处理XML数据的本地支持的宿主语言。因而,他们按如下方式来表示和操纵XML,所述方式与宿主语言为其本地数据类型所提供的那些方式有很大的不同。最经常的情况下,外部软件包利用通用树抽象来表示XML数据,并且提供基于树的API,以供导航和操纵数据(例如,getParentNode()、getChildNodes()、removeChi1d()等)。与用来访问和操纵那些对宿主程序设计语言为本地的数据结构相比,这种访问和操纵数据结构的方法麻烦而费时。
因此,一种使得能够以与本地数据结构被供给的相同能力和灵活性来操纵XML数据结构的程序设计语言是值得期望的。
附图简要说明
本发明将通过在附图中所举例说明的示范性实施例加以描述,但是其并非是限制性的,在这些附图中,同样的参考标记表示类似的元件,在其中:
图1举例说明本发明一个实施例的概观;
图2举例说明依照本发明一个实施例的解释器104的示范性操作流程;
图3A-3C举例说明依照本发明一个实施例的各种示范性的语言扩展;
图4举例说明适用于实践本发明的一个通信网络的一个实施例的框图;
图5A-5B举例说明依照一个实施例、并入本发明的语言扩展的示例性功能,用来将XML文档映射到Java对象和将Java对象映射到XML文档;
图6举例说明依照一个实施例、适合于宿有(hosting)本发明的映射服务的示例性计算机系统,所述映射服务包括解释器104;和
图7A-7C举例说明基于现有技术的、用于将XML文档映射到Java对象和将Java对象映射到XML文档的示例性功能。
发明的详细描述
在以下说明中,将描述本发明多个不同的方面。然而,对于本领域的技术人员来说将显而易见的是:可以利用本发明的仅仅一些或所有方面来实施本发明。为了解释说明起见,阐述了特定的数目、部件和结构,以便提供对本发明的彻底理解。然而,对于本领域的技术人员而言还将显而易见的是:可以在没有这些特定细节的情况下实施本发明。在其它情况下,为了不让本发明含混不清,众所周知的特征将被省略或简化掉。
现在将依据由基于处理器的设备执行的操作方面,利用诸如接收、分析、确定、生成等之类的术语来介绍部分说明,上述术语符合本领域技术人员为了向本领域的其他技术人员传达他们的工作实质而一般所采用的表述方式。正如本领域的技术人员所普通理解的那样,量(quantities)采用电信号、磁信号或光信号的形式,这些信号能通过基于处理器的设备的机械组件和电子组件来被存储、传递、组合,并且能被操纵;而术语“处理器”包括独立式的、附加式的或嵌入式的微处理器、微控制器、数字信号处理器等。
现在将以最有助于理解本发明的方式,按照多个不连续的步骤,依次来描述各种操作,但是,不应该把描述的次序看作是暗指这些操作必须依从一定的次序。特别是,这些操作不必按照所介绍的次序来执行。此外,本说明重复地使用短语“在一个实施例中”,尽管它可以是指代相同的实施例,但通常来讲该短语并不是指同一个实施例。
概述
本发明包括以程序设计语言扩展形式提供的功能性说明,以易于在本地程序设计环境中灵活操纵XML对象。所述语言扩展包括本地XML数据类型,还包括使程序员能以大致相同于导航和操纵本地语言对象的方式来导航和操纵XML对象的许多操作。由此,本发明提供了一种用于操纵XML和本地语言对象的机制,该机制特别地很适合于逐渐地普遍存在的如下问题,即:将XML对象映射到以现代程序设计语言编写的软件应用和web服务中,以及将以现代程序设计语言编写的软件应用和web服务映射到XML对象中。
图1举例说明了依照一个实施例的本发明的概观。如图所示,映射服务100包括解释器/编译器104(“解释器”),该解释器/编译器进一步包含分析器105。依照本发明的教导,含有各种语言扩展的程序设计语句102被提供给映射服务100,以待由分析器105进行分析。一旦分析了这些语句,解释器104就将这些语句编译成可执行代码,继而将所述可执行代码提供给执行引擎106。执行引擎106不但控制所述代码的执行(例如,通过处理器来控制),而且还执行常规的执行运行期服务,比如存储器分配请求与释放、错误/异常处理等等。对于举例说明的实施例而言,解释器104包括:应用编程接口(API)(未示出),通过该应用编程接口,可以可编程地提交利用本发明的语言扩展所形成的程序设计语句,以供由多种专用过程加以编译。举例来讲,刚一接收到XML文档时,web服务器应用就可以对映射服务100进行调用,以便将所述XML文档对象映射成为例如用于web服务器进行附加处理的内部Java类。这种专用过程可以与映射服务100一起共同驻留在与映射服务100相同的“宿主”系统上(未示出),或被远程地离开该“宿主”系统放置,以及使用传统的交叉系统通信技术与映射服务100进行通信。
图2举例说明依照本发明一个实施例的解释器104的示范性操作流程。在操作中,解释器104读取正在编译的语句的第一条命令。正如举例说明的那样,在块202,一经调用,解释器104就确定正在编译的语句的“下一”命令的位置。确定正在编译的语句的“下一命令”的位置,可以利用本技术领域中公知的许多“分析”技术当中的任何一种来完成。在块204,一经确定正在编译的语句的“下一”命令的位置,解释器104就识别所读取的命令(例如,根据解释器104所维护的语言词典来进行识别)。接下来,在块206,解释器104读取余下的命令语法,并且为识别出的命令确定语义。
在块208,解释器104确定是否已经到达语句的末尾。如果没有,解释器104就返回到块202,并从那里继续所述编译过程。最终到达正在编译的语句的末尾,并且在此时,在块210,解释器104可以选择性地将一个或多个优化法应用于所分析的命令。所述优化法可以是本技术领域所公知的可用的编译程序优化技术中的任何一种或多种。
最后,在对所分析的命令进行或不进行优化的情况下,在块212,解释器104都为所分析的命令产生可执行代码。在一个实施例中,解释器104为所分析的命令产生字节代码。在可选的实施例中,也可以代之以实施其它等效的“代码生成”方法。
语言映射扩展
程序设计语言并未在其涉及XML文档与程序设计语言对象之间的互用和翻译时提供充分的功能。因此,依照本发明的教导,提供了用以同脚本语言相联合使用的面向XML的语言扩展,并且现在将对这种语言扩展进行描述,所述脚本语言比如是Javascript、ECMAScript等。虽然以下语言扩展是针对Javascript加以描述的,但是不应该把本发明的适用性当作为仅限于Javascript。
图3A-3C举例说明依照一个实施例的本发明的各种示范性Javascript语言扩展。首先,语言扩展300举例说明了一种XML(数据)类型声明,它显式地指明指定变量(例如,x、y)是与变量的XML类相关联的。正如举例说明的那样,可以像声明任何本地Javascript数据类型那样来声明这种XML变量。在一个实施例中,配备Javascript察觉分析器(例如,分析器105),以识别XML数据类型声明,并且将它们与相应符号表中的适当项(例如,变量、功能参数、函数返回值等等)关联起来。解释器104利用这种信息,来确定对XML类型的值执行的操作的语义,并且例如决定何时来隐式地将这些值限制为XML类型或者根据XML类型来限制这些值(这在下面更充分地作了描述)。在举例说明的实施例中,XML类型是通过自我识别前缀(例如‘XML’)的方式加以声明的。
语言扩展310举例说明了在结构化表达式之间产生的赋值,所述结构化表达式包括XML语法以及XML类型变量。例如,在第310(A)行中,XML类型变量“p”被赋予XML结构,该结构表示包括名字元素(如约翰)和年龄元素(如25)的个体元素。依照本发明的一个实施例,尽管在第310(A)行中表达式包括显式的XML类型指示器(indicator)(如上所述),但是利用包含XML语法的表达式来初始化的变量不需要这种显式的XML类型声明。在一个实施例中,在所有XML标记定义中使用的“<”符号在本发明中进一步被用作为一元运算符,以向解释器指明将其后跟随的表达式当作字符串对待,并且作为XML语句被分析。在一个实施例中,“<”运算符的操作数是直至且包含末尾标记的整个XML文字。由此,由于一元运算符“<”触发产生XML类型值的结果,因而对于被赋予XML文字的变量而言,没有必要作为XML类型被显式声明。例如,第310(B)-(E)行举例说明了根据表达式的内容而已经隐式声明的XML类型变量“e”。
语言扩展320举例说明了:依照本发明的教导,可以通过使用嵌入式表达来动态地确定XML文字的多个部分。在举例说明的实施例中,本发明的映射服务动态地解析XML文字的多个部分,其包含嵌入式的Javascript表达。在一个实施例中,配备解释器104,以将一组卷曲花括号(例如{...})识别成具有比一元运算符“<”(如上所述)更高优先级的嵌入式的表达式运算符。然而,应当注意到:在不脱离本发明精神及范围的情况下,除了“{}”之外的其它运算符可以用作为嵌入式的表达式运算符。无论怎样,如果分析器105确认在表达式内出现嵌入式的表达式运算符,则将该运算符内包含的操作数传递给解释器104以供评估,将得出的返回值限制为字符串类型(如下所述)。此后,利用字符串连接(concatenation)来将所述返回值插入在前面的XML文字和随后的XML文字之间。一旦已评估了所有的嵌入式表达式并且已将它们的结果插入在所述XML文字内,“<”运算符的存在就会使解释器104把得到的字符串转换为XML类型。
语言扩展330举例说明了由解释器104实施的类型限制的原理。依照本发明的一个实施例,通过把字符串内容作为XML分析,来自动地将分析器105期待XML类型的值时出现的字符串类型的任何值转换成XML数据类型。在所述转换之前,可以利用字符串算术运算来构造和操纵所述字符串值,而不考虑诸如符合规范(well-formedness)之类的XML约束。例如,在图3B的第330(A)-(D)行中,将XML类型变量赋予多个字符串连接的结果。更具体而言,使字符串类型的变量“tagName”与两个其它的字符串值(例如,“<”和“>”)连接起来,以形成XML开和关标记。再将得到的标记当作为字符串,并且与值“John(约翰)”和“Sue(苏)”连接起来,后者也被当作为字符串、而不管他们代表XML表达式的事实。接着,由于有显式的“XML”数据类型声明而使得到的字符串值被限制回XML值。另外,在期待XML的其它情况下,也自动地将字符串值限制成XML值。例如,那些传递给期待XML参数的函数的字符串值和XML文字内嵌入的字符串值都将同样被转换成XML。由此,第330(E)行产生了与第330(D)行相同的结果。
语言扩展340举例说明了最主要的是:一旦变量包含XML值,就可以访问XML变量的子元素,和/或利用诸如但不限于句点/圆点(“.”)之类的预定义运算符(在下文中称为“点操作符”)来对所述子元素进行赋值。点操作符检查其左侧操作数的所有子元素,并且按次序返回那些名字与右侧操作数的名字相匹配的元素。这会造成零或更多元素被返回。在一个实施例中,如果指定的子元素是叶节点,则返回子元素的内容。但是,如果指定的子元素不是叶节点,则返回所述指定的子元素连同它所有的后裔(例如,参看340(D))。另外,点操作符的左侧操作数将可以是一个元素列表,而不是单个元素(例如,考虑相继使用两个或更多圆点的情况)。在这种情况下,所述点操作符在该列表上进行迭代,按次序检查每个元素的子元素。这种处理方式有意地模糊了单个元素与元素列表之间的差别,从而简化程序员的工作。
语言扩展350举例说明了可以访问XML元素属性并且利用“属性”运算符来对其进行赋值。在一个实施例中,所述属性运算符是由‘.@’符号来表示的。所述属性运算符检查其左侧操作数的所有属性,并且返回其名字与右侧操作数相匹配的属性的值。例如,在第350(A)行中,检索与至少两个雇员的其中一个的‘标识符’属性相关联的值,并将该值分配给整型变量‘empid’。
除了提供对XML值中紧接着的子元素的直接访问之外,本发明的语言扩展还提供对XML值的所有后裔(即,子、孙子、曾孙等)的直接访问(例如参看语言元素330)。在一个实施例中,“双点”(例如‘..’)运算符检查其左侧操作数的所有后裔元素,并且以文档次序、返回名字与其右侧操作数的名字想匹配的那些后裔元素。当左侧操作数是一个元素列表时,“..”运算符在该列表上迭代、按次序检查每个元素的后裔。
语言扩展370举例说明了本发明的索引特性,由此给出一个子元素列表,可以利用预定义的索引运算符来标识所述列表内的单独的子元素。在一个实施例中,将一组方括号“[]”用作为索引运算符。所述索引运算符基本上根据单个元素在列表内的次序位置,来从其左侧操作数中选择。左侧操作数可以表示一个元素列表或单个元素。如果所述操作数表示单个元素,则把它当成大小等于一的列表。
如语言元素380举例说明的,本发明也提供用于在子元素列表上进行迭代。在举例说明的示例中,表达式“e..name”返回一个元素列表,并且“for”语句按次序步进通过该列表。对于该列表中的每个元素来讲,“for”语句将变量“n”赋值给元素,并且执行卷曲花括号中包含的代码。作为选择,子元素列表的长度可以利用宿主程序设计语言中现有的、用以确定阵列长度的相同方法加以确定。例如,在第380(C)行上的语句中,子元素列表的长度是通过访问宿主ECMAScript语言的隐含的“长度”特性(例如“.length”)来确定的。
由此,第380(C)-(D)行产生了与第380(A)-(B)行所产生的相同的结果。
示例性应用
正如上面所提到的那样,本发明的语言扩展尤其适合于将来自于数据表示语言的对象映射成相对应的程序设计语言对象,反之亦然。这种语言映射在以下情况中是令人期望的,所述情况例如是:需要具有一个基于诸如Java之类的程序设计语言的内部运行环境的系统利用诸如XML之类的数据表示语言与其它系统交换数据。
图4是举例说明并入本发明教导的示范性通信网络的框图。如图所示,服务提供商405、客户端110以及终端用户415都通过网络402通信地耦合在一起。网络402表示诸如一个或多个局域网/广域网/因特网等之类的许多通信网络中的任何一种。服务提供商405表示“增值”服务提供商,这些服务提供商向客户端410和终端用户415提供内容和/或服务。客户端410表示一个或多个实体机构,这些实体机构按次序来使用服务提供商405的增值服务,例如以便通过网络402向终端用户415提供改进后的内容。
例如,假定服务提供商405已经开发了一种用于产生交互式地形图的新web服务,所述地形图代表客户端410突出显示各种兴趣点。利用服务提供商405所提供的这种服务,客户端410经由网络402将兴趣点的列表发送给服务提供商405。作为响应,服务提供商405产生一个或多个交互式地形图,所述地形图显示由客户端410提供的兴趣点的可选表示。服务提供商405继而向客户端410返回一个或多个指向所述地形图的URL,该客户端又进而利用所述URL来向终端用户415显示所述地形图。每当客户端410把地形图呈现给终端用户415时,终端用户415可以选择一个或多个所述兴趣点,继而将这些兴趣点返回给服务提供商405。服务提供商405继而将选定的兴趣点发送回到客户端410,以供客户端410所希望执行的任何进一步的处理使用。
客户端410可以执行的处理的性质是由客户端410来确定的,并且例如依赖于使用服务提供商的服务的环境。例如,客户端410可以表示不动产代理、气象服务、产品制造商等等,所述不动产代理利用各点来向终端用户415显示人口资料和地产位置,所述气象服务利用各点来图解地显示该气象服务已采集到的温度及天气现象,所述产品厂商利用各点来图解式地显示商店位置等等。
每一个这种客户端410的实体都可以使用它们自己预先定义的XML格式来传输此类兴趣点。例如,气象团体也许已在用于传输有关气象现象的信息格式上达成了一致,不动产团体也许已在用于传输有关住家的信息格式上达成了一致,而产品制造商也许已在用于传输商店位置的信息格式上达成了一致。以下示例1示出了产品制造团体所使用的、用于运送他们产品的商店位置的XML格式...
示例1:<available-at>
<store>
<name>The Electronics Store(电子商店)</name>
<address>
<street>23 Transistor Dr.</street>
<city>Circuit</city>
<state>WA</state>
<zip>12345</zip>
</address>
</store>
<store>...</store>
<store>...</store>
</available-at>
然而,在内部,服务提供商405将兴趣点表示成一个点阵列,用Java类来定义每一点,如下面示例2中所示。
示例2:
public class Point{
String label;//紧挨着点显示的文本
LatitudeLongitude location;//在地形图上点的位置
}
为了能让广大范围的客户端团体容易访问他们的服务,服务提供商405将希望能够接受以多种XML格式(即比如示例1中所示的那种格式)的数据,然后让那个数据自动地映射到服务提供商405的本地程序设计语言内的类似数据结构中。
图5A-5B举例说明了示例性函数,如上面相对于图4所述的那样,该函数并入本发明一个实施例的语言扩展,以供将XML文档映射到Java对象和将Java对象映射到XML文档。在举例说明的示例中,每当服务提供商405从客户端410那里接收到需要被转换成Java对象的XML文档时,该服务提供商405就将会调用“FromXML”函数(如图5A所示)。同样,每当服务提供商405需要将内部Java对象转换成供客户端410使用的XML时,服务提供商405就将会调用图5B的“TOXML”函数。
现在参照图5A,在图5A里,举例说明了“FromXML”函数。假定新客户端处在以XML文档的形式将位置数据发送到服务提供商405的过程中,所述XML文档包含示例1中所示的结构。刚一接收到所述数据,服务提供商405就将启动对“FromXML”的功能调用。在所述函数内要注意的项当中,语句500还使用除“.length”指令以外的“双点”运算符(如上所述)以导航通过接收到的XML结构并为所提供的每个XML地址分配一个新的点对象。接下来,对于XML数据中所提供的每个地址,根据服务提供商405的内部数据约束来确定显示标签和点位置(如示例2所示)。在语句505中,“availableat..address”返回一个地址元素列表,其进而又被迭代地赋值给变量“a”。接下来,利用后跟点操作符的内嵌的parent()函数来确定每个商店(store)的名称。此外,利用点操作符来确定那个商店所处的街道地址、城市、州和邮政编码。正如语句510所说明的那样,通过直接访问后裔地址元素而返回的字符串被连接在一起,以形成点标签。另外,在LatitudeLongitude函数(未示出)中使用包含街道、城市、州及邮政编码信息的地址信息,所述LatitudeLongitude函数计算给出输入地址的映射位置。
在图5B中,举例说明了一个“ToXML”函数,以用来将基于Java的点位置转换成示例1中所示的XML元素。开始,由语句525利用XML文字来构造根节点“<available-at>”。接下来,语句530利用“String.split()”函数来分析显示标签,以确定每个点的商店名称、街道地址、城市、州及邮政编码。最后,语句535创建每个点的商店元素,这些商店元素被附加到来自语句525的根节点。
图7A-C举例说明了根据现有技术中所公知的常规应用和技术、将XML文档映射到Java对象和将Java对象映射到XML文档的示例性函数。正如可以容易看出的,利用Java和标准XML文档对象模型(DOM)来实现上面举例说明的函数所需要代码的数量及复杂度是相当大的。然而,比较起来,通过给出了本发明包含前述语言扩展的教导,可以显著地将这样的努力缩减到最小程度。
示例性主机系统
图6举例说明了适用于本发明的宿有映射服务100及解释器104的示例性计算机系统。如图所示,计算机系统600包括一个或多个处理器602,及系统存储器604。另外,计算机系统600包括:大容量存储设备606(比如磁盘、硬盘、CDROM等)、输入/输出设备608(比如键盘、光标控制器等)、以及通信接口610(比如网络接口卡、调制解调器等)。这些元件都经由系统总线612而彼此相互耦合,所述系统总线代表一条或多条总线。在多条总线的情况下,这些总线通过一个或多个总线桥(未示出)而桥接在一起的。这些元件中的每一个都执行它们在本技术领域中所公知的常规功能。具体来讲,利用系统存储器604和大容量存储器606来存储实现本发明之解释器和/或映射服务的程序设计指令的作业拷贝和永久拷贝。可以将所述程序设计指令的永久拷贝加载到工厂中的大容量存储器606里,或者例如通过分布式介质(未示出)或通过通信接口610(从分布式服务器(未示出))来将所述程序设计指令的永久拷贝加载到实地中的大容量存储器里。这些元件602-612的结构组成都是已知的,因此将不作进一步描述。
结论和总结
因此,从上面的说明可知,已经描述了对基于脚本的语言的新颖XML扩展。所述新颖的方案特别适用于在程序设计语言与数据表示语言之间映射数据对象。虽然已经参照举例说明的实施例和上面枚举的实施例对本发明作了描述,但是本发明并不局限于这些所描述的实施例。在符合以下权利要求中所阐述的本发明范围的情况下,可以作出许多修改和变更。因此,上述实施例仅仅是说明性的,而不限制本发明本身。
Claims (51)
1.一种将数据表示语言的数据对象映射到一编程语言的相应对象的计算机系统实现的方法,包括:
接收映射定义,该映射定义将数据表示语言的选定元素映射到一个或多个程序设计语言的选定对象;
判定映射定义是否包括映射定义部分,该映射定义部分具有一条或多条定义语句,所述定义语句以脚本语言的面向数据表示的语言元素来表示,所述脚本语言包括面向数据表示的语言元素;以及
处理映射定义,包括依照所述数据表示语言元素的语法和语义定义,来处理具有映射定义语句的映射定义,所述映射定义语句包括所述脚本语言的数据表示语言元素。
2.一种设备,包括:
处理器,
由该处理器操作的接收器模块,适于接收映射定义,该映射定义将数据表示语言的选定元素映射到一个或多个程序设计语言的选定对象;
由该处理器操作的判定器模块,其通信地耦合到该接收器模块且适于判定映射定义是否包括映射定义部分,该映射定义部分具有一条或多条定义语句,所述定义语句以脚本语言的面向数据表示的语言元素来表示,所述脚本语言包括面向数据表示的语言元素,以及
由该处理器操作的处理器模块,其通信地耦合到该判定器模块且适于处理映射定义,包括依照所述面向数据表示的语言元素的语法和语义定义,来处理具有映射定义语句的映射定义,所述映射定义语句包括所述脚本语言的面向数据表示的语言元素。
3.一种将XML数据结构的元素映射到一个或者多个Java类的相应对象的计算机系统实现的方法,包括:
接收映射定义,该映射定义将XML数据结构的选定元素映射到一个或多个Java类的选定对象;
判定映射定义是否包括以脚本语言的语言元素来表示的一条或多条定义语句;
如果映射定义包括以脚本语言的语言元素来表示的一条或多条定义语句,则判定所述一条或多条定义语句是否包括赋值语句,该赋值语句包括具有XML数据类型的变量以及将被赋值给该变量的数据串;以及
如果判定一条或多条定义语句包括赋值语句、而该赋值语句包括具有XML数据类型的变量,则处理所述赋值语句,包括将所述数据串作为XML对象来处理。
4.如权利要求3所述的方法,其中:根据所述数据串的结构,将所述数据串隐式地标识为与XML数据类型相关联。
5.如权利要求4所述的方法,其中:根据一元运算符的存在,将所述数据串隐式地标识为与XML数据类型相关联。
6.如权利要求5所述的方法,其中:所述一元运算符由“<”符号来表示。
7.如权利要求4所述的方法,其中:根据所述数据串当中一个或多个基于XML的文字的存在,将所述数据串隐式地标识为与XML数据类型相关联。
8.如权利要求3所述的方法,其中:根据XML标识前缀的存在,将所述数据串显式地标识为与XML数据类型相关联。
9.如权利要求8所述的方法,其中:所述标识前缀是‘XML’。
10.一种设备,包括:
处理器;
由该处理器操作的接收器模块,适于接收映射定义,该映射定义将XML数据结构的选定元素映射到一个或多个Java类的选定对象,
由该处理器操作的判定器模块,其通信地耦合到该接收器模块且适于判定映射定义是否包括以脚本语言的语言元素来表示的一条或多条定义语句,以及
如果映射定义包括以脚本语言的语言元素来表示的一条或多条定义语句,则判定所述一条或多条定义语句是否包括赋值语句,该赋值语句包括具有XML数据类型的变量以及将被赋值给该变量的数据串,以及
由该处理器操作的处理器模块,其通信地耦合到该判定器模块且适于如果判定一条或多条定义语句包括赋值语句、而该赋值语句包括具有XML数据类型的变量,则处理所述赋值语句,包括将所述数据串作为XML对象来处理。
11.如权利要求10所述的设备,其中:根据所述数据串的结构,将所述数据串隐式地标识为与XML数据类型相关联。
12.如权利要求11所述的设备,其中:根据一元运算符的存在,将所述数据串隐式地标识为与XML数据类型相关联。
13.如权利要求11所述的设备,其中:所述一元运算符由“<”符号来表示。
14.如权利要求11所述的设备,其中:根据所述数据串当中一个或多个基于XML的文字的存在,将所述数据串隐式地标识为与XML数据类型相关联。
15.如权利要求10所述的设备,其中:根据XML标识前缀的存在,将所述数据串显式地标识为与XML数据类型相关联。
16.如权利要求15所述的设备,其中:所述标识前缀是‘XML’。
17.一种将XML数据结构的元素映射到一个或者多个Java类的相应对象的计算机系统实现的方法,包括:
接收映射定义,该映射定义将XML数据结构的选定元素映射到一个或多个Java类的选定对象;
判定映射定义是否包括以脚本语言的语言元素来表示的一条或多条定义语句;
如果映射定义包括以脚本语言的语言元素来表示的一条或多条定义语句,则判定所述一条或多条定义语句是否包括含有嵌入式表达式的表达式;
如果一条或多条定义语句包括含有嵌入式表达式的表达式,则动态解析嵌入式表达式的值;以及
将包含已解析的嵌入式函数的表达式作为XML数据类型来处理。
18.如权利要求17所述的方法,其中:所述嵌入式函数由一对预定标识符包围。
19.如权利要求18所述的方法,其中:所述预定标识符对包括一组卷曲花括号。
20.一种设备,包括:
处理器;
由该处理器操作的接收器模块,适于接收映射定义,该映射定义将XML数据结构的选定元素映射到一个或多个Java类的选定对象,
由该处理器操作的判定器模块,其通信地耦合到该接收器模块且适于判定映射定义是否包括以脚本语言的语言元素来表示的一条或多条定义语句,以及
如果映射定义包括以脚本语言的语言元素来表示的一条或多条定义语句,则判定所述一条或多条定义语句是否包括含有嵌入式表达式的表达式,
由该处理器操作的解析器模块,其通信地耦合到该判定器模块且适于如果一条或多条定义语句包括含有嵌入式表达式的表达式,则动态解析嵌入式表达式的值,以及
由该处理器操作的处理器模块,其通信地耦合到该解析器模块且适于将包含已解析的嵌入式函数的表达式作为XML数据类型来处理。
21.如权利要求20所述的设备,其中:所述嵌入式函数由一对预定标识符包围。
22.如权利要求21所述的设备,其中:所述预定标识符对包括一组卷曲花括号。
23.一种将XML数据结构的元素映射到一个或者多个Java类的相应对象的计算机系统实现的方法,包括:
接收映射定义,该映射定义将XML数据结构的选定元素映射到一个或多个Java类的选定对象;
判定映射定义是否包括以脚本语言的语言元素来表示的一条或多条定义语句;
如果映射定义包括以脚本语言的语言元素来表示的一条或多条定义语句,则判定一条或多条定义语句是否包括一表达式,所述表达式包括被预定义的导航运算符分隔开的XML数据结构的第一元素和第二元素;以及
处理所述表达式,并且返回所述第一元素的一个或多个子元素,所述第一元素具有与所述第二元素的名称等同的名称。
24.如权利要求23所述的方法,其中:所述导航运算符包括一句点(“.”)。
25.如权利要求23所述的方法,进一步包括:
检索与一个或多个子元素相关联的内容,并且至少利用所述内容的与第二表达式有关联的一部分。
26.如权利要求23所述的方法,进一步包括:
判定一个或多个子元素中的任意子元素是否包含第二组一个或多个子元素;以及
如果判定所述一个或多个子元素中的至少一个包含第二组一个或多个子元素,则返回与第二组一个或多个子元素相关联的值。
27.如权利要求23所述的方法,其中:所述表达式进一步包括一文字值,并且在其中所述被访问的元素被赋予该值。
28.一种设备,包括:
处理器;
由该处理器操作的接收器模块,适于接收映射定义,该映射定义将XML数据结构的选定元素映射到一个或多个Java类的选定对象,
由该处理器操作的判定器模块,其通信地耦合到该接收器模块且适于判定映射定义是否包括以脚本语言的语言元素来表示的一条或多条定义语句,以及
如果映射定义包括以脚本语言的语言元素来表示的一条或多条定义语句,则判定一条或多条定义语句是否包括一表达式,所述表达式包括被预定义的导航运算符分隔开的XML数据结构的第一元素和第二元素,以及
由该处理器操作的处理器模块,其通信地耦合到该判定器模块且适于处理所述表达式以访问XML数据结构的所述第二元素,并且返回所述第一元素的一个或多个子元素,所述第一元素具有与所述第二元素的名称等同的名称。
29.如权利要求28所述的设备,其中:所述导航运算符包括一句点(“.”)。
30.如权利要求28所述的设备,其中该处理器模块还适于:
检索与所述一个或多个子元素相关联的内容,并且至少使用所述内容的与第二表达式有关联的一部分。
31.如权利要求28所述的设备,其中该判定器模块还适于:
判定所述一个或多个子元素中的任意子元素是否包含第二组一个或多个子元素;以及该处理器模块还适于:
如果判定所述一个或多个子元素中的至少一个包含第二组一个或多个子元素,则返回与第二组一个或多个子元素相关联的值。
32.如权利要求28所述的设备,其中:所述表达式进一步包括一文字值,并且在其中所述被访问的元素被赋予该值。
33.一种将XML数据结构的元素映射到一个或者多个Java类的相应对象的计算机系统实现的方法,包括:
接收映射定义,该映射定义将XML数据结构的选定元素映射到一个或多个Java类的选定对象;
判定映射定义是否包括以脚本语言的语言元素来表示的一条或多条定义语句;
如果映射定义包括以脚本语言的语言元素来表示的一条或多条定义语句,则判定所述一条或多条定义语句是否包括一表达式,所述表达式包括与属性运算符相关联的XML数据结构的至少一个元素;以及
如果一条或多条定义语句包括一表达式、而所述表达式包括与属性运算符相关联的XML数据结构的至少一个元素,则访问与由所述属性运算符来标识的属性相关联的值。
34.如权利要求33所述的方法,其中:所述表达式进一步包括将被赋予所述属性值的变量。
35.如权利要求33所述的方法,其中:所述表达式进一步包括一文字值,并且在其中所述属性被赋予该值。
36.如权利要求33所述的方法,其中:所述属性运算符是‘.@’。
37.一种设备,包括:
处理器;
由该处理器操作的接收器模块,适于接收映射定义,该映射定义将XML数据结构的选定元素映射到一个或多个Java类的选定对象,
由该处理器操作的判定器模块,其通信地耦合到该接收器模块且适于判定映射定义是否包括以脚本语言的语言元素来表示的一条或多条定义语句,以及
如果映射定义包括以脚本语言的语言元素来表示的一条或多条定义语句,则判定所述一条或多条定义语句是否包括一表达式,所述表达式包括与属性运算符相关联的XML数据结构的至少一个元素,以及
由该处理器操作的访问器模块,其通信地耦合到该判定器模块且适于如果一条或多条定义语句包括一表达式、而所述表达式包括与所述属性运算符相关联的XML数据结构的至少一个元素,则访问与所述属性相关联的值。
38.如权利要求37所述的设备,其中:所述属性运算符是‘.@’。
39.一种将XML数据结构的元素映射到一个或者多个Java类的相应对象的计算机系统实现的方法,包括:
接收映射定义,该映射定义将XML数据结构的选定元素映射到一个或多个Java类的选定对象;
判定映射定义是否包括以脚本语言的语言元素来表示的一条或多条定义语句;
如果映射定义包括以脚本语言的语言元素来表示的一条或多条定义语句,则判定一条或多条定义语句是否包括一表达式,所述表达式包括被预定义的导航运算符分隔开的XML数据结构的第一元素和第二元素;以及
处理所述表达式以访问XML数据结构的所述第二元素以及所述第二元素的所有后裔。
40.如权利要求39所述的方法,其中:所述导航运算符包括至少两个连续的句点(‘..’)。
41.一种设备,包括:
处理器;
由该处理器操作的接收器模块,适于接收映射定义,该映射定义将XML数据结构的选定元素映射到一个或多个Java类的选定对象,
由该处理器操作的判定器模块,其通信地耦合到该接收器模块且适于判定映射定义是否包括以脚本语言的语言元素来表示的一条或多条定义语句,以及
如果映射定义包括以脚本语言的语言元素来表示的一条或多条定义语句,则判定一条或多条定义语句是否包括一表达式,所述表达式包括被预定义的导航运算符分隔开的XML数据结构的第一元素和第二元素,以及
由该处理器操作的处理器模块,其通信地耦合到该判定器模块且适于处理所述表达式以访问XML数据结构的所述第二元素以及所述第二元素的所有后裔。
42.如权利要求41所述的设备,其中:所述导航运算符包括至少两个连续的句点(‘..’)。
43.一种将XML数据结构的元素映射到一个或者多个Java类的相应对象的计算机系统实现的方法,包括:
接收映射定义,该映射定义将XML数据结构的选定元素映射到一个或多个Java类的选定对象;
判定映射定义是否包括以脚本语言的语言元素来表示的一条或多条定义语句;
如果映射定义包括以脚本语言的语言元素来表示的一条或多条定义语句,则判定所述一条或多条定义语句是否包括一表达式,所述表达式包括定义左侧操作数和索引值的索引运算符;以及
处理所述表达式以访问XML数据结构的单个元素,所述XML数据结构具有等同于索引值的次序位置。
44.如权利要求43所述的方法,其中:所述索引运算符包括一组方括号([])。
45.一种设备,包括:
处理器;
由该处理器操作的接收器模块,适于接收映射定义,该映射定义将XML数据结构的选定元素映射到一个或多个Java类的选定对象,
由该处理器操作的判定器模块,其通信地耦合到该接收器模块且适于判定映射定义是否包括以脚本语言的语言元素来表示的一条或多条定义语句,以及
如果映射定义包括以脚本语言的语言元素来表示的一条或多条定义语句,则判定所述一条或多条定义语句是否包括一表达式,所述表达式包括定义左侧操作数和索引值的索引运算符,以及
由该处理器操作的处理器模块,其通信地耦合到该判定器模块且适于处理所述表达式以访问XML数据结构的单个元素,所述XML数据结构具有等同于该索引值的次序位置。
46.如权利要求45所述的设备,其中:所述索引运算符包括一组方括号([])。
47.一种将XML数据结构的元素映射到一个或者多个Java类的相应对象的计算机系统实现的方法,包括:
接收映射定义,该映射定义将XML数据结构的选定元素映射到一个或多个Java类的选定对象;
判定映射定义是否包括映射定义部分,该映射定义部分具有一条或多条定义语句,所述一条或多条定义语句以脚本语言的面向XML的语言元素来表示,所述脚本语言包括面向XML的语言元素;以及
处理映射定义,包括依照所述面向XML的语言元素的语法和语义定义来处理具有映射定义语句的映射定义,所述映射定义语句包括所述脚本语言的面向XML的语言元素。
48.一种设备,包括:
处理器
由该处理器操作的接收器模块,适于接收映射定义,该映射定义将XML数据结构的选定元素映射到一个或多个Java类的选定对象,
由该处理器操作的判定器模块,其通信地耦合到该接收器模块且适于判定映射定义是否包括映射定义部分,该映射定义部分具有一条或多条定义语句,所述一条或多条定义语句以脚本语言的面向XML的语言元素来表示,所述脚本语言包括面向XML的语言元素,以及
由该处理器操作的处理器模块,其通信地耦合到该判定器模块且适于处理映射定义,包括依照所述面向XML的语言元素的语法和语义定义来处理具有映射定义语句的映射定义,所述映射定义语句包括所述脚本语言的面向XML的语言元素。
49.一种将XML数据结构的元素映射到一个或者多个Java类的相应对象的计算机系统实现的方法,包括:
接收映射定义,该映射定义将XML数据结构的选定元素映射到一个或多个Java类的选定对象;
判定映射定义是否包括以脚本语言的语言元素来表示的一条或多条定义语句;
如果映射定义包括以脚本语言的语言元素来表示的一条或多条定义语句,则判定所述一条或多条定义语句是否包括一表达式,所述表达式包括具有预定义的一元运算符的文字值;以及
如果判定所述一条或多条定义语句包括一表达式,所述表达式包括具有预定义的一元运算符的文字值,则将所述表达式作为XML对象来处理。
50.如权利要求49所述的方法,其中:所述一元运算符由“<”符号来表示。
51.一种将XML数据结构的元素映射到一个或者多个Java类的相应对象的计算机系统实现的方法,包括:
接收映射定义,该映射定义将XML数据结构的选定元素映射到一个或多个Java类的选定对象;
判定映射定义是否包括以脚本语言的语言元素来表示的一条或多条定义语句;
如果映射定义包括以脚本语言的语言元素来表示的一条或多条定义语句,则判定所述一条或多条定义语句是否包括一表达式,所述表达式包括迭代运算符;以及
如果判定所述一个或多个定义语句包括含有迭代运算符的表达式,则将所述表达式作为XML对象来处理,以迭代地访问由迭代运算符来标识的一个或多个元素的列表。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/898,898 US6754884B1 (en) | 2001-07-02 | 2001-07-02 | Programming language extensions for processing XML objects and related applications |
US09/898,898 | 2001-07-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1549966A CN1549966A (zh) | 2004-11-24 |
CN1320454C true CN1320454C (zh) | 2007-06-06 |
Family
ID=25410184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB028171241A Expired - Fee Related CN1320454C (zh) | 2001-07-02 | 2002-06-28 | 用于处理xml对象的程序设计语言扩展及相关应用 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6754884B1 (zh) |
EP (1) | EP1410184A4 (zh) |
CN (1) | CN1320454C (zh) |
AU (1) | AU2002354768B8 (zh) |
CA (1) | CA2454608A1 (zh) |
WO (1) | WO2003005191A1 (zh) |
Families Citing this family (70)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040117776A1 (en) * | 1999-02-09 | 2004-06-17 | Paul Pazandak | Type-specific objects from markup and web-oriented languages, and systems and methods therefor |
US20010029604A1 (en) * | 2001-04-27 | 2001-10-11 | Jacob Dreyband | Descriptive data construct mapping method and apparatus |
US20040031015A1 (en) * | 2001-05-24 | 2004-02-12 | Conexant Systems, Inc. | System and method for manipulation of software |
US6918107B2 (en) * | 2001-07-02 | 2005-07-12 | Bea Systems, Inc. | Programming language extensions for processing data representation language objects and related applications |
US7222333B1 (en) | 2001-10-15 | 2007-05-22 | Cisco Technology, Inc. | Techniques for generating software application build scripts based on tags in comments |
US7552222B2 (en) | 2001-10-18 | 2009-06-23 | Bea Systems, Inc. | Single system user identity |
US7340714B2 (en) | 2001-10-18 | 2008-03-04 | Bea Systems, Inc. | System and method for using web services with an enterprise system |
JP2003140960A (ja) * | 2001-10-30 | 2003-05-16 | Hitachi Ltd | Xmlデータのデータ変換方法及びプログラム |
US7155705B1 (en) * | 2001-11-26 | 2006-12-26 | Cisco Technology, Inc. | Techniques for binding an application with a data exchange format based on tags in comments |
US20030110446A1 (en) * | 2001-12-10 | 2003-06-12 | Sun Microsystems, Inc. | Object class for facilitating conversion between Java and XML |
US6859810B2 (en) * | 2001-12-10 | 2005-02-22 | Bea Systems, Inc. | Declarative specification and engine for non-isomorphic data mapping |
US7080352B2 (en) * | 2002-01-30 | 2006-07-18 | Dloo, Incorporated | Method and system for creating programs using code having coupled syntactic and semantic relationships |
US20030159105A1 (en) * | 2002-02-21 | 2003-08-21 | Hiebert Steven P. | Interpretive transformation system and method |
US7516447B2 (en) | 2002-02-22 | 2009-04-07 | Bea Systems, Inc. | Methods and apparatus for building, customizing and using software abstractions of external entities |
US7155438B2 (en) | 2002-05-01 | 2006-12-26 | Bea Systems, Inc. | High availability for event forwarding |
US7526519B2 (en) * | 2002-05-01 | 2009-04-28 | Bea Systems, Inc. | High availability application view deployment |
US8135772B2 (en) * | 2002-05-01 | 2012-03-13 | Oracle International Corporation | Single servlets for B2B message routing |
US7257645B2 (en) | 2002-05-01 | 2007-08-14 | Bea Systems, Inc. | System and method for storing large messages |
US7519976B2 (en) | 2002-05-01 | 2009-04-14 | Bea Systems, Inc. | Collaborative business plug-in framework |
US20040078440A1 (en) * | 2002-05-01 | 2004-04-22 | Tim Potter | High availability event topic |
US7676538B2 (en) | 2002-05-02 | 2010-03-09 | Bea Systems, Inc. | Systems and methods for application view transactions |
US7222148B2 (en) | 2002-05-02 | 2007-05-22 | Bea Systems, Inc. | System and method for providing highly available processing of asynchronous service requests |
US7493628B2 (en) | 2002-05-02 | 2009-02-17 | Bea Systems, Inc. | Shared common connection factory |
US7484224B2 (en) * | 2002-05-02 | 2009-01-27 | Bae Systems, Inc. | Adapter deployment without recycle |
US7114148B2 (en) | 2002-09-30 | 2006-09-26 | Microsoft Corporation | Runtime services for network software platform |
EP1406166B1 (en) * | 2002-10-01 | 2011-07-13 | Sap Ag | Validation of scripting languages with interfaces using annotations in XML |
US7650591B2 (en) * | 2003-01-24 | 2010-01-19 | Bea Systems, Inc. | Marshaling and un-marshaling data types in XML and Java |
US7213034B2 (en) * | 2003-01-24 | 2007-05-01 | Symyx Technologies, Inc. | User-configurable generic experiment class for combinatorial materials research |
US7293038B2 (en) * | 2003-02-25 | 2007-11-06 | Bea Systems, Inc. | Systems and methods for client-side filtering of subscribed messages |
US20050022164A1 (en) * | 2003-02-25 | 2005-01-27 | Bea Systems, Inc. | Systems and methods utilizing a workflow definition language |
US7752599B2 (en) * | 2003-02-25 | 2010-07-06 | Bea Systems Inc. | Systems and methods extending an existing programming language with constructs |
US7774697B2 (en) | 2003-02-25 | 2010-08-10 | Bea Systems, Inc. | System and method for structuring distributed applications |
US7584474B2 (en) * | 2003-02-25 | 2009-09-01 | Bea Systems, Inc. | Systems and methods for transaction chaining |
US20040167915A1 (en) * | 2003-02-25 | 2004-08-26 | Bea Systems, Inc. | Systems and methods for declaratively transforming data objects between disparate representations |
US7539985B2 (en) * | 2003-02-26 | 2009-05-26 | Bea Systems, Inc. | Systems and methods for dynamic component versioning |
US7707564B2 (en) | 2003-02-26 | 2010-04-27 | Bea Systems, Inc. | Systems and methods for creating network-based software services using source code annotations |
US7650276B2 (en) | 2003-02-26 | 2010-01-19 | Bea Systems, Inc. | System and method for dynamic data binding in distributed applications |
US7076772B2 (en) * | 2003-02-26 | 2006-07-11 | Bea Systems, Inc. | System and method for multi-language extensible compiler framework |
US8032860B2 (en) * | 2003-02-26 | 2011-10-04 | Oracle International Corporation | Methods for type-independent source code editing |
US20040230955A1 (en) * | 2003-02-26 | 2004-11-18 | Bea Systems, Inc. | System for multi-language debugging |
US7444620B2 (en) * | 2003-02-28 | 2008-10-28 | Bea Systems, Inc. | Systems and methods for a common runtime container framework |
US7636722B2 (en) * | 2003-02-28 | 2009-12-22 | Bea Systems, Inc. | System and method for describing application extensions in XML |
US7650592B2 (en) | 2003-03-01 | 2010-01-19 | Bea Systems, Inc. | Systems and methods for multi-view debugging environment |
US7653936B2 (en) * | 2003-06-25 | 2010-01-26 | Microsoft Corporation | Distributed expression-based access control |
US7685566B2 (en) * | 2003-07-03 | 2010-03-23 | Microsoft Corporation | Structured message process calculus |
US20050050298A1 (en) * | 2003-08-25 | 2005-03-03 | International Business Machines Corporation | Method and system for mapping open grid services architecture service data to native resource representation |
US8640090B2 (en) * | 2003-11-10 | 2014-01-28 | Sap Ag | Active and modifiable data dictionary |
WO2007001328A2 (en) * | 2004-07-29 | 2007-01-04 | Infoassure, Inc. | Information-centric security |
US7694284B2 (en) * | 2004-11-30 | 2010-04-06 | International Business Machines Corporation | Shareable, bidirectional mechanism for conversion between object model and XML |
US7376661B2 (en) * | 2004-12-03 | 2008-05-20 | Wings Software, Ltd | XML-based symbolic language and interpreter |
US7665073B2 (en) * | 2005-04-18 | 2010-02-16 | Microsoft Corporation | Compile time meta-object protocol systems and methods |
US7945904B2 (en) * | 2005-08-22 | 2011-05-17 | Microsoft Corporation | Embedding expression in XML literals |
US20070055964A1 (en) * | 2005-09-06 | 2007-03-08 | Morfik Technology Pty. Ltd. | System and method for synthesizing object-oriented high-level code into browser-side javascript |
SI1951290T1 (en) | 2005-11-16 | 2018-04-30 | Pro Natura Gesellschaft Fuer Gesunde Ernaehrung Mbh | A device for use in the case of fructose intolerance |
CN100445947C (zh) * | 2006-03-28 | 2008-12-24 | 华为技术有限公司 | 一种移动终端业务处理的方法及系统 |
US8176469B2 (en) * | 2006-05-04 | 2012-05-08 | Oracle International Corporation | Inter language interoperability using a variant type |
US7958492B2 (en) * | 2006-05-04 | 2011-06-07 | Oracle International Corporation | Integration of external schemas and types into native programming languages |
US7802240B2 (en) * | 2006-06-26 | 2010-09-21 | Oracle America, Inc. | Mechanism for compiling programs |
US7405677B2 (en) * | 2006-08-08 | 2008-07-29 | International Business Machines Corporation | Apparatus, system, and method for incremental encoding conversion of XML data using Java |
US20080141230A1 (en) * | 2006-12-06 | 2008-06-12 | Microsoft Corporation | Scope-Constrained Specification Of Features In A Programming Language |
US8850414B2 (en) * | 2007-02-02 | 2014-09-30 | Microsoft Corporation | Direct access of language metadata |
US7761484B2 (en) | 2007-02-09 | 2010-07-20 | Microsoft Corporation | Complete mapping between the XML infoset and dynamic language data expressions |
US20090228904A1 (en) * | 2008-03-04 | 2009-09-10 | Microsoft Corporation | Declarative support for asynchronous methods |
CN101699397B (zh) * | 2009-10-09 | 2015-09-16 | 上海宝信软件股份有限公司 | 实现Java与XML数据绑定的方法 |
CN102254233B (zh) * | 2010-05-20 | 2014-04-23 | 深圳市金蝶中间件有限公司 | 流程驱动方法及装置 |
US8464233B2 (en) * | 2010-06-21 | 2013-06-11 | Microsoft Corporation | Compile time interpretation of markup codes |
CN102147726B (zh) * | 2011-04-01 | 2013-09-04 | 烽火通信科技股份有限公司 | 一种基于脚本的业务配置实现方法 |
US9047095B2 (en) * | 2011-07-12 | 2015-06-02 | Sap Se | Embedding of a non-imperative programming language for data transformation operations within an imperative programming language |
US9348888B1 (en) * | 2013-09-24 | 2016-05-24 | Emc Corporation | Iterative filter expression processing for filtering embedded data objects |
US10296655B2 (en) | 2016-06-24 | 2019-05-21 | International Business Machines Corporation | Unbounded list processing |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1258417A (zh) * | 1997-03-28 | 2000-06-28 | 艾利森电话股份有限公司 | 使业务生成环境脱离于业务逻辑执行环境 |
US6226675B1 (en) * | 1998-10-16 | 2001-05-01 | Commerce One, Inc. | Participant server which process documents for commerce in trading partner networks |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5329619A (en) | 1992-10-30 | 1994-07-12 | Software Ag | Cooperative processing interface and communication broker for heterogeneous computing environments |
US6253252B1 (en) | 1996-07-11 | 2001-06-26 | Andrew Schofield | Method and apparatus for asynchronously calling and implementing objects |
US5970490A (en) | 1996-11-05 | 1999-10-19 | Xerox Corporation | Integration platform for heterogeneous databases |
CA2210755C (en) | 1997-07-17 | 2003-12-23 | Ibm Canada Limited - Ibm Canada Limitee | Creating proxies for distribution of beans and event objects |
US6070184A (en) | 1997-08-28 | 2000-05-30 | International Business Machines Corporation | Server-side asynchronous form management |
US6314429B1 (en) | 1997-10-08 | 2001-11-06 | Mitel Corporation | Bi-directional conversion library |
US6209018B1 (en) | 1997-11-13 | 2001-03-27 | Sun Microsystems, Inc. | Service framework for a distributed object network system |
US6427228B1 (en) * | 1999-05-12 | 2002-07-30 | International Business Machines Corporation | Combining a meta data file and java source code to dynamically create java classes and javabeans |
US6490564B1 (en) * | 1999-09-03 | 2002-12-03 | Cisco Technology, Inc. | Arrangement for defining and processing voice enabled web applications using extensible markup language documents |
US6578192B1 (en) * | 1999-10-20 | 2003-06-10 | International Business Machines Corporation | Method and system for supporting dynamic document content expressed in a component-level language |
US6404445B1 (en) | 1999-12-30 | 2002-06-11 | Cybrant Corporation | Method and system for modeling data |
US20010047385A1 (en) | 1999-12-30 | 2001-11-29 | Jeffrey Tuatini | Passthru to shared service funtionality |
US6643652B2 (en) | 2000-01-14 | 2003-11-04 | Saba Software, Inc. | Method and apparatus for managing data exchange among systems in a network |
US6449620B1 (en) | 2000-03-02 | 2002-09-10 | Nimble Technology, Inc. | Method and apparatus for generating information pages using semi-structured data stored in a structured manner |
US6594823B1 (en) * | 2000-09-13 | 2003-07-15 | Microsoft Corporation | Method and system for representing a high-level programming language data structure in a mark-up language |
US20020099738A1 (en) | 2000-11-22 | 2002-07-25 | Grant Hugh Alexander | Automated web access for back-end enterprise systems |
US20010029604A1 (en) | 2001-04-27 | 2001-10-11 | Jacob Dreyband | Descriptive data construct mapping method and apparatus |
US6745208B2 (en) | 2001-05-31 | 2004-06-01 | International Business Machines Corporation | Method and apparatus for synchronizing an XML document with its object model |
-
2001
- 2001-07-02 US US09/898,898 patent/US6754884B1/en not_active Expired - Lifetime
-
2002
- 2002-06-28 WO PCT/US2002/020691 patent/WO2003005191A1/en not_active Application Discontinuation
- 2002-06-28 CA CA002454608A patent/CA2454608A1/en not_active Abandoned
- 2002-06-28 EP EP02752121A patent/EP1410184A4/en not_active Ceased
- 2002-06-28 CN CNB028171241A patent/CN1320454C/zh not_active Expired - Fee Related
- 2002-06-28 AU AU2002354768A patent/AU2002354768B8/en not_active Expired
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1258417A (zh) * | 1997-03-28 | 2000-06-28 | 艾利森电话股份有限公司 | 使业务生成环境脱离于业务逻辑执行环境 |
US6226675B1 (en) * | 1998-10-16 | 2001-05-01 | Commerce One, Inc. | Participant server which process documents for commerce in trading partner networks |
Also Published As
Publication number | Publication date |
---|---|
EP1410184A1 (en) | 2004-04-21 |
AU2002354768B8 (en) | 2008-06-12 |
US6754884B1 (en) | 2004-06-22 |
CN1549966A (zh) | 2004-11-24 |
AU2002354768B2 (en) | 2008-05-15 |
CA2454608A1 (en) | 2003-01-16 |
WO2003005191A1 (en) | 2003-01-16 |
EP1410184A4 (en) | 2006-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1320454C (zh) | 用于处理xml对象的程序设计语言扩展及相关应用 | |
US6918107B2 (en) | Programming language extensions for processing data representation language objects and related applications | |
AU2002354768A1 (en) | Programming language extensions for processing XML objects and related applications | |
US7665073B2 (en) | Compile time meta-object protocol systems and methods | |
AU2002318459A1 (en) | Programming language extensions for processing data representation language objects and related applications | |
Knabe | Language support for mobile agents | |
US8549497B2 (en) | High-level hypermedia synthesis for adaptive web | |
JP5010551B2 (ja) | 動的ウェブページコンテンツファイルからのサーバ側コード生成 | |
JP3272014B2 (ja) | 階層構造データ処理情報を含むデータ処理辞書を作成する方法及び装置 | |
CN101452453B (zh) | 一种输入法网址导航的方法和一种输入法系统 | |
US6859810B2 (en) | Declarative specification and engine for non-isomorphic data mapping | |
US7051015B1 (en) | System and method for implementing a flexible data-driven target object model | |
US7240101B2 (en) | Method and apparatus for efficiently reflecting complex systems of objects in XML documents | |
US20020099738A1 (en) | Automated web access for back-end enterprise systems | |
US8280884B2 (en) | Exposing rich internet application content to search engines | |
EP2330504A1 (en) | Lambda expressions | |
KR20030079926A (ko) | 미디어 객체를 통일적으로 추출하기 위한 시스템 | |
CN1777886A (zh) | 使用资源有限的设备处理电子表单的方法和设备 | |
US20150074633A1 (en) | Systems and methods for generating, linking, and presenting computer code representations from diverse sources | |
CN110069259A (zh) | 基于idl文件的解析方法、装置、电子设备和存储介质 | |
US7827537B2 (en) | Searching computer programs that use different semantics | |
US7669178B2 (en) | System and method for interacting with computer programming languages at semantic level | |
WO2005008485A1 (en) | Xml validation processing | |
US7590969B2 (en) | Type system | |
Sgouros | OPeNDAP user guide, version 1.14 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070606 Termination date: 20110628 |