Mercurial > pub > ModelGenerator
comparison xslt/csharp.xsl @ 0:cbdada054b4a
Basic schemas for generating csharp internal dom from model definition
| author | cin |
|---|---|
| date | Wed, 21 Feb 2018 03:01:53 +0300 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:cbdada054b4a |
|---|---|
| 1 <?xml version="1.0" encoding="UTF-8"?> | |
| 2 <xsl:stylesheet version="1.0" | |
| 3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" | |
| 4 xmlns:cs="http://implab.org/schemas/code-dom/csharp.v1.xsd"> | |
| 5 <xsl:import href="text-tools.xsl" /> | |
| 6 | |
| 7 <!-- CODE GENERATION --> | |
| 8 | |
| 9 <!-- GENERATE NAMESPACE --> | |
| 10 <xsl:template match="cs:namespace"> | |
| 11 <xsl:param name="level" select="0" /> | |
| 12 <xsl:call-template name="write-line"> | |
| 13 <xsl:with-param name="level" select="$level" /> | |
| 14 <xsl:with-param name="text"> | |
| 15 <xsl:text>namespace </xsl:text> | |
| 16 <xsl:value-of select="@name" /> | |
| 17 <xsl:text> {</xsl:text> | |
| 18 </xsl:with-param> | |
| 19 </xsl:call-template> | |
| 20 <xsl:apply-templates> | |
| 21 <xsl:with-param name="level" select="$level+1" /> | |
| 22 </xsl:apply-templates> | |
| 23 <xsl:call-template name="write-line"> | |
| 24 <xsl:with-param name="level" select="$level" /> | |
| 25 <xsl:with-param name="text"> | |
| 26 } | |
| 27 </xsl:with-param> | |
| 28 </xsl:call-template> | |
| 29 </xsl:template> | |
| 30 | |
| 31 <!-- GENERATE CLASS --> | |
| 32 <xsl:template match="cs:class"> | |
| 33 <xsl:param name="level" select="0" /> | |
| 34 <xsl:call-template name="write-line"> | |
| 35 <xsl:with-param name="level" select="$level" /> | |
| 36 <xsl:with-param name="text"> | |
| 37 <xsl:text>class </xsl:text> | |
| 38 <xsl:value-of select="@name" /> | |
| 39 <xsl:text> {</xsl:text> | |
| 40 </xsl:with-param> | |
| 41 </xsl:call-template> | |
| 42 | |
| 43 <xsl:apply-templates mode="members"> | |
| 44 <xsl:with-param name="level" select="$level+1" /> | |
| 45 <xsl:with-param name="declaringType" select="." /> | |
| 46 </xsl:apply-templates> | |
| 47 | |
| 48 <xsl:call-template name="write-line"> | |
| 49 <xsl:with-param name="level" select="$level" /> | |
| 50 <xsl:with-param name="text" select="'}'" /> | |
| 51 </xsl:call-template> | |
| 52 </xsl:template> | |
| 53 | |
| 54 <!-- GENERATE FIELDS --> | |
| 55 <xsl:template match="cs:field" mode="members"> | |
| 56 <xsl:param name="level" select="0" /> | |
| 57 <xsl:call-template name="write-line"> | |
| 58 <xsl:with-param name="level" select="$level" /> | |
| 59 <xsl:with-param name="text"> | |
| 60 <xsl:value-of select="concat(@type,' ', @name)" /> | |
| 61 <xsl:if test="@initializer"> | |
| 62 <xsl:text> = </xsl:text> | |
| 63 <xsl:value-of select="@initializer" /> | |
| 64 </xsl:if> | |
| 65 <xsl:text>;</xsl:text> | |
| 66 </xsl:with-param> | |
| 67 </xsl:call-template> | |
| 68 </xsl:template> | |
| 69 | |
| 70 <!-- GENERATE PROPERTIES --> | |
| 71 <xsl:template match="cs:property" mode="members"> | |
| 72 <xsl:param name="level" select="0" /> | |
| 73 <xsl:call-template name="write-line"> | |
| 74 <xsl:with-param name="level" select="$level" /> | |
| 75 <xsl:with-param name="text" select="concat(@type,' ', @name, ' {')" /> | |
| 76 </xsl:call-template> | |
| 77 <xsl:apply-templates> | |
| 78 <xsl:with-param name="level" select="$level + 1" /> | |
| 79 </xsl:apply-templates> | |
| 80 <xsl:call-template name="write-line"> | |
| 81 <xsl:with-param name="level" select="$level" /> | |
| 82 <xsl:with-param name="text" select="'}'" /> | |
| 83 </xsl:call-template> | |
| 84 </xsl:template> | |
| 85 </xsl:stylesheet> |
