XPS v0.9 Changes

Just in time for WinHEC, we have prepared the next release of the XML Paper Specification (v0.9) for posting on the XPS site (http://www.microsoft.com/xps). You should be able to download v0.9 from that site in the next few days.

Note that this will not include an accompanying v0.9 for the Open Packaging Conventions or the Open XML Markup Compatibility Specification; those will be coming later. XPS v0.9 will be compatible with the upcoming Windows Vista and WinFX Beta 2.

The most important changes in this version include:

  • Automatic stroke dash adjustment has been cut as a feature. Ths was motivated by a variety of feedback from customers as well as some internal investigation about threshold conditions.
  • Document structure element <NamedElement> has had the attributes LocationReference, StartIndex, and EndIndex removed. This was motivated primarily by the fragility of LocationReference in the presence of markup compatibility elements and attributes.
  • Details added regarding clamping of channel and tint values for advanced color. This was a previously un-addressed point in the spec.

The full list of changes is as follows:

Chapter 2. Parts and Relationships

· Added appropriate conformance rule number designation to statement that JPEG images must conform to JPEG specification [M2.17] (

· Added clarifying conformance rule S2.34 that consumers SHOULD support JPEG images that contain APP0, APP1, APP2, APP13, and APP14 markers (

· Clarified some wording around PrintTicket setting merge conflicts (

Chapter 3. Documents

· Corrected references to PageMediaSizeX and PageMediaSizeY PrintTicket settings to correctly refer to PageMediaSizeWidth and PageMediaSizeHeight. Removed incorrect restriction that PageMediaSizeWidth < PageMediaSizeHeight (3.3.3).

Chapter 4. Graphics

· Removed reference to stroke dash adjustment in StrokeDashArray attribute of <Path> (4.1).

Chapter 5. Text

· Added appropriate conformance rule to requirement on Indices attribute [M5.4] (5.1.3).

· Corrected the ABNF grammar for glyph specification syntax for AdvanceWidth, uOffset, and vOffset to allow for real number values (including exponents), preceding + signs, and removed negative values for AdvanceWidth—all to match the XSD (5.1.3).

· Clarified wording in Table 5-2 “Portions of the cluster specification” (

Chapter 6. Brushes

· Corrected error in example 6-1 where <PathFigure> element was prematurely closed (6.1).

Chapter 8. Color

· Corrected the name of the API for creating WCS profiles to be WcsCreateIccProfile (8.1.9).

· Corrected that WCS profiles are stored in little-endian order inside the big-endian order of the WcsProfilesTag (8.1.9).

· Added conformance rule guidance (M8.31) on how to handle clamping of channel and tint values for CMYK, N-Channel, and Named Color images (8.1.14, 8.1.15, 8.1.16).

· Corrected PageDeviceColorSpaceUsage PrintTicket option to be MatchToDefault rather than MatchToDeviceDefault (8.5).

· Clarified Table 8-3 “PrintTicket color settings” to disambiguate better PrintTicket Features and ParameterDefs, as well as Options, ScoredProperties, and parameter properties (8.5).

· Corrected PageBlackGenerationProcessing settings to contain the options Automatic and Custom, where Custom has the ScoredProperties of TotalInkCoverageLimit et al. Previously these ScoredProperties were listed as Options (8.5).

Chapter 9. Document Structure and Interactivity

· Removed reference to LocationReference, since that functionality has been removed (9.1.1).

· Added conformance rule S9.30 that children of <VisualBrush> elements SHOULD NOT be referenced by document structure markup (9.1.1).

· Clarified conformance rule S9.3 that producers SHOULD consider referenced <Canvas> elements to refer to all their children, in markup order (9.1.1).

· Clarified conformance rule O9.4 that not all named elements would appear in the FixedDocument part markup, but it MAY be used as a shortcut to find named elements also intended to be addressable locations (9.1.1).

· Removed LocationReference, StartIndex, and EndIndex attributes from the <NamedElement> element, and also made NameReference a required attribute. Removed due to fragility of these elements in the presence of markup compatibility elements and attributes (

· Removed text and example describing LocationReference (

Chapter 11. Rendering Rules

· Removed all functionality around automatic stroke dash adjustment (statements in,,; entire former section

Chapter 12. Elements

· Updated to reflect changes to element tables.

Appendix E. Document Structure Schema

· Updated schema to remove deprecated <NamedElement> attributes.

Appendix I. Standard Namespaces and Content Types

· Clarified the requirement to treat content types with parameters as an error when the part is accessed (I.2).

· Added missing conformance rule number for handling content types with parameters (I.2).

Appendix J. Conformance Requirements

· Added conformance rule S2.34 “Consumers SHOULD support JPEG images that contain APP0, APP1, APP2, APP13, and APP14 markers.” (J.2)

· Added conformance rule M8.31 “Channel and tint float values in CMYK, N-Channel, and Named Color syntax MUST be clamped to the valid range from 0.0 to 1.0 before further processing. If the value is used as input for an ICC profile color transformation, it MUST subsequently be linearly scaled to the range from 0 to 255 or from 0 to 65535, depending on whether the profile uses 8-bit or 16-bit input tables.” (J.8).

· Deprecated conformance rule S9.2 about use of LocationReference being NOT RECOMMENDED, since this functionality has been removed (J.9).

· Expanded conformance rule S9.3 to clarify that <Canvas> element children should be considered to be referred to in markup order (J.9).

· Added conformance rule S9.30 to indicate that children of <VisualBrush> elements SHOULD NOT be referenced by document structure (J.9).

· Clarified conformance rule O9.4 as follows: “Consumers MAY first attempt to locate named elements for document structure directly from the FixedDocument part markup, where they might appear as <LinkTarget> elements if that named element is also intended as an addressable location.” Previously it was not clear that named elements not intended as addressable locations would not appear in the FixedDocument part markup (J.9).

· Deprecated optional conformance rules O11.18, O11.19, and O11.20 that dealt with automatic stroke dash adjustment, which has been cut from this version of the specification (J.11).

· Added conformance rule M12.7 for handling content types with parameters (J.12).

· Added Reference column to Table J-29 “Additional MUST Conformance Requirements” (J.12)