可扩展标记语言集中器的制作方法

文档序号:6557959阅读:96来源:国知局
专利名称:可扩展标记语言集中器的制作方法
技术领域
本发明涉及如何将纯文本、超文本、PDF、Word、RTF、Excel、PowerPoint、程序代码、FrameMaker、Latex等非结构化文件和诸如WML等结构化文件统一转换成一种易操作的、具有语义功能的可扩展标记语言的装置和实现方法。
背景技术
扩展的标记语言(Extensible Markup Language,缩写为XML)是SGML(Standard Generalized Markup Language,标准通用标记语言)的一个子集,是简化的SGML。它是互联网联合组织(W3C)创建一组规范,以便于软件开发人员和内容创作者在网页上组织信息,其目的不仅在于满足不断增长的网络应用需求,而且也在于确保在通过网络进行交互合作时,具有良好的可靠性与互操作性。由于XML可以自定义文件类型,有利于信息的表达和结构化组织,且可以以一致的方式格式化和传送数据,大大降低了数据管理和交换的成本。XML的强大之处就在于它具有一套统一的数据格式,这种统一的数据格式可以使数据管理和交换的成本更低,也更易于管理。结构化信息的一个主要的用处就是允许不同格式的数据可以相互交换。不同的行业往往创建不同的规则来确定本行业内交换信息所需的内容模型。一旦这个内容模型被确定,整个行业就需要都使用这个内容模型来标记信息以保证行业内彼此能容易且有效地共享信息。因此,XML在电子商务、信息服务、通讯等领域有着广泛应用。尤其是随着第三代移动通信标准的逐步统一,一种单一的适用于当前和未来多种移动网络的数据通信架构,迫切需要随时随地的在移动中访问Internet的网络服务。
本发明的目的是通过该方法和装置来实现归整各种数据格式信息,实现数据的无缝连接,提高文本内容的重用性、便捷性。
本发明另一个目的是实现不同数据文件格式的相互转换,达到一种数据浏览器或阅读器能浏览和阅读其它格式的数据文件。
本发明的再一个目的是通过有语义的可扩展标记语言来实现对数据文件内容的智能机器理解。
本发明的再一个目的是通过有语义的可扩展标记语言来实现对数据文件内容的有效地分布式控制。
本发明解决上述问题的技术方案如下1.可扩展标记语言集中器,简称为XML Hub,包括基于非结构化的XML Hub和基于结构化的XML Hub。
2.基于非结构化XML Hub是将超文本、纯文本、PDF、word、RTF,Excel,PowerPoint,Word、FrameMaker、Latex、程序代码等非结构化文档转换成一种统一的易操作的XML,记为processible XML,简称为pXML。在非结构化文档转换成pXML时调用了文档所对应的解析器来读取文件内容。
3.基于结构化数据的XML Hub是使用结构化文件解析器读取结构化数据后,用XSLT将结构数据转换成pXML。基于结构化数据的XML Hub还可使用XSLT或其它外部程序将如DocBook XML、Legal XML、VoiceXML、MathXML等其它格式的结构化数据转换成pXML。
4.在pXML中定义了元素XMLSTREAM、HEAD、DMETATAGS、DMETA、EMETATAGS、EMETA、DSTYLES、DSTYLE、DSTRUCTURE、BODY、SECTION、PAGE、PARAGRAPH、SPECIALTEXT、TEXT、IMAGE、LINK、FOOTNOTE、ENDNOTE、HEADER、FOOTER、ANCHOR、TAB、HR、MARKER、TABLE、TGROUP、TBODY、THEAD、TFOOT、ROW、CELL、COLUMN、COLUMN-DEF、LIST、LI、LABEL、BLOCKQUOTE、PRE、BREAK、FRAME、SVG、FIELD、INDEXITEM。
pXML中元素的属性有Style、css-style、number、font、font-size、font-fixed、origfont、emphasis、emphasis-bold、emphasis-italic、emphasis-underline,emphasis-superscript、emphasis-subscript、x、y、height、width、top、left、align、valign、leftindent、rightindent、spacebefore、spaceafter、textindent、border-left、border-right、border-top、border-bottom、top-padding、Left-padding、right-padding、bottom-padding、rowspan、colspan、width-type、height-type。这些属性可用到多个元素中。
5.pXML的元素定义如下1)XMLSTREAM元素是pXML的顶层,能有HEAD,BODY元素作为其子元素,没有属性定义。
2)HEAD元素描述文件的头信息,XMLSTREAM可作为其上层,其子元素有DMETATAGS、EMETATAGS和DSTRUCTURE,没有属性。
3)元素DMETATAGS用于描述meta标记和源文档属性,HEAD为其父元素、META为其子元素。在超文本中,Meta出现在超文本的HEAD元素中。在word文档中,DMETATAGS描述文档的建立、设置域等如一个Miscrosoft word文档的DMETATAGS描述如下<pre listing-type="program-listing"><![CDATA[  <DMETATAGS><META name=″Title″value=″Transforming existing content into″pXML″″/>  <META name=″Subject″/>  <META name=″Author″value=″Rizwan Virk″/>  <META name=″Application name″value=″Microsoft Word 9.0″/>  <META name=″Last print date″value=″1/28/2002 9:48:00AM″/>]]></pre><pre listing-type="program-listing"><![CDATA[  <META name=″Creation date″value=″10/15/2002 11:41:00AM″/>  <META name=″Last save time″value=″10/15/2002 2:13:00PM″/>  <META name=″Total editing time″value=″3″/>  <META name=″Number of pages″value=″2″/>  <META name=″Number of words″value=″3392″/>  <META name=″Number of characters″value=″17586″/>  <META name=″Security″value=″0″/>  <META name=″Category″/>  <META name=″Format″/>  …</DMETATAGS>]]></pre>4)META元素描述文档的个性属性,DMETATAGS作为其父元素,没有子元素,有META名称和值。
5)EMETATAGS用于描述在源文件生成pXML过程中的环境属性,HEAD作为其父元素,子元素为EMETA。如&lt;EMETATAGS&gt;
&lt;EMETA name=″STDSourceFileName″value=″articlemeaningfulxml.doc″/&gt;
&lt;EMETA name=″STDSourceFileDirectory″value=″C:\WordSamples″/&gt;
&lt;EMETA name=″STDPreprocessor″value=″WordDriver″/&gt;
&lt;EMETA name=″STDSourceFileType″value=″doc″/&gt;
&lt;EMETA name=″STDPreprocessorOptions″value=″includeLists=true|includeTables=true|includeFormattedText=true|docPacketFile=C:\\ExecutionResults\xml.doc.EXEC.xml|dotFile=c:\drivers″/&gt;
&lt;/EMETATAGS&gt;
6)EMETA元素用于描述从源文件转换成pXML过程中的环境参数,父元素为EMETATAGS,没有子元素,有EMETA名称和值。
7)DSTYLES元素描述源文档的格式属性。对于word文档,DSTYLES用于描述文档中的有效格式,有HEAD父元素和STYLE子元素。对于超文本而言,DSTYLES是指格式函数或者css文件。
8)STYLE元素描述源文档中的格式,有DSTYLES父元素,属性有name,font,font-size,font-.xed,align,valign,leftindent,rightindent,linespacing,spacebefore,spaceafter,emphasis,emphasis-bold,emphasis-italic,emphasis-underline,emphasis-superscript,emphasis-subscript。
9)DSTRUCTURE元素仅用于描述PDF中的bookmarks,有HEAD父元素和OUTLINE子元素。
10)BODY用于描述文档的主体,有XMLSTREAM父元素和任何块元素,如SECTION,PAGE和BLOCK。
11)SECTION元素用于描述word文档的分区,有BODY父元素和任意块元素,属性有number,orientation,height,width,margin-left,margin-top,margin-right,margin-bottom,section-type,columns。
12)PAGE元素描述分页源文件中的单页,如pdf文件。有BODY父元素和任意块元素作为其子元素,包括PARAGRAPH,IMAGE,TABLE,LIST,BLOCKQUOTE,PRE,ANCHOR,BREAK,FRAME。PAGE元素具有number,height,width,margin-left,margin-top,margin-right,margin-bottom等属性。
13)PARAGRAPH元素用于描述文档中的文本,一般而言,所有的文本都归属于PARAGRAPH元素。PARAGRAPH元素有BODY,CELL,LI,BLOCKQUOTE,SECTION,PAGE等父元素,有如#PCDATA,SPECIALTEXT,LINK,ANCHOR,IMAGE,TEXT,FIELD等内嵌元素,属性有font-related,paragraph-related,emphasis-related,number,Style,x,y,height,width。
14)SPECIALTEXT元素用于描述在PARAGRAPH元素中的不同于PARAGRAPH元素的文本,有PARAGRAPH父元素,有如#PCDATA,SPECIALTEXT,LINK,ANCHOR,IMAGE,TEXT,FIELD等内嵌元素及fontrelated,emphasis-related,number,Style,x,y,height,width等属性。
15)TEXT元素用于处理在PARAGRAPH中与PARAGRAPH元素相同格式的文本,仅用于PDF的解析器中的每个文本处理时需要各自的坐标和维度的情况。有PARAGRAPH父元素,有如#PCDATA,SPECIALTEXT,LINK,ANCHOR,IMAGE,TEXT,FIELD等内嵌元素及font related,emphasis-related,number,Style,x,y,height,width等属性。不能出现在块层但能出现在内嵌层。
16)IMAGE元素用于描述源文档中的图像。在word解析器和HTML解析器中,图像放在pXML文件的命名为xxxxx.xx_Images子目录中,xxxxx.xx为pXML文件名。IMAGE元素可在块层和内嵌层,有BODT,PAGE,CELL,LI,BLOCKQUOTE,PRE,PARAGRAPH等父元素和如下属性a)href=文件名,常为图像文件的相对路经;b)format=文件格式。对于word解析器,位图类型有BMP、JPEG、GIF。
c)width和height为图像的宽和高。
d)x和y为图像在一页中的位置,主要是针对pdf文档而言。
e)number为该图像相对其它图像或段落的位置。
f)alt为在超文本中的图像描述文本。
17)LINK元素描述连接,常出现在PARAGRAPH中,且有文本描述。LINK元素有PARAGRAPH,SPECIALTEXT等父元素和#PCDATA,SPECIALTEXT子元素,有href和alt属性,可出现在内嵌层。
18)FOOTNOTE和ENDNOTE元素描述文档的脚注,可出现在文档的末尾或PARAGRAPH元素中。有BODY,PARAGRAPH父元素,所有的块层的元素度可作为其子元素,有ref,reftype,label等属性。
19)HEADER and FOOTER元素描述文档的页眉和页脚,可出现在文档的末尾或PARAGRAPH元素中。有BODY父元素,所有的块层的元素度可作为其子元素。有如下属性a)number描述HEADER或FOOTER元素所在的分区编码;b)headerType用于描述HEADER或FOOTER元素是首页、最后页、奇偶数等。
20)ANCHOR元素描述一个文档能访问到的地址,等价于超文本中的&lt;A&gt;,可在PARAGRAPH元素内部或外部,类似于MARKER元素。有BODY,PAGE,CELL,LI,BLOCKQUOTE,PRE,PARAGRAPH,SPECIALTEXT等父元素,有name和number属性,其中number属性描述ANCHOR元素的相对位置。ANCHOR元素可出现在块层和内嵌层中。
21)TAB元素用于描述文档中的TAB符,所有的内嵌层元素都可作为其父元素,可出现在内嵌层。
22)HR元素仅用于描述超文本文档所有的内嵌层元素都可作为其父元素,可出现在块层。
23)MARKER元素是一个文件中的终止符,其父元素有块容器和PARAGRAPH,属性有id,number等,可出现在块层和内嵌层中。
24)TABLE元素描述源文档中的一个表,其父元素有BODY,PAGE,SECTIONCELL,LI,BLOCKQUOTE,PRE,其子元素有TGROUP,COLUMN,ROW,属性有number来描述它出现的位置,可出现在块层中。
25)TGROUP,TBODY,THEAD,TFOOT元素用于描述源文档中的表,属性有用于描述TGROUP中的栏数的cols,可出现在块层中。
26)ROW元素是TABLE元素的子元素,用于描述表中的单一行,CELL为其子元素,有rowtype、Style和number属性,其中,若rowtype为header则为头行,若为data则为普通行;Style为该行的格式;number为该行在整个文档中的位置。
27)CELL元素是ROW元素的子元素,用于描述表中的一格,子元素有PARAGRAPH,LIST,TABLE,LIST,BLOCKQUOTE,PRE,IMAGE,ANCHOR等。CELL元素有celltype、Style、number等属性,其中,celltype=header,则该行为表的头行,若celltype=data则该行为表的普通行;Style描述该表格的格式;number描述该表格在整个文档的位置。
28)COLUMN元素TABLE元素的子元素,用于描述表中的单一列。对于Word,MIF等文档,指定column的宽度和映射到CALs表较容易;对于PDF文档时,当指定一个pagedef时,COLUMN元素是指在一页中的某个区域。有符TABLE,TGROUP等父元素没有子元素,有column-id及width属性。其中,column-id是指其在表中的列的序号;width描述该列的宽度。
29)COLUMN-DEF元素用于描述列,有TABLE父元素和COLUMN子元素,有描述列数的cols属性。
30)LIST元素用于描述文档中的一个列表。在pXML中分OL、UL和DL,其中,OL表示排序列表;UL表示无序的、浮动的列表;DL表示无序的、不浮动的数据列表。任何块容器都可作为其父元素,其元素为LI,有type、Style和Number属性。其中,type为OL、UL、或DL;Number描述列表在文档中的位置;Style描述列表的格式。另外,LIST元素可出现在块层中。
31)LI元素是LIST子元素,描述列表项,有PARAGRAPH,LIST,TABLE,LI,BLOCKQUOTE,PRE,IMAGE,ANCHOR等子元素,且有level、number、Style、type等属性。其中,level值代表该列表内嵌的层级;number表示列表项在列表中的位置;Style表示列表项的格式、type常为空,若列表类型为DL,则其为DT或DL,表示其是否为头或数据项。
32)LABEL元素是针对word文档而定义的,作为LI元素的子元素,有PARAGRAPH和LI父元素,其子元素有#PCDATA。
33)BLOCKQUOTE元素描述一个内嵌文本,块容器可作为其父元素、块级元素可作为其子元素,有number属性来描述其中文档中的相对位置,可出现在块层。
34)PRE元素是用于将其包起来的文字排版、格式,原封不动的呈现出来,块容器可作为其父元素,块层元素可作为其子元素,有描述其在文档中的相对位置的number属性,并可出现在块层。
35)BREAK元素描述源文档中的分隔符,块容器和内嵌容器均可作为其父元素,无子元素,有type和number属性,且可出现在块层和内嵌层。其中,type属性用于描述其类型,如页分隔、列分隔、行分隔等;number属性描述BREAK元素在文档中的相对位置。
36)FRAME元素用于描述文档中的文本帧,有BODY,SECTION,PAGE等父元素,所有的块级元素都可作为其子元素,有x,y,top,left,height,width,number等属性,且可出现在块层级。
37)SVG元素用于描述外部的SVG文件,仅用于pdf文档中,有PAGE父元素,无子元素,有src属性,可出现在块层上。其中,src为SVG的相对或绝对文件名。
38)FIELD元素用于描述嵌套在源文档中的文本中的一个域,常用于word文档中,有PARAGRAPH,TEXT,SPECIALTEXT等父元素和#PCDATA子元素,有用于描述域码的code属性,能用于内嵌层。
39)INDEXITEM元素用于描述来自MIF文件中的索引项,有PARAGRAPH,TEXT,SPECIALTEXT等父元素和inline子元素,有primary、secondary、tertiary等属性。其中,primary为初始索引项;secondary为次索引项;tertiary为第三次索引项,可用于内嵌层。
6.pXML中的元素属性可用于多个元素,有些属性用于特定的元素,在这里将列出一些主要的元素属性的定义。
1)Style属性给PARAGRAPH或SPECIALTEXT的格式的一个名称。在Word和Framemaker文档中,Style属性是指段落或字符集的格式;在超文本中,若源文本是在&lt;H1&gt;到&lt;H7&gt;标签中,则标签名附加在Style属性,较容易找到使用的是那个头。在超文本中,Style属性也可能包括″classname″,即在&lt;P class=myheading&gt;中,Style属性将被转换成在pXML中的格式&lt;PARAGRAPH Style=″myheading″&gt;。对于如超文本而言,Style属性可能有多个格式,在转换成pXML时将其用逗号隔开。&lt;PARAGRAPH&gt;和&lt;SPECIALTEXT&gt;元素常有该属性。
2)css-style属性用于描述超文本源文件。若超文本的paragraph元素有style属性包含有CSS属性,在pXML中将逐字地包含在该元素中。若超文本是&lt;p style=″font-size9;colorred;″,则在pXML中的cSS-Style属性是&lt;PARAGRAPH css-Style=″font-size9;colorred;″&gt;。
3)number属性是指一组从1开始的数值,用来描述当前元素在文档中的位置,以便于确定元素发生的先后顺序。所有的BODY元素都具有number属性。
4)font,font-size,font-fixed,origfont是用于描述与字体相关的属性。其中,在word或pdf文档中,font-size按点值指定,在超文本中是指一个从1到7的相对值,1对应于H1,7对应于H7。font-fixed是true或false,一般而言Courier集子体是固定子体宽度。有&lt;PARAGRAPH&gt;,&lt;SPECIALTEXT&gt;,&lt;TEXT&gt;,&lt;STYLE&gt;等元素具有以上属性。
5)emphasis,emphasis-bold,emphasis-italic,emphasis-underline,emphasis-superscript,emphasis-subscript属性用于修饰基本子体,常用于&lt;PARAGRAPH&gt;元素层或在PARAGRAPH中的&lt;SPECIALTEXT&gt;。这些属性赋值为true或false。所有解析器都要求执行emphasis,emphasis-bold,emphasis-italic,and emphasis-underline属性。而superscript和subscript仅用于特定的解析器。有&lt;PARAGRAPH&gt;,&lt;SPECIALTEXT&gt;,&lt;TEXT&gt;,and&lt;STYLE&gt;等元素具有这些属性。
6)x,y,height,width,top和left属性常被解析器用在处理特定格式的文档中,如pdf文档。其中x和y坐标是指基于页的坐标,数字是点值或其它相对测定值,依赖于源内容。在一些元素中,常用top和left而不是x和y。所有BODY的块元素有x,y,height和width属性。
7)align,valign,leftindent,rightindent,spacebefore,spaceafter和textindent属性用于描述段落层的格式信息。其中,align为left,center,right,justify或blank;valign为top,middle,bottom或blank;leftindent为段落靠左缩进的大小;rightindent为段落靠右缩进的大小;linespacing为行间距,缺省值为1,即单行距;spacebefore为段前值;spaceafter为段后值;textindent为首行缩进值。除了如SPECIALTEXT,LINK内嵌元素外,其它元素都具有这些属性。
8)border-left,border-right,border-top,border-bottom属性表示偏左、偏右、偏上、偏下,它们可设为true或false来描述表对象,也可为数值表示边界的长度。这些属性也可有边界颜色。有TABLE、CELL和ROW具有上属性。
9)top-padding,left-padding,right-padding,bottom-padding属性设为整数值,表示在表中格的填充颜色。TABLE和CELL有以上属性。
10)rowspan和colspan属性设为数值,表示表格的行跨度和列跨度,仅CELL有这些属性。
11)width-type和height-type属性仅用于从word文档中生成的表格,可设为auto、percent、points、fixed等。
7.文档解析器具有解析其所对应文档中的如下内容转换成pXML1)解析其所对应文档中的图的功能。在文档解析器中可选择地将bitmap、矢量图、WMF文件功能转换成所需格式的图像,并在pXML中用IMAGE来标注。对于office文档中的OLE对象,是将其视为WMF文件来处理。
2)解析所对应文档中的书签、分隔符、域、页眉、页脚、片断、脚注等功能,分别在pXML中用ANCHOR、BREAK、FIELD、HEADER、FOOTER、SECTION及PARAGRAPH中的Footnote格式来标注。分隔符分为page、column、section等三种类型。
3)解析所对应文档中的文本格式信息,如字体、字体颜色、大小、黑体、斜体等,定义为PARAGRAPH元素中属性。
4)解析文档中的隐藏文本功能,在转换后的pXML中用SPECIALTEXT把隐藏文本进行标记。
5)解析文本中的连接功能,并在pXML中link标注。
6)解析文档中的列举功能,并在pXML中列举用LIST标注、列举中的条用LABEL标注。
7)解析文档中的表功能,采用,并在pXML中用TABLE、TGROUP、TBODY、THEAD及COLUMN等来标注表。
8)解析如pdf、MIF、HTML、XML等文档中的分层结构,在pXML中用FRAME来描述文档中的分层结构。在份层结构中有以下主要元素用Layoutdefs,定义layoutdef的头信息、用MarginDef定义一系列页的边界、用PageDef定义为某页或一系列页中的正方块定义某种类型的块等。
8.如Java、C++等程序文件解析器可解析程序文件中的类名、类路经、类参数等文档内容。
9.通过调用外部程序来进行文档内容的转换,接口为-I{输入},-O{输出}。而在解析其它XML格式文档或纯文本文档的过程中还可调用XSLT来解析文档,生成pXML,调用格式包括XSLT文件名、XSLT参数,例如XSLTArguments=[arg1=value1|arg2=value2|arg3=value3]。
10.XML Hub开放接口,通过动态加载未知格式文档的解析器来实现对未知文档的解析,生成pXML文档。


图1表示XML Hub的核心作用,实现文档数据的无缝连接、转换和发布。
图2表示XML Hub的体系结构。
图3表示XML Hub工作流程。
图4描述了XML Hub的工作环境和功能模块。
具体实施例方式
XML的优点就在于它具有一套统一的数据格式,这种统一的数据格式可以使数据管理和交换的成本更低,也更易于管理。结构化信息的一个主要的用处就是允许不同格式的数据可以相互交换。不同的行业往往创建不同的规则来确定本行业内交换信息所需的内容模型。一旦这个内容模型被确定,整个行业就需要都使用这个内容模型来标记信息以保证行业内彼此能容易且有效地共享信息。因此,XML在电子商务、信息服务、通讯等领域有着广泛应用。尤其是随着第三代移动通信标准的逐步统一,一种单一的适用于当前和未来多种移动网络的数据通信架构,迫切需要随时随地的在移动中访问Internet的网络服务。
图1说明了XML Hub的核心作用,即实现文档数据的无缝连接、转换和发布功能。通过XML Hub来归整各种文档数据格式信息,实现文档数据的无缝连接,提高文本内容的重用性、便捷性。文档数据归整为用户提供可在各种平台上便捷地阅读文档内容,而不需要在阅读器上加载各种格式的数据解析器。同时数据内容通过XML Hub来实现不同格式数据文件之间的相互转换,达到一种数据浏览器或阅读器就能浏览和阅读其它格式的数据文件。另外,通过XMLHub,以有语义的可扩展标记语言为中间媒介来实现数据文件内容的智能机器理解,并实现对数据文件内容的有效地分布式控制。
在XML Hub中定义了一种易处理的可扩展标记语言,简称为pXML。pXML有元素XMLSTREAM、HEAD、DMETATAGS、DMETA、EMETATAGS、EMETA、DSTYLES、DSTYLE、DSTRUCTURE、BODY、SECTION、PAGE、PARAGRAPH、SPECIALTEXT、TEXT、IMAGE、LINK、FOOTNOTE、ENDNOTE、HEADER、FOOTER、ANCHOR、TAB、HR、MARKER、TABLE、TGROUP、TBODY、THEAD、TFOOT、ROW、CELL、COLUMN、COLUMN-DEF、LIST、LI、LABEL、BLOCKQUOTE、PRE、BREAK、FRAME、SVG、FIELD、INDEXITEM。
pXML中的元素具有属性Style、css-style、number、font、font-size、font-fixed、origfont、emphasis、emphasis-bold、emphasis-italic、emphasis-underline,emphasis-superscript、emphasis-subscript、x、y、height、width、top、left、align、valign、leftindent、rightindent、spacebefore、spaceafter、textindent、border-left、border-right、border-top、border-bottom、top-padding、Left-padding、right-padding、bottom-padding、rowspan、colspan、width-type、height-type。这些属性可用到多个元素中。
图2说明了XML Hub的体系结构。XML Hub主要功能块有类型判断器、分页处理器、文本处理器、对象处理器、文档解析器仓库、参数库、pXML元素和属性库等组成。类型判断器能根据输入文档的参数确定文档的类型,判断它们是诸如纯文本、超文本、PDF、Word、RTF、Excel、PowerPoint、程序代码、FrameMaker、Latex等非结构化文件还是诸如WML等结构化文件。分页处理器处理文档中的存在层、帧和栏的情况,如在HTML中的分层和分帧情况,pdf中的分栏、分层等。对于HTML中分帧情况时采取各帧内数据内容单独处理。对于pdf等文档中的层单独处理成页中层元素。文档中的分栏按照从左到右的顺序处理成页中的段落元素。文本处理器处理段落元素中的文本内容,包括字体、格式、大小等内容处理成段落中的元素的属性值。在文本处理器中还包括处理文档中所存在的链接和标签,若是链接则生成pXML中的link元素。对象处理器主要处理文档中所包含的图、表、公式等特殊内容,并分别生成pXML中的元素Image、Table、specialtext等元素。在解析器仓库中包含有各种文档格式的解析器的接口,解析器的接口是开放的、使得可以动态加载和替换解析器。参数仓库保存文档提出过程的内容选择、输出内容格式、所选解析器型号等文档解析过程中的环境参数,在运营过程中,将读如到pXML中的EMETATAGS中。在仓库中还保存着pXML所用的元素和属性与文档的格式标签的对照表。
图3描述了XML Hub工作流程,当文档数据从互联网、文件服务器、文档仓库或文件中提取出来输入到XML Hub,XML Hub根据文档头文件判断输入文档的数据类型,从仓库中选取相应的文档解析器、配置参数及文档与pXML中元素参照表内容,然后用文档解析器分析文档格式,并调用分页处理器、文本处理器及对象处理器对文档数据实现分页处理、对象处理、文本内容处理,最终生成pXML语言格式的文档和源文档中的图或对象。最后根据输出要求,生成相应的输出文档,用于数据发布、存储或分析等下一步工作。
在图4中,XML Hub的外部环境主要包括网络环境、终端显示环境等内容。因此,XML Hub可根据外部环境来适当地调整网络传输方法、终端显示等内容就可以。
权利要求
1.可扩展标记语言集中器,简称为XML Hub,包括基于非结构化的XML Hub和基于结构化的XML Hub.
2.在权利1中的基于非结构化XML Hub是将超文本、纯文本、PDF、word、RTF,Excel,PowerPoint,Word、FrameMaker、Latex、程序代码等非结构化文档转换成一种统一的易处理的XML,记为processible XML,简称为pXML。在非结构化文档转换成pXML时调用了文档所对应的解析器来读取文件内容。
3.在权利1中的基于结构化数据的XML Hub是使用结构化文件解析器读取结构化数据后,用XSLT将结构数据转换成pXML。基于结构化数据的XML Hub还可使用XSLT或其它外部程序将pXML转换成其它格式的结构化数据,如DocBook XML、Legal XML、VoiceXML、MathXML等。
4.在权利2和3中的pXML中定义了元素XMLSTREAM、HEAD、DMETATAGS、DMETA、EMETATAGS、EMETA、DSTYLES、DSTYLE、DSTRUCTURE、BODY、SECTION、PAGE、PARAGRAPH、SPECIALTEXT、TEXT、IMAGE、LINK、FOOTNOTE、ENDNOTE、HEADER、FOOTER、ANCHOR、TAB、HR、MARKER、TABLE、TGROUP、TBODY、THEAD、TFOOT、ROW、CELL、COLUMN、COLUMN-DEF、LIST、LI、LABEL、BLOCKQUOTE、PRE、BREAK、FRAME、SVG、FIELD、INDEXITEM。pXML中元素的属性有Style、css-style、number、font、font-size、font-fixed、origfont、emphasis、emphasis-bold、emphasis-italic、emphasis-underline,emphasis-superscript、emphasis-subscript、x、y、height、width、top、left、align、valign、leftindent、rightindent、spacebefore、spaceafter、textindent、border-left、border-right、border-top、border-bottom、top-padding、Left-padding、right-padding、bottom-padding、rowspan、colspan、width-type、height-type。这些属性可用到多个元素中。
5.在权利4中的pXML的元素定义如下1)XMLSTREAM元素是pXML的顶层,能有HEAD,BODY元素作为其子元素,没有属性定义。2)HEAD元素描述文件的头信息,XMLSTREAM可作为其上层,其子元素有DMETATAGS、EMETATAGS和DSTRUCTURE,没有属性。3)元素DMETATAGS用于描述meta标记和源文档属性,HEAD为其父元素、META为其子元素。在超文本中,Meta出现在超文本的HEAD元素中。在word文档中,DMETATAGS描述文档的建立、设置域等如一个Miscrosoft word文档的DMETATAGS描述如下&lt;DMETATAGS&gt;&lt;META name=″Title″value=″Transforming existing content into″pXML″″/&gt;&lt;META name=″Subject″/&gt;&lt;META name=″Author″value=″Rizwan Virk″/&gt;&lt;META name=″Application name″value=″Microsoft Word 9.0″/&gt;&lt;META name=″Last print date″value=″1/28/2002 9:48:00AM″/&gt;&lt;META name=″Creation date″value=″10/15/2002 11:41:00AM″/&gt;&lt;METAname=″Last save time″value=″10/15/2002 2:13:00PM″/&gt;&lt;META name=″Total editing time″value=″3″/&gt;&lt;META name=″Number of pages″value=″2″/&gt;&lt;META name=″Number of words″value=″3392″/&gt;&lt;META name=″Number of characters″value=″17586″/&gt;&lt;META name=″Security″value=″0″/&gt;&lt;META name=″Category″/&gt;&lt;META name=″Format″/&gt;…&lt;/DMETATAGS&gt;4)META元素描述文档的个性属性,DMETATAGS作为其父元素,没有子元素,有META名称和值。5)EMETATAGS用于描述在源文件生成pXML过程中的环境属性,HEAD作为其父元素,子元素为EMETA。如&lt;EMETATAGS&gt;&lt;EMETA name=″STDSourceFileName″value=″articlemeaningfulxml.doc″/&gt;&lt;EMETA name=″STDSourceFileDirectory″value=″C\WordSamples″/&gt;&lt;EMETA name=″STDPreprocessor″value=″WordDriver″/&gt;&lt;EMETA name=″STDSourceFileType″value=″doc″/&gt;&lt;EMETA name=″STDPreprocessorOptions″value=″includeLists=true |includeTables=true | includeFormattedText=true | docPacketFile = C\\ExecutionResults\xml.doc.EXEC.xml | dotFile=c\drivers″/&gt;&lt;/EMETATAGS&gt;6)EMETA元素用于描述从源文件转换成pXML过程中的环境参数,父元素为EMETATAGS,没有子元素,有EMETA名称和值。7)DSTYLES元素描述源文档的格式属性。对于word文档,DSTYLES用于描述文档中的有效格式,有HEAD父元素和STYLE子元素。对于超文本而言,DSTYLES是指格式函数或者css文件。8)STYLE元素描述源文档中的格式,有DSTYLES父元素,属性有name,font,font-size,font-.xed,align,valign,leftindent,rightindent,linespacing,spacebefore,spaceafter,emphasis,emphasis-bold,emphasis-italic,emphasis-underline,emphasis-superscript,emphasis-subscript。9)DSTRUCTURE元素仅用于描述PDF中的bookmarks,有HEAD父元素和OUTLINE子元素。10)BODY用于描述文档的主体,有XMLSTREAM父元素和任何块元素,如SECTION,PAGE和BLOCK。11)SECTION元素用于描述word文档的分区,有BODY父元素和任意块元素,属性有number,orientation,height,width,margin-left,margin-top,margin-right,margin-bottom,section-type,columns。12)PAGE元素描述分页源文件中的单页,如pdf文件。有BODY父元素和任意块元素作为其子元素,包括PARAGRAPH,IMAGE,TABLE,LIST,BLOCKQUOTE,PRE,ANCHOR,BREAK,FRAME。PAGE元素具有number,height,width,margin-left,margin-top,margin-right,margin-bottom等属性。13)PARAGRAPH元素用于描述文档中的文本,一般而言,所有的文本都归属于PARAGRAPH元素。PARAGRAPH元素有BODY,CELL,LI,BLOCKQUOTE,SECTION,PAGE等父元素,有如#PCDATA,SPECIALTEXT,LINK,ANCHOR,IMAGE,TEXT,FIELD等内嵌元素,属性有font-related,paragraph-related,emphasis-related,number,Style,x,y,height,width。14)SPECIALTEXT元素用于描述在PARAGRAPH元素中的不同于PARAGRAPH元素的文本,有PARAGRAPH父元素,有如#PCDATA,SPECIALTEXT,LINK,ANCHOR,IMAGE,TEXT,FIELD等内嵌元素及fontrelated,emphasis-related,number,Style,x,y,height,width等属性。15)TEXT元素用于处理在PARAGRAPH中与PARAGRAPH元素相同格式的文本,仅用于PDF的解析器中的每个文本处理时需要各自的坐标和维度的情况。有PARAGRAPH父元素,有如#PCDATA,SPECIALTEXT,LINK,ANCHOR,IMAGE,TEXT,FIELD等内嵌元素及font related,emphasis-related,number,Style,x,y,height,width等属性。不能出现在块层但能出现在内嵌层。16)IMAGE元素用于描述源文档中的图像。在word解析器和HTML解析器中,图像放在pXML文件的命名为xxxxx.xx_Images子目录中,xxxxx.xx为pXML文件名。IMAGE元素可在块层和内嵌层,有BODY,PAGE,CELL,LI,BLOCKQUOTE,PRE,PARAGRAPH等父元素和如下属性a)href=文件名,常为图像文件的相对路经;b)format=文件格式。对于word解析器,位图类型有BMP、JPEG、GIF。c)width和height为图像的宽和高。d)x和y为图像在一页中的位置,主要是针对pdf文档而言。e)number为该图像相对其它图像或段落的位置。f)alt为在超文本中的图像描述文本。17)LINK元素描述连接,常出现在PARAGRAPH中,且有文本描述。LINK元素有PARAGRAPH,SPECIALTEXT等父元素和#PCDATA,SPECIALTEXT子元素,有href和alt属性,可出现在内嵌层。18)FOOTNOTE和ENDNOTE元素描述文档的脚注,可出现在文档的末尾或PARAGRAPH元素中。有BODY,PARAGRAPH父元素,所有的块层的元素度可作为其子元素,有ref,reftype,label等属性。19)HEADER and FOOTER元素描述文档的页眉页脚,可出现在文档的末尾或PARAGRAPH元素中。有BODY父元素,所有的块层的元素度可作为其子元素。有如下属性a)number描述HEADER或FOOTER元素所在的分区编码;b)headerType用于描述HEADER或FOOTER元素是首页、最后页、奇偶数等。20)ANCHOR元素描述一个文档能访问到的地址,等价于超文本中的&lt;A&gt;,可在PARAGRAPH元素内部或外部,类似于MARKER元素。有BODY,PAGE,CELL,LI,BLOCKQUOTE,PRE,PARAGRAPH,SPECIALTEXT等父元素,有name和number属性,其中number属性描述ANCHOR元素的相对位置。ANCHOR元素可出现在块层和内嵌层中。21)TAB元素用于描述文档中的TAB符,所有的内嵌层元素都可作为其父元素,可出现在内嵌层。22)HR元素仅用于描述超文本文档所有的内嵌层元素都可作为其父元素,可出现在块层。23)MARKER元素是一个文件中的终止符,其父元素有块容器和PARAGRAPH,属性有id,number等,可出现在块层和内嵌层中。24)TABLE元素描述源文档中的一个表,其父元素有BODY,PAGE,SECTIONCELL,LI,BLOCKQUOTE,PRE,其子元素有TGROUP,COLUMN,ROW,属性有number来描述它出现的位置,可出现在块层中。25)TGROUP,TBODY,THEAD,TFOOT元素用于描述源文档中的表,属性有用于描述TGROUP中的栏数的cols,可出现在块层中。26)ROW元素是TABLE元素的子元素,用于描述表中的单一行,CELL为其子元素,有rowtype、Style和number属性,其中,若rowtype为header则为头行,若为data则为普通行;Style为该行的格式;number为该行在整个文档中的位置。27)CELL元素是ROW元素的子元素,用于描述表中的一格,子元素有PARAGRAPH,LIST,TABLE,LIST,BLOCKQUOTE,PRE,IMAGE,ANCHOR等。CELL元素有celltype、Style、number等属性,其中,celltype=header,则该行为表的头行,若celltype=data则该行为表的普通行;Style描述该表格的格式;number描述该表格在整个文档的位置。28)COLUMN元素TABLE元素的子元素,用于描述表中的单一列。对于Word,MIF等文档,指定column的宽度和映射到CALs表较容易;对于PDF文档时,当指定一个pagedef时,COLUMN元素是指在一页中的某个区域。有符TABLE,TGROUP等父元素没有子元素,有column-id及width属性。其中,column-id是指其在表中的列的序号;width描述该列的宽度。29)COLUMN-DEF元素用于描述列,有TABLE父元素和COLUMN子元素,有描述列数的cols属性。30)LIST元素用于描述文档中的一个列表。在pXML中分OL、UL和DL,其中,OL表示排序列表;UL表示无序的、浮动的列表;DL表示无序的、不浮动的数据列表。任何块容器都可作为其父元素,其元素为LI,有type、Style和Number属性。其中,type为OL、UL、或DL;Number描述列表在文档中的位置;Style描述列表的格式。另外,LIST元素可出现在块层中。31)LI元素是LIST子元素,描述列表项,有PARAGRAPH,LIST,TABLE,LI,BLOCKQUOTE,PRE,IMAGE,ANCHOR等子元素,且有level、number、Style、type等属性。其中,level值代表该列表内嵌的层级;number表示列表项在列表中的位置;Style表示列表项的格式、type常为空,若列表类型为DL,则其为DT或DL,表示其是否为头或数据项。32)LABEL元素是针对word文档而定义的,作为LI元素的子元素,有PARAGRAPH和LI父元素,其子元素有#PCDATA。33)BLOCKQUOTE元素描述一个内嵌文本,块容器可作为其父元素、块级元素可作为其子元素,有number属性来描述其中文档中的相对位置,可出现在块层。34)PRE元素是用于将其包起来的文字排版、格式,原封不动的呈现出来,块容器可作为其父元素,块层元素可作为其子元素,有描述其在文档中的相对位置的number属性,并可出现在块层。35)BREAK元素描述源文档中的分隔符,块容器和内嵌容器均可作为其父元素,无子元素,有type和number属性,且可出现在块层和内嵌层。其中,type属性用于描述其类型,如页分隔、列分隔、行分隔等;number属性描述BREAK元素在文档中的相对位置。36)FRAME元素用于描述文档中的文本帧,有BODY,SECTION,PAGE等父元素,所有的块级元素都可作为其子元素,有x,y,top,left,height,width,number等属性,且可出现在块层级。37)SVG元素用于描述外部的SVG文件,仅用于pdf文档中,有PAGE父元素,无子元素,有src属性,可出现在块层上。其中,src为SVG的相对或绝对文件名。38)FIELD元素用于描述嵌套在源文档中的文本中的一个域,常用于word文档中,有PARAGRAPH,TEXT,SPECIALTEXT等父元素和#PCDATA子元素,有用于描述域码的code属性,能用于内嵌层。39)INDEXITEM元素用于描述来自MIF文件中的索引项,有PARAGRAPH,TEXT,SPECIALTEXT等父元素和inline子元素,有primary、secondary、tertiary等属性。其中,primary为初始索引项;secondary为次索引项;tertiary为第三次索引项,可用于内嵌层。
6.在权利4中的属性可用于多个元素,有些属性用于特定的元素,在这里将列出一些主要的元素的属性的定义。1)Style属性给PARAGRAPH或SPECIALTEXT的格式的一个名称。在Word和Framemaker文档中,Style属性是指段落或字符集的格式;在超文本中,若源文本是在&lt;H1&gt;到&lt;H7&gt;标签中,则标签名附加在Style属性,较容易找到使用的是那个头。在超文本中,Style属性也可能包括″classname″,即在&lt;P class=myheading&gt;中,Style属性将被转换成在pXML中的格式&lt;PARAGRAPH Style=″myheading″&gt;。对于如超文本而言,Style属性可能有多个格式,在转换成pXML时将其用逗号隔开。&lt;PARAGRAPH&gt;和&lt;SPECIALTEXT&gt;元素常有该属性。2)css-style属性用于描述超文本源文件。若超文本的paragraph元素有style属性包含有CSS属性,在pXML中将逐字地包含在该元素中。若超文本是<p style=″font-size9;colorred;″,则在pXML中的css-style属性是&lt;PARAGRAPH css-style=″font-size9;colorred;″&gt;。3)number属性是指一组从1开始的数值,用来描述当前元素在文档中的位置,以便于确定元素发生的先后顺序。所有的BODY元素都具有number属性。4)font,font-size,font-fixed,origfont是用于描述与字体相关的属性。其中,在word或pdf文档中,font-size按点值指定,在超文本中是指一个从1到7的相对值,1对应于H1,7对应于H7。font-fixed是true或false,一般而言Courier集子体是固定子体宽度。有&lt;PARAGRAPH&gt;,&lt;SPECIALTEXT&gt;,&lt;TEXT&gt;,&lt;STYLE&gt;等元素具有以上属性。5)emphasis,emphasis-bold,emphasis-italic,emphasis-underline,emphasis-superscript,emphasis-subscript属性用于修饰基本子体,常用于&lt;PARAGRAPH&gt;元素层或在PARAGRAPH中的&lt;SPECIALTEXT&gt;。这些属性赋值为true或false。所有解析器都要求执行emphasis,emphasis-bold,emphasis-italic,and emphasis-underline属性。而superscript和subscript仅用于特定的解析器。有&lt;PARAGRAPH&gt;,&lt;SPECIALTEXT&gt;,&lt;TEXT&gt;,and&lt;STYLE&gt;等元素具有这些属性。6)x,y,height,width,top和left属性常被解析器用在处理特定格式的文档中,如pdf文档。其中x和y坐标是指基于页的坐标,数字是点值或其它相对测定值,依赖于源内容。在一些元素中,常用top和left而不是x和y。所有BODY的块元素有x,y,height和width属性。SPECIALTEXT和TEXT属性只有在数据源为pdf文档时才有以上属性。7)align,valign,leftindent,rightindent,spacebefore,spaceafter和textindent属性用于描述段落层的格式信息。其中,align为left,center,right,justify或blank;valign为top,middle,bottom或blank;leftndent为段落靠左缩进的大小;rightindent为段落靠右缩进的大小;linespacing为行间距,缺省值为1,即单行距;spacebefore为段前值;spaceafter为段后值;textindent为首行缩进值。除了如SPECIALTEXT,LINK内嵌元素外,其它元素都具有这些属性。8)border-left,border-right,border-top,border-bottom属性表示偏左、偏右、偏上、偏下,它们可设为true或false来描述表对象,也可为数值表示边界的长度。这些属性也可有边界颜色。有TABLE、CELL和ROW具有上属性。9)top-padding,left-padding,right-padding,bottom-padding属性设为整数值,表示在表中格的填充颜色。TABLE和CELL有以上属性。10)rowspan和colspan属性设为数值,表示表格的行跨度和列跨度,仅CELL有这些属性。11)width-type和height-type属性仅用于从word文档中生成的表格,可设为auto、percent、points、fixed等。
7.在权利2、3中的文档解析器具有解析其所对应文档中的如下内容1)能解析其所对应文档中的图的功能。在文档解析器中可选择地将bitmap、矢量图、WMF文件功能转换成所需格式的图像,并在pXML中用IMAGE来标注。对于office文档中的OLE对象,是将其视为WMF文件来处理。2)能解析所对应文档中的书签、分隔符、域、页眉、页脚、片断、脚注等功能,分别在pXML中用ANCHOR、BREAK、FIELD、HEADER、FOOTER、SECTION及PARAGRAPH中的Footnote格式来标注。分隔符分为page、column、section等三种类型。3)能解析所对应文档中的文本格式信息,如字体、字体颜色、大小、黑体、斜体等,定义为PARAGRAPH元素中属性。4)能解析文档中的隐藏文本功能,在转换后的pXML中用SPECIALTEXT把隐藏文本进行标记。5)能解析文本中的连接功能,并在pXML中link标注。6)能解析文档中的列举功能,并在pXML中列举用LIST标注、列举中的条用LABEL标注。7)能解析文档中的表功能,采用,并在pXML中用TABLE、TGROUP、TBODY、THEAD及COLUMN等来标注表。8)能解析如pdf、MIF、HTML、XML等文档中的分层结构,在pXML中用FRAME来描述文档中的分层结构。在份层结构中有以下主要元素用Layoutdefs,定义layoutdef的头信息、用MarginDef定义一系列页的边界、用PageDef定义为某页或一系列页中的正方块定义某种类型的块等。
8.在权利2中的如Java、C++等程序文件解析器可解析程序文件中的类名、类路经、类参数等文档内容。
9.在权利3中还包括调用外部程序来进行文档内容的转换,接口为-I{输入},-O{输出}。而在解析其它XML格式文档或纯文本文档的过程中还可调用XSLT来解析文档,生成pXML,调用格式包括XSLT文件名、XSLT参数,例如XSLTArguments=[arg1=value1|arg2=value2|arg3=value3]。
10.XML Hub开放接口,通过动态加载未知格式文档的解析器来实现对未知文档的解析。
全文摘要
本发明提供一种将纯文本、超文本、PDF、Word、RTF、Excel、PowerPoint、程序代码、FrameMaker、Latex等非结构化文件和诸如WML等结构化文件统一转换成一种具有语义的可扩展标记语言的装置和实现方法。可扩展标记语言集中器装置由各个类型文件的解析器组成。本装置通过数据文件解析器读取文件内容,然后将文件内容自动处理成一种易处理的可扩展标记语言形式,记为ProcessibleExtensible Markup Language,简称为pXML。pXML对数据内容起到归整作用,即用格式化的可扩展标记语言来描述数据内容。在解析器定义文件属性,包括源文件类型、须处理的文件内容、输出文件属性等。生成后的pXML可用于内容分析或转换成其它格式的文件。
文档编号G06F17/30GK101055577SQ20061007253
公开日2007年10月17日 申请日期2006年4月12日 优先权日2006年4月12日
发明者陈翌, 何余良 申请人:龙搜(北京)科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1