p5dkp.dita_root.ditamap.used.ditaval.xsl 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  3. xmlns:xs="http://www.w3.org/2001/XMLSchema"
  4. xmlns:p5dkp="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/dita_kosztorys_projektowy/p5dkp.xsd"
  5. xmlns:ditaarch="http://dita.oasis-open.org/architecture/2005/"
  6. exclude-result-prefixes="xs"
  7. version="2.0">
  8. <xsl:output indent="yes" method="xml" exclude-result-prefixes="ditaarch"/>
  9. <xsl:strip-space elements="*"/>
  10. <xsl:param name="p5dkp.dita_root.ditamap.used.ditaval" required="yes"/>
  11. <xsl:template name="p5dkp:ditafiles.audience.analyze">
  12. <p5dkp:ditafiles.audience.analyze>
  13. <xsl:for-each-group select=".//p5dkp:ditafiles.file" group-by="@audience">
  14. <prop>
  15. <xsl:attribute name="att" select="'audience'"/>
  16. <xsl:attribute name="val" select="@audience"/>
  17. <xsl:attribute name="p5dkp:ditafiles.audience.analyze.count" select="count(current-group())"/>
  18. </prop>
  19. </xsl:for-each-group>
  20. <xsl:for-each-group select=".//p5dkp:ditafiles.file" group-by="@product">
  21. <prop>
  22. <xsl:attribute name="att" select="'product'"/>
  23. <xsl:attribute name="val" select="@product"/>
  24. <xsl:attribute name="p5dkp:ditafiles.audience.analyze.count" select="count(current-group())"/>
  25. </prop>
  26. </xsl:for-each-group>
  27. <xsl:for-each-group select=".//p5dkp:ditafiles.file" group-by="@rev">
  28. <prop>
  29. <xsl:attribute name="att" select="'rev'"/>
  30. <xsl:attribute name="val" select="@rev"/>
  31. <xsl:attribute name="p5dkp:ditafiles.audience.analyze.count" select="count(current-group())"/>
  32. </prop>
  33. </xsl:for-each-group>
  34. <xsl:for-each-group select=".//p5dkp:ditafiles.file" group-by="@props">
  35. <prop>
  36. <xsl:attribute name="att" select="'props'"/>
  37. <xsl:attribute name="val" select="@props"/>
  38. <xsl:attribute name="p5dkp:ditafiles.audience.analyze.count" select="count(current-group())"/>
  39. </prop>
  40. </xsl:for-each-group>
  41. </p5dkp:ditafiles.audience.analyze>
  42. </xsl:template>
  43. <xsl:template name="p5dkp:dita_root.ditamap.used.ditaval">
  44. <xsl:variable name="p5dkp:dita_root.ditamap.used.ditaval.templ">
  45. <xsl:call-template name="p5dkp:ditafiles.audience.analyze"/>
  46. </xsl:variable>
  47. <xsl:apply-templates mode="p5dkp:dita_root.ditamap.used.ditaval" select="$p5dkp:dita_root.ditamap.used.ditaval.templ"/>
  48. </xsl:template>
  49. <xsl:template mode="p5dkp:dita_root.ditamap.used.ditaval" match="p5dkp:ditafiles.audience.analyze">
  50. <xsl:apply-templates mode="#current"/>
  51. </xsl:template>
  52. <xsl:template mode="p5dkp:dita_root.ditamap.used.ditaval" match="prop">
  53. <xsl:copy copy-namespaces="no">
  54. <xsl:copy-of select="@att"/>
  55. <xsl:copy-of select="@val"/>
  56. <xsl:attribute name="action" select="'include'"/>
  57. </xsl:copy>
  58. </xsl:template>
  59. <xsl:template mode="p5dkp:dita_root.ditamap.used.ditaval" match="text()|comment()"/>
  60. </xsl:stylesheet>