Plugin selects all references except a ditavalref
Post here questions and problems related to editing and publishing DITA content.
-
- Posts: 105
- Joined: Thu Jan 20, 2022 12:36 pm
Plugin selects all references except a ditavalref
Hello,
I'm currently working on a plugin based on the one created by Radu:
https://github.com/oxygenxml/dita-export-map
It works well, but I notice that if I include a ditavalref in my map, the exportmap won't include the ditaval file in the archive, and in my case it is really necessary. I think this is related to xslt generateAllResources.xsl used in the process:
Do you have any idea or tip to make it work?
Thank you so much
I'm currently working on a plugin based on the one created by Radu:
https://github.com/oxygenxml/dita-export-map
It works well, but I notice that if I include a ditavalref in my map, the exportmap won't include the ditaval file in the archive, and in my case it is really necessary. I think this is related to xslt generateAllResources.xsl used in the process:
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs"
version="2.0">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:for-each select="distinct-values(//file/@path)">
<xsl:value-of select="."/>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Thank you so much

------
Gaspard
Gaspard
-
- Posts: 9436
- Joined: Fri Jul 09, 2004 5:18 pm
Re: Plugin selects all references except a ditavalref
Hi,
The latest stylesheet from the project contains some changes to fix problems induced by the fact that key scopes and branch filtering renames resources:
https://github.com/oxygenxml/dita-expor ... ources.xsl
But even without those changes the ditaval should have been included in the zip? Is the DITAVAL in the same folder as the DITA Map or in a subfolder? Or do you have it in some folder outside of the DITA map folder? Because this latter situation might not work.
Regards,
Radu
The latest stylesheet from the project contains some changes to fix problems induced by the fact that key scopes and branch filtering renames resources:
https://github.com/oxygenxml/dita-expor ... ources.xsl
But even without those changes the ditaval should have been included in the zip? Is the DITAVAL in the same folder as the DITA Map or in a subfolder? Or do you have it in some folder outside of the DITA map folder? Because this latter situation might not work.
Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
<oXygen/> XML Editor
http://www.oxygenxml.com
-
- Posts: 105
- Joined: Thu Jan 20, 2022 12:36 pm
Re: Plugin selects all references except a ditavalref
Hi Radu,
Indeed, I used an older version of the XSLT and updated it. However, you're right the ditaval should be included.
Currently, my map references the ditaval, placed in a subfolder, with a ditavalref as its end:
Indeed, I used an older version of the XSLT and updated it. However, you're right the ditaval should be included.
Currently, my map references the ditaval, placed in a subfolder, with a ditavalref as its end:
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE map PUBLIC "-//OASIS//DTD DITA Map//EN" "map.dtd">
<map>
<title>Colors of life: <ph otherprops="red">Red</ph><ph otherprops="yellow">Yellow</ph><ph
otherprops="black">Black</ph><ph otherprops="green">Green</ph></title>
<topicmeta>
<othermeta name="ft:description" content="This is a publication about colors and how it is possible to use ditavals"/>
</topicmeta>
<topicref href="topics/t_red.dita" otherprops="red"/>
<topicref href="topics/t_yellow.dita" otherprops="yellow">
<topicref href="topics/t_orange.dita" otherprops="orange yellow"/>
</topicref>
<topicref href="topics/t_black.dita" otherprops="black">
<topicref href="topics/t_gray.dita" otherprops="gray"/>
</topicref>
<topicref href="topics/t_green.dita" otherprops="green"/>
<ditavalref href="ditavals/red.ditaval" format="ditaval"/>
</map>
------
Gaspard
Gaspard
-
- Posts: 9436
- Joined: Fri Jul 09, 2004 5:18 pm
Re: Plugin selects all references except a ditavalref
Hi,
I'm attaching the small project I'm working with, I cannot reproduce the problem on my side.
Radu
I'm attaching the small project I'm working with, I cannot reproduce the problem on my side.
flowers.zip
Regards,Radu
You do not have the required permissions to view the files attached to this post.
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
<oXygen/> XML Editor
http://www.oxygenxml.com
-
- Posts: 105
- Joined: Thu Jan 20, 2022 12:36 pm
Re: Plugin selects all references except a ditavalref
Thank you, Radu.
Indeed, it worked well with your publication. I recreated the map for my project and it worked. I did a comparison between the two sources and didn't notice any difference. Strange but luckily it is solved
Indeed, it worked well with your publication. I recreated the map for my project and it worked. I did a comparison between the two sources and didn't notice any difference. Strange but luckily it is solved

------
Gaspard
Gaspard
-
- Posts: 105
- Joined: Thu Jan 20, 2022 12:36 pm
Re: Plugin selects all references except a ditavalref
Hi Radu!
Here is a quick update.
I partially found out the reason for my problem. The situation occurred when I used the plugin online in a CCMS and I noticed that preprocessing with DITA-OT applied the filtering during the preprocessing and before the execution of the plugin that creates an archive with all the resources from the map. Therefore, the ditaval is indeed included in the archive, but topics filtered out are removed from it. However, in my case, I need all the topics to be wrapped in the archive.
I've tried to override the branch-filter process in the dita2exportmap.init target with:
However, it didn't have any effect.
So my question is: Is it possible to override the filtering during OT preprocessing? If so, I guess my declaration in the ant target was incorrect.
Otherwise, if it is not possible to override the branch-filter extension point, is it possible to change the order of execution of the steps involved in the preprocessing?
Here is a quick update.
I partially found out the reason for my problem. The situation occurred when I used the plugin online in a CCMS and I noticed that preprocessing with DITA-OT applied the filtering during the preprocessing and before the execution of the plugin that creates an archive with all the resources from the map. Therefore, the ditaval is indeed included in the archive, but topics filtered out are removed from it. However, in my case, I need all the topics to be wrapped in the archive.
I've tried to override the branch-filter process in the dita2exportmap.init target with:
Code: Select all
<property name="preprocess.branch-filter.skip" value="true"/>
<property name="preprocess.chunk.skip" value="true"/>
<property name="preprocess.copy-image.skip" value="true"/>
<property name="preprocess.profile.skip" value="true"/>
So my question is: Is it possible to override the filtering during OT preprocessing? If so, I guess my declaration in the ant target was incorrect.
Otherwise, if it is not possible to override the branch-filter extension point, is it possible to change the order of execution of the steps involved in the preprocessing?
------
Gaspard
Gaspard
-
- Posts: 9436
- Joined: Fri Jul 09, 2004 5:18 pm
Re: Plugin selects all references except a ditavalref
Hi,
Yes, the fact that profiling it taken into account is a feature of the plugin.
About trying to impose values for params like "preprocess.branch-filter.skip", are you using branch filtering in your DITA Map (the "ditavalref" element)?
There are two preprocess possibilities, "preprocess" and "preprocess2", the build file "plugins/org.dita.base/build_preprocess2_template.xml" takes the skip parameter into account but if you look in the build file "plugins/org.dita.base/build_preprocess.xml" it does not:
The build file:
https://github.com/oxygenxml/dita-expor ... /build.xml
depends on the "preprocess" task:
which does not take this param into account.
If you look at the definition of the "preprocess" task in "plugins/org.dita.base/build_preprocess.xml" it calls various other tasks, among which the filtering tasks:
So in the "dita2exportmap" target you could replace the "preprocess" task reference with explicit references to tasks called by the "preprocess" task, removing the tasks that you do not want to be executed like "branch-filter".
Regards,
Radu
Yes, the fact that profiling it taken into account is a feature of the plugin.
About trying to impose values for params like "preprocess.branch-filter.skip", are you using branch filtering in your DITA Map (the "ditavalref" element)?
There are two preprocess possibilities, "preprocess" and "preprocess2", the build file "plugins/org.dita.base/build_preprocess2_template.xml" takes the skip parameter into account but if you look in the build file "plugins/org.dita.base/build_preprocess.xml" it does not:
Code: Select all
<target name="branch-filter">
<pipeline taskname="branch-filter" message="Filter branches">
<module class="org.dita.dost.module.BranchFilterModule"/>
</pipeline>
</target>
https://github.com/oxygenxml/dita-expor ... /build.xml
depends on the "preprocess" task:
Code: Select all
<target name="dita2exportmap" depends="dita2exportmap.init, build-init, preprocess, map2exportmap"/>
If you look at the definition of the "preprocess" task in "plugins/org.dita.base/build_preprocess.xml" it calls various other tasks, among which the filtering tasks:
Code: Select all
<target name="preprocess" depends="com.oxygenxml.cleanOutput,preprocess.init,ditaval-merge,gen-list,debug-filter,mapref,branch-filter,keyref,copy-to,conrefpush,conref,profile,topic-fragment,chunk,move-meta-entries,maplink,topicpull,clean-map,clean-preprocess,copy-files" description="Preprocessing ended"/>
Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
<oXygen/> XML Editor
http://www.oxygenxml.com
-
- Posts: 105
- Joined: Thu Jan 20, 2022 12:36 pm
Re: Plugin selects all references except a ditavalref
Your help is invaluable and I cannot thank you enough for your support.
I used preprocess2 instead of preprocess and applied my preprocess.branch-filter.skip property.
Everything runs perfectly
I used preprocess2 instead of preprocess and applied my preprocess.branch-filter.skip property.
Everything runs perfectly

------
Gaspard
Gaspard
Return to “DITA (Editing and Publishing DITA Content)”
Jump to
- Oxygen XML Editor/Author/Developer
- ↳ Feature Request
- ↳ Common Problems
- ↳ DITA (Editing and Publishing DITA Content)
- ↳ SDK-API, Frameworks - Document Types
- ↳ DocBook
- ↳ TEI
- ↳ XHTML
- ↳ Other Issues
- Oxygen XML Web Author
- ↳ Feature Request
- ↳ Common Problems
- Oxygen Content Fusion
- ↳ Feature Request
- ↳ Common Problems
- Oxygen JSON Editor
- ↳ Feature Request
- ↳ Common Problems
- Oxygen PDF Chemistry
- ↳ Feature Request
- ↳ Common Problems
- Oxygen Feedback
- ↳ Feature Request
- ↳ Common Problems
- Oxygen XML WebHelp
- ↳ Feature Request
- ↳ Common Problems
- XML
- ↳ General XML Questions
- ↳ XSLT and FOP
- ↳ XML Schemas
- ↳ XQuery
- NVDL
- ↳ General NVDL Issues
- ↳ oNVDL Related Issues
- XML Services Market
- ↳ Offer a Service