迭代程序功能提供顺序地访问一个集合对象单元的方法,而无需暴露它的下层的表现。原理图编辑器数据库系统使用迭代程序,来提供一个紧密的访问原理图对象的方法,无需跨越API创建一个镜像数据库。迭代程序主要功能是通过遍历数据库,来读取某些原理图对象。主要有三个迭代程序类型,对象迭代程序、空间迭代程序和组迭代程序。
迭代程序在原理图编辑器的数据库系统内搜索相似的对象。对象迭代程序被用于处理全局搜索,空间迭代程序被用于处理内部搜索,组迭代程序被用于在确定的原理图对象内处理图元搜索,如涉及在对象内部还有对象的的搜索,使用组迭代程序,组对象一般是图表符号和元件对象。从外部服务器中,一个迭代程序在原理图编辑器内部遍历数据库,原理图编辑器自动选择使用哪一个数据库系统,依赖于哪一个迭代程序方法被使用。
2.3 原理图文档类型和高速缓存系统
2.3.1原理图文档类型

原理图编辑器服务器包括两类文档编辑器,原理图文档编辑器和原理图库文档编辑器。原理图文档编辑器被使用来捕捉原理图,原理图库文档编辑器被使用来创建和修改在这些原理图所使用的组件。
在图3-4中,有两类不同的原理图文档编辑器。当您在原理图图表编辑器中打开一个库,组件是可利用的,能被放置到您的原理图文档中,但它们不能被编辑。当您在原理图库编辑器中打开一个库时,组件能被编辑。已提供的原理图编辑器带有很多组件库,包含工业标准的符号,以及ANSI IEEE 和DeMorgan等。原理图库由元件描述,由单独的部份组装在一起,放置在原理图图表中,整体组成一个原理图库文档。
一个库是一套组件,并且组件的到零件划分是完全的。例如,一个中继能由两个零件组成,中继线圈零件和触点零件。每一个零件能有多到三种图形表示或模型,一般、De-Morgan和IEEE,仅一般的模型必须被呈现或创建,其它两类可随意。在一个原理图文档中的零件对象仅是原理图库中的实际组件的图形表示,在一个原理图文档中编辑零件的图元是不可能的,然而在电子表格的编程中通过使用SCH的API来操作部件对象的属性是可能的。
2.3.2高速缓存
为了有效地访问组件,原理图编辑器使用了一个特别的组件高速缓存。高速缓存本质上是一个临时的主要的库,创建在计算机内存中,其中保存每一种放置在所有打开图表中的组件类型的一份拷贝。
高速缓存保存所有当前使用在原理图环境中的组件拷贝,请见图3-5。当打开其它项目时,所有它的组件被从图表中备份库中复制到高速缓存。当您从原理图库中选择一个元件,放置到原理图文档中时,您实际上是先把元件放到高速缓存,再从高速缓存放置到原理图文档中。然而,如果文档被移去或项目被关闭,这些项目中的组件没有被清除,当原理图编辑器应用程序被关闭时,高速缓存被清除。(e-works)

图3-5 原理图高速缓存系统