CN107045495B - 一种基于描述的xml增量抽取方法 - Google Patents
一种基于描述的xml增量抽取方法 Download PDFInfo
- Publication number
- CN107045495B CN107045495B CN201710067077.4A CN201710067077A CN107045495B CN 107045495 B CN107045495 B CN 107045495B CN 201710067077 A CN201710067077 A CN 201710067077A CN 107045495 B CN107045495 B CN 107045495B
- Authority
- CN
- China
- Prior art keywords
- attribute
- node
- rule
- data
- configuration
- 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
- 238000000605 extraction Methods 0.000 title claims abstract description 23
- 238000000034 method Methods 0.000 claims abstract description 26
- 238000012986 modification Methods 0.000 claims description 22
- 230000004048 modification Effects 0.000 claims description 22
- 230000009466 transformation Effects 0.000 claims 2
- 238000013500 data storage Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/123—Storage facilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
-
- 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/14—Tree-structured documents
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于描述的XML增量抽取方法,属于应用软件数据存储领域,本发明通过用户在配置文件中配置某一类型基础数据的属性控制配置,同时为每个基础数据添加属性控制规则,来实现对扩展属性中增量的抽取与存储。通过本方法,可以减少在存储扩展属性时造成的数据冗余,同时可以达到修改基础数据的同时同步修改扩展数据相应内容的功能,减少重复的工作,增加工作效率。
Description
技术领域
本发明涉及应用软件数据存储领域,尤其涉及一种基于描述的XML增量抽取方法。
背景技术
XML,即可扩展标记语言,是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然可扩展标记语言占用的空间比二进制数据要占用更多的空间,但可扩展标记语言极其简单易于掌握和使用。
现如今在很多系统中都大量的应用到XML来存储数据,并且将某些数据作为基础数据,这部分数据并不会频繁的变动,同时又存在基于这些基础数据进行调整而产生的扩展数据。举例来说,系统中一个表单作为基础数据,而为了应对某用户的个性化要求,对这个表单的背景图片和控件位置等内容进行调整,从而生成另一个表单作为扩展数据。这样的操作会造成以下两个问题:第一,随着业务的不断增多,扩展数据的量会越来越大,而事实上,扩展数据和基础数据之间的差别往往是非常小的,这也就造成了大量的数据冗余;第二,有些对于基础数据的修改,往往希望同时展现的扩展数据上。例如,在基础表单上增加了一个新的属性并添加了一个控件,那么扩展表单上就也需要去手动添加同样的属性和控件。如果扩展表单数量更多,那么工作量也就随之倍增,这样就无形中增加了很多重复的工作,影响工作效率,同时又容易出现错误。
发明内容
为了解决以上技术问题,本发明提出了一种将基于XML描述的基础数据与其扩展数据对比,并将两者的不同以增量的方式进行抽取与存储的方法。
将扩展数据中修改的内容以增量的方式提取并存储,有效的解决了上述第一个问题。同时在获取扩展数据时,将增量与基础数据按照规则合并,使得基础数据中后改的数据也能反应到扩展数据中,来解决上述的第二个问题。
本发明的技术方案是:
一种基于描述的XML增量抽取方法,它包含以下步骤:
A.定义属性控制配置。
B.定义属性控制规则。
C.调用增量抽取方法。
通过用户在配置文件中配置某一类型基础数据的属性控制配置,同时为每个基础数据添加属性控制规则,来实现对扩展属性中增量的抽取与存储。
在步骤A,定义某一类基础数据的属性控制配置。这类数据具有高度相似的结构(节点的名称及父子关系相同,数量可能存在差异)。通过属性控制配置,来确定某一类基础数据中各类节点的增量抽取规则。属性控制配置的属性包括:元素名称、配置类型、父配置节点ID、ID属性名称和属性配置集合五个属性。具体描述如下:
属性配置集合中包含了一系列属性配置明细,属性配置明细包括节点属性名称、节点属性类型、属性修改规则和子节点修改规则四个属性。具体描述如下:
在步骤B,定义某个基础数据的所有需要增量操作的属性的控制规则。某一类基础数据通常会存在很多基础数据,而每一个基础数据上特定属性的控制规则可能不尽相同,这就需要针对特定的要求制定一套属于该基础数据的属性控制规则。
属性规则中会按照XML数据的父子结构划分,每一层结构会有一套规则,最后将所有层次的规则记录到一个集合中,形成一套属性控制规则。
每一层规则的属性包括:规则ID、规则标题、ID属性名称、父规则ID、父规则ID属性名称、父规则标题、属性规则集合和子规则集合。具体描述如下:
在步骤B,属性控制规则中记录对应节点中所有属性的控制规则。控制规则分为三类:允许修改、不允许修改和系统默认。当设置为系统默认时,会去其父规则的子规则集合中,寻找该类型子规则中设置的默认控制规则,若仍未系统默认,则再去父规则的父规则中查找。这样就要求,最外层规则的属性和其子规则集合中定义的属性规则,不能设置为系统默认。
在步骤C,包含增量抽取方法和增量合并方法两个方法共调用。
增量抽取方法需要传入参数有三个:基础数据,扩展数据和属性控制规则。属性控制配置放在配置文件中,在增量抽取方法中自动获取。增量抽取方法将增量按照配置与规则提取后,将增量以XML格式返回供存储。
增量合并方法同样需要传入三个参数:基础数据,增量和属性控制规则。属性控制配置放在配置文件中,在增量合并方法中自动获取。增量合并方法将增量按照配置与规则合并到基础数据中去,形成扩展数据并返回供使用。
增量也会首先封装在一个增量实体类中,该增量实体类提供XMl序列化和反序列化方法,最终是将实体类序列化为XML格式存储的。
增量实体类实际上是一系列增量的集合,这些增量的属性有:节点ID、增量方式、父节点ID、节点内容、节点属性名称、节点属性值、基础父节点和扩展父节点。具体描述如下列表:
通过使用本发明提供的方法,能够将扩展数据以增量的方式存储,极大的减少数据的冗余,同时方便后期的维护与更新工作,只需要对基础数据进行调整,就能将结果同步到扩展数据中,极大地提高了工作效率。
具体实施方式
下面通过实施例对本发明的内容进行更加详细的阐述:
一、假设一份基础数据,根节点为Form,其子节点为两个Panel节点,每个Panel节点下又各有两个节点Element,它们都包含ID、Code和Name属性,如下格式:
二、为其定义属性控制配置,Form节点Id属性为引用类型,Code属性为引用类型,Name属性为引用可修改类型。Panel节点Id属性为引用类型,Code为引用可修改类型,Name为控制规则类型。Element节点Id属性为引用类型,Code为引用可修改类型,Name为控制规则类型。将生成配置放到配置文件当中去。
三、再定义其属性控制规则,结构如下:
(1)Form:属性控制:Code和Name都是允许修改;
子规则:Label规则:属性控制:Code和Name都是允许修改;
Element规则:属性控制:Code和Name都是允许修改;
(2)Label1:属性控制:Code和Name都是允许修改;
子规则:Element规则:属性控制:Code为允许修改,Name为系统默认;
(3)Label2:属性控制:Code为允许修改,Name为系统默认;
子规则:Element规则:属性控制:Code为允许修改,Name为系统默认;
(4)Element1:属性控制:Code和Name都是允许修改;
(5)Element2:属性控制:Code为允许修改,Name为系统默认;
(6)Element3:属性控制:Code和Name都是允许修改;
(7)Element4:属性控制:Code为允许修改,Name为系统默认;
以上为属性控制规则的集合中包含的7条规则。
四、定义扩展数据如下格式:
五、调用增量抽取方法,传入基础数据、扩展数据和属性控制规则。生成一份增量。再次使用这份增量进行合并后的扩展数据为:
因为Form节点的Code属性为引用,因此即便在扩展数据中尝试修改,但是是不会被增量记录下来的。
以上就是一种最为简单的增量抽取案例,根据这个案例,能够大体的了解增量抽取方法的使用方法和逻辑流程。
Claims (4)
1.一种基于描述的XML增量抽取方法,包括以下步骤,
A. 定义属性控制配置;
B. 定义属性控制规则;
C. 调用增量抽取方法;
通过用户在配置文件中配置某一类型基础数据的属性控制配置,同时为每个基础数据添加属性控制规则,来实现对扩展属性中增量的抽取与存储;
步骤A定义一类基础数据的属性控制配置;将定义好的属性控制配置放在配置文件中,增量抽取方法会根据不同的数据类型在配置文件中找到相应的属性控制配置;通过属性控制配置,来确定一类基础数据中各类节点的增量抽取规则;
步骤A中的属性控制配置包含五个属性:元素名称、配置类型、父配置节点ID、ID属性名称和属性控制配置集合;
其中配置类型分为元素类型、子节点属性类型和集合类型;元素类型表示该类节点属于所要关注的最末层节点,只需要关注自己的增量即可;子节点属性类型表示该节点存在需要进行增量处理的子节点;集合类型表示该节点下是另一类节点的集合;属性控制配置集合用于记录该节点下所有需要增量处理的属性的控制配置;
其特征在于,属性控制配置集合包含一个节点下所有需要增量处理的属性的控制配置,称之为属性控制配置明细;属性控制配置明细包含四个属性:节点属性名称、节点属性类型、属性修改规则和子节点修改规则;其中:
(1)节点属性类型包括属性类型和子节点类型两种;属性类型表示这条内容是节点中的一个属性;子节点类型表示该条内容并非一个属性,而是一个子节点;子节点类型对应的配置类型是子节点属性类型;
(2)当节点属性类型为属性类型时,需要设置属性修改规则;
当节点属性类型为子节点类型时,需要设置子节点修改规则;
(3)属性修改规则用于表示属性的修改方式,包括复制、引用、引用可修改、控制规则和自定义五种方式;复制方式表示将基础数据的内容复制到扩展数据中,如果基础数据改变,不会影响扩展数据;引用类型表示扩展数据内容引用自基础数据,基础数据内容改变后,扩展数据相应的内容会随之改变;引用可修改同样表示扩展数据引用自基础数据,如果内容引用后没有修改,则相当于引用方式,基础数据修改会影响扩展数据,但是如果内容在引用后进行了修改,那么视为复制方式,基础数据修改不会影响扩展数据;控制规则表示属性将按照之后配置的属性控制规则内容进行修改;自定义方式表示用户可以根据需要自己编写扩展方法,来确定控制方式,选用这种方式需要记录相应的程序集名和类名;
(4)子节点修改规则用于表示子节点的修改方式,包括复制、引用、引用配置和自定义四种方式;复制方式、引用方式和自定义方式与上述相同;引用配置方式,是指在该属性控制配置中,存在此节点对应的配置节点,需要记录一个引用配置ID来记录对应的属性配置节点的ID。
2.根据权利要求1所述的方法,其特征在于,步骤B定义一个基础数据的所有需要增量操作的属性的控制规则;属性规则中会按照XML数据的父子结构划分,每一层结构会有一套规则,最后将所有层次的规则记录到一个集合中,形成一套属性控制规则。
3.根据权利要求2所述的方法,其特征在于,每一层规则的属性包括:规则ID、规则标题、ID属性名称、父规则ID、父规则ID属性名称、父规则标题、属性规则集合和子规则集合;
其中,属性控制规则中记录对应节点中所有属性的控制规则;控制规则分为三类:允许修改、不允许修改和系统默认;当设置为系统默认时,会去其父规则的子规则集合中,寻找该子规则中设置的默认控制规则,若仍未系统默认,则再去父规则的父规则中查找;这样就要求,最外层规则的属性和其子规则集合中定义的属性规则,不能设置为系统默认。
4.根据权利要求1所述的方法,其特征在于,步骤C包含增量抽取方法和增量合并方法两个方法共调用;
(1)增量抽取方法需要传入参数有三个:基础数据,扩展数据和属性控制规则;方法中会根据配置文件获取属性控制配置;方法会首先遍历基础数据,并与扩展数据进行比较,并记录修改和删除的数据;之后会遍历扩展数据节点,找出新增的数据;两部分合并作为最后的增量数据;
(2)增量会封装在一个实体类中,并为实体类提供XML序列化和反序列化方法;在抽取完成后,将增量实体类序列化成XML格式存储;增量实体类包括八个属性:节点ID、增量方式、父节点ID、节点内容、节点属性名称、节点属性值、基础父节点和扩展父节点;其中,当增量方式为增加时,节点内容记录新增节点的全部内容;当增量方式为修改时,节点属性名称用于表示被修改的属性名称,节点属性值用于表示修改后的值;如果某个节点的父节点变换了,那么基础父节点用于表示变换之前的父节点,扩展父节点用于表示变化之后的父节点;
(3)增量合并方法同样需要传入三个参数:基础数据,增量和属性控制规则;属性控制配置放在配置文件中,在增量合并方法中自动获取;增量合并方法将增量按照属性控制配置与属性控制规则合并到基础数据中去,形成扩展数据并返回供使用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710067077.4A CN107045495B (zh) | 2017-02-06 | 2017-02-06 | 一种基于描述的xml增量抽取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710067077.4A CN107045495B (zh) | 2017-02-06 | 2017-02-06 | 一种基于描述的xml增量抽取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107045495A CN107045495A (zh) | 2017-08-15 |
CN107045495B true CN107045495B (zh) | 2020-04-24 |
Family
ID=59545154
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710067077.4A Active CN107045495B (zh) | 2017-02-06 | 2017-02-06 | 一种基于描述的xml增量抽取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107045495B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112860793A (zh) * | 2021-02-03 | 2021-05-28 | 浪潮云信息技术股份公司 | 一种异源数据库间实现元数据同步的方法 |
-
2017
- 2017-02-06 CN CN201710067077.4A patent/CN107045495B/zh active Active
Non-Patent Citations (1)
Title |
---|
基于关键属性比对的增量数据抽取方法;刘胜等;《计算机工程与应用》;20121231;第48卷(第4期);第115-117页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107045495A (zh) | 2017-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10579678B2 (en) | Dynamic hierarchy generation based on graph data | |
US8090677B2 (en) | Method and system for altering the configuration of a data warehouse | |
US8196099B2 (en) | Updating application design | |
US6470353B1 (en) | Object-oriented framework for managing access control in a multimedia database | |
US20130283178A1 (en) | Method and system for modeling of system content for businesses | |
US20120233667A1 (en) | Efficient data structures for multi-dimensional security | |
US20140164411A1 (en) | Extensibility of metaobjects | |
US7730099B2 (en) | Storage and retrieval of richly typed hierarchical network models | |
KR101572299B1 (ko) | 시스템의 모델을 변환하는 방법, 컴퓨터 프로그램 및 시스템 모델 변환 장치 | |
CN108304463A (zh) | 一种用于数据库的数据管理方法及其数据库应用组件 | |
CN105677323A (zh) | 一种自动生成数据库操作层代码的方法 | |
US20220335033A1 (en) | Path encoded tree structures for operations | |
US20150019484A1 (en) | Method and apparatus for implementing a set of integrated data systems | |
US10127365B2 (en) | Field control annotations based on authorization objects | |
US20070067323A1 (en) | Fast file shredder system and method | |
CN111435347A (zh) | 数据库中关系表的高效扩展方法和系统 | |
US20070083543A1 (en) | XML schema template builder | |
US20080046440A1 (en) | Method And System For Enforcing User-Defined Relational Limitations In A Recursive Relational Database Table | |
US6999966B2 (en) | Content management system and methodology for implementing a complex object using nested/recursive structures | |
CN107045495B (zh) | 一种基于描述的xml增量抽取方法 | |
US20050114248A1 (en) | Portfolio management methods, systems, and computer programs | |
US20060230041A1 (en) | System and method for database access control | |
EP2397939A1 (en) | Accessing entities of a data access layer | |
Dittrich | Object-oriented data model concepts | |
US20140067874A1 (en) | Performing predictive analysis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |