STRUCTURE.import.xsl 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  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. version="2.0">
  8. <xsl:output indent="yes"/>
  9. <xsl:strip-space elements="*"/>
  10. <!-- TODO co to ma robic innego niz init? reagowac na elementy import export wszedzie w shematach? -->
  11. <xsl:template mode="default_db__x3A__STRUCTURE:import" match="xs:schema">
  12. <xsl:copy>
  13. <xsl:call-template name="default_db__x3A__STRUCTURE:document-uri"/>
  14. <xsl:call-template name="default_db__x3A__STRUCTURE:generate-id"/>
  15. <xsl:apply-templates mode="default_db__x3A__STRUCTURE:import" select="xs:complexType[@name='init']|xs:import|xs:element|xs:group" />
  16. </xsl:copy>
  17. </xsl:template>
  18. <xsl:template mode="default_db__x3A__STRUCTURE:import" match="*">
  19. <xsl:copy>
  20. <xsl:call-template name="default_db__x3A__STRUCTURE:generate-id"/>
  21. <xsl:apply-templates mode="#current" select="@*"/>
  22. <xsl:apply-templates mode="#current" />
  23. </xsl:copy>
  24. </xsl:template>
  25. <xsl:template mode="default_db__x3A__STRUCTURE:import" match="xs:annotation[xs:documentation and not(xs:appinfo)]"/>
  26. <xsl:template mode="default_db__x3A__STRUCTURE:import" match="@*">
  27. <xsl:copy-of select="."/>
  28. </xsl:template>
  29. <xsl:function name="default_db__x3A__STRUCTURE:import.element.ref.document-uri">
  30. <xsl:param name="context"/>
  31. <xsl:param name="ref"/>
  32. <xsl:variable name="namespace-uri-for-prefix" select="namespace-uri-for-prefix(substring-before($ref,':'),$context)"/>
  33. <xsl:message>#45 poNS/n[[<xsl:value-of select="$context/root()//*[name()=$context/name() ][1]/@*"/>]]</xsl:message>
  34. <!-- $namespace-uri-for-prefix <xsl:value-of select="$namespace-uri-for-prefix"/> -->
  35. <xsl:choose>
  36. <xsl:when test="$context/root()//*[name()=$context/name() ]" xpath-default-namespace="{namespace-uri-for-prefix(default_db__x3A__STRUCTURE:prefix.get($ref),$context)}"> <!-- $context/ancestor-or-self::*[name()=$context/name() and @name=default_db__x3A__STRUCTURE:prefix.clean($ref)] -->
  37. <!--<DEBUG debug="dziala #$8"><xsl:copy-of select="$context/root()//*[name()=$context/name() ]"/></DEBUG>-->
  38. <xsl:message>#45 dziala po namespacie</xsl:message>
  39. <xsl:value-of select="''"/>
  40. </xsl:when>
  41. <xsl:when test="count($context/preceding::xs:import[@namespace=$namespace-uri-for-prefix]) &gt;1">
  42. <xsl:message terminate="yes">#50 unsupported multiple import same namespace <xsl:copy-of select="$context/ancestor::xs:schema/xs:import[@namespace=$namespace-uri-for-prefix]" copy-namespaces="no"/></xsl:message>
  43. </xsl:when>
  44. <xsl:when test="count($context/preceding::xs:import[@namespace=$namespace-uri-for-prefix]) = 1">
  45. <xsl:value-of select="$context/preceding::xs:import[@namespace=$namespace-uri-for-prefix]/@schemaLocation"/>
  46. </xsl:when>
  47. <xsl:otherwise>
  48. <xsl:message terminate="yes">#56 error not found $ref = [[ <xsl:value-of select="$ref"/> ]
  49. $context/n = [[<xsl:value-of select="$context/name()"/>]] /@n[[[<xsl:value-of select="$context/@name"/>]]] @r[[[<xsl:value-of select="$context/@ref"/>]]] @ty[[[<xsl:value-of select="$context/@type"/>]]] @*[<xsl:copy-of select="$context/@*" copy-namespaces="no"/>]
  50. for $namespace-uri-for-prefix[<xsl:value-of select="$namespace-uri-for-prefix"/>] $context/preceding::xs:import[@namespace=$namespace-uri-for-prefix]/@schemaLocation </xsl:message>
  51. </xsl:otherwise>
  52. </xsl:choose>
  53. </xsl:function>
  54. <xsl:template name="default_db__x3A__STRUCTURE:import.element.ref.document-uri" match="xs:element[@ref]">
  55. <xsl:call-template name="default_db__x3A__STRUCTURE:import.element.ref.document-uri"/>
  56. <!--<xsl:apply-templates mode="#current" select="doc(default_db__x3A__STRUCTURE:import.element.ref.document-uri(.,@ref))/xs:schema/xs:complexType[@name='init']"/>-->
  57. </xsl:template>
  58. <!--<xsl:template mode="default_db__x3A__STRUCTURE:import" match="xs:element[@ref and preceding::*[@default_db__x3A__STRUCTURE:generate-id = current()/@default_db__x3A__STRUCTURE:generate-id] ]" priority="5">
  59. <xsl:message terminate="no">#75 KEY LOOP <xsl:value-of select="@default_db__x3A__STRUCTURE:generate-id"/></xsl:message>
  60. <xsl:comment>#75 KEY LOOP <xsl:value-of select="@default_db__x3A__STRUCTURE:generate-id"/></xsl:comment>
  61. </xsl:template>-->
  62. <xsl:template mode="default_db__x3A__STRUCTURE:import" match="xs:element[@ref and preceding::*[@default_db__x3A__STRUCTURE:generate-id = current()/@default_db__x3A__STRUCTURE:generate-id][2] ]" priority="9">
  63. <xsl:variable name="default_db__x3A__STRUCTURE:generate-id" select="@default_db__x3A__STRUCTURE:generate-id"/>
  64. <xsl:message terminate="no">#75-KEY KEY LOOP <xsl:value-of select="@default_db__x3A__STRUCTURE:generate-id"/>; 1Key[[[<xsl:value-of select="count(preceding::*[key('default_db__x3A__STRUCTURE:generate-id',current()/@default_db__x3A__STRUCTURE:generate-id) ])"/>]]]/2$Key[[[<xsl:value-of select="count(preceding::*[key('default_db__x3A__STRUCTURE:generate-id',$default_db__x3A__STRUCTURE:generate-id) ])"/>]]]/3Pr$[[[<xsl:value-of select="count(preceding::*[@default_db__x3A__STRUCTURE:generate-id = $default_db__x3A__STRUCTURE:generate-id])"/>]]]/4Pr[[[<xsl:value-of select="count(preceding::*[@default_db__x3A__STRUCTURE:generate-id = current()/@default_db__x3A__STRUCTURE:generate-id])"/>]]]</xsl:message>
  65. <!--<xsl:for-each select="preceding::*[@default_db__x3A__STRUCTURE:generate-id = current()/@default_db__x3A__STRUCTURE:generate-id]">
  66. <xsl:if test="position() &lt;20">
  67. <xsl:message>[[@<xsl:value-of select="position()"/>][<xsl:value-of select="@default_db__x3A__STRUCTURE:generate-id"/>]n/<xsl:value-of select="local-name()"/>;/@n/<xsl:value-of select="@name"/>]</xsl:message>
  68. </xsl:if>
  69. </xsl:for-each>-->
  70. </xsl:template>
  71. <xsl:template mode="default_db__x3A__STRUCTURE:import" match="xs:element[@ref]">
  72. <!--<xsl:apply-templates mode="#current" select="doc('NEURO_MIND_INPUT_SENTENCE.xsd')/xs:schema/xs:complexType[@name='import']"/>-->
  73. <!--<xsl:copy-of select=""/>-->
  74. <!--<xsl:copy-of select="default_db__x3A__STRUCTURE:import.element.ref.document-uri(.,@ref)"></xsl:copy-of>-->
  75. <xsl:message>#82 Loop chk key <xsl:value-of select="count(key('default_db__x3A__STRUCTURE:generate-id',preceding::*/@default_db__x3A__STRUCTURE:generate-id))"/>; </xsl:message>
  76. <xsl:variable name="namespace-uri-for-prefix" select="namespace-uri-for-prefix(default_db__x3A__STRUCTURE:prefix.get(@ref),.)"/>
  77. <xsl:comment>#76t [ref=<xsl:value-of select="@ref"/>;] - SNFP[<xsl:value-of select="$namespace-uri-for-prefix"/>]
  78. SNFP/#C[[<xsl:value-of select="count(root()//*[name()='default_db__x3A__NEURO_MIND_INPUT_LETTER:NEURO_MIND_INPUT_LETTER'])" xpath-default-namespace="{$namespace-uri-for-prefix}"/>]] url=[[<xsl:value-of select="default_db__x3A__STRUCTURE:import.element.ref.document-uri(.,@ref)"/>]]</xsl:comment>
  79. <xsl:choose>
  80. <!--<xsl:when test="default_db__x3A__STRUCTURE:import.element.ref.document-uri(.,@ref)=''">
  81. <ERROR_NULL>asd</ERROR_NULL>
  82. </xsl:when>-->
  83. <xsl:when test="root()//*[name()=current()/@ref]">
  84. <default_db__x3A__STRUCTURE:import__DEBUG debug="#85 jest wariant z nazwa cala.. - bierzemy jeden tylko?">
  85. <xsl:apply-templates mode="#current" select="root()//*[name()=current()/@ref][1]"/>
  86. </default_db__x3A__STRUCTURE:import__DEBUG>
  87. </xsl:when>
  88. <xsl:when test="root()//*[name()=current()/name() and @name=default_db__x3A__STRUCTURE:prefix.clean(current()/@ref)] and default_db__x3A__STRUCTURE:import.element.ref.document-uri(.,@ref)=''" xpath-default-namespace="{$namespace-uri-for-prefix}">
  89. <ERROR_NULL_DNS_OK>
  90. <xsl:copy-of select="root()//*[name()=current()/name() and @name=default_db__x3A__STRUCTURE:prefix.clean(current()/@ref)][1]" xpath-default-namespace="{$namespace-uri-for-prefix}"></xsl:copy-of>
  91. </ERROR_NULL_DNS_OK>
  92. </xsl:when>
  93. <xsl:when test="default_db__x3A__STRUCTURE:import.element.ref.document-uri(.,@ref)=''">
  94. <ERROR_NULL>76t - NULL </ERROR_NULL>
  95. </xsl:when>
  96. <xsl:otherwise>
  97. <xsl:message>#115 TODO TO MIGRATO DOC FROM IMPORT - should be only - co dociagnac?</xsl:message>
  98. <xsl:apply-templates mode="#current" select="doc(default_db__x3A__STRUCTURE:import.element.ref.document-uri(.,@ref))"/> <!-- /xs:schema/xs:complexType[@name='init'] --><!-- default_db__x3A__NEURO_MIND_INPUT_SENTENCE:import -->
  99. </xsl:otherwise>
  100. </xsl:choose>
  101. </xsl:template>
  102. <xsl:template mode="default_db__x3A__STRUCTURE:import" match="text()">
  103. <xsl:copy-of select="."/>
  104. </xsl:template>
  105. <xsl:template mode="default_db__x3A__STRUCTURE:import" match="comment()"/>
  106. </xsl:stylesheet>