p5dkp.messaging.xsl 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  3. xmlns:p5dkp="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/dita_kosztorys_projektowy/p5dkp.xsd"
  4. xmlns:xs="http://www.w3.org/2001/XMLSchema"
  5. xmlns:p5suis="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/system_ui_info_speech/system_ui_info_speech.xsd"
  6. xmlns:p5dg="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/documentation_generator/documentation_generator.xsd"
  7. exclude-result-prefixes="xs"
  8. version="2.0">
  9. <xsl:output indent="yes"/>
  10. <xsl:strip-space elements="*"/>
  11. <xsl:param name="p5dkp.messaging.binding.dita.xmlattr" required="yes"/>
  12. <xsl:param name="p5dkp.messaging.binding.dita.xmlattr.person.prefix" required="yes"/>
  13. <xsl:param name="p5dkp.messaging.binding.dita.keyscope.person.prefix" required="yes"/>
  14. <xsl:param name="p5dkp.messaging.binding.dita.keyscope.person.key.keys" required="yes"/>
  15. <xsl:param name="p5dkp.messaging.binding.dita.keyscope.person.person_name.keys" required="yes"/>
  16. <xsl:param name="p5dkp.messaging.binding.dita.keyscope.person.person_mail.keys" required="yes"/>
  17. <xsl:param name="p5dkp.messaging.binding.dita.keyscope.person.person_phone.keys" required="yes"/>
  18. <xsl:param name="p5dkp.messaging.binding.dita.keyscope.person.person_picture_file.keys" required="yes"/>
  19. <xsl:include href="../documentation_generator/p5dg.filepath.xsl"/>
  20. <xsl:template match="p5dkp:ditafiles.xml" mode="p5dkp:messaging.status_queue.ditafiles.states.xml">
  21. <p5dkp:messaging.status_queue.ditafiles.states.xml>
  22. <p5dkp:messaging.status_queue.ditafiles.states.xml.person>
  23. <xsl:for-each-group select=".//p5dkp:ditafiles.file[ not(@scope='peer') ]" group-by="@p5dkp:true.path">
  24. <xsl:copy copy-namespaces="no">
  25. <xsl:copy-of select="@*"/>
  26. <person.key keyword="{keyword/text()}">
  27. <xsl:apply-templates mode="person.key" />
  28. </person.key>
  29. <person_name>
  30. <xsl:apply-templates mode="person.person_name" />
  31. </person_name>
  32. <person_mail>
  33. <xsl:apply-templates mode="person.person_mail" />
  34. </person_mail>
  35. </xsl:copy>
  36. </xsl:for-each-group>
  37. <!--<xsl:variable name="p5dkp:messaging.status_queue.ditafiles.states.xml">
  38. <p5dkp:messaging.status_queue.ditafiles.states.xml>
  39. <!-\-<xsl:apply-templates mode="p5dkp:messaging.status_queue.ditafiles.states.person.list" select="descendant-or-self::*[descendant-or-self::map.keys.eval/@map.keys.eval=$p5dkp.messaging.binding.dita.keyscope.person.key.keys]"/>-\->
  40. <xsl:for-each-group select="descendant-or-self::p5dkp:ditafiles.file[descendant-or-self::keys/@map.keys.eval=$p5dkp.messaging.binding.dita.keyscope.person.key.keys]" group-by="@p5dkp:true.path">
  41. <xsl:copy copy-namespaces="no">
  42. <xsl:copy-of select="@*"/>
  43. <xsl:for-each select="descendant-or-self::keys[@map.keys.eval=$p5dkp.messaging.binding.dita.keyscope.person.key.keys]">
  44. <TOO_ZACZYNAMY_SZUKAC>
  45. <xsl:copy copy-namespaces="no">
  46. <xsl:copy-of select="@*"/>
  47. <xsl:for-each select="ancestor-or-self::p5dkp:ditafiles.file[descendant-or-self::keys[@map.keys.eval=$p5dkp.messaging.binding.dita.keyscope.person.person_name.keys]][1]">
  48. <PARENT_KEYDEF>
  49. <xsl:copy copy-namespaces="no">
  50. <xsl:copy-of select="@*"/>
  51. <xsl:apply-templates mode="p5dkp:messaging.status_queue.ditafiles.states.person.list"/>
  52. </xsl:copy>
  53. </PARENT_KEYDEF>
  54. </xsl:for-each>
  55. </xsl:copy>
  56. </TOO_ZACZYNAMY_SZUKAC>
  57. </xsl:for-each>
  58. </xsl:copy>
  59. </xsl:for-each-group>
  60. </p5dkp:messaging.status_queue.ditafiles.states.xml>
  61. </xsl:variable>-->
  62. <!--<xsl:for-each select="$p5dkp:messaging.status_queue.ditafiles.states.xml//TOO_ZACZYNAMY_SZUKAC[ descendant-or-self::keydef[@keys = $p5dkp.messaging.binding.dita.keyscope.person.key.keys ] and descendant-or-self::keydef[@keys = $p5dkp.messaging.binding.dita.keyscope.person.person_name.keys ] and descendant-or-self::keydef[@keys = $p5dkp.messaging.binding.dita.keyscope.person.person_mail.keys ]]">
  63. <xsl:copy copy-namespaces="no">
  64. <person.key>
  65. <xsl:apply-templates mode="person.key"/>
  66. </person.key>
  67. <person_name>
  68. <xsl:apply-templates mode="person.person_name"/>
  69. </person_name>
  70. <person_mail>
  71. <xsl:apply-templates mode="person.person_mail"/>
  72. </person_mail>
  73. </xsl:copy>
  74. </xsl:for-each>-->
  75. </p5dkp:messaging.status_queue.ditafiles.states.xml.person>
  76. <p5dkp.messaging.status_queue.ditafiles.states.xml.analys.xml>
  77. <xsl:for-each-group select=".//p5dkp:ditafiles.file" group-by="@p5dkp:true.path">
  78. <xsl:copy copy-namespaces="no">
  79. <xsl:copy-of select="@*"/>
  80. <xsl:apply-templates mode="p5dkp:messaging.data_hash" select="."/>
  81. <!--<xsl:apply-templates mode="p5dkp:messaging.audience" select="."/>-->
  82. </xsl:copy>
  83. </xsl:for-each-group>
  84. </p5dkp.messaging.status_queue.ditafiles.states.xml.analys.xml>
  85. </p5dkp:messaging.status_queue.ditafiles.states.xml>
  86. </xsl:template>
  87. <xsl:template mode="p5dkp:messaging.data_hash" match="*">
  88. <p5dkp:messaging.data_hash>
  89. <xsl:variable name="p5dkp:messaging.data_hash.elements">
  90. <p5dkp:messaging.data_hash.elements>
  91. <xsl:apply-templates mode="p5dkp:messaging.data_hash.elements"/>
  92. </p5dkp:messaging.data_hash.elements>
  93. </xsl:variable>
  94. <xsl:attribute name="p5dkp:messaging.data_hash.elements.count" select="count($p5dkp:messaging.data_hash.elements//*)"/>
  95. <xsl:attribute name="p5dkp:messaging.data_hash.elements.strlen" select="sum($p5dkp:messaging.data_hash.elements//*/text())"/>
  96. </p5dkp:messaging.data_hash>
  97. </xsl:template>
  98. <xsl:template mode="p5dkp:messaging.data_hash.elements" match="*">
  99. <xsl:copy>
  100. <xsl:value-of select="string-length(name())"/>
  101. <xsl:apply-templates mode="#current" select="@*"/>
  102. <xsl:apply-templates mode="#current"/>
  103. </xsl:copy>
  104. </xsl:template>
  105. <xsl:template mode="p5dkp:messaging.data_hash.elements" match="p5dkp:ditafiles.file"/>
  106. <xsl:template mode="p5dkp:messaging.data_hash.elements" match="@*">
  107. <attr><xsl:value-of select="string-length(name())"/></attr>
  108. <attr><xsl:value-of select="string-length(.)"/></attr>
  109. </xsl:template>
  110. <xsl:template mode="p5dkp:messaging.data_hash.elements" match="text()">
  111. <text><xsl:value-of select="string-length(.)"/></text>
  112. </xsl:template>
  113. <xsl:template mode="person.key person.person_name" match="p5dkp:ditafiles.file[descendant-or-self::p5dkp:ditafiles.file[2]]" priority="6">
  114. <xsl:comment>#86111 finished at file @id=<xsl:value-of select="@id"/>
  115. at name = <xsl:value-of select="name()"/>
  116. <xsl:for-each select="*">
  117. mames - <xsl:value-of select="name()"/>
  118. </xsl:for-each>
  119. </xsl:comment>
  120. </xsl:template>
  121. <xsl:template mode="person.key person.person_name" match="subjectScheme" priority="8">
  122. <xsl:comment>#90 finished at file</xsl:comment>
  123. </xsl:template>
  124. <xsl:template mode="person.key" match="*[descendant-or-self::*[contains(@keyscope,$p5dkp.messaging.binding.dita.keyscope.person.prefix)]]" priority="4">
  125. <xsl:copy copy-namespaces="no">
  126. <xsl:attribute name="a14141">#144</xsl:attribute>
  127. <xsl:copy-of select="@*"/>
  128. <!--<xsl:choose>
  129. <xsl:when test="*[descendant-or-self::keys[contains(@map.keys.eval,$p5dkp.messaging.binding.dita.keyscope.person.prefix)]]">
  130. <xsl:apply-templates mode="#current"/>
  131. </xsl:when>
  132. <xsl:otherwise>
  133. <xsl:apply-templates mode="finalize"/>
  134. </xsl:otherwise>
  135. </xsl:choose>-->
  136. </xsl:copy>
  137. </xsl:template>
  138. <xsl:template mode="person.key" match="*[descendant-or-self::keys[contains(@map.keys.eval,$p5dkp.messaging.binding.dita.keyscope.person.prefix)]]" priority="5">
  139. <xsl:copy copy-namespaces="no">
  140. <xsl:attribute name="keyscope_tutaj"/>
  141. <xsl:copy-of select="@*"/>
  142. <xsl:choose>
  143. <xsl:when test="*[descendant-or-self::keys[contains(@map.keys.eval,$p5dkp.messaging.binding.dita.keyscope.person.prefix)]]">
  144. <xsl:apply-templates mode="#current"/>
  145. </xsl:when>
  146. <xsl:otherwise>
  147. <xsl:apply-templates mode="finalize"/>
  148. </xsl:otherwise>
  149. </xsl:choose>
  150. </xsl:copy>
  151. </xsl:template>
  152. <xsl:template mode="person.key" match="*[descendant-or-self::keydef[@keys=$p5dkp.messaging.binding.dita.keyscope.person.key.keys]]" priority="5">
  153. <xsl:copy copy-namespaces="no">
  154. <xsl:copy-of select="@*"/>
  155. <xsl:choose>
  156. <xsl:when test="*[descendant-or-self::keydef[@keys=$p5dkp.messaging.binding.dita.keyscope.person.key.keys]]">
  157. <xsl:apply-templates mode="#current"/>
  158. </xsl:when>
  159. <xsl:otherwise>
  160. <xsl:apply-templates mode="finalize"/>
  161. </xsl:otherwise>
  162. </xsl:choose>
  163. </xsl:copy>
  164. </xsl:template>
  165. <xsl:template mode="person.key" match="*[contains(@map.keys.eval,$p5dkp.messaging.binding.dita.keyscope.person.prefix)]">
  166. <xsl:copy copy-namespaces="no">
  167. <xsl:copy-of select="@*"/>
  168. <xsl:apply-templates mode="#current"/>
  169. <xsl:copy-of select="text()"></xsl:copy-of>
  170. </xsl:copy>
  171. </xsl:template>
  172. <xsl:template mode="person.key" match="*[descendant-or-self::keys[@map.keys.eval=$p5dkp.messaging.binding.dita.keyscope.person.key.keys]]">
  173. <xsl:copy copy-namespaces="no">
  174. <xsl:copy-of select="@*"/>
  175. <xsl:choose>
  176. <xsl:when test="*[descendant-or-self::keys[@map.keys.eval=$p5dkp.messaging.binding.dita.keyscope.person.key.keys]]">
  177. <xsl:apply-templates mode="#current"/>
  178. </xsl:when>
  179. <xsl:otherwise>
  180. <xsl:apply-templates mode="finalize"/>
  181. </xsl:otherwise>
  182. </xsl:choose>
  183. </xsl:copy>
  184. </xsl:template>
  185. <xsl:template mode="person.person_name" match="*[descendant-or-self::keydef[@keys=$p5dkp.messaging.binding.dita.keyscope.person.person_name.keys]]" priority="5">
  186. <!--<xsl:copy copy-namespaces="no">
  187. <xsl:copy-of select="@*"/>-->
  188. <xsl:choose>
  189. <xsl:when test="*[descendant-or-self::keys[@map.keys.eval=$p5dkp.messaging.binding.dita.keyscope.person.person_name.keys]]">
  190. <xsl:apply-templates mode="#current"/>
  191. </xsl:when>
  192. <xsl:otherwise>
  193. <xsl:apply-templates mode="finalize"/>
  194. </xsl:otherwise>
  195. </xsl:choose>
  196. <!--</xsl:copy>-->
  197. </xsl:template>
  198. <xsl:template mode="person.person_name" match="*[descendant-or-self::keys[@map.keys.eval=$p5dkp.messaging.binding.dita.keyscope.person.person_name.keys]]">
  199. <!--<xsl:copy copy-namespaces="no">
  200. <xsl:copy-of select="@*"/>-->
  201. <person.person_name>
  202. <xsl:choose>
  203. <xsl:when test="*[descendant-or-self::keys[@map.keys.eval=$p5dkp.messaging.binding.dita.keyscope.person.person_name.keys]]">
  204. <xsl:apply-templates mode="#current"/>
  205. </xsl:when>
  206. <xsl:otherwise>
  207. <xsl:apply-templates mode="finalize"/>
  208. </xsl:otherwise>
  209. </xsl:choose>
  210. </person.person_name>
  211. <!--</xsl:copy>-->
  212. </xsl:template>
  213. <xsl:template mode="person.person_mail" match="*[descendant-or-self::keydef[@keys=$p5dkp.messaging.binding.dita.keyscope.person.person_mail.keys]]" priority="5">
  214. <!--<xsl:copy copy-namespaces="no">-->
  215. <!--<xsl:copy-of select="@*"/>-->
  216. <person.person_mail>
  217. <xsl:choose>
  218. <xsl:when test="*[descendant-or-self::keys[@map.keys.eval=$p5dkp.messaging.binding.dita.keyscope.person.person_mail.keys]]">
  219. <xsl:apply-templates mode="#current"/>
  220. </xsl:when>
  221. <xsl:otherwise>
  222. <xsl:apply-templates mode="finalize"/>
  223. </xsl:otherwise>
  224. </xsl:choose>
  225. </person.person_mail>
  226. <!--</xsl:copy>-->
  227. </xsl:template>
  228. <xsl:template mode="person.person_mail" match="*[descendant-or-self::keys[@map.keys.eval=$p5dkp.messaging.binding.dita.keyscope.person.person_mail.keys]]">
  229. <!--<xsl:copy copy-namespaces="no">-->
  230. <!-- <xsl:copy-of select="@*"/>-->
  231. <xsl:choose>
  232. <xsl:when test="*[descendant-or-self::keys[@map.keys.eval=$p5dkp.messaging.binding.dita.keyscope.person.person_mail.keys]]">
  233. <xsl:apply-templates mode="#current"/>
  234. </xsl:when>
  235. <xsl:otherwise>
  236. <xsl:apply-templates mode="finalize"/>
  237. </xsl:otherwise>
  238. </xsl:choose>
  239. <!--</xsl:copy>-->
  240. </xsl:template>
  241. <xsl:template match="text()" mode="finalize">
  242. <xsl:copy-of select="."/>
  243. </xsl:template>
  244. <xsl:template match="*" mode="finalize">
  245. <xsl:copy copy-namespaces="no">
  246. <xsl:copy-of select="@*"/>
  247. <xsl:apply-templates mode="#current"/>
  248. </xsl:copy>
  249. </xsl:template>
  250. <xsl:template match="p5dkp:ditafiles.file" mode="finalize">
  251. <xsl:comment>#186AA finished at <xsl:value-of select="name()"/>; </xsl:comment>
  252. </xsl:template>
  253. <xsl:template mode="person.key person.person_name person.person_mail" match="*"/>
  254. </xsl:stylesheet>