diff xslt/text-tools.xsl @ 1:7f803979305f

improved cs-dom generation, added getMember, getKeyMember templates
author cin
date Thu, 22 Feb 2018 19:14:00 +0300
parents cbdada054b4a
children
line wrap: on
line diff
--- a/xslt/text-tools.xsl	Wed Feb 21 03:01:53 2018 +0300
+++ b/xslt/text-tools.xsl	Thu Feb 22 19:14:00 2018 +0300
@@ -1,8 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0"
-	xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+	xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:t="http://implab.org/schemas/temp"
+	xmlns:exsl="http://exslt.org/common" extension-element-prefixes="exsl">
 	<!-- TEXT ROUTINES -->
-	<xsl:template name="write-line">
+	<xsl:template name="writeLine">
 		<xsl:param name="level" select="0" />
 		<xsl:param name="text" />
 		<xsl:call-template name="indent">
@@ -22,7 +23,7 @@
 		</xsl:if>
 	</xsl:template>
 
-	<xsl:template name="to-lower-first">
+	<xsl:template name="toLowerFirst">
 		<xsl:param name="value" />
 		<xsl:variable name="smallcase" select="'abcdefghijklmnopqrstuvwxyz'" />
 		<xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />
@@ -32,10 +33,37 @@
 			select="concat(translate($before,$uppercase,$smallcase), $after)" />
 	</xsl:template>
 
-	<xsl:template name="to-lower">
+	<xsl:template name="toLower">
 		<xsl:param name="value" />
 		<xsl:variable name="smallcase" select="'abcdefghijklmnopqrstuvwxyz'" />
 		<xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />
 		<xsl:value-of select="translate($value,$uppercase,$smallcase)" />
 	</xsl:template>
+
+	<xsl:template name="warn">
+		<xsl:param name="msg" />
+		<xsl:message terminate="no">
+			<xsl:apply-templates select="exsl:node-set($msg)"
+				mode="trace" />
+		</xsl:message>
+	</xsl:template>
+
+	<xsl:template name="error">
+		<xsl:param name="msg" />
+		<xsl:message terminate="no">
+			<xsl:apply-templates select="exsl:node-set($msg)"
+				mode="trace" />
+		</xsl:message>
+	</xsl:template>
+
+	<xsl:template match="t:trace" mode="trace">
+		<xsl:param name="level" select="0" />
+		<xsl:call-template name="writeLine">
+			<xsl:with-param name="text" select="@msg" />
+			<xsl:with-param name="level" select="$level" />
+		</xsl:call-template>
+		<xsl:apply-templates mode="trace">
+			<xsl:with-param name="level" select="$level + 1" />
+		</xsl:apply-templates>
+	</xsl:template>
 </xsl:stylesheet>
\ No newline at end of file