diff --git a/xproc/src/main/xml/specification.xml b/xproc/src/main/xml/specification.xml index ec1724d9c..b46218c86 100644 --- a/xproc/src/main/xml/specification.xml +++ b/xproc/src/main/xml/specification.xml @@ -501,10 +501,10 @@ document has no base URI. If a step serializes a document whose document properties contain a serialization property, it must use these serialization properties. If the step itself allows specification of serialization properties - (usually by a option), both sets of serialization - properties are merged. Serialization properties specified on the step itself have - precedence over serialization properties specified with the serialization - document property. + (usually by a option), the serialization + properties are merged. Serialization properties specified on the document have + precedence over serialization properties specified on the step. + See . @@ -525,7 +525,36 @@ processor must assure that the content-type property is appropriate If a step changes the content-type in this way, it must also remove the serialization property. - +
+Managing properties + +In XProc 3.0, the rules for merging serialization properties stated that +the properties on the step took precedence. In practice, all of the steps with a + option explicitly stated the opposite. This +inconsistency was confusing. Changing the behavior of the steps would +likely break many existing pipelines, so the merging behavior has been changed +in this specification instead. + +A pipeline author who wants to explicitly override all the serialization +properites for a document can easily do so with p:set-properties +before the step where they want the override to apply. + +Explicitly overriding only some properties is also +possible, but somewhat more complicated. The following p:set-attributes +example removes only the indent property from a document’s serialization properties, +leaving all other properties intact: + +]]> + +Any property or set of properties can be removed or updated in this way. + +
+
Document Types