配置管理

From Apache OpenOffice Wiki
Jump to: navigation, search


功能

OpenOffice.org 配置管理组件提供了统一的接口,用于有组织地获得并设定 OpenOffice.org 配置数据,而不会局限于数据所用的物理数据存储。


配置 API 可以用于获得和设定现有配置选项。此外,还可以按照自己的需要使用新设定来扩展配置。有关详细信息,请参阅 配置管理 - 自定义配置数据


体系结构

OpenOffice.org 配置数据说明了 UNO 组件或 OpenOffice.org 应用程序的状态或环境。配置数据可分为以下几个不同种类:

  • 静态配置:此数据用于说明软件和硬件环境配置,并需要使用安装工具进行设定,在运行时不能对其进行更改。关于已安装的过滤器的信息即是静态配置数据的一个示例。
  • 显式设置:此首选项数据可以由用户显式控制。有一个用于更改这些设置的专用用户界面。OpenOffice.org 中的“工具”“选项”对话框控制的设置即是显式设定的一个示例。
  • 隐式设置:此状态信息也可以由用户来控制,但是用户不能进行显式更改。应用程序在后台中跟踪此状态,从而使其成为跨应用程序会话的永久状态。窗口位置和状态或最近使用过的文档列表即是隐式设置的一个示例。


此列表并不十分全面,但已简要指明了使用配置管理存储的数据的范围。


配置管理组件以分层结构的方式来管理配置数据。可以使用模式来说明此数据库中的分层结构以及条目的名称和数据类型。数据库中只存储与某个已安装模式一致的数据。


分层数据库存储所有可以描述为配置模式的分层信息,但此数据库已经过优化,可以与应用程序配置和首选项所需的数据配套使用。此数据库有效支持已明确定义数据类型的较小数据项,而不明确的较大二元对象则不应存储在配置数据库中。这些对象应该存储在单独的文件中,以使配置仅保留这些文件的 URL。


配置模式是由使用数据的应用程序和组件的作者提供的。安装组件时,将在配置管理系统中安装相应的配置模式。


配置数据存储在后端数据存储中。在 OpenOffice.org 中,标准后端由存储在目录分层结构中的 XML 文件构成。可以添加并换用其他的后端组件。以后的版本设计中将会支持来自多后端的合并数据。


配置分层

对于指定的模式,可能有多个数据层在运行时被合并在一起。其中的一个或多个层用于定义默认设置,并可能由若干个用户共享。此外,还有一个单个用户专用的层,其中包含可覆盖共享设置的个人首选项。在常规操作中,对数据的所有更改仅影响此用户专用层。


对已合并的用户配置数据的访问由 com.sun.star.configuration.ConfigurationProvider 对象进行管理,以连接到数据源、获取和存储数据并合并多个分层。


此提供程序提供配置数据的视图。视图是整个配置中的一个子集,可以作为对象分层结构进行浏览。此分层结构中的对象表示配置分层结构中的节点,从此节点可以浏览到其他节点并访问数据项的值。


所有配置项都具有固定的类型和名称。

类型是由模式来确定的。以下是可用配置项种类:

  • “属性”是包含单个数据值或某些基本类型的值数组的数据项。
  • “分组”是结构节点,其中包含不同类型子项的集合。子项的数目、名称以及它们的类型由模式确定。一个分组中以同时包含结构项和数据项。
  • “集合”是结构节点,用作可变数量元素的动态容器。这些元素必须全部是数据项或全部是结构项,并且这些项必须统一。在第一种情况下,所有值的基本类型均相同,而在后一种情况下,所有子树的结构均相同。模式包含容器元素的模板,这些模板是元素结构的原型。


“集合”是结构节点,用作可变数量元素的动态容器。这些元素必须全部是数据项或全部是结构项,并且这些项必须统一。在第一种情况下,所有值的基本类型均相同,而在后一种情况下,所有子树的结构均相同。模式包含容器元素的模板,这些模板是元素结构的原型。


每个配置项的名称都在其父项(即分层结构树中直接包含此项的节点)内唯一标识此项。跨分层结构多个层次的路径的建立方式与 UNIX 文件系统路径类似。路径中分隔各个名称组件的分隔符是正斜杠 ('/')。以斜杠开头的路径被认为是“绝对路径”,必须完整的指定项在分层结构内的位置。直接以名称开头的路径是相对路径,说明项在分层结构中某个父项内的位置。


配置分层结构的顶层分支被称为配置模块。每个配置模块都具有说明此模块内的可用数据项的模式。模块是模式安装的单位。配置模块的名称必须是全局唯一的。配置模块的名称具有内部分层结构,并使用点 ('.') 作为分隔符,与 Java 软件包的名称类似。OpenOffice.org 预设配置模块使用超级软件包 "org.openoffice.*" 中的软件包名称。


将数据项添加到容器时,容器元素的名称即被指定。模式中的数据项名称仅限使用 ASCII 字母、数 字和几个标点符号,但是对于容器元素的名称则没有严格的限制。这就需要在路径中引用容器元素 时进行一些特殊处理。定位容器元素的路径组件采用 <template-pattern>['<escaped-name的格式。此处的 <template-pattern> 可以是说明元素的模板名称或用于匹配任意模板的星号 "*"。 <escaped-name> 表示元素名称,其中几个禁用字符将借鉴 XML 的转义形式来表示。界定 <escaped-name>的引号也可能是双引号字符 ""。将使用以下转义字符:

字符 转义
& &
" "
' '


下表列举了(虚拟)过滤器集合节点 /org.openoffice.Office.TypeDetection/Filters 中建立的条目所使用的一些转义形式:

过滤器名称 路径组件
Plain Text Filter['Plain Text']
Q & A Book *["Q & A Book"]
Bob's Filter *['Bob's Filter']


最后一个示例过滤器的 UIName 值将具有绝对路径 /org.openoffice.Office.TypeDetection/Filters/Filter['Bob's Filter']/UIName


在配置管理的某些地方,API 参数将以序列的形式传递到新创建的对象实例中,例如在 <idlml>com.sun.star.lang.XMultiServiceFactory:createInstanceWithArguments</idlml> 的参数中。这些 参数的类型是 com.sun.star.beans.NamedValue


Documentation note.png 为兼容以前的版本,com.sun.star.beans.PropertyValue 类型的参数也可以使用。只有 NameValue 字段需要填写。


Content on this page is licensed under the Public Documentation License (PDL).
Personal tools
In other languages