1 <?xml version="1.0"?> |
1 <?xml version="1.0"?> |
2 <xsl:stylesheet xmlns:exsl="http://exslt.org/common" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:ppx="http://www.plcopen.org/xml/tc6_0201" xmlns:ns="instance_tagname_ns" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" extension-element-prefixes="ns" version="1.0" exclude-result-prefixes="ns"> |
2 <xsl:stylesheet xmlns:exsl="http://exslt.org/common" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:ppx="http://www.plcopen.org/xml/tc6_0201" xmlns:ns="beremiz" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" extension-element-prefixes="ns" version="1.0" exclude-result-prefixes="ns"> |
3 <xsl:output method="xml"/> |
3 <xsl:output method="xml"/> |
4 <xsl:param name="instance_path"/> |
4 <xsl:param name="instance_path"/> |
5 <xsl:variable name="project"> |
5 <xsl:variable name="project" select="ns:GetProject()"/> |
6 <xsl:copy-of select="document('project')/project/*"/> |
6 <xsl:variable name="stdlib" select="ns:GetStdLibs()"/> |
7 </xsl:variable> |
7 <xsl:variable name="extensions" select="ns:GetExtensions()"/> |
8 <xsl:variable name="stdlib"> |
8 <xsl:variable name="all_types" select="($project | $stdlib | $extensions)/ppx:types"/> |
9 <xsl:copy-of select="document('stdlib')/stdlib/*"/> |
|
10 </xsl:variable> |
|
11 <xsl:variable name="extensions"> |
|
12 <xsl:copy-of select="document('extensions')/extensions/*"/> |
|
13 </xsl:variable> |
|
14 <xsl:template name="element_name"> |
9 <xsl:template name="element_name"> |
15 <xsl:param name="path"/> |
10 <xsl:param name="path"/> |
16 <xsl:choose> |
11 <xsl:choose> |
17 <xsl:when test="contains($path,'.')"> |
12 <xsl:when test="contains($path,'.')"> |
18 <xsl:value-of select="substring-before($path,'.')"/> |
13 <xsl:value-of select="substring-before($path,'.')"/> |
93 <xsl:template match="ppx:pouInstance"> |
88 <xsl:template match="ppx:pouInstance"> |
94 <xsl:param name="element_path"/> |
89 <xsl:param name="element_path"/> |
95 <xsl:variable name="type_name"> |
90 <xsl:variable name="type_name"> |
96 <xsl:value-of select="@typeName"/> |
91 <xsl:value-of select="@typeName"/> |
97 </xsl:variable> |
92 </xsl:variable> |
98 <xsl:apply-templates select="exsl:node-set($project)/ppx:project/ppx:types/ppx:pous/ppx:pou[@name=$type_name] | exsl:node-set($project)/ppx:project/ppx:types/ppx:dataTypes/ppx:dataType[@name=$type_name] | exsl:node-set($stdlib)/ppx:project/ppx:types/ppx:pous/ppx:pou[@name=$type_name] | exsl:node-set($stdlib)/ppx:project/ppx:types/ppx:dataTypes/ppx:dataType[@name=$type_name] | exsl:node-set($extensions)/ppx:project/ppx:types/ppx:pous/ppx:pou[@name=$type_name] | exsl:node-set($extensions)/ppx:project/ppx:types/ppx:dataTypes/ppx:dataType[@name=$type_name]"> |
93 <xsl:apply-templates select="$all_types/ppx:pous/ppx:pou[@name=$type_name] | $all_types/ppx:dataTypes/ppx:dataType[@name=$type_name]"> |
99 <xsl:with-param name="element_path" select="$element_path"/> |
94 <xsl:with-param name="element_path" select="$element_path"/> |
100 </xsl:apply-templates> |
95 </xsl:apply-templates> |
101 </xsl:template> |
96 </xsl:template> |
102 <xsl:template match="ppx:pou"> |
97 <xsl:template match="ppx:pou"> |
103 <xsl:param name="element_path"/> |
98 <xsl:param name="element_path"/> |
140 <xsl:template match="ppx:derived"> |
135 <xsl:template match="ppx:derived"> |
141 <xsl:param name="element_path"/> |
136 <xsl:param name="element_path"/> |
142 <xsl:variable name="type_name"> |
137 <xsl:variable name="type_name"> |
143 <xsl:value-of select="@name"/> |
138 <xsl:value-of select="@name"/> |
144 </xsl:variable> |
139 </xsl:variable> |
145 <xsl:apply-templates select="exsl:node-set($project)/ppx:project/ppx:types/ppx:pous/ppx:pou[@name=$type_name] | exsl:node-set($project)/ppx:project/ppx:types/ppx:dataTypes/ppx:dataType[@name=$type_name] | exsl:node-set($stdlib)/ppx:project/ppx:types/ppx:pous/ppx:pou[@name=$type_name] | exsl:node-set($stdlib)/ppx:project/ppx:types/ppx:dataTypes/ppx:dataType[@name=$type_name] | exsl:node-set($extensions)/ppx:project/ppx:types/ppx:pous/ppx:pou[@name=$type_name] | exsl:node-set($extensions)/ppx:project/ppx:types/ppx:dataTypes/ppx:dataType[@name=$type_name]"> |
140 <xsl:apply-templates select="$all_types/ppx:pous/ppx:pou[@name=$type_name] | $all_types/ppx:dataTypes/ppx:dataType[@name=$type_name]"> |
146 <xsl:with-param name="element_path" select="$element_path"/> |
141 <xsl:with-param name="element_path" select="$element_path"/> |
147 </xsl:apply-templates> |
142 </xsl:apply-templates> |
148 </xsl:template> |
143 </xsl:template> |
149 <xsl:template match="ppx:array"> |
144 <xsl:template match="ppx:array"> |
150 <xsl:param name="element_path"/> |
145 <xsl:param name="element_path"/> |