STRUCTURE.xsl 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  3. xmlns:xs="http://www.w3.org/2001/XMLSchema"
  4. exclude-result-prefixes="xs"
  5. xmlns:default_db__x3A__NEURO_MIND_INPUT_TEXT="https://biuro.biall-net.pl/wfs/default_db/table/NEURO_MIND_INPUT_TEXT.xsd"
  6. xmlns:default_db__x3A__STRUCTURE="https://biuro.biall-net.pl/wfs/default_db/table/STRUCTURE.xsd"
  7. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  8. version="2.0">
  9. <xsl:import href="../../default_db.ant-object.basedir.xsl"/>
  10. <xsl:key name="default_db__x3A__STRUCTURE:generate-id" match="*" use="@default_db__x3A__STRUCTURE:generate-id"/>
  11. <xsl:output indent="yes"/>
  12. <xsl:strip-space elements="*"/>
  13. <xsl:param name="default_db__x3A__STRUCTURE:basedir" select="concat($default_db.ant-object.basedir,'/default_db.STRUCTURE/STRUCTURE')"/>
  14. <xsl:include href="STRUCTURE.targetNamespace.xsl"/>
  15. <xsl:include href="STRUCTURE.schemaLocation.xsl"/>
  16. <xsl:include href="STRUCTURE.init.xsl"/>
  17. <xsl:include href="STRUCTURE.serialize.xsl"/>
  18. <xsl:include href="STRUCTURE.import.xsl"/>
  19. <xsl:include href="STRUCTURE.export.xsl"/><!-- serialize -->
  20. <xsl:include href="STRUCTURE.dependency.xsl"/>
  21. <xsl:include href="STRUCTURE.dependency.model.xsl"/>
  22. <xsl:include href="STRUCTURE.error.xsl"/>
  23. <xsl:include href="STRUCTURE.dependency.context.xsl"/>
  24. <xsl:include href="STRUCTURE.dependency.resolution.xsl"/>
  25. <xsl:include href="STRUCTURE.dependency.subject.xsl"/>
  26. <xsl:include href="STRUCTURE.dependency.analys.xsl"/>
  27. <xsl:include href="STRUCTURE.dependency.context.relation.xsl"/>
  28. <xsl:include href="STRUCTURE.dependency.subject.assert.xsl"/>
  29. <xsl:include href="STRUCTURE.dependency.subject.element.xsl"/>
  30. <!-- domyslne templates do przetwarzania -->
  31. <xsl:function name="default_db__x3A__STRUCTURE:prefix.clean">
  32. <xsl:param name="prefix_or_not"/>
  33. <xsl:choose>
  34. <xsl:when test="substring-before($prefix_or_not,':')">
  35. <xsl:value-of select="substring-after($prefix_or_not,':')"/>
  36. </xsl:when>
  37. <xsl:otherwise>
  38. <xsl:value-of select="$prefix_or_not"/>
  39. </xsl:otherwise>
  40. </xsl:choose>
  41. </xsl:function>
  42. <xsl:function name="default_db__x3A__STRUCTURE:prefix.get">
  43. <xsl:param name="prefix_or_not"/>
  44. <xsl:choose>
  45. <xsl:when test="substring-before($prefix_or_not,':')">
  46. <xsl:value-of select="substring-before($prefix_or_not,':')"/>
  47. </xsl:when>
  48. <xsl:otherwise>
  49. <xsl:message terminate="yes">#47 not have prefix <xsl:value-of select="$prefix_or_not"/></xsl:message>
  50. </xsl:otherwise>
  51. </xsl:choose>
  52. </xsl:function>
  53. <xsl:function name="default_db__x3A__STRUCTURE:namespace.get">
  54. <xsl:param name="context"/>
  55. <xsl:choose>
  56. <xsl:when test="$context/ancestor-or-self::xs:schema[1]/@targetNamespace">
  57. <xsl:variable name="targetNamespace" select="$context/ancestor-or-self::xs:schema[1]/@targetNamespace"/>
  58. <xsl:value-of select="$targetNamespace"/>
  59. </xsl:when>
  60. <xsl:otherwise>
  61. <xsl:message terminate="yes">#67-E problem with $context/ancestor-or-self::xs:schema[@targetNamespace][1]/namespace::*[.=$targetNamespace]/name()</xsl:message>
  62. </xsl:otherwise>
  63. </xsl:choose>
  64. </xsl:function>
  65. <xsl:function name="default_db__x3A__STRUCTURE:namespaceprefix.get">
  66. <xsl:param name="context"/>
  67. <xsl:variable name="namespaceprefix" select="$context/ancestor-or-self::xs:schema[@targetNamespace][1]/namespace::*[.=default_db__x3A__STRUCTURE:namespace.get($context)]/name()"/>
  68. <xsl:choose>
  69. <xsl:when test="string-length($namespaceprefix) &gt;0">
  70. <xsl:value-of select="$namespaceprefix"/>
  71. </xsl:when>
  72. <xsl:otherwise>
  73. <xsl:message terminate="yes">#67-E problem with $context/ancestor-or-self::xs:schema[@targetNamespace][1]/namespace::*[.=$targetNamespace]/name()</xsl:message>
  74. </xsl:otherwise>
  75. </xsl:choose>
  76. </xsl:function>
  77. <xsl:function name="default_db__x3A__STRUCTURE:namespaceprefix.name.element">
  78. <xsl:param name="context"/>
  79. <xsl:param name="name"/> <!-- @name -->
  80. <xsl:value-of select="concat(default_db__x3A__STRUCTURE:namespaceprefix.get($context),':',$name)"/>
  81. </xsl:function>
  82. <xsl:function name="default_db__x3A__STRUCTURE:loop.path.init">
  83. <xsl:param name="default_db__x3A__STRUCTURE:loop.path"/>
  84. <xsl:param name="default_db__x3A__STRUCTURE:ref"/>
  85. <xsl:param name="default_db__x3A__STRUCTURE:name"/>
  86. <xsl:variable name="loop.path.init.test">
  87. <loop.path.init.test>
  88. <xsl:copy-of select="$default_db__x3A__STRUCTURE:loop.path"/>
  89. </loop.path.init.test>
  90. </xsl:variable>
  91. <xsl:choose>
  92. <xsl:when test="$loop.path.init.test//loop.path">
  93. <xsl:message terminate="yes">#99 INIT ALREADY INITLAIZED <xsl:value-of select="count($default_db__x3A__STRUCTURE:loop.path//loop.path)"/></xsl:message>
  94. </xsl:when>
  95. <xsl:otherwise>
  96. <xsl:variable name="loop.path.init">
  97. <loop.path.init>
  98. <xsl:message terminate="no">#35 not(default_db__x3A__STRUCTURE:loop.path/*) - appending</xsl:message>
  99. <loop.path >
  100. <xsl:if test="string-length($default_db__x3A__STRUCTURE:ref)&gt;0"><xsl:attribute name="ref" select="$default_db__x3A__STRUCTURE:ref"/></xsl:if>
  101. <xsl:if test="string-length($default_db__x3A__STRUCTURE:name)&gt;0"><xsl:attribute name="name" select="$default_db__x3A__STRUCTURE:name"/></xsl:if>
  102. INIT</loop.path>
  103. </loop.path.init>
  104. </xsl:variable>
  105. <xsl:copy-of select="$loop.path.init" copy-namespaces="yes"/>
  106. </xsl:otherwise>
  107. </xsl:choose>
  108. </xsl:function>
  109. <xsl:function name="default_db__x3A__STRUCTURE:loop.path.init">
  110. <xsl:param name="default_db__x3A__STRUCTURE:ref"/>
  111. <xsl:param name="default_db__x3A__STRUCTURE:name"/>
  112. <xsl:param name="default_db__x3A__STRUCTURE:document-uri.filename"/> <!-- nazwa pliku schematu -->
  113. <xsl:param name="default_db__x3A__STRUCTURE:namespaceprefix.get" /> <!-- nazwa prefixu -->
  114. <xsl:variable name="loop.path.init">
  115. <loop.path.init>
  116. <xsl:message terminate="no">#35 not(default_db__x3A__STRUCTURE:loop.path/*) - appending</xsl:message>
  117. <loop.path ref="{$default_db__x3A__STRUCTURE:ref}" name="{$default_db__x3A__STRUCTURE:name}">
  118. <xsl:if test="string-length($default_db__x3A__STRUCTURE:document-uri.filename)&gt;0"><xsl:attribute name="filename" select="$default_db__x3A__STRUCTURE:document-uri.filename"/></xsl:if>
  119. <xsl:if test="string-length($default_db__x3A__STRUCTURE:namespaceprefix.get)&gt;0"><xsl:attribute name="prefix" select="$default_db__x3A__STRUCTURE:namespaceprefix.get"/></xsl:if>
  120. INIT</loop.path>
  121. </loop.path.init>
  122. </xsl:variable>
  123. <xsl:copy-of select="$loop.path.init" copy-namespaces="yes"/>
  124. </xsl:function>
  125. <xsl:function name="default_db__x3A__STRUCTURE:loop.path.init">
  126. <xsl:param name="default_db__x3A__STRUCTURE:ref"/>
  127. <xsl:param name="default_db__x3A__STRUCTURE:name"/>
  128. <xsl:copy-of select="default_db__x3A__STRUCTURE:loop.path.init($default_db__x3A__STRUCTURE:ref,$default_db__x3A__STRUCTURE:name,'')"/>
  129. </xsl:function>
  130. <xsl:function name="default_db__x3A__STRUCTURE:loop.path.test">
  131. <xsl:param name="default_db__x3A__STRUCTURE:loop.path"/>
  132. <xsl:param name="default_db__x3A__STRUCTURE:ref"/>
  133. <xsl:param name="default_db__x3A__STRUCTURE:name"/>
  134. <xsl:choose>
  135. <xsl:when test="default_db__x3A__STRUCTURE:loop.path.test($default_db__x3A__STRUCTURE:loop.path)"></xsl:when>
  136. <xsl:when test="$default_db__x3A__STRUCTURE:loop.path//loop.path[@ref=$default_db__x3A__STRUCTURE:ref and @name=$default_db__x3A__STRUCTURE:name]">
  137. <xsl:message>#35-BC[[ LOOP FOUND]] $ref[<xsl:value-of select="$default_db__x3A__STRUCTURE:ref"/>] and $nam[<xsl:value-of select="$default_db__x3A__STRUCTURE:name"/>]</xsl:message>
  138. </xsl:when>
  139. <xsl:otherwise><xsl:message>#104 [TEST][LOOP][PATH] LOOP DETECTED </xsl:message></xsl:otherwise>
  140. </xsl:choose>
  141. </xsl:function>
  142. <xsl:function name="default_db__x3A__STRUCTURE:loop.path.test">
  143. <xsl:param name="default_db__x3A__STRUCTURE:loop.path"/>
  144. <xsl:variable name="default_db__x3A__STRUCTURE:loop.path.test">
  145. <default_db__x3A__STRUCTURE:loop.path.test>
  146. <xsl:copy-of select="$default_db__x3A__STRUCTURE:loop.path"/>
  147. </default_db__x3A__STRUCTURE:loop.path.test>
  148. </xsl:variable>
  149. <xsl:choose>
  150. <xsl:when test="count($default_db__x3A__STRUCTURE:loop.path.test//loop.path) &gt; 0">
  151. <xsl:value-of select="count($default_db__x3A__STRUCTURE:loop.path//loop.path)"/>
  152. </xsl:when>
  153. <xsl:otherwise><xsl:message>#104 [TEST][LOOP][PATH] LOOP DETECTED </xsl:message></xsl:otherwise>
  154. </xsl:choose>
  155. </xsl:function>
  156. <xsl:function name="default_db__x3A__STRUCTURE:loop.path.test.append">
  157. <xsl:param name="default_db__x3A__STRUCTURE:loop.path"/>
  158. <xsl:param name="default_db__x3A__STRUCTURE:ref"/>
  159. <xsl:param name="default_db__x3A__STRUCTURE:name"/>
  160. <xsl:param name="default_db__x3A__STRUCTURE:document-uri.filename"/> <!-- nazwa pliku schematu -->
  161. <xsl:param name="default_db__x3A__STRUCTURE:namespaceprefix.get" /> <!-- nazwa prefixu -->
  162. <xsl:choose>
  163. <xsl:when test="not($default_db__x3A__STRUCTURE:loop.path)">
  164. <!-- TODO --><xsl:message terminate="no">#134 LOOP PATH ERROR NOT INITIALIZED by default_db__x3A__STRUCTURE:loop.path.init( </xsl:message>
  165. <xsl:copy-of select="default_db__x3A__STRUCTURE:loop.path.init($default_db__x3A__STRUCTURE:ref,$default_db__x3A__STRUCTURE:name)"/>
  166. </xsl:when>
  167. <xsl:when test="count($default_db__x3A__STRUCTURE:loop.path//loop.path) = 0">
  168. <!-- TODO --> <xsl:message terminate="no">#134 LOOP PATH ERROR NOT INITIALIZED by default_db__x3A__STRUCTURE:loop.path.init( </xsl:message>
  169. <xsl:copy-of select="default_db__x3A__STRUCTURE:loop.path.init($default_db__x3A__STRUCTURE:ref,$default_db__x3A__STRUCTURE:name)"/>
  170. </xsl:when>
  171. <xsl:when test="$default_db__x3A__STRUCTURE:loop.path//loop.path[@ref=$default_db__x3A__STRUCTURE:ref
  172. and ( @filename=$default_db__x3A__STRUCTURE:document-uri.filename or $default_db__x3A__STRUCTURE:document-uri.filename='' )
  173. and ( @prefix=$default_db__x3A__STRUCTURE:namespaceprefix.get or $default_db__x3A__STRUCTURE:namespaceprefix.get='' )
  174. and @name=$default_db__x3A__STRUCTURE:name]">
  175. <xsl:message>#35-B[[ LOOP FOUND]] $ref[<xsl:value-of select="$default_db__x3A__STRUCTURE:ref"/>] and $nam[<xsl:value-of select="$default_db__x3A__STRUCTURE:name"/>]</xsl:message>
  176. </xsl:when>
  177. <xsl:when test="count($default_db__x3A__STRUCTURE:loop.path//loop.path) &gt; 0">
  178. <xsl:message>#35-D LOOP count <xsl:value-of select="count($default_db__x3A__STRUCTURE:loop.path//loop.path)"/>; appending [<xsl:value-of select="$default_db__x3A__STRUCTURE:ref"/>]</xsl:message>
  179. <loop.path.init >
  180. <xsl:copy-of select="$default_db__x3A__STRUCTURE:loop.path//loop.path"/>
  181. <loop.path ref="{$default_db__x3A__STRUCTURE:ref}" name="{$default_db__x3A__STRUCTURE:name}">
  182. <xsl:if test="string-length($default_db__x3A__STRUCTURE:document-uri.filename)"><xsl:attribute name="filename" select="$default_db__x3A__STRUCTURE:document-uri.filename"/></xsl:if>
  183. <xsl:if test="string-length($default_db__x3A__STRUCTURE:namespaceprefix.get)"><xsl:attribute name="prefix" select="$default_db__x3A__STRUCTURE:namespaceprefix.get"/></xsl:if>
  184. </loop.path>
  185. </loop.path.init>
  186. </xsl:when>
  187. <xsl:otherwise>
  188. <xsl:message terminate="yes">#35-E OTHERWISE ?? count[<xsl:value-of select="count($default_db__x3A__STRUCTURE:loop.path//loop.path)"/>] </xsl:message>
  189. </xsl:otherwise>
  190. </xsl:choose>
  191. </xsl:function>
  192. <xsl:function name="default_db__x3A__STRUCTURE:loop.path.test.append">
  193. <xsl:param name="default_db__x3A__STRUCTURE:loop.path"/>
  194. <xsl:param name="default_db__x3A__STRUCTURE:ref"/>
  195. <xsl:param name="default_db__x3A__STRUCTURE:name"/>
  196. <xsl:copy-of select="default_db__x3A__STRUCTURE:loop.path.test.append($default_db__x3A__STRUCTURE:loop.path,$default_db__x3A__STRUCTURE:ref,$default_db__x3A__STRUCTURE:name,'','')"/>
  197. </xsl:function>
  198. <xsl:function name="default_db__x3A__STRUCTURE:document-uri.filename">
  199. <xsl:param name="document-uri"/>
  200. <xsl:choose>
  201. <xsl:when test="string-length(substring-after($document-uri,'/'))&gt;1">
  202. <xsl:value-of select="default_db__x3A__STRUCTURE:document-uri.filename(substring-after($document-uri,'/'))"/>
  203. </xsl:when>
  204. <xsl:otherwise>
  205. <xsl:value-of select="$document-uri"/>
  206. </xsl:otherwise>
  207. </xsl:choose>
  208. </xsl:function>
  209. <xsl:template name="default_db__x3A__STRUCTURE:document-uri">
  210. <xsl:attribute name="document-uri" select="document-uri(root())" />
  211. </xsl:template>
  212. <xsl:template name="default_db__x3A__STRUCTURE:generate-id">
  213. <xsl:choose>
  214. <xsl:when test="@default_db__x3A__STRUCTURE:generate-id"/>
  215. <xsl:otherwise><xsl:attribute name="default_db__x3A__STRUCTURE:generate-id" select="generate-id()"/></xsl:otherwise>
  216. </xsl:choose>
  217. </xsl:template>
  218. <!--<xsl:template mode="#all" match="*" priority="1">
  219. <xsl:call-template name="default_db__x3A__STRUCTURE:error.unexpected.element">
  220. <xsl:with-param name="default_db__x3A__STRUCTURE:error.unexpected.element.message"> #all mode [ ]</xsl:with-param>
  221. </xsl:call-template>
  222. </xsl:template>-->
  223. </xsl:stylesheet>