Abstract: This paper illustrates the architecture and key techniques for the software entitled “An Universal Viewer for Visio XML Documents”. Based on platform-independent technologies, such as Java, XML, etc., we not only realized all functions needed to reveal the contents of MS Visio XML documents, but also enhanced it’s capacity for dispatching and delivering of the documents via the network, as well as the embedding and integrating of the viewer components within any other Java based applications. In this way, we can extend the sharing scope of Visio documents, and the applied scope of vectorgraph in user’s interfaces.
Key words: Visio;Java;Universal viewer;platform-independent
摘 要: 本文对我们利用跨平台的软件技术,特别是Java和XML技术所开发的Universal VisioViewer 1.0软件的体系结构和关键技术进行了论述。该软件基于Microsoft的Reference Schema for Visio,不但对Visio XML文档及其中对象进行了全面的解析、重构和再现,而且还增加了文档基于网络的分发、传输、嵌入与共享等功能,从而既实现了Visio XML文档浏览器的平台无关性,又增强了网络环境下组件嵌入式服务的可用性,拓展了Visio图元与用户图形化界面无缝融合的应用范畴。
关键词: Visio;Java;跨平台;浏览器
1 MS Visio软件的XML文档结构
Visio是一款功能强大、拥有大量客户群的办公室矢量绘图软件系统,以其独具特色的模具、模板、拖曳式绘图方式及智能化绘图等技术而风靡全球。为了促进Visio文档信息与其他应用系统的充分融合与共享,特别是适应于基于Internet的应用模式,微软公司于2004年宣布以免费授权的方式提供Visio文档的Reference Schema for Visio——“DataDiagramML”。
Visio XML文档以“VisioDocument”作为根标记,其子节点则主要以“表(Sheet)”、“节(Section)”、“行(Row)”及“单元(Cell)”的层次结构描述文档的形状信息、文本信息、数据信息、控制信息、结构信息及部分元信息。文档高层节点的子孙关系如图1所示,“StyleSheets”、“Masters”和“Pages”是Visio XML文档的三个重要一级子节点标记,分别定义了文档所基于的样式、主控形状和页面构成,而隶属于“Pages”层次结构中的“Shape”节点则是文档的基本、核心和主要的组成要素,并可作为“Masters”层次结构下相应主控形状的实例而被初始化,同时可继承 “StyleSheets”中所定义线型、填充和文本等样式属性。此外,“Shape”节点的“类型(Type)”属性设有“Group”和“Shape”选项,这样便可利用前者对形状进一步分组,使得“Shape”节点自身又可组成复杂的树型结构,而其中的底层节点又可继承高层节点的部分属性。此外,“Masters”层次下的“Shape”节点除作为“Pages”层次下“Shape”对象的“基类”外,还是用户自定义的线型、线段端点和填充形状的定义与描述区域。
与微软其他的Office软件相类似,Visio规定了其内部的变量类型、度量单位及运算函数,但Visio利用公式的范围更加宽泛,特别是单元(Cell)级节点中属性的定义几乎全部规定为公式。而这种公式的应用又具备其鲜明的特点:其一,尽管随着用户利用Visio软件所进行的文档编辑操作其取值可能随时变化,但每个公式在任何时点的相应取值均被计算出来并在XML文档中被静态地记录,这样就使得第三方的程序不必涉及过多的函数及公式的解析与运算;其二是对于长度单位来说,无论用户指定何种度量单位,Visio均将其转化为内部的单位(英寸)并记录在XML文档之中,这样亦使得第三方程序不必涉及过多的单位换算。
[1] [2] [3] [4] [5] 下一页