/xslt/session-wordml.xsl

http://transcriptstudio4isha.googlecode.com/ · Extensible Stylesheet Language Transformations · 330 lines · 318 code · 12 blank · 0 comment · 0 complexity · e63cc1d57bd804edaaa12d27718c08aa MD5 · raw file

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xsl:stylesheet xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
  3. <xsl:output method="xml"/>
  4. <xsl:strip-space elements="*"/>
  5. <xsl:param name="eventPath"/>
  6. <xsl:variable name="reference" select="doc('/db/ts4isha/reference/reference.xml')/reference"/>
  7. <xsl:variable name="eventId" select="substring(/session/@id,1,14)"/>
  8. <xsl:variable name="event" select="doc($eventPath)/event"/>
  9. <xsl:template match="/">
  10. <w:document>
  11. <w:body>
  12. <w:tbl>
  13. <w:tblPr>
  14. <w:tblW w:w="0" w:type="auto"/>
  15. <w:tblCellSpacing w:w="20" w:type="dxa"/>
  16. <w:tblBorders>
  17. <w:top w:val="outset" w:sz="6" w:space="0" w:color="auto"/>
  18. <w:left w:val="outset" w:sz="6" w:space="0" w:color="auto"/>
  19. <w:bottom w:val="outset" w:sz="6" w:space="0" w:color="auto"/>
  20. <w:right w:val="outset" w:sz="6" w:space="0" w:color="auto"/>
  21. <w:insideH w:val="outset" w:sz="6" w:space="0" w:color="auto"/>
  22. <w:insideV w:val="outset" w:sz="6" w:space="0" w:color="auto"/>
  23. </w:tblBorders>
  24. <w:tblLook w:val="01E0"/>
  25. </w:tblPr>
  26. <w:tblGrid>
  27. <w:gridCol w:w="8936"/>
  28. </w:tblGrid>
  29. <w:tr w:rsidR="00BD70D3" w:rsidRPr="00914051">
  30. <w:trPr>
  31. <w:tblCellSpacing w:w="20" w:type="dxa"/>
  32. </w:trPr>
  33. <w:tc>
  34. <w:tcPr>
  35. <w:tcW w:w="8856" w:type="dxa"/>
  36. </w:tcPr>
  37. <w:p w:rsidR="00BD70D3" w:rsidRPr="003451D2" w:rsidRDefault="00BD70D3" w:rsidP="00CB5E63">
  38. <w:pPr>
  39. <w:pStyle w:val="Heading1"/>
  40. <w:jc w:val="center"/>
  41. <w:rPr>
  42. <w:rFonts w:ascii="Times New Roman" w:hAnsi="Times New Roman"/>
  43. </w:rPr>
  44. </w:pPr>
  45. <w:r w:rsidRPr="003451D2">
  46. <w:rPr>
  47. <w:rFonts w:ascii="Times New Roman" w:hAnsi="Times New Roman"/>
  48. </w:rPr>
  49. <w:t>Isha Foundation Transcription</w:t>
  50. </w:r>
  51. </w:p>
  52. <w:p w:rsidR="00BD70D3" w:rsidRPr="00914051" w:rsidRDefault="00BD70D3" w:rsidP="00CB5E63"/>
  53. </w:tc>
  54. </w:tr>
  55. <w:tr w:rsidR="00BD70D3" w:rsidRPr="00914051">
  56. <w:trPr>
  57. <w:tblCellSpacing w:w="20" w:type="dxa"/>
  58. </w:trPr>
  59. <w:tc>
  60. <w:tcPr>
  61. <w:tcW w:w="8856" w:type="dxa"/>
  62. </w:tcPr>
  63. <w:p w:rsidR="00BD70D3" w:rsidRDefault="00BD70D3" w:rsidP="00CB5E63">
  64. <w:r>
  65. <w:t>MEDIA SOURCE: Audio File</w:t>
  66. </w:r>
  67. </w:p>
  68. <w:p w:rsidR="00BD70D3" w:rsidRPr="00914051" w:rsidRDefault="00BD70D3" w:rsidP="00021F27">
  69. <w:r>
  70. <w:t>MEDIA CODE: <xsl:value-of select="string-join(//audio/@id, ', ')"/>
  71. </w:t>
  72. </w:r>
  73. </w:p>
  74. </w:tc>
  75. </w:tr>
  76. <w:tr w:rsidR="00BD70D3" w:rsidRPr="00914051">
  77. <w:trPr>
  78. <w:tblCellSpacing w:w="20" w:type="dxa"/>
  79. </w:trPr>
  80. <w:tc>
  81. <w:tcPr>
  82. <w:tcW w:w="8856" w:type="dxa"/>
  83. </w:tcPr>
  84. <w:p w:rsidR="00BD70D3" w:rsidRPr="004646A4" w:rsidRDefault="00BD70D3" w:rsidP="00ED43A8">
  85. <w:pPr>
  86. <w:tabs>
  87. <w:tab w:val="left" w:pos="1553"/>
  88. </w:tabs>
  89. <w:rPr>
  90. <w:sz w:val="28"/>
  91. <w:szCs w:val="28"/>
  92. </w:rPr>
  93. </w:pPr>
  94. <w:r>
  95. <w:t>EVENT: <xsl:value-of select="$reference/eventTypes/eventType[@id=$event/@type]/@name"/>
  96. </w:t>
  97. </w:r>
  98. </w:p>
  99. </w:tc>
  100. </w:tr>
  101. <w:tr w:rsidR="00BD70D3" w:rsidRPr="00914051">
  102. <w:trPr>
  103. <w:tblCellSpacing w:w="20" w:type="dxa"/>
  104. </w:trPr>
  105. <w:tc>
  106. <w:tcPr>
  107. <w:tcW w:w="8856" w:type="dxa"/>
  108. </w:tcPr>
  109. <w:p w:rsidR="00BD70D3" w:rsidRPr="00914051" w:rsidRDefault="00BD70D3" w:rsidP="00021F27">
  110. <w:r>
  111. <w:t>LOCATION: <xsl:value-of select="string-join(($event/metadata/@venue, $event/metadata/@location, $event/metadata/@country), ', ')"/>
  112. </w:t>
  113. </w:r>
  114. </w:p>
  115. </w:tc>
  116. </w:tr>
  117. <w:tr w:rsidR="00BD70D3" w:rsidRPr="00914051">
  118. <w:trPr>
  119. <w:tblCellSpacing w:w="20" w:type="dxa"/>
  120. </w:trPr>
  121. <w:tc>
  122. <w:tcPr>
  123. <w:tcW w:w="8856" w:type="dxa"/>
  124. </w:tcPr>
  125. <w:p w:rsidR="00BD70D3" w:rsidRPr="00914051" w:rsidRDefault="00BD70D3" w:rsidP="00CB5E63">
  126. <w:r>
  127. <w:t>AUDIO CLARITY (E G F P): G</w:t>
  128. </w:r>
  129. </w:p>
  130. </w:tc>
  131. </w:tr>
  132. <w:tr w:rsidR="00BD70D3" w:rsidRPr="00914051">
  133. <w:trPr>
  134. <w:tblCellSpacing w:w="20" w:type="dxa"/>
  135. </w:trPr>
  136. <w:tc>
  137. <w:tcPr>
  138. <w:tcW w:w="8856" w:type="dxa"/>
  139. </w:tcPr>
  140. <w:p w:rsidR="00BD70D3" w:rsidRPr="00914051" w:rsidRDefault="00BD70D3" w:rsidP="00021F27">
  141. <w:r>
  142. <w:t>SESSION DATE: <xsl:value-of select="(session/metadata/@startAt, $event/metadata/@startAt)[1]"/>
  143. </w:t>
  144. </w:r>
  145. </w:p>
  146. </w:tc>
  147. </w:tr>
  148. <w:tr w:rsidR="00BD70D3">
  149. <w:trPr>
  150. <w:tblCellSpacing w:w="20" w:type="dxa"/>
  151. </w:trPr>
  152. <w:tc>
  153. <w:tcPr>
  154. <w:tcW w:w="8856" w:type="dxa"/>
  155. </w:tcPr>
  156. <w:p w:rsidR="00BD70D3" w:rsidRDefault="00BD70D3" w:rsidP="00CB5E63">
  157. <w:r>
  158. <w:t>LANGUAGE: English</w:t>
  159. </w:r>
  160. </w:p>
  161. </w:tc>
  162. </w:tr>
  163. <w:tr w:rsidR="00BD70D3">
  164. <w:trPr>
  165. <w:trHeight w:val="865"/>
  166. <w:tblCellSpacing w:w="20" w:type="dxa"/>
  167. </w:trPr>
  168. <w:tc>
  169. <w:tcPr>
  170. <w:tcW w:w="8856" w:type="dxa"/>
  171. </w:tcPr>
  172. <w:p w:rsidR="00BD70D3" w:rsidRDefault="00BD70D3" w:rsidP="00CB5E63">
  173. <w:r>
  174. <w:t>TRANSCRIBED BY: Baha (23-Jul-08)</w:t>
  175. </w:r>
  176. </w:p>
  177. <w:p w:rsidR="00BD70D3" w:rsidRDefault="00BD70D3" w:rsidP="00CB5E63">
  178. <w:r>
  179. <w:t>PROOFED BY: Amit (29-Jul-08), Chitra (30-Jul-08)</w:t>
  180. </w:r>
  181. </w:p>
  182. <w:p w:rsidR="00BD70D3" w:rsidRDefault="00BD70D3" w:rsidP="00CB5E63">
  183. <w:r>
  184. <w:t xml:space="preserve">NOTES: <xsl:value-of select="/session/metadata/notes"/>
  185. </w:t>
  186. </w:r>
  187. </w:p>
  188. </w:tc>
  189. </w:tr>
  190. </w:tbl>
  191. <w:p/>
  192. <w:p>
  193. <w:r>
  194. <w:t>INDEX</w:t>
  195. </w:r>
  196. </w:p>
  197. <w:p/>
  198. <!--
  199. <xsl:for-each select="//superSegment">
  200. <xsl:value-of select="./tag[@type='markupType']/@value"/>
  201. <xsl:variable name="markupCategory" select="./tag[@type='markupCategory']/@value"/>
  202. <xsl:value-of select="$reference/markupCategories/markupCategoryId[@id=$markupCategory]/@name"/>
  203. </xsl:for-each>
  204. -->
  205. <xsl:for-each select="//superSegment | //superContent">
  206. <xsl:variable name="markupId" select="@id"/>
  207. <xsl:variable name="markupType" select="tag[@type='markupType']/@value"/>
  208. <xsl:variable name="markupCategory" select="tag[@type='markupCategory']/@value"/>
  209. <w:p>
  210. <w:hyperlink w:history="1">
  211. <xsl:attribute name="w:anchor">
  212. <xsl:value-of select="$markupId"/>
  213. </xsl:attribute>
  214. <w:r>
  215. <w:rPr>
  216. <w:rStyle w:val="Hyperlink"/>
  217. </w:rPr>
  218. <w:t>
  219. <xsl:value-of select="$reference/markupTypes/markupType[@id = $markupType]/@name"/>
  220. <xsl:if test="$markupCategory">
  221. <xsl:text>: </xsl:text>
  222. <xsl:value-of select="$reference/markupCategories/markupCategory[@id = $markupCategory]/@name"/>
  223. </xsl:if>
  224. </w:t>
  225. </w:r>
  226. </w:hyperlink>
  227. </w:p>
  228. </xsl:for-each>
  229. <w:p/>
  230. <xsl:apply-templates select="//transcript"/>
  231. </w:body>
  232. </w:document>
  233. <!--xsl:apply-templates/-->
  234. </xsl:template>
  235. <xsl:template match="transcript">
  236. <xsl:apply-templates select="segment|superSegment"/>
  237. </xsl:template>
  238. <xsl:template match="superSegment">
  239. <w:bookmarkStart w:id="0">
  240. <xsl:attribute name="w:name">
  241. <xsl:value-of select="./@id"/>
  242. </xsl:attribute>
  243. </w:bookmarkStart>
  244. <xsl:apply-templates select="segment|superSegment"/>
  245. <w:bookmarkEnd w:id="0"/>
  246. </xsl:template>
  247. <!--xsl:template match="//superSegment">
  248. <w:moog/>
  249. </xsl:template-->
  250. <xsl:template match="segment">
  251. <xsl:variable name="syncPoint" select="content[1]/@startId"/>
  252. <xsl:if test="$syncPoint and not(preceding::segment[position() &lt; 3]/content[1]/@startId)">
  253. <xsl:variable name="time" select="/session//device/audio/sync[@timeIdRef = $syncPoint]/@timecode"/>
  254. <w:p>
  255. <w:r>
  256. <w:t>Time <xsl:number format="1" value="floor($time div 60)"/>
  257. <xsl:text>:</xsl:text>
  258. <xsl:number format="01" value="$time mod 60"/>
  259. </w:t>
  260. </w:r>
  261. </w:p>
  262. <w:p/>
  263. </xsl:if>
  264. <w:p>
  265. <xsl:if test="(position() = 1) or (preceding::segment[1]/@speaker and not(@speaker)) or (not(preceding::segment[1]/@speaker) and @speaker) or (preceding::segment[1]/@speaker != @speaker)">
  266. <w:r>
  267. <w:rPr>
  268. <w:b/>
  269. </w:rPr>
  270. <w:t>
  271. <xsl:attribute name="xml:space">preserve</xsl:attribute>
  272. <xsl:choose>
  273. <xsl:when test="@speaker">
  274. <xsl:value-of select="normalize-space(concat(upper-case(substring(@speaker,1,1)), substring(@speaker,2)))"/>
  275. <xsl:text>: </xsl:text>
  276. </xsl:when>
  277. <xsl:otherwise>
  278. <xsl:text>Sadhguru: </xsl:text>
  279. </xsl:otherwise>
  280. </xsl:choose>
  281. </w:t>
  282. </w:r>
  283. </xsl:if>
  284. <xsl:apply-templates select="content|superContent"/>
  285. </w:p>
  286. <w:p/>
  287. </xsl:template>
  288. <xsl:template match="superContent">
  289. <w:bookmarkStart w:id="0">
  290. <xsl:attribute name="w:name">
  291. <xsl:value-of select="./@id"/>
  292. </xsl:attribute>
  293. </w:bookmarkStart>
  294. <xsl:apply-templates select="content|superContent"/>
  295. <w:bookmarkEnd w:id="0"/>
  296. </xsl:template>
  297. <xsl:template match="content">
  298. <w:r>
  299. <xsl:if test="@emphasis | @spokenLanguage">
  300. <w:rPr>
  301. <xsl:if test="@emphasis='true'">
  302. <w:i/>
  303. </xsl:if>
  304. <xsl:if test="@spokenLanguage='tamil'">
  305. <w:color w:val="00B0F0"/>
  306. </xsl:if>
  307. </w:rPr>
  308. </xsl:if>
  309. <w:t>
  310. <xsl:attribute name="xml:space">preserve</xsl:attribute>
  311. <xsl:value-of select="normalize-space(.)"/>
  312. <xsl:if test="position() &lt; last()">
  313. <xsl:text> </xsl:text>
  314. </xsl:if>
  315. </w:t>
  316. </w:r>
  317. </xsl:template>
  318. </xsl:stylesheet>