p5dkp.ditafiles.wordindex.xsl 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xsl:stylesheet xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
  3. xmlns:xs="http://www.w3.org/2001/XMLSchema"
  4. xmlns:p5bws="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/WPS_Functions.xsd"
  5. xmlns:system_cache__appinfo="http://biuro.biall-net.pl/xmlschema_procesy5/default_db_xml_cache/appinfo.xsd"
  6. xmlns:p5dkp="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/dita_kosztorys_projektowy/p5dkp.xsd"
  7. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  8. xmlns:p5suis="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/system_ui_info_speech/system_ui_info_speech.xsd"
  9. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  10. xmlns:p5xsda="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/xsd_asserts/p5xsda.xsd"
  11. xmlns:ditaarch="http://dita.oasis-open.org/architecture/2005/"
  12. xmlns:system_cache__dita="http://biuro.biall-net.pl/xmlschema_procesy5/default_db_xml_cache/dita.xsd"
  13. xmlns:p5ant-interface="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/ant_interface/ant_interface.xsd"
  14. exclude-result-prefixes="xs ditaarch"
  15. version="2.0">
  16. <!--<xsl:include href="p5dkp.keyscope.xsl"/>-->
  17. <xsl:include href="../ant_interface/p5ant-interface.param.xsl"/>
  18. <xsl:include href="p5dkp.ditafiles.func.xsl"/>
  19. <xsl:include href="p5dkp.ditafiles.wordindex.audience.xsl"/>
  20. <xsl:output indent="yes" />
  21. <xsl:strip-space elements="*"/>
  22. <xsl:param name="p5dkp:ditafiles.wordindex.xml.thread.count" required="yes"/> <!-- ilosc rownoleglych zapodan -->
  23. <xsl:param name="p5dkp:ditafiles.wordindex.xml.thread.no" required="yes"/> <!-- numer procesu -->
  24. <xsl:param name="p5dkp.dita_root.ditamap.dir"/>
  25. <xsl:param name="p5dkp:ditafiles.wordindex.xml.only_ditadir" /> <!-- select="true()" -->
  26. <xsl:param name="p5dkp.ditafiles.wordindex.strings.merge.xml.ignore.replace.s" required="yes"/>
  27. <!--<xsl:variable name="p5dkp.dita_root.ditamap.dir">
  28. <xsl:for-each select="tokenize($p5dkp.dita_root.ditamap.dir,'/')[ position() &lt; count(tokenize($p5dkp.dita_root.ditamap.dir,'/'))]">
  29. <xsl:value-of select="."/><xsl:if test="not(position() = last())"><xsl:text>/</xsl:text></xsl:if>
  30. </xsl:for-each>
  31. </xsl:variable>-->
  32. <xsl:param name="p5dkp:wordindex.strings.s.size" select="4"/> <!-- to analize this sizes of string phrases -->
  33. <xsl:param name="p5dkp:wordindex.strings.t.p.size" select="3"/>
  34. <xsl:template mode="p5dkp:ditafiles.wordindex.xml" match="p5ant-interface:filelist.index_fileset.xml">
  35. <p5dkp:ditafiles.wordindex.xml>
  36. <xsl:for-each select="p5ant-interface:p5dg.file">
  37. <xsl:choose>
  38. <xsl:when test="(( position() + number($p5dkp:ditafiles.wordindex.xml.thread.no)) mod number($p5dkp:ditafiles.wordindex.xml.thread.count)) ">
  39. <p5dkp:ditafiles.wordindex_NOT>
  40. <xsl:attribute name="pos" select="position()"/>
  41. <xsl:attribute name="thread.count" select="$p5dkp:ditafiles.wordindex.xml.thread.count"/>
  42. <xsl:attribute name="thread.no" select="$p5dkp:ditafiles.wordindex.xml.thread.no"/>
  43. </p5dkp:ditafiles.wordindex_NOT>
  44. </xsl:when>
  45. <xsl:otherwise>
  46. <p5dkp:ditafiles.wordindex>
  47. <xsl:attribute name="pos" select="position()"/>
  48. <xsl:attribute name="thread.count" select="$p5dkp:ditafiles.wordindex.xml.thread.count"/>
  49. <xsl:attribute name="thread.no" select="$p5dkp:ditafiles.wordindex.xml.thread.no"/>
  50. <xsl:attribute name="p5dkp.dita_root.ditamap.dir" select="$p5dkp.dita_root.ditamap.dir"/>
  51. <xsl:choose>
  52. <xsl:when test="contains(p5ant-interface:filepath.dir/text(),$p5dkp.dita_root.ditamap.dir)">
  53. <xsl:attribute name="p5dkp.dita_root.ditamap.dir.true" select="true()"/>
  54. </xsl:when>
  55. </xsl:choose>
  56. <xsl:copy-of select="*"/>
  57. <xsl:apply-templates mode="p5dkp:ditafiles.wordindex.audience"/>
  58. <xsl:apply-templates mode="p5dkp:ditafiles.wordindex.audience.map.path"/>
  59. <xsl:choose>
  60. <xsl:when test="not( contains(p5ant-interface:filepath.dir/text(),p5dkp:ditafiles.dir_from_fullpath($p5dkp.dita_root.ditamap.dir))) and p5ant-interface:param.if.istrue($p5dkp:ditafiles.wordindex.xml.only_ditadir) ">
  61. <xsl:comment>#65 bypassed due to p5ant-interface:param.if.istrue($p5dkp.dita_root.ditamap.dir) and not not( contains(p5ant-interface:filepath.dir/text(),p5dkp:ditafiles.dir_from_fullpath($p5dkp.dita_root.ditamap.dir)) (<xsl:value-of select="p5dkp:ditafiles.dir_from_fullpath($p5dkp.dita_root.ditamap.dir)"/>) ant set $$p5dkp:ditafiles.wordindex.xml.only_ditadir = "<xsl:value-of select="$p5dkp:ditafiles.wordindex.xml.only_ditadir"/>" p5ant-interface:param.if.istrue($p5dkp:ditafiles.wordindex.xml.only_ditadir) = <xsl:value-of select="p5ant-interface:param.if.istrue($p5dkp:ditafiles.wordindex.xml.only_ditadir)"/>; </xsl:comment>
  62. </xsl:when>
  63. <xsl:when test="doc-available(p5ant-interface:dir.filename/text())" >
  64. <xsl:apply-templates mode="p5dkp:ditafiles.wordindex" select="doc(p5ant-interface:dir.filename/text())"/>
  65. </xsl:when>
  66. </xsl:choose>
  67. </p5dkp:ditafiles.wordindex>
  68. </xsl:otherwise>
  69. </xsl:choose>
  70. </xsl:for-each>
  71. </p5dkp:ditafiles.wordindex.xml>
  72. </xsl:template>
  73. <xsl:template mode="p5dkp:ditafiles.wordindex" match="*">
  74. <xsl:copy copy-namespaces="no">
  75. <xsl:copy-of select="@*"/>
  76. <xsl:apply-templates mode="#current"/>
  77. </xsl:copy>
  78. </xsl:template>
  79. <xsl:template mode="p5dkp:ditafiles.wordindex" match="text()">
  80. <t>
  81. <xsl:for-each select="tokenize( replace(.,$p5dkp.ditafiles.wordindex.strings.merge.xml.ignore.replace.s,''),' ')">
  82. <xsl:if test="string-length(.) &gt; 0 ">
  83. <s><xsl:value-of select="."/></s>
  84. </xsl:if>
  85. </xsl:for-each>
  86. </t>
  87. </xsl:template>
  88. </xsl:stylesheet>