CN104598635B - 一种基于xml描述的复杂文档自动生成方法 - Google Patents
一种基于xml描述的复杂文档自动生成方法 Download PDFInfo
- Publication number
- CN104598635B CN104598635B CN201510063357.9A CN201510063357A CN104598635B CN 104598635 B CN104598635 B CN 104598635B CN 201510063357 A CN201510063357 A CN 201510063357A CN 104598635 B CN104598635 B CN 104598635B
- Authority
- CN
- China
- Prior art keywords
- document
- template
- pattern
- content
- data
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
- G06F40/154—Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
Abstract
本发明提供了一种基于XML描述的复杂文档自动生成方法,包括:首先,执行第一步骤以获取文档大纲模板描述;随后,执行第二步骤以便对文档大纲模板进行解析;其中在第二步骤中,根据文档数据和文档样式模板定义信息控制进行第三步骤、第四步骤和第五步骤以完成文档相关数据和样式模板的获取;随后,根据文档架构描述和关联索引信息控制第六步骤、第七步骤和第八步骤以完成文档数据获取及其格式的转换;接着,根据文档内容与样式关联信息执行第九步骤和第十步骤以完成文档数据与样式的匹配及组装,最后根据文档的完成情况进入第十一步骤以完成最终文档的输出。
Description
技术领域
本发明涉及文档生成领域,更具体地说,本发明涉及一种基于XML(ExtensibleMarkup Language,可扩展标记语言)描述的复杂文档自动生成方法。
背景技术
一直以来,文档都是承载信息的重要工具之一,是人与人之间互通信息的重要手段。因所要描述信息内容的不同,文档的种类缤纷多彩,有以文字信息为主的文本文件(TXT)、富文本文件(RTF、DOC),有以图表数据为主的电子表格文件(Excel),有以图像演示为主的演示文件(PPT),有以图形绘制为主的绘图文件(Visio)。并且,因各种存储方式和各种工具解析方式的不同,文档及其信息的格式也存在着千差万别。
随着政府、企业办公自动化步伐的逐步推进,对信息内容的多样性要求越来越高,同时对信息格式的规范性要求也越来越严格,同样对信息向文档自动化转化的需求也越来越复杂。如何既能满足文档内容的丰富多样性,又能满足文档格式的规范化和标准化,同时又保证较高效的性能输出,是文档自动生成技术不懈探索和努力的目标。
现有的文档生成技术一般依赖于特定的工具或组件,例如利用Microsoft Office的DCOM组件进行Word、Excel、PowerPoint等文档的生成,利用Office OpenXml SDK进行Word、Excel、PowerPoint等文档的生成,利用iText java类库生成PDF文档,利用各种编程语言的基础库函数生成Html、RTF、Text等格式要求较简单的文档。
传统的文档自动生成技术,受文档查看工具和文档编码格式的限制,对文档自动生成开发工具和文档查看工具的依赖性较大。简单文档对格式要求不高,自动生成的手段也比较灵活。但对于复杂文档而言,其内容信息的描述受到文档模板格式、样式的约束,同时文档模板格式、样式也反制于文档内容信息。
随着Office OpenXml标准的确立,对于Word、Excel、PowerPoint等复杂文档而言,无论是文档内容信息,还是文档模板格式、样式,都可以统一地使用Xml语言进行描述,这就给复杂文档的内容和样式的分离带来了可能性。
然而,Office OpenXml标准主要是由Microsoft公司提出的,其提供的OfficeOpenXml SDK开发工具,依赖于Windows操作系统环境及Visual Studio编程开发环境,不利于Office OpenXml标准的推广和跨平台使用。
发明内容
本发明所要解决的技术问题是针对现有技术中存在上述缺陷,提供一种基于Xml描述的复杂文档的自动生成技术,其能够实现文档大纲、文档数据和文档样式分离,并且不受操作系统环境和文档工具限制自动生成复杂文档。
根据本发明,提供了一种基于XML描述的复杂文档自动生成方法,包括:首先,执行第一步骤以获取文档大纲模板描述;随后,执行第二步骤以便对文档大纲模板进行解析;其中在第二步骤中,根据文档数据和文档样式模板定义信息控制进行第三步骤、第四步骤和第五步骤以完成文档相关数据和样式模板的获取;随后,根据文档架构描述和关联索引信息控制第六步骤、第七步骤和第八步骤以完成文档数据获取及其格式的转换;接着,根据文档内容与样式关联信息执行第九步骤和第十步骤以完成文档数据与样式的匹配及组装,最后根据文档的完成情况进入第十一步骤以完成最终文档的输出。
优选地,第三步骤用于获取文档数据组模板,数据组模板描述了文档内容的组合和获取方法以及文档内容分组的样式索引;第四步骤用于获取文档样式组模板,文档样式组模板定义了文档内容样式索引,并且对文档内容样式的具体标识进行了编排;第五步骤用于获取文档的属性模板。
优选地,第六步骤用于根据文档大纲模板中文档架构描述和关联索引信息涉及的宏观的文档内容分组信息,从第三步骤获取到的文档数据组模板中提取相应的文档内容分组描述并进行解析,获取文档内容数据的模板信息。
优选地,第七步骤用于根据第六步骤获取到的文档内容数据的模板信息,获取文档数据模板。
优选地,第八步骤用于根据第七步骤获取到的文档数据模板,获取原始数据,并将原始数据进行格式转换。
优选地,第九步骤用于将第八步骤格式转换后的文档数据与第四步骤获取到文档内容样式索引进行关联分析,根据文档内容分组关联的文档内容样式索引,以及文档具体内容关联的文档内容样式索引序号,将格式转换后的文档数据中的文档具体内容与具体的文档内容样式标识进行匹配。
优选地,第十步骤用于将第九步骤样式匹配后的文档数据与第五步获取到的各类文档样式进行组装。
优选地,第十一步骤用于根据文档格式需求,将组装好的带样式的文档数据进行格式化输出,形成最终文档。
附图说明
结合附图,并通过参考下面的详细描述,将会更容易地对本发明有更完整的理解并且更容易地理解其伴随的优点和特征,其中:
图1示意性地示出了根据本发明优选实施例的基于Xml描述的复杂文档模板结构示意图。
图2示意性地示出了根据本发明优选实施例的基于Xml描述的复杂文档的自动生成方法的流程图。
图3示意性地示出了根据本发明优选实施例的基于Xml描述的复杂文档模板关系示意图。
图4示意性地示出了根据本发明优选实施例的复杂文档大纲模板的Xml描述示例。
图5示意性地示出了根据本发明优选实施例的复杂文档数据组模板的Xml描述示例。
图6示意性地示出了根据本发明优选实施例的复杂文档样式组模板的Xml描述示例。
图7示意性地示出了根据本发明优选实施例的复杂文档数据模板的Xml描述示例。
图8示意性地示出了根据本发明优选实施例的复杂文档分节模板的Xml描述示例。
图9示意性地示出了根据本发明优选实施例的基于Xml描述的文档数据与样式模板转换成Office OpenXml过程示例。
需要说明的是,附图用于说明本发明,而非限制本发明。注意,表示结构的附图可能并非按比例绘制。并且,附图中,相同或者类似的元件标有相同或者类似的标号。
具体实施方式
为了使本发明的内容更加清楚和易懂,下面结合具体实施例和附图对本发明的内容进行详细描述。
本发明提出的基于Xml描述的复杂文档的自动生成技术,为复杂文档的自动生成提供了一种文档大纲、文档数据和文档样式三者分离的文档组织和描述方法(如图1所示),为复杂文档的自动生成提供了一种跨平台的、扩展性好的复杂文档自动生成技术框架(如图2所示)。
本发明可包括(1)复杂文档大纲、数据和样式的分离组织和描述方法和(2)复杂文档自动生成技术框架。
(1)复杂文档大纲、数据和样式的分离组织和描述方法
本发明将复杂文档的大纲、数据和样式进行分离组织和描述。复杂文档的组织和描述如图1所示,主要有以下几方面:
第一方面,复杂文档的大纲是对文档结构的宏观描述,是按照内容对文档进行层次化分解、定义和管理,是对文档数据和样式模板进行统一组织,一般包括文档架构描述、文档关联索引、文档数据模板定义、文档样式模板定义和文档属性定义等部分。文档架构描述是按照内容对整个文档进行层次化分解和组织,为文档主体框架的静态展现。文档关联索引定义文档层次与元素间的引用和关联关系,将文档架构的各个组成部分进行有机融合。文档数据模板定义是文档数据模板的入口,描述了文档数据相关模板的获取方法。文档样式模板定义是文档样式模板的入口,描述了文档样式相关模板的获取方法。文档属性定义包含文档的全局的、通用的属性描述,可以在文档的相关数据和样式模板中进行引用。
第二方面,复杂文档的数据是对文档元数据的组织和描述,一般包括文档具体内容、文档内容分组、文档内容与样式关联等。文档具体内容是文档需要实际展现的数据,是对原始数据的处理和组织。由于文档内容呈现多样性,因此在文档具体内容模板设计时需考虑其对原始数据的组织形式,如正文普通段落组织形式、列表组织形式、树型分级组织形式等。文档内容分组是在文档大纲的宏观组织下,进一步细化对文档内容的组织,也可以视为粗粒度的文档内容。文档内容分组方便了文档内容的组织和复用,如文字处理类文档根据内容可划分为封面、目录页、正文、附录,正文又可以分为多个章节等。文档内容与样式关联是确定文档具体内容最终输出的样式,同一内容在不同文档或文档的不同位置其表现可能是不一样的。文档内容与样式关联是一个间接关系,文档内容所属的文档内容分组一般与一个文档内容样式索引进行关联,文档具体内容通过引用文档内容样式索引的序号间接地与文档具体内容样式进行关联。
第三方面,复杂文档的样式是对文档样式的组织和描述,一般包括文档整体样式、文档结构样式、文档内容样式和文档内容样式索引。文档整体样式针对于整个文档设置的样式,如文字处理类文档中的页眉页脚、演示文稿类文档中的母版设置等。文档结构样式针对于文档结构层次设置的样式,如文字处理类文档中的分节。文档内容样式针对于上文提到的文档具体内容设置的样式,如表格样式、段落样式、编号样式、字体样式等。文档内容样式索引分组地对文档内容样式进行编排,文档内容通过引用内容样式序号间接地与内容样式进行关联,增强了文档样式的灵活性和多样性。
(2)复杂文档自动生成技术框架
本发明首先获取文档大纲模板并解析,然后根据解析结果获取文档相关的数据和样式模板,接着对数据模板进行解析和匹配样式,最后对带样式的文档数据进行组装并格式化输出为最终文档。复杂文档自动生成框架如图2所示,其主要步骤如下:
第一步骤S1,用于获取文档大纲模板描述。
第二步骤S2,用于对文档大纲模板进行解析。文档大纲模板解析是复杂文档自动生成的主控制过程,首先根据文档数据和文档样式模板定义信息控制进行第三步骤S3、第四步骤S4和第五步骤S5完成文档相关数据和样式模板的获取(如果已获取过,则跳过相应步骤),随后根据文档架构描述和关联索引信息控制第六步骤S6、第七步骤S7和第八步骤S8完成文档数据获取及其格式的转换,接着根据文档内容与样式关联信息执行第九步骤S9和第十步骤S10以完成文档数据与样式的匹配及组装,最后根据文档的完成情况进入第十一步骤S11以完成最终文档的输出。
其中,第三步骤S3用于获取文档数据组模板,数据组模板描述了文档内容的组合和获取方法,以及文档内容分组的样式索引。
第四步骤S4用于获取文档样式组模板,文档样式组模板定义了文档内容样式索引,并且对文档内容样式的具体标识进行了编排。
第五步骤S5用于获取文档字体、段落、分节、编号、页眉、页脚等属性模板,这些模板具体定义了文档样式的各个方面。
第六步骤S6用于根据文档大纲模板中文档架构描述和关联索引信息涉及的宏观的文档内容分组信息,从第三步骤S3获取到的文档数据组模板中提取相应的文档内容分组描述并进行解析,获取文档内容数据的模板信息。
第七步骤S7用于根据第六步骤S6获取到的文档内容数据的模板信息,获取文档数据模板。
第八步骤S8用于根据第七步骤S7获取到的文档数据模板,获取原始数据,并将原始数据进行格式转换。
第九步骤S9用于将第八步骤S8格式转换后的文档数据与第四步获取到文档内容样式索引进行关联分析,根据文档内容分组关联的文档内容样式索引,以及文档具体内容关联的文档内容样式索引序号,将格式转换后的文档数据中的文档具体内容与具体的文档内容样式标识进行匹配。
第十步骤S10用于将第九步样式匹配后的文档数据与第五步获取到的各类文档样式进行组装。
第十一步骤S11用于根据文档格式需求,将组装好的带样式的文档数据进行格式化输出,形成最终文档。
【具体实例1】
以文字处理类文档模板的组织和描述为例,文档的大纲、数据和样式模板组成及其相互关系情况如图3所示,文档模板划分为九个类别:大纲、数据组、元数据、样式组、分节、样式(字体、表格、段落)、页眉、页脚、编号。
大纲模板用于描述复杂文档的大纲,是对文档结构的宏观描述。一个复杂文档的生成过程中,可能用到数十个文档模板,大多数文档模板在多个不同文档的生成过程中是可共用的,但对于某一个文档来说,只有大纲模板才是必须的。大纲模板中,通过Layer→Group[Layer]的多级层次化设计,实现了对文档架构的逐层细化和对文档的宏观结构描述。例如图4中,Schema节点为大纲模板的根节点,因上下文内容和分节样式的差异性,设置Layer(层次)子节点将文档划分为“封面”、“目录页”、“正文”等若干部分,并通过设置Layer节点的SectionID属性来应用不同的分节(Section)样式。其中“正文”Layer节点中,因上下文分节样式的差异性,嵌套了一个“正文横页”Layer子节点来改变其分节样式。Layer节点下一般设置有Group(数据组)子节点,用于承载文档内容的宏观描述。
大纲模板的Schema节点下还设置有Propertys子节点,其包含了若干个Property子节点,用于定义文档全局的、通用的属性,便于在文档的相关数据和样式模板中加以引用。例如图4中,ID为“Organization”的Property节点,用于描述文档编制单位的名称,需要时可以在文档的页眉、页脚、封面、正文等样式或数据模板中引用。
大纲模板的Schema节点下还设置有Parts子节点,其包含了若干Part子结点,用于描述所关联的文档数据模板和文档样式模板的定义。例如图4中,Type(类型)属性为“Groups”的Part节点,描述了如何获取用于组织文档内容数据的数据组模板,上文Layer节点下的Group子节点的详细信息,就是需要从该Part对应的模板文件中获取;Type属性为“GroupStyles”的Part节点,描述了如何获取用于建立文档内容样式索引的样式组模板。所有Part节点通过ID属性建立唯一性标识,通过对Control属性的解析获取相应的模板。
数据组模板是对元数据的组织,是介于文档架构和文档数据之间粒度较大的数据描述。数据组模板中,通过Group→Source[Group]的多级层次化设计,实现了文档内容的分级组织。例如图5中,Groups节点为数据组模板的根节点,通过ID属性可追溯到大纲模板中Type属性为“Groups”的Part节点的ID属性。Groups节点下设置有Group子节点,用于细化文档内容,Group节点可以包含若干个文档内容元数据(Source)或若干个文档内容分组数据(Group)。例如图5中,ID属性为“Body_003”的Group节点,嵌套了一个ID属性为“Body_004”的Group子节点。有的Group节点的ID属性可追溯到大纲模板中Group节点ID属性,其是通过对文档大纲解析来获取文档数据的入口。Group节点的StyleID属性,用于表示其所包含的文档内容样式索引的定义,通过该值在样式组模板中可以找到相对应的文档内容样式索引的描述。Group节点下一般设置有Source子节点,描述了如何获取文档具体内容的元数据模板。所有Source节点通过对Control属性的解析获取相应的模板。
样式组模板是对文档内容样式的组织,分组地对文档内容样式进行了编排,并与数据组直接关联。数据组所包含的文档内容通过引用内容样式序号间接地与内容样式进行关联。例如图6中,GroupStyles节点为样式组模板的根节点,通过ID属性可追溯到大纲模板中Type属性为“GroupStyles”的Part节点的ID属性。GroupStyles节点下设置有GroupStyle子节点,编排了文档内容样式,其ID属性与数据组模板Group节点的StyleID属性对应。GroupStyle节点下设置有Paragraph、Character和Table子节点,分别用于定义和描述段落、文字和表格等文档内容的样式。Paragraph、Character和Table等节点下均设置有SN子节点,其No属性是样式索引序号,Value属性描述了样式模板中文档内容样式的标识。SN节点No属性的编排与文档具体内容密切相关且遵循规律,例如ID属性为“4001”的GroupStyle节点的Paragraph子节点下SN子节点No属性的编排,从1~9分别对应于一级~九级标题段落的样式。
元数据模板是对文档具体内容的描述,是对原始数据的处理和组织。对于文字处理类文档而言,根据原始数据的复杂程度,其内容组织形式一般可分为普通段落数据组织、列表数据组织和树型分级数据组织。例如图7中,展示的是一个文档封面页的元数据模板,其原始数据比较简单,为普通段落数据组织方式。例如图7中,Source节点为元数据模板的根节点,通过ID属性追溯到数据组模板中Source节点的ID属性。Source节点下一般有TextList、OOXmlList和Context等子节点。TextList节点包含若干个Text子节点,定义了如何从原始数据中获取数据文本。OOXmlList节点包含若干个OOXml子节点,定义了可复用的Office OpenXml描述的文档内容片段。Context节点利用Office OpenXml对文档具体内容进行组织,并通过引用文档内容样式索引的序号与文档具体内容样式进行关联。例如图7中,w:tblPr节点下通过SN索引序号“1”,关联到样式组模板ID属性为“1001”的GroupStyle节点下Table(表格样式)子节点下No属性为“1”的SN子节点,并通过索引“COVER_TABLE”标识在样式模板中找到具体的表格样式定义;w:pPr节点下通过SN索引序号“1”,关联到样式组模板ID属性为“1001”的GroupStyle节点下Paragraph(段落样式)子节点下No属性为“1”的SN子节点,并通过索引“COVER_LEFT”标识在样式模板中找到具体的段落样式定义。在Context节点下,通过TextRef节点和OOXmlRef节点分别实现对TextList节点中Text定义和OOXmlList节点中OOXml定义的引用。
遵循Office OpenXml标准并结合文档的存储特点,样式(字体、表格、段落)、页眉、页脚、编号等样式模板的描述遵循Office OpenXml标准,获取相应模板后根据上下文需求修改并按相应命名规则载入文档中。样式模板对应于style.xml文件,页眉模板对应于header.xml文件,页脚模板对应于footer.xml文件,编号模板对应于numbering.xml文件。
分节模板是对文档分节样式的描述,多出现于文字处理类文档中。例如图8中,Sections节点为样式组模板的根节点,通过ID属性可追溯到大纲模板中Type属性为“Sections”的Part节点的ID属性。Sections节点下设置有Section子节点,利用OfficeOpenXml对文档分节样式进行描述,其ID属性与大纲模板Layer节点的SectionID属性对应。
【具体实例2】
以文字处理类文档的自动生成过程为例,实例的大纲模板、数据组模板、样式组模板、数据模板、分节模板的描述分别参考图4、图5、图6、图7、图8。
文档的自动生成过程具体步骤如下:
1)从数据源中获取如图4所示的大纲模板,包含Layer、Propertys和Parts等子节点。
2)对大纲模板的各级节点及其属性进行解析。先解析Propertys节点,获取文档的公共属性信息。然后解析Parts节点,获取文档的相关数据和样式模板定义。最后解析Layer节点及其Group子节点,对文档的架构进行逐层解析。
3)根据大纲模板Type属性为“Groups”的Parts节点解析情况,获取并加载数据组模板。例如,根据Type属性为“Groups”的Parts节点的ID属性值“GroupCustom001”和Control属性值“GroupCustom001Path”,从数据源相应的路径中获取到ID为“GroupCustom001”的文档数据组模板(如图5所示)。
4)根据大纲模板Type属性为“GroupStyles”的Parts节点解析情况,获取并加载样式组模板。例如,根据Type属性为“GroupStyles”的Parts节点的ID属性值“GroupStylesCustom001”和Control属性值“GroupStylesCustom001Path”,从数据源相应的路径中获取到ID为“GroupStylesCustom001”的文档样式组模板(如图6所示)。
5)根据大纲模板Type属性为“Sections”、“Styles”、“Numbering”、“Header”、“Footer”等Parts节点解析情况,分别获取并加载分节(如图8所示)、样式(字体、段落、表格)、编号、页眉、页脚等属性模板。除分节模板外,其他模板描述均遵循Office OpenXml标准,在本发明中略过。
6)根据第2步Group节点的解析情况,在第3步获取到的文档数据组模板中查找符合条件的数据组并进行解析。例如,首先根据大纲模板中ID属性为“Cover_001”的Group节点,在数据组模板中找到相应的ID属性为“Cover_001”的Group节点。然后对数据组模板中找到的Group节点进行解析,查找其Group子节点和解析Source子节点。
7)根据第6步Source节点的解析情况,获取对应的文档数据模板。例如,根据数据组中ID属性为“Cover_001”和Control属性为“DocCoverPath”的Source节点,从数据源相应的路径中获取到ID为“Cover_001”的文档数据模板(如图7所示)。
8)根据第7步获取的文档数据模板描述,从数据源中获取文档原始数据和数据模板对应的格式转换Xslt模板。利用Xslt转换技术,对文档数据模板和文档原始数据进行融合和转换为含样式索引序号的Office OpenXml中间数据。
9)查找第8步格式转换后的文档数据中的样式索引序号,并依次与第4步获取的样式组模板中的样式索引序号进行匹配。例如,数据模板中w:pPr节点下SN索引序号“1”的匹配。首先,根据数据模板对应的Source节点所归属的Group节点的StyleID属性值“1001”,在样式组模板中找到ID属性为“1001”的GroupStyle节点。然后,根据数据模板w:pPr(段落样式的Office OpenXml描述)节点类型,在样式组模板GroupStyle节点下找到Paragraph(段落样式)子节点。接着,根据数据模板SN索引序号“1”,在样式组模板Paragraph节点下找到No属性为“1”的SN子节点。最后,使用样式组模板SN节点的Value属性值“COVER_LEFT”,构建文档段落样式引用的Office OpenXml描述(例如:<w:pStyle w:val="COVER_LEFT"/>)。
10)遵循先数据组级别再大纲级别、依据数据先后位置顺序的组装规则,将第9步样式匹配好的文档数据依次进行组装。数据组装时,根据大纲模板需求(Layer的SectionID属性)或数据模板需求(各级样式的SN的Load属性)将分节、字体、段落等样式的具体OfficeOpenXml描述一并进行组装。
11)如果大纲模板中文档架构解析未完成,则继续进行第3~10步工作。如果大纲模板中文档架构解析已完成,则根据文档格式需求,将组装好的带样式的文档数据进行格式化输出,形成最终文档。
本发明对复杂文档的大纲、数据和样式进行分离组织和描述,构建了完整的复杂文档自动生成技术框架,实现了基于Xml描述和Xslt变换的,文档数据与样式模板融合并转换为Office OpenXml的文档生成技术(例如如图9所示)。
本发明相对于传统的文档自动生成技术,具有良好的灵活性、高效性和可扩展性。
本发明提供的复杂文档大纲、数据和样式的分离组织和描述方法,突破了文档内容信息描述所受到的文档格式、样式的约束和限制。对复杂文档的文档架构逐层细化,对文档数据与样式的分离解析,使复杂文档的组织变得更清晰灵活。基于Xml描述的文档大纲、数据和样式组织,可实现复杂文档内容的跨平台生成和复用,具有良好的可扩展性。
本发明提供的复杂文档自动生成技术框架,使文档自动生成流程更加灵活和高效。结合文档大纲、数据和样式的分离描述,该技术框架使得单个复杂文档的多个文档内容的并发生成成为可能,同时极大程度的方便了用户对文档内容的组织和定制。该技术框架,即为用户提供了更为灵活的文档架构与内容定制接口,又可整合相关性和相似度强的文档大纲、样式和内容,避免了重复的文字输入工作,较大程度的提高了工作效率。
此外,需要说明的是,除非特别指出,否则说明书中的术语“第一”、“第二”、“第三”等描述仅仅用于区分说明书中的各个组件、元素、步骤等,而不是用于表示各个组件、元素、步骤之间的逻辑关系或者顺序关系等。
可以理解的是,虽然本发明已以较佳实施例披露如上,然而上述实施例并非用以限定本发明。对于任何熟悉本领域的技术人员而言,在不脱离本发明技术方案范围情况下,都可利用上述揭示的技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (1)
1.一种基于XML描述的复杂文档自动生成方法,其特征在于包括:
首先,执行第一步骤以获取文档大纲模板描述;
随后,执行第二步骤以便对文档大纲模板进行解析;其中在第二步骤中,根据文档数据模板和文档样式模板定义信息控制进行第三步骤、第四步骤和第五步骤以完成文档相关数据和样式模板的获取;
随后,根据文档架构描述和关联索引信息控制第六步骤、第七步骤和第八步骤以完成文档数据获取及其格式的转换;
接着,根据文档内容与样式关联信息执行第九步骤和第十步骤以完成文档数据与样式的匹配及组装,最后根据文档的完成情况进入第十一步骤以完成最终文档的输出;
其中,第三步骤用于获取文档数据组模板,数据组模板描述了文档内容的组合和获取方法以及文档内容分组的样式索引;
第四步骤用于获取文档样式组模板,文档样式组模板定义了文档内容样式索引,并且对文档内容样式的具体标识进行了编排;
第五步骤用于获取文档的属性模板;
第六步骤用于根据文档大纲模板中文档架构描述和关联索引信息涉及的宏观的文档内容分组信息,从第三步骤获取到的文档数据组模板中提取相应的文档内容分组描述并进行解析,获取文档内容数据的模板信息;
第七步骤用于根据第六步骤获取到的文档内容数据的模板信息,获取文档数据模板;
第八步骤用于根据第七步骤获取到的文档数据模板,获取原始数据,并将原始数据进行格式转换;
第九步骤用于将第八步骤格式转换后的文档数据与第四步骤获取到文档内容样式索引进行关联分析,根据文档内容分组关联的文档内容样式索引,以及文档具体内容关联的文档内容样式索引序号,将格式转换后的文档数据中的文档具体内容与具体的文档内容样式标识进行匹配;
第十步骤用于将第九步骤样式匹配后的文档数据与第五步获取到的各类文档样式进行组装;
第十一步骤用于根据文档格式需求,将组装好的带样式的文档数据进行格式化输出,形成最终文档;
其中,文档大纲是对文档结构的宏观描述,其中按照内容对文档进行层次化分解、定义和管理,对文档数据模板和文档样式模板进行统一组织;文档大纲包括文档架构描述、文档关联索引、文档数据模板定义、文档样式模板定义和文档属性定义;文档架构描述是按照内容对整个文档进行层次化分解和组织,为文档主体框架的静态展现;文档关联索引定义文档层次与元素间的引用和关联关系,将文档架构的各个组成部分进行融合;文档数据模板定义是文档数据模板的入口,描述了文档数据相关模板的获取方法;文档样式模板定义是文档样式模板的入口,描述了文档样式相关模板的获取方法;文档属性定义包含文档的全局的、通用的属性描述,能在文档的相关数据和样式模板中进行引用;
文档数据是对文档元数据的组织和描述,包括文档具体内容、文档内容分组、文档内容与样式关联;文档具体内容是文档需要实际展现的数据,是对原始数据的处理和组织;文档内容分组是在文档大纲的宏观组织下,进一步细化对文档内容的组织;文档内容与样式关联是确定文档具体内容最终输出的样式;文档具体内容通过引用文档内容样式索引的序号间接地与文档具体内容样式进行关联;
文档样式是对文档的样式的组织和描述,包括文档整体样式、文档结构样式、文档内容样式和文档内容样式索引;文档整体样式针对于整个文档设置的样式;文档结构样式针对于文档结构层次设置的样式;文档内容样式针对于上文提到的文档具体内容设置的样式;文档内容样式索引分组地对文档内容样式进行编排,文档内容通过引用内容样式序号间接地与内容样式进行关联。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510063357.9A CN104598635B (zh) | 2015-02-06 | 2015-02-06 | 一种基于xml描述的复杂文档自动生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510063357.9A CN104598635B (zh) | 2015-02-06 | 2015-02-06 | 一种基于xml描述的复杂文档自动生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104598635A CN104598635A (zh) | 2015-05-06 |
CN104598635B true CN104598635B (zh) | 2018-01-19 |
Family
ID=53124420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510063357.9A Active CN104598635B (zh) | 2015-02-06 | 2015-02-06 | 一种基于xml描述的复杂文档自动生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104598635B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106469142B (zh) * | 2015-08-21 | 2019-05-31 | 珠海金山办公软件有限公司 | 一种对大纲项目进行排版的方法和装置 |
CN105930323B (zh) * | 2015-09-06 | 2019-05-24 | 中国银联股份有限公司 | 一种文件生成方法和装置 |
CN106557454B (zh) * | 2015-09-30 | 2021-04-06 | 腾讯科技(深圳)有限公司 | 文档到表格的转换方法及转换系统 |
CN105528418B (zh) * | 2015-12-04 | 2019-06-07 | 东软集团股份有限公司 | 一种设计文档生成方法及装置 |
CN107544946A (zh) * | 2016-06-23 | 2018-01-05 | 珠海金山办公软件有限公司 | 一种文档展现方法及装置 |
CN110196965B (zh) * | 2018-02-26 | 2021-04-09 | 北大方正集团有限公司 | XML文件转换Word文件的方法及装置 |
CN109271613B (zh) * | 2018-09-25 | 2022-12-06 | 四川译讯信息科技有限公司 | 一种pdf文件解析方法 |
CN109408778A (zh) * | 2018-10-19 | 2019-03-01 | 成都信息工程大学 | 一种基于可视化配置的文档生成控制系统及方法 |
CN110569488A (zh) * | 2019-08-28 | 2019-12-13 | 福建威盾科技集团有限公司 | 一种基于xml标记语言的模块化模板word生成方法 |
CN112528080A (zh) * | 2019-09-03 | 2021-03-19 | 北京国双科技有限公司 | 一种docx文件文本内容的提取方法及装置 |
CN110909520A (zh) * | 2019-11-14 | 2020-03-24 | 北京天融信网络安全技术有限公司 | 一种文档构建方法及电子设备 |
CN111046629B (zh) * | 2019-12-16 | 2022-03-01 | 北大方正集团有限公司 | 大纲显示方法、装置及设备 |
CN113361256A (zh) * | 2021-06-24 | 2021-09-07 | 上海真虹信息科技有限公司 | 一种基于Aspose技术的Word文档快速解析方法 |
CN113283228A (zh) * | 2021-07-22 | 2021-08-20 | 北京关键科技股份有限公司 | 文档生成方法、装置、电子设备及存储介质 |
CN113723063B (zh) * | 2021-09-02 | 2023-06-13 | 四川启睿克科技有限公司 | 一种rtf转html并在pdf文件实现效果的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1462400A (zh) * | 2001-02-28 | 2003-12-17 | 皇家菲利浦电子有限公司 | 大纲、语法分析方法和基于一种大纲生成一个位流的方法 |
CN103577573A (zh) * | 2013-11-05 | 2014-02-12 | 中科信息安全共性技术国家工程研究中心有限公司 | 基于Word2007/Open XML生成动态复杂表格的智能文档引擎技术 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013138179A1 (en) * | 2012-03-13 | 2013-09-19 | Google Inc. | System and method for providing a binary representation of a web page |
-
2015
- 2015-02-06 CN CN201510063357.9A patent/CN104598635B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1462400A (zh) * | 2001-02-28 | 2003-12-17 | 皇家菲利浦电子有限公司 | 大纲、语法分析方法和基于一种大纲生成一个位流的方法 |
CN103577573A (zh) * | 2013-11-05 | 2014-02-12 | 中科信息安全共性技术国家工程研究中心有限公司 | 基于Word2007/Open XML生成动态复杂表格的智能文档引擎技术 |
Also Published As
Publication number | Publication date |
---|---|
CN104598635A (zh) | 2015-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104598635B (zh) | 一种基于xml描述的复杂文档自动生成方法 | |
EP1672537B1 (en) | Data semanticizer | |
Buckley | PySLHA: a pythonic interface to SUSY Les Houches accord data | |
CN104239073B (zh) | 一种数据维护系统快速原型开发系统及方法 | |
US9805112B2 (en) | Method and structure for managing multiple electronic forms and their records using a static database | |
CN107992476B (zh) | 面向句子级生物关系网络抽取的语料库生成方法及系统 | |
US20150026159A1 (en) | Digital Resource Set Integration Methods, Interfaces and Outputs | |
CN110162297A (zh) | 一种源代码段自然语言描述自动生成方法及系统 | |
CN104598636B (zh) | 复杂文档分离组织方法以及复杂文档自动生成方法 | |
CN113283216A (zh) | 网页内容显示方法、装置、设备及存储介质 | |
CN115358200A (zh) | 一种基于SysML元模型的模板化文档自动生成方法 | |
CN116245177A (zh) | 地理环境知识图谱自动化构建方法及系统、可读存储介质 | |
KR20070099689A (ko) | 데이터베이스 관리 장치 및 데이터베이스 관리 방법 | |
Borsje et al. | Graphical query composition and natural language processing in an RDF visualization interface | |
JP2003233528A (ja) | あるデータスキーマから別のデータスキーマへデータを変換するための変換を導出する方法及びシステム、データスキーマが埋め込まれ得るオントロジーモデルを構築する方法及びシステム、あるデータスキーマから別のデータスキーマへデータを変換するための命令プログラムを収録しておりコンピュータが読込み可能な一つ以上の媒体を含む製品並びにデータスキーマが埋め込まれ得る共通のオントロジーモデルを構築するための命令プログラムを収録しておりコンピュータが読込み可能な一つ以上の媒体を含む製品 | |
Ballard et al. | Bidirectional Text-to-Model Element Requirement Transformation | |
US8949710B2 (en) | Grammar and method for integrating XML data from multiple sources | |
CN106649219B (zh) | 一种通信卫星设计文件自动生成方法 | |
CN114281797A (zh) | 基于敏捷低代码平台快速创建基层数据汇聚仓库的方法 | |
Saadatfar et al. | Best Practice for DSDL-based Validation | |
Votruba | Structured knowledge acquisition for asbru | |
Lacasta et al. | Generating an urban domain ontology through the merging of cross-domain lexical ontologies | |
Samsonova et al. | Processing of natural language queries to a relational database | |
Piros | New automatic interpreter for complex UDC numbers | |
Miñarro-Giménez et al. | A semantic query interface for the OGO platform |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |