专利名称:用于处理用于在xml数据库中存储的非xml文档的方法和系统的制作方法
技术领域:
本发明涉及一种用于处理用于在XML数据库中存储的非XML文档的 方法和数据库系统。
背景技术:
XML数据库是现代信息社会中最重要的技术工具之一。这种数据库 的高度灵活性允许以非常高效的方式来存储和检索数据。通常,XML数 据库设计用于XML文档。然而,在现有技术中也已知扩展XML数据库使 得其能够存储其它类型的文档。例如,申请人的XML数据库Tamino适于 存储非XML文档,例如文本文件、MS Office文件、PDF文件、图像和音 频文件等。为了使得能从数据库检索这种非XML文档,己知分析要存储 的非XML文档并且提取一些元数据,用于生成对应于该非XML文档的所 谓XML影子(shadow)文档。使用XQuery,可随后搜索影子XML文档 并且可检索对应的非XML文档。
通常由数据库系统的一个软件来执行对元数据的分析和提取,其中该 软件专用于某种类型的非XML文档。作为候选,可为处理非XML文档提 供更通用的分析和提取软件,该软件包括若干组件,每个组件特定地设计 为处理预定义类型的非XML文档。类似的方法和系统从US6, 549, 922 和己公开的US专利申请US 2005050086是已知的。
然而,现有技术用于处理用于在XML数据库中存储的非XML文档的 所有方法和系统使用预定义格式或模式以用于所生成的XML文档。换言 之,所有类型的非XML文档将总是导致某种类型的影子XML文档。例如 上述的申请人的Tamino数据库使用固定XML模式,其依照"Dubin Core Metadata Initiative" (http:〃dubli勤re.org/)并且遵循OpenOffice格式 (http:〃or>enoffice.org)。结果,影子XML文档的内容有时不是非常有
4用,如果固定XML模式不允许用有意义的信息在影子XML文档上存储元 数据的话。因此现有技术中己知的基于影子XML文档搜索非XML文档是 低效和缓慢的。
上面略述的用于处理非XML文档的方法还导致一些问题,如果要处 理新类型的非XML文档以供存储和/或如果要使用不同供应商的软件组件 来处理不同类型的非XML文档的话。这尤其适用于如果新类型的文档不 是标准的办公文档,而例如是图像,其中要提取的元数据(例如颜色分 布、分辨率、大小或图像处理软件的任何结果)与用于标准办公文档的的 元数据非常不同。
因此,本发明在一个方面基于技术问题提供了更灵活的方法用于生成 影子XML文档,该方法克服了现有技术中上述缺点中的至少一些。
发明内容
在本发明的一个方面中,通过用于处理用于在XML数据库中存储的 非XML文档的方法来解决该问题,该方法包括以下步骤
—根据预定XML模式生成用于非XML文档的影子XML文档,影子 XML文档包括从非XML文档提取的元数据,
一在XML数据库中存储影子XML文档和非XML文档;
其中XML模式包括适于包装至少部分未定义XML结构的XML内容 的包装元素。
因此,本发明的方法在XML数据库中存储两个单独文档,非XML文 档本身和对应的影子文档。如在XML模式中定义的影子XML文档的结 构,是灵活的并且可以变化。这是因为没有完整地定义由本发明的XML 模式的包装元素所包装的XML内容的结构。相反,任何良构的XML内容 可布置在包装元素之内。结果,所述方法为生成XML影子文档的组件提 供了更多的灵活性,因为它们不再必须严格地遵守不灵活的、固定的 XML模式。
尽管包装元素可包装任何种类的良构XML内容,而不管其结构和内 容,适于使用具有通配符的XQuery来搜索包装元素的XML内容。根据本发明的另一方面,方法还包括在影子XML文档上创建索引的 步骤,其中在一个示例中在XML模式中定义了用于索引的信息。因此, 将包装元素的XML内容的结构的灵活性与一些定义结合,这些定义适于 为影子XML文档和它们的非XML对应物的随后搜索和检索提供索引。在 一个实施例中,影子XML文档包括标识对应非XML文档的唯一标识符。根据另一方面,本发明涉及一种XML数据库系统,其具有适于分析 非XML文档的分析器,以及适于从非XML文档提取元数据并且根据预定 义XML模式生成用于非XML文档的影子XML文档的至少一个提取器, 其中影子XML文档包括元数据。XML数据库系统还包括适于包装影子 XML文档中所提取元数据的包装器,其中所包装元数据的结构是在XML 模式中至少部分未定义的。在一个实施例中,分析器、提取器和包装器作为数据库服务器的扩展 来提供,该数据库服务器因此提供了用于结构化存储非XML文档和它们 各自的元数据的所有功能。另外,XML数据库系统可进一步包括基于影子XML文档内容的索 引。该索引可以基于影子XML文档的所包装元数据中的信息。在另外的从属权利要求中定义了所述方法和XML数据库系统的进一 步修改。
图l:本发明的XML数据库系统的示例性实施例; 图2:根据本发明的实施例的灵活XML模式的示例; 图3:根据图1的XML模式的影子XML文档的片断;和 图4:适用于索引的灵活XML模式的另一示例。
具体实施方式
在下面,描述本发明的XML数据库系统和方法的示例性实施例。将 会理解下面描述的功能可通过许多候选方式实现,例如在单个数据库服务 器上、在多个数据库服务器的分布式布置上,用集成存储器或外部存储器等。这些实现细节对于本发明不是必需的。图1给出了示例性XML数据库系统1的概观。系统1通常用于存储 和检索XML文档(图l中未示出)。然而,图1的XML数据库系统也能 够处理非XML文档,例如图1中所示的示例性媒体文件10。媒体文件IO 可以是任何类型的非XML文档,例如视频文件、音频文件、视频文件和 音频文件的组合、图像、MS Office文档、诸如测量结果之类的任意集合 的二进制数据,等等。为处理媒体文件10,在一个实施例中,XML数据库系统1包括文档 处理器2。文档处理器2驱动用于存储文档的过程。如图1左侧的虚线箭 头所示,媒体文件10存储在存储装置3中,例如XML数据库系统1的 RAID阵列(未示出)或类似的存储设备。本领域技术人员已知的任何易 失性或非易失性存储装置可用作为XML数据库系统1的存储装置3。另外,媒体文件10转送到模式处理器4。图1右侧示出的XML数据 库系统1的模式处理器4和另外元件的操作用于处理媒体文件IO使得其可 象数据库中存储的其它XML文档一样被搜索和检索。在图1的示例性实 施例中,模式处理器4提供关于要调用的服务器扩展5的信息,该服务器 扩展5包括进一步的处理元件6 — 8。然而,要注意元件6 — 8以及模式处 理器4还可并入到整个XML数据库系统的数据库服务器(图1中未示 出)的标准处理引擎中,并且不必作为单独的实体来提供。下面描述的服 务器扩展5的供应便利了将现有XML数据库系统更新为具有用于操作非 XML文档(例如媒体文件IO)的功能。在第一步骤中,分析器6分析媒体文件10并且确定要调用哪个提取 器7。每个提取器7处理媒体文件10并且生成用于影子XML文档20的内 容。取决于媒体文件10的类型,可使用不同的提取器7。例如,可以有对 图像执行图像处理并且输出关于图像的元数据(例如其分辨率、颜色分布 或任何其它类型的图像相关信息)的提取器7。另一提取器7可适于处理 视频文件并且可提供另外的提取器7用于提取关于音频文件的元数据,例 如其长度、采样频率等。尽管在所述实施例中存在用于每种类型的媒体文 件10的不同提取器7,还可以有一个或多个能够从超过一种类型的文件提取元数据的集成提取器7。最后,包装器8创建根据所生成XML内容的公共文档类型元素。要 注意,由一个或多个提取器7生成的该内容可以是任何良构的XML内 容,而不管其特定结构。因此,通过添加或修改提取器7,所述XML数 据库系统的实施例可很快适合于新媒体文件,使得可处理新类型文件。尽管已描述并在图1中作为单独组件示出了模式处理器4、分析器6、 提取器7和包装器8,但是也可以将这些组件中的一个或多个合并到所 述XML数据库系统1的单个处理部件中。尽管由此得到的XML影子文档20相对于由提取器7从媒体文件10 生成的XML元数据的结构和内容是充分灵活的,其仍然依照预定义的 XML模式。图2中示出了用于XML数据库系统的影子XML文档的这种 灵活XML模式50的一个示例。如可看到的,XML模式50包括包装元素 51等,包装元素51把由提取器中的一个或多个提取器生成的XML内容包 含在对应的XML影子文档中。更详细地观看,图2的XML模式50引用服务器扩展 "NewBloblndexer",其是图1中所示的服务器扩展5的一个可能实施 例。服务器扩展NewBloblndexer为给定的非XML文档调用合适的提取器7。 提取器7然后依照其特定实现生成用于影子XML文档20的内容。为 此,服务器扩展NewBloblndexer得到由一个或多个提取器7提供的XML 内容并且生成在该实施例中具有名称"wrapping element (包装元素)"的 根元素。没有定义包装元素的XML内容的结构,使得可包括任何任意结 构化的XML内容。在该实施例中,对于不同类型的媒体文件不会生成统 一结构的所生成XML影子文档。除了图2中示出的元素,用于影子XML文档20的XML模式50可包 括另外的元素,例如以符合上述"Dubin Core Metadata Initiative"和/或 OpenOffice格式的要求。图3中示出了如上所述生成的XML影子元素20的示例片断。如可看 到的,它包括"wrapping dement",其包含具有关于照片的信息(例如其 宽度和高度、摄影的主题、摄影师等)的XML内容。如之前所述,影子XML元素20的包装元素中的XML元数据的结构是任意的。例如,可在 包装元素内不同地布置各种照片相关信息,或可以有其它关于照片的信 息,例如用于拍照的曝光时间或所选透镜。不管包装元素的XML内容的特定结构,仍可能执行对影子XML文档 的查询。这种査询的一个选项是使用通配符,其不要求关于影子XML文 档的XML内容的特定结构的信息。例如査询严[〃authop "X"]将得到在 某处具有值为"X"的元素"author"的所有影子XML文档。在另一示例 中,查询/WrappingElement[〃CreatoF "X" or 〃Photographer= "X"]得到 在包装元素的某处具有创建者或摄影师"X"的所有文档。结果,不管用 于生成影子XML文档20的增加的灵活性,仍可能执行有力的搜索并高效 地检索相关影子XML文档。 一旦检索到期望的影子XML文档20,还可 例如使用为每个影子文档20标识对应的非XML文档10的唯一标识符来 立即访问相应的非XML文档10。除了生成影子XML文档20,图1的XML数据库系统1可包括索引 处理器ll,其为影子XML文档20创建索引。在图l的实施例中,索引处 理的结果也存储在整个XML数据库系统1的存储装置3中(参照图1中 的对应虚线箭头)。然而,这不是必需的。索引信息还可与媒体文件10 和对应的影子XML文档20分离地存储。存在各种如何在影子XML文档20上生成索引的方式。在一个实施例 中,用于索引的一个或多个属性和/或元素定义在用于影子XML文档的 XML模式中。图4中示出了用于这种扩展XML模式的示例。如可看到 的,定义了属性52和元素53,其允许基于影子XML文档上的索引。属性 "mimetype"定义为字符串并且表示媒体文件10的类型,例如.jpeg文件 (也参照图3的影子XML文档)。元素"Photographer"也定义为字符串 并且可用于根据拍摄相应照片的摄影师为照片创建索引。使用在图4的 XML模式中定义的属性和元素,可定义查询以获得某个摄影师的所有.jpeg 文件。要注意,定义索引所需的信息不意味着包装元素的内容的某种XML 结构,所以保持了上述的灵活性。相反,可不管包装元素的XML内容的特定结构来定义图4的示例中用于索引的属性和元素。换言之,只要属性和元素的搜索值符合影子XML文档中的值,基于XML模式的所定义属性 和所定义元素査询索引将检索到XML影子文档。
权利要求
1.一种用于处理用于在XML数据库中存储的非XML文档(10)的方法,包括步骤a.根据预定XML模式(50)生成用于非XML文档(10)的影子XML文档(20),所述影子XML文档(20)包括从所述非XML文档(10)提取的元数据;b.在所述XML数据库中存储所述影子XML文档(20)和所述非XML文档(10);c.其中所述XML模式(50)包括适于包装至少部分未定义的XML结构的XML内容的包装元素(51)。
2. 如权利要求1所述的方法,其中所述包装元素(51)定义为所述 XML模式(50)的根元素。
3. 如权利要求l或2所述的方法,其中使用XML文档类型定义来定 义所述包装元素(51)。
4. 如任一前述权利要求所述的方法,其中适于使用具有通配符的 XQuery来搜索所述包装元素(51)的所述XML内容。
5. 如任一前述权利要求所述的方法还包括在所述影子XML文档 (20)上创建索引的步骤。
6. 如前一权利要求所述的方法,其中在所述XML模式(50)中定义 用于所述索引的信息(52, 53)。
7. 如任一前述权利要求所述的方法,其中所述非XML文档(10)包 括图像并且其中使用图像处理软件提取所述元数据。
8. 如任一前述权利要求所述的方法,其中所述非XML文档(10)包 括文本,尤其是.pdf文档或Microsoft Office文档。
9. 如任一前述权利要求所述的方法,其中所述非XML文档(10)包 括音频和/或视频文件。
10. 如任一前述权利要求所述的方法,其中所述非XML文档(10) 是压縮文件。
11. 如任一前述权利要求所述的方法,其中所述影子XML文档 (20)包括标识所述对应非XML文档(10)的唯一标识符。
12. 包括用于执行如任一前述权利要求所述的方法的指令的计算机程序。
13. —种XML数据库系统(1),包括a. 适于分析非XML文档(10)的分析器(6);b. 适于从所述非XML文档(10)提取元数据并且根据预定义XML 模式(50)生成用于所述非XML文档(10)的影子XML文档(20)的至 少一个提取器(7),所述影子XML文档(20)包括所述元数据;c. 适于包装所述影子XML文档(20)中的所提取元数据的包装器 (8),其中所包装元数据的结构是在所述XML模式(50)中至少部分未定义的。
14. 如权利要求13所述的XML数据库系统(1)还包括适于存储所 述非XML文档(10)和所述影子XML文档(20)两者的存储装置(3)。
15. 如权利要求13或14所述的XML数据库系统(1),其中所述分 析器(6)、所述提取器(7)和所述包装器(8)作为数据库服务器的扩 展(5)来提供。
16. 如前述权利要求13到15中任意一个所述的XML数据库系统 (1),还包括基于所述影子XML文档(20)的内容的索引。
17. 如权利要求16所述的XML数据库系统(1),其中所述索引基 于所述影子XML文档(20)的所包装元数据中的信息(52, 53)。
18. 如前述权利要求13到17中任意一个所述的XML数据库系统 (1),其中所述影子XML文档(20)包括标识所述对应非XML文档 (10)的唯一标识符。
全文摘要
本发明公开了用于处理用于在XML数据库中存储的非XML文档(10)的方法和系统。所述方法包括以下步骤根据预定XML模式(50)生成用于非XML文档(10)的影子XML文档(20),所述影子XML文档(20)包括从所述非XML文档(10)提取的元数据;在所述XML数据库中存储所述影子XML文档(20)和所述非XML文档(10);其中所述XML模式(50)包括适于包装至少部分未定义XML结构的XML内容的包装元素(51)。
文档编号G06F17/30GK101320380SQ200810098199
公开日2008年12月10日 申请日期2008年5月26日 优先权日2007年5月25日
发明者米歇尔·盖斯曼 申请人:软件股份公司