On 5/14/24 17:24, Jirka Kosek wrote:
I've created simple example that uses stock DocBook. Please find
attached sample DocBook file (profiling-test.xml) and definition of
profiles (test.profiles).
Many thanks for doing that. It's much clearer now.
I'm using profiling on two attributes -- status and xml:lang.
And I haven't seen other parameters than profile.value and
profile.attribute set in the log.
I'm sorry but I don't understand this.
In attached screenshot, I have a profile named "java",
where attribute @condition, if set, must be set to "java"
and
attribute @userlevel must, if set, be set to "normal"
for a DocBook element to appear in the converted file.
When I select this profile, I see in XXE's "Command Execution" log
(https://www.xmlmind.com/xmleditor/_distrib/doc/help/statusTool.html)
I'm geting different behaviour unfortunately. When I use profile that
should choose xml:lang=cs and status=final I'm getting following in the
log (using standard DocBook support in XXE):
Using the following stylesheet parameters:
profile.value=cs
xep.extensions=0
admon.textlabel=0
callout.graphics=1
fop1.extensions=1
admon.graphics=1
ulink.show=0
paper.type=A4
toc.section.depth=3
shade.verbatim=1
use.extensions=1
variablelist.as.blocks=1
section.autolabel=1
profile.attribute=lang
So @status is completely ignored and xml:lang attribute is passed using
profile.attribute and profile.value with wrong attribute name (lang
instead of xml:lang).
When I do the same with my customized DocBook where transformation
doesn't have any parameters declared then I see in the log:
Using the following stylesheet parameters:
profile.value=cs
profile.attribute=lang
profile.lang=
profile.status=
And I would expect to see
profile.lang=cs
profile.status=final
So yep, it is quite strange.
Well, not really.
A quick look at XXE's code shows that the only DocBook profiling
attributes supported by the "Easy Profiling" add-on are:
---
"arch",
"audience", // V5.0
"condition",
"conformance",
"os",
"outputformat", // V5.1
"revision",
"revisionflag",
"role",
"security",
"userlevel",
"vendor",
"wordsize"
---
@status and @xml:lang are NOT part of these supported profiling attributes.
This list comes from various TDGs. For example, "2.1. Common Effectivity
Attributes",
https://tdg.docbook.org/tdg/5.2/ref-elements#common.effectivity.attributes
Moreover, XXE's code assumes that only a SINGLE attribute which is not
part of the above list is supported by the DocBook XSLT stylesheets to
perform conditional processing.
This assumption comes from "DocBook XSL: The Complete Guide", "Chapter
26. Profiling (conditional text)", "Custom profiling attribute",
http://www.sagehill.net/docbookxsl/CustomProfilingAttr.html
Therefore, XXE is expected to invoke the DocBook XSLT stylesheets with
either:
profile.attribute=xml:lang (yes, profile.attribute=lang looks like a bug)
profile.value=cs
or:
profile.attribute=status
profile.value=final
XXE randomly picked @xml:lang over @status but of course it could have
picked @status.
Please do not hesitate to explain what's wrong with the two above
assumptions (the list of "Common Effectivity Attributes" and the "Custom
profiling attribute") and may be, point us to more up-to-date reference
documents. We'll be glad to fix bugs and/or improve the DocBook support
of the "Easy Profiling" add-on
(https://www.xmlmind.com/xmleditor/_distrib/doc/profiling/index.html).
--
XMLmind XML Editor Support List
xmleditor-support@xmlmind.com
http://www.xmlmind.com/mailman/listinfo/xmleditor-support