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

Reply via email to