Complete XPS Comparison Tool
Original Publication Date: 2008-Oct-09
Included in the Prior Art Database: 2008-Oct-09
Herman Widjaja: INVENTOR [+3]
Described herein is a tool for the complete comparison of two XPS files on all levels. It compares two XPS files sequentially from the highest to the lowest level assuming the documents pass each level. Upon failure at any level, the results are reported, and the comparison stops. It first compares the two XPS files from an XPS validity perspective using the existing isXPS tool, then from a rendering perspective using the existing LooksGood tool, then from an XPS format perspective using a newly developed XPS object model API, an OPC format perspective using a newly developed OPC object model API, and a ZIP format perspective using the existing ZIPCompare API.
Microsoft® has recently developed a document format called XML Paper Specification, or XPS. An XPS document is a paginated representation of electronic paper that is described by an XML-based language. XPS is a fixed page representation format with rules governing content that can be used to archive content in a standardized format or to publish content in an easily viewable form. An XPS document builds upon the Open Packaging Conventions (OPC) format, which in turn builds upon the ZIP format. As is widely known, a ZIP file is simply a collection of compressed files for reducing memory. The OPC format builds upon a ZIP file by mapping the relationships between the ZIP file’s parts. XPS further builds upon OPC by increasing the complexity and number of relationships and placing more rules and restrictions on the content of the files.
Typically, for an XPS printer driver or XPS developer creating a tool or application that produces an XPS or OPC file, it is desirable to do a regression test to see if the current build and the previous build have produced the same file without errors. Currently, in order to compare two XPS files, there are only two options. The first one involves opening the ZIP file and comparing each component file manually one by one. This is a highly undesirable option due to the complexity of the file and the resultant time and effort involved to compare them. The second option is to use LooksGood, an XPS rasterizer tool. Although LooksGood can compare two XPS documents, it does so only from a rendering perspective. Therefore, it can only determine if the two XPS files are visually the same. For example, if page one of an XPS document contains one image and page one of another XPS document contains fifty images which when comprised together will form the same visual, LooksGood will not detect that difference. Furthermore, LooksGood can only compare XPS files, not OPC files.
This publication describes an XPS comparison tool (referred to herein as “XPSCompare”) to completely compare two XPS documents, using both existent tools and two newly developed Application Programming Interfaces (APIs). As shown in Figure 1, XPSCompare compares two XPS files (10) sequentially from an XPS validity perspective (20), a rendering perspective (30), an XPS format perspective (40), an OPC format perspective (50), and a ZIP format perspective (60). XPSCompare uses the isXPS tool to determine validity. If valid, XPSCompare then uses the LooksGood tool to compare the two documents from a rendering perspective. If the documents pass, XPSCompare loads the two XPS files into object models to compare the state of the models, and if they pass again, XPS...