Next in thread →
Next in month →
Re: [dita-comment] Enhancing filtering logic
Hi, Ralf.
The DITA TC discussed your e-mail at its meeting on 12 June 2018.
Here is the substance of the discussion:
General agreement that yes, there are some boolean expressions
that cannot be handled through DITAVAL.
Strong concern that introducing boolean logic for filtering
who add considerable complexity. (Since the release of DITA 1.2,
the DITA TC has listed complexity as a factor that must be
considered in conjunction with any proposals that change the
standard.) Those TC members with experience with SGML or XML
schemas that permitted boolean logic were especially vocal.
General agreement that a proposal for enhancing filtering to
use boolean expressions would be considered, but no one present
at the meeting had the time, interest, or business requirements
necessary to champion such a proposal.
Best,
Kris
Kristen James Eberlein
Chair, OASIS DITA Technical Committee
Principal consultant, Eberlein Consulting
www.eberleinconsulting.com
+1 919 622-1501; kriseberlein (skype)
On 6/6/2018 11:44 AM, Frank Ralf wrote:
Hi,
We stumbled across the
limitations of the
current filtering logic in DITA during a recent
customer project. I found the following discussion in the
Yahoo DITA Users group that makes some interesting
suggestions to enhance the filtering logic and make it more
versatile. We support these proposals. Basically it would
allow switching the AND and OR behavior and introducing a
kind of NOT operator. Would that be feasible?
Best regards,
Frank
Managing
filtering logic
[…]
Filtering
logic for attributes and values
The filtering of
attributes and values follows a fixed logical combining
behavior.
Combining several
attributes in a filtering situation:
All attributes must be
“true” to process the element (AND logic).
<ph type=”tree”
color=”green”>…</ph>
(@type AND @color must
be true to process the element)
Combining several values
within one attribute in a filtering situation:
Only one of the listed
values must be true to process the element (OR logic).
<ph product=”ProdA
ProdB ProdC” >…</ph>
(only one of the listed
“Prod…” values must be true to process the element)
We would like to give
authors the chance to change the filtering logic because it
depends on the filtering situation which logic is needed.
<ph type=”tree”
color=”green” or-profiling-logic=”type
color”>Process me if type is tree or color is
green.</ph>
<ph feature=”all-values(wlan
bluetooth nfc)” >Process me if all listed
wireless-features are set</ph>
The
“other-than” logic
Sometimes we want to
filter-in a text fragment only if a specific value is NOT
set (regardless other values of this attribute are set or
not).
Example:
Normally, if you want to
exclude content for only one product (e. g. ProdA) you have
to filter all other products in, like:
<ph product=”ProdB
ProdC ProdD … ProdN” >Text for non-ProdA
products</ph>
This is very difficult
to manage.
We would like to say:
<ph product=”if-not(ProdA)”/>
This fragment would be
processed if @product is empty or any other value than
“ProdA” is set.
[…]
Source:
https://groups.yahoo.com/neo/groups/dita-users/conversations/topics/42463
Frank Ralf
Technical Consultant
_______________________________________________________________
Phone: +49 40 7200 500-30
E-Mail:
_______________________________________________________________
parson AG
Chrysanderstraße 69A, 21029 Hamburg, Germany
Sitz
und Registergericht/Domicile and Court of Registry: Hamburg;
HRB-Nr./Commercial Register No.: 126569
Vorsitzender
des Aufsichtsrates/Chairman of the Supervisory Board: Dirk
Lindberg
Vorstand/CEO:
Ulrike Parson
Phone:
+49 40 7200 500-0
E-Mail:
Web:
http://www.parson-europe.com
The
information contained in this message is confidential and
may be legally privileged. The message is intended solely
for the addressee(s). If you are not the intended recipient,
you are hereby notified that any use, dissemination, or
reproduction is strictly prohibited and may be unlawful. If
you are not the intended recipient, please contact the
sender by return e-mail and destroy all copies of the
original message.
Next in thread →
Next in month →