About conditional processing

Certain concepts are critical for a full understanding of conditional processing.

conditional processing
A process that determines whether content is included, excluded, or flagged. This process is based on a comparison of conditional-processing attributes in the DITA source with the rules that are set in one or more DITAVAL documents.
conditional processing attribute

Attributes that can be used for filtering and flagging. These are the following attributes:

  • @props and any attribute specialized from @props, including those integrated by default in the OASIS-provided document-type shells: @audience, @deliveryTarget, @platform, @product, @otherprops
  • The @rev attribute, which supports flagging but not filtering
conditional-processing profile
A set of rules that are provided to a processor for use at rendering time. These rules are based on one or more DITAVAL documents.
Draft comment: rodaande 21 March 2022
I'm not certain "conditional processing profile" warrants a separate definition. I added it after going through some of the following topics, and seeing a distinctions between a DITAVAL document and a [set of conditions sent as input to a processor] – for example, DITA-OT or an editor can apply conditions from multiple DITAVAL documents as a single conditional processing profile.

Draft comment: robander
TO RESOLVE 11 May 2026: Recommend removing this term

DITAVAL document
A document that specifies a set of rules that define which elements to include, exclude, or flag. A DITAVAL document can be a file on the file system, a set of rules stored in memory, or another way of storing information that is expressed using DITAVAL syntax.
Draft comment: Kristen J Eberlein 21 March 2022

Do we need to explicitly mention passthrough in the first sentence, or is passthrough considered to be part of flagging? If the latter, we should explicitly state that in the topic where we give a high-level overview of the sort of rules that can be defined using a DITAVAL document.

Draft comment: rodaande 25 March 2022
I think it could be considered a form of flagging. Given that I expect usage is low, and it is so nebulous ("do this and something might happen, if your rendering format enables it"), I don't think it deserves a whole topic on its own. Could we broaden the definition of flagging to say that it also encompasses the "passthrough" value, and then extend the "Flagging" topic to cover both?
Draft comment: robander
TO RESOLVE 11 May 2026: How about if we update the definition of "flagging" below to clarify that this can also include other modifications to the output, such as preserving DITA attributes in the rendered output, or through the use of @add-outputclass, processing matching DITA elements as if they had a specified @outputclass attribute.

filtering
The process of excluding content at rendering time.
Draft comment: Kristen J Eberlein 21 March 2022

Do we need to broaden the definition of filtering and mention inclusion also?

Draft comment: rodaande 25 March 2022
I'm wary of trying to pin down a broad term like "including", but I don't really know. The assumption of the spec, and I assumed of spec readers, was that the DITA content is rendered in some way (in an editor, as HTML, as PDF, etc), and that by default the DITA content is meant for publishing. For that reason, we go out of our way to say *not* to render data elements and foreign elements, but we don't do the reverse for paragraphs, tables, etc.

I'm not sure though, beause "include" is clearly a value you can specity in DITAVAL.

Draft comment: robander
TO RESOLVE 11 May 2026: how about if we just update this to say "The process of including or excluding content at rendering time"
flagging
The process of emphasizing content by inserting images, text, or stylistic formatting at rendering time.