XML Paper Specification
Windows Vista? introduces a modular content framework called XML Paper Specification (XPS-formerly code name “Metro”) that enables end users to manage document security and digital rights, annotate and track document history, and to display or render the documents through multiple technologies, including desktop views, streaming downloads, printers, and Web pages.
The XPS framework supports these functions by allowing document developers to design new self-describing information formats. Windows Vista supplements the power and generality of the XPS framework with a specific document implementation called the reach package (also known as XPS Reach). XPS Reach supports many of the most common user needs by providing an optimized format for working with paginated documents.
XPS documents are programmatically created and accessed through the Windows Presentation Foundation Document Services (System.Windows.Documents) and also through the package model (System.IO.Packaging). To work with XPS documents, a developer needs to do three things:
Use the package model. Under the XPS framework, a package is a logical entity serving as a container for constituents. These constituents are called parts, and each part is defined by a name and a content type. Parts can contain references to other parts in a package, or to external resources. The XPS framework provides a higher-level mechanism to describe these references, called relationships, which make the reference directly discoverable without needing to look at the content in a given part.
Map the abstract package to a physical format. A package is an abstraction that represents the structure of a document. The package model may be mapped to an actual entity (referred to as a physical format). A physical format can be almost anything: a file, an archive (such as a ZIP file), as well as various transports (such as network-based protocols). In fact, a single XPS framework format can have expressions in multiple physical formats, such as a ZIP file on disk or a network protocol for a Web service.
Supply the XPS framework metadata. The metadata of an XPS framework-based document describes the document’s content and use, and is discoverable (along with its package structure) through the XPS framework APIs. This provides the basis of the portability and device independence of XPS framework-based documents. In addition, the XPS framework provides a well-defined means for including a digital signature, digital rights management information, and other security features in its metadata. The metadata is fully extensible and can be used to contain such items as information in annotations and thumbnails.
The XPS Reach package provides a specific implementation of an XPS framework designed to address the information worker’s requirements for distributing, archiving, rendering, and processing documents.
A document in XPS Reach format is expressed in a neutral, application-independent way so that the content can be viewed and printed without the application used to create the package.
The XPS Reach format uses a well-defined and fixed-format layout, including pagination for its content, while still allowing for versioning or other expansion.
Effectively, the XPS Reach format defines a default electronic paper object for Windows Vista?, and is used to define the Windows Vista print architecture, as well as the native Windows Presentation Foundation print output.
The WinFX SDK documentation includes many references to the XPS data format, all of which center on the XPS Serialization Manager class (System.Windows.Reach.Serialization in the ReachFramework assembly).