p5dkp.map.wymagania.xsl 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  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. exclude-result-prefixes="xs"
  12. version="2.0">
  13. <xsl:output indent="yes"/>
  14. <xsl:strip-space elements="*"/>
  15. <xsl:param name="basedir"/>
  16. <xsl:param name="p5dkp:xsd" required="yes"/>
  17. <xsl:param name="p5dkp.map.etapy.xml" required="yes"/>
  18. <xsl:param name="debug"/>
  19. <xsl:include href="p5dkp.dita.xsl"/>
  20. <xsl:include href="../xsd_asserts/p5xsda.sort_elements.xsl"/>
  21. <xsl:variable name="map.etapy" select="doc($p5dkp.map.etapy.xml)"/>
  22. <xsl:template match="p5dkp:map.keys.xml" mode="p5dkp:map.wymagania.xml">
  23. <xsl:variable name="map.keys" select="root()"/>
  24. <p5dkp:map.wymagania.xml xsi:schemaLocation="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/dita_kosztorys_projektowy/p5dkp.xsd {$p5dkp:xsd}">
  25. <xsl:for-each select=".//topicref[ contains(@keyscope,'wymagania.') ]"> <!-- keydef[@keys='map.etap'] -->
  26. <xsl:variable name="etap" select="$map.etapy/map.etapy/topicref[map.keys.eval[keys[@map.keys.eval=current()/keydef[@keys='map.etap']/@keyref]]]"/>
  27. <xsl:variable name="tools" select="$map.keys//topicref[keydef[map.keys.eval[keys[ @map.keys.eval=current()/keydef[@keys='map.tools']/@keyref]]]]"/>
  28. <!--<xsl:variable name="tools" select="$map.keys//topicref[keydef[map.keys.eval[keys[ @map.keys.eval='tools.master_server.product_no']]]]"/>-->
  29. <xsl:variable name="map.taskid" select="keydef[@keys='map.taskid']//keyword"/>
  30. <p5dkp:wymagania > <!-- xmlns="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/dita_kosztorys_projektowy/p5dkp.xsd" -->
  31. <xsl:copy-of select="@*"/>
  32. <xsl:copy-of select="keydef/map.keys.eval"/>
  33. <xsl:variable name="p5dkp:dita">
  34. <xsl:apply-templates mode="p5dkp:dita">
  35. <xsl:with-param name="keyscope" select="@keyscope"/>
  36. <xsl:with-param name="type" select="'wymagania_no'"/>
  37. </xsl:apply-templates>
  38. </xsl:variable>
  39. <xsl:call-template name="p5xsda:sort_elements">
  40. <xsl:with-param name="p5xsda:elements.local" select="$p5dkp:dita"/>
  41. <xsl:with-param name="p5xsda:xs.sequence" select="doc($p5dkp:xsd)//group[@name='wymagania']/sequence" xpath-default-namespace="http://www.w3.org/2001/XMLSchema"/>
  42. </xsl:call-template>
  43. <xsl:call-template name="p5xsda:missing_elements">
  44. <xsl:with-param name="p5xsda:elements.local" select="$p5dkp:dita"/>
  45. <xsl:with-param name="p5xsda:xs.sequence" select="doc($p5dkp:xsd)//group[@name='wymagania']/sequence" xpath-default-namespace="http://www.w3.org/2001/XMLSchema"/>
  46. </xsl:call-template>
  47. <!--<xsl:call-template name="p5xsda:sort_elements">
  48. <xsl:with-param name="p5xsda:elements.local" select="$p5dkp:dita"/>
  49. <xsl:with-param name="p5xsda:xs.sequence" select="doc($p5dkp:xsd)//group[@name='etap.map']/sequence" xpath-default-namespace="http://www.w3.org/2001/XMLSchema"/>
  50. </xsl:call-template>-->
  51. <!--<xsl:call-template name="p5xsda:sort_elements">
  52. <xsl:with-param name="p5xsda:elements.local" select="$p5dkp:dita"/>
  53. <xsl:with-param name="p5xsda:xs.sequence" select="doc($p5dkp:xsd)//group[@name='role.map']/sequence" xpath-default-namespace="http://www.w3.org/2001/XMLSchema"/>
  54. </xsl:call-template>-->
  55. <!--<p5dkp:dita>
  56. <xsl:copy-of select="$p5dkp:dita"/>
  57. </p5dkp:dita>-->
  58. <xsl:comment>#62 </xsl:comment>
  59. <xsl:call-template name="p5xsda:sort_elements">
  60. <xsl:with-param name="p5xsda:elements.local" select="$p5dkp:dita"/>
  61. <xsl:with-param name="p5xsda:xs.sequence" select="doc($p5dkp:xsd)//group[@name='etap_role.map']/sequence" xpath-default-namespace="http://www.w3.org/2001/XMLSchema"/>
  62. </xsl:call-template>
  63. <xsl:comment>EOF #62</xsl:comment>
  64. <xsl:call-template name="p5xsda:sort_elements">
  65. <xsl:with-param name="p5xsda:elements.local" select="$p5dkp:dita"/>
  66. <xsl:with-param name="p5xsda:xs.sequence" select="doc($p5dkp:xsd)//group[@name='worker.map']/sequence" xpath-default-namespace="http://www.w3.org/2001/XMLSchema"/>
  67. </xsl:call-template>
  68. <xsl:call-template name="p5xsda:sort_elements">
  69. <xsl:with-param name="p5xsda:elements.local" select="$p5dkp:dita"/>
  70. <xsl:with-param name="p5xsda:xs.sequence" select="doc($p5dkp:xsd)//group[@name='product.map']/sequence" xpath-default-namespace="http://www.w3.org/2001/XMLSchema"/>
  71. </xsl:call-template>
  72. <xsl:call-template name="p5xsda:sort_elements">
  73. <xsl:with-param name="p5xsda:elements.local" select="$p5dkp:dita"/>
  74. <xsl:with-param name="p5xsda:xs.sequence" select="doc($p5dkp:xsd)//group[@name='services.map']/sequence" xpath-default-namespace="http://www.w3.org/2001/XMLSchema"/>
  75. </xsl:call-template>
  76. </p5dkp:wymagania>
  77. <!--<topicref>
  78. <xsl:copy-of select="@*"/>
  79. <map.role><xsl:value-of select="keydef[@keys='map.role']/@keyref"/><!-\-<xref keyref="{keydef[@keys='map.role']/@keyref}"/>-\-></map.role>
  80. <map.tools><xsl:value-of select="keydef[@keys='map.tools']/@keyref"/></map.tools>
  81. <map.etap><xsl:value-of select="keydef[@keys='map.etap']/@keyref"/><!-\-<xref keyref="{keydef[@keys='map.etap']/@keyref}"/>-\-><!-\-<xref keyref="etap.etap1.etap_numer"/>-\-></map.etap>
  82. <map.price><xsl:value-of select="keydef[@keys='map.price']//keyword"/><!-\-<ph keyref="{keydef[@keys='map.price']/@keyref}"/>-\-></map.price>
  83. <map.price_recur><xsl:value-of select="keydef[@keys='map.price_recur']//keyword"/><!-\-<ph keyref="{keydef[@keys='map.price_recur']/@keyref}"/>-\-></map.price_recur>
  84. <map.time><xsl:value-of select="keydef[@keys='map.time']//keyword"/><!-\-<ph keyref="{keydef[@keys='map.time']/@keyref}"/>-\-></map.time>
  85. <map.descr><xsl:value-of select="keydef[@keys='map.descr']//keyword"/><!-\-<ph keyref="{keydef[@keys='map.descr']/@keyref}"/>-\-></map.descr>
  86. <map.taskid><xsl:value-of select="keydef[@keys='map.taskid']//keyword"/><!-\-<ph keyref="{keydef[@keys='map.descr']/@keyref}"/>-\-></map.taskid>
  87. <map.title><xsl:value-of select="$map.keys//keydef[@keys=concat($map.taskid,'.map.title')]//keyword"/><!-\-<ph keyref="{keydef[@keys='map.descr']/@keyref}"/>-\-></map.title>
  88. <xsl:choose>
  89. <xsl:when test=" matches(keydef[@keys='map.role']/@keyref,'tool.*')">
  90. <tool/>
  91. </xsl:when>
  92. <xsl:otherwise>
  93. <person/>
  94. </xsl:otherwise>
  95. </xsl:choose>
  96. <sum.price_recur_etap_len>
  97. <xsl:choose>
  98. <xsl:when test="matches(keydef[@keys='map.price_recur']//keyword, 'm.*c')">
  99. <xsl:value-of select="keydef[@keys='map.price']//keyword * number($etap//etap_dlugosc)"/>
  100. </xsl:when>
  101. <xsl:when test="keydef[@keys='map.price_recur']//keyword=''">
  102. <xsl:value-of select="keydef[@keys='map.price']//keyword"/>
  103. </xsl:when>
  104. <xsl:when test="keydef[@keys='map.price_recur']//keyword='0'"><xsl:value-of select="keydef[@keys='map.price']//keyword"/></xsl:when>
  105. <xsl:when test="number(keydef[@keys='map.price_recur']//keyword) &gt;0">
  106. <xsl:value-of select="keydef[@keys='map.price']//keyword * number($etap//etap_dlugosc) div number(keydef[@keys='map.price_recur']//keyword)" />
  107. </xsl:when>
  108. </xsl:choose>
  109. </sum.price_recur_etap_len>
  110. <map.etapy><xsl:copy-of select="$etap"/></map.etapy>
  111. <xsl:if test="$tools/*">
  112. <map.tools.obj>
  113. <product_no>
  114. <xsl:value-of select="$tools//keydef[@keys='product_no']/topicmeta//keyword/text()"/>
  115. </product_no>
  116. <product_desc>
  117. <xsl:value-of select="$tools//keydef[@keys='product_desc']/topicmeta//keyword/text()"/>
  118. </product_desc>
  119. <product_price>
  120. <xsl:value-of select="$tools//keydef[@keys='product_price']/topicmeta//keyword/text()"/>
  121. </product_price>
  122. <product_price_curr>
  123. <xsl:value-of select="$tools//keydef[@keys='product_price_curr']/topicmeta//keyword/text()"/>
  124. </product_price_curr>
  125. <product_type>
  126. <xsl:value-of select="$tools//keydef[@keys='product_type']/topicmeta//keyword/text()"/>
  127. </product_type>
  128. </map.tools.obj>
  129. <!-\-<xsl:copy-of select="$tools"></xsl:copy-of>-\->
  130. <!-\-<xsl:apply-templates mode="map.tools.obj" select="$tools"/>-\->
  131. </xsl:if>
  132. </topicref>-->
  133. </xsl:for-each>
  134. </p5dkp:map.wymagania.xml>
  135. </xsl:template>
  136. <xsl:template match="p5dkp:map.keys.xml" mode="p5dkp:map.zadanie.xml">
  137. <xsl:variable name="map.keys" select="root()"/>
  138. <p5dkp:map.zadanie.xml xsi:schemaLocation="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/dita_kosztorys_projektowy/p5dkp.xsd {$p5dkp:xsd}">
  139. <xsl:for-each select=".//topicref[contains(@keyscope,'zadanie.') ]">
  140. <xsl:variable name="etap" select="$map.etapy/map.etapy/topicref[map.keys.eval[keys[@map.keys.eval=current()/keydef[@keys='map.etap']/@keyref]]]"/>
  141. <xsl:variable name="tools" select="$map.keys//topicref[keydef[map.keys.eval[keys[ @map.keys.eval=current()/keydef[@keys='map.tools']/@keyref]]]]"/>
  142. <!--<xsl:variable name="tools" select="$map.keys//topicref[keydef[map.keys.eval[keys[ @map.keys.eval='tools.master_server.product_no']]]]"/>-->
  143. <xsl:variable name="map.taskid" select="keydef[@keys='map.taskid']//keyword"/>
  144. <p5dkp:zadanie > <!-- xmlns="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/dita_kosztorys_projektowy/p5dkp.xsd" -->
  145. <xsl:copy-of select="@*"/>
  146. <xsl:copy-of select="keydef/map.keys.eval"/>
  147. <xsl:if test="$debug"><DEBUG><xsl:copy-of select="."/></DEBUG></xsl:if>
  148. <xsl:apply-templates mode="p5dkp:dita">
  149. <xsl:with-param name="keyscope" select="@keyscope"/>
  150. <xsl:with-param name="type" select="'zadanie_no'"/>
  151. </xsl:apply-templates>
  152. </p5dkp:zadanie>
  153. </xsl:for-each>
  154. </p5dkp:map.zadanie.xml>
  155. </xsl:template>
  156. <xsl:template mode="p5dkp:map.zadanie.xml" match="topicref">
  157. <xsl:message terminate="yes">#124 error - not allowed to be topicref structurized at the moment</xsl:message>
  158. </xsl:template>
  159. <xsl:template mode="p5dkp:map.zadanie.xml" match="keydef">
  160. <xsl:element name="{@keys}">
  161. <xsl:value-of select="topicmeta//keyword/text()"/>
  162. </xsl:element>
  163. </xsl:template>
  164. <xsl:template mode="p5dkp:map.zadanie.xml" match="text()|comment()"/>
  165. </xsl:stylesheet>