TargetNamespaceBindings.xsl 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  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. xmlns:system_cache__appinfo="http://biuro.biall-net.pl/xmlschema_procesy5/default_db_xml_cache/appinfo.xsd"
  5. exclude-result-prefixes="xs"
  6. version="2.0">
  7. <xsl:include href="../get_all_xsd.xsl"/>
  8. <xsl:param name="targetNamespace_DEFAULTS_prefix" select="'default_db'"/>
  9. <xsl:param name="targetNamespace_DEFAULTS_prefix_objects" select="'default_objects'"/>
  10. <xsl:param name="TargetNamespaceBindingsApiUrl" select="'https://biuro.biall-net.pl/SE/version-git/wfs-data.php'"/>
  11. <xsl:output indent="yes"/>
  12. <xsl:strip-space elements="*"/>
  13. <xsl:template name="system_cache__appinfo:TargetNamespaceBindings_from_Namespace">
  14. <xsl:param name="TargetNamespace" required="yes"/> <!-- like https://biuro.biall-net.pl/wfs/default_db/table/CRM_PROCES.xsd -->
  15. <xsl:message>#15 $TargetNamespace=<xsl:value-of select="$TargetNamespace"/>; system_cache__appinfo:TargetNamespaceBindings_from_Namespace</xsl:message>
  16. <system_cache__appinfo:TargetNamespaceBindings_from_Namespace>
  17. <xsl:variable name="TargetNamespaceTokens" select="tokenize($TargetNamespace,'/')"/>
  18. <xsl:attribute name="NamespaceDatabaseStorageDefinitionPrefix" select="$TargetNamespaceTokens[ count($TargetNamespaceTokens)-2]"/>
  19. <xsl:attribute name="NamespaceObjectInstanceType" select="$TargetNamespaceTokens[ count($TargetNamespaceTokens)-1]"/> <!-- should respond to table -->
  20. <xsl:attribute name="NamespaceObjectInstanceTable" select=" substring-before($TargetNamespaceTokens[ count($TargetNamespaceTokens)],'.')"/>
  21. <xsl:attribute name="NamespacePrefix" select="system_cache__appinfo:escape_object_prefix_to_string( concat( $TargetNamespaceTokens[ count($TargetNamespaceTokens)-2],':', substring-before($TargetNamespaceTokens[ count($TargetNamespaceTokens)],'.')))"/>
  22. </system_cache__appinfo:TargetNamespaceBindings_from_Namespace>
  23. </xsl:template>
  24. <xsl:template name="system_cache__appinfo:TargetNamespaceBindings_from_Prefix">
  25. <xsl:param name="NamespacePrefix" required="yes"/> <!-- like default_db__x3A__CRM_PROCES -->
  26. <xsl:message terminate="yes">#18 TODO function to be created</xsl:message>
  27. </xsl:template>
  28. <xsl:template name="system_cache__appinfo:TargetNamespace_from_Bindings">
  29. <xsl:param name="TargetNamespaceBindingsApi" required="yes"/> <!-- example https://biuro.biall-net.pl/wfs -->
  30. <xsl:param name="NamespaceDatabaseStorageDefinitionPrefix" required="yes"/> <!-- example default_db -->
  31. <xsl:param name="NamespaceObjectInstanceType" select="'table'"/> <!-- example table -->
  32. <xsl:param name="NamespaceObjectInstanceTable" required="yes"/> <!-- example CRM_PROCES -->
  33. <system_cache__appinfo:TargetNamespace_from_Bindings>
  34. <xsl:attribute name="TargetNamespace" select="concat($TargetNamespaceBindingsApi,'/',$NamespaceDatabaseStorageDefinitionPrefix,'/', $NamespaceObjectInstanceType,'/',$NamespaceObjectInstanceTable,'.xsd' )"/>
  35. <xsl:attribute name="Prefix" select="system_cache__appinfo:escape_object_prefix_to_string(concat($NamespaceDatabaseStorageDefinitionPrefix,':',$NamespaceObjectInstanceTable) )"/>
  36. </system_cache__appinfo:TargetNamespace_from_Bindings>
  37. </xsl:template>
  38. <xsl:template name="system_cache__appinfo:TargetNamespaceBindings_to_Namespace">
  39. <xsl:param name="TargetNamespace" required="yes"/> <!-- like https://biuro.biall-net.pl/wfs -->
  40. <xsl:param name="NamespaceDatabaseStorageDefinitionPrefix" required="yes"/> <!-- like default_db for binding to default_db-->
  41. <xsl:param name="NamespaceObjectInstanceTable" required="yes"/> <!-- like CRM_PROCES -->
  42. <xsl:param name="NamespaceObjectInstanceType" required="yes"/> <!-- like table -->
  43. <system_cache__appinfo:TargetNamespaceBindings_to_Namespace>
  44. <xsl:attribute name="TargetNamespace" select="concat($TargetNamespace,'/',$NamespaceDatabaseStorageDefinitionPrefix,'/',$NamespaceObjectInstanceTable,'.xsd')"/>
  45. </system_cache__appinfo:TargetNamespaceBindings_to_Namespace>
  46. </xsl:template>
  47. <xsl:template match="system_cache__appinfo:get_all_xsd_list" mode="system_cache__appinfo:NamespaceBinding.xml">
  48. <!-- to generate NamespaceBinding.xml file - need to be upgraded for parse xs:appinfo binding informations from schema -->
  49. <system_cache__appinfo:NamespaceBinding>
  50. <xsl:apply-templates mode="system_cache__appinfo:NamespaceBinding.xml"/>
  51. </system_cache__appinfo:NamespaceBinding>
  52. </xsl:template>
  53. <xsl:template match="system_cache__appinfo:get_all_xsd" mode="system_cache__appinfo:NamespaceBinding.xml">
  54. <xsl:apply-templates mode="system_cache__appinfo:NamespaceBinding.xml"/>
  55. </xsl:template>
  56. <xsl:template mode="system_cache__appinfo:NamespaceBinding.xml" match="*|text()|comment()"/>
  57. <xsl:template match="schema" mode="system_cache__appinfo:NamespaceBinding.xml" xpath-default-namespace="http://www.w3.org/2001/XMLSchema">
  58. <xsl:choose>
  59. <xsl:when test="annotation/system_cache__appinfo:binding" xpath-default-namespace="http://www.w3.org/2001/XMLSchema">
  60. <xsl:copy-of select="annotation/system_cache__appinfo:binding" xpath-default-namespace="http://www.w3.org/2001/XMLSchema" copy-namespaces="no"/>
  61. </xsl:when>
  62. <xsl:when test="contains(@targetNamespace,'default_db/SystemObjects')">
  63. <system_cache__appinfo:binding targetNamespace="{@targetNamespace}" bindPolicy="single">
  64. <system_cache__appinfo:api type="wfs"><xsl:value-of select="$TargetNamespaceBindingsApiUrl"/></system_cache__appinfo:api>
  65. <system_cache__appinfo:prefix><xsl:value-of select="$targetNamespace_DEFAULTS_prefix_objects"/></system_cache__appinfo:prefix>
  66. </system_cache__appinfo:binding>
  67. </xsl:when>
  68. <xsl:when test="contains(@targetNamespace,'default_db/table')">
  69. <system_cache__appinfo:binding targetNamespace="{@targetNamespace}" bindPolicy="single">
  70. <system_cache__appinfo:api type="wfs"><xsl:value-of select="$TargetNamespaceBindingsApiUrl"/></system_cache__appinfo:api>
  71. <system_cache__appinfo:prefix><xsl:value-of select="$targetNamespace_DEFAULTS_prefix"/></system_cache__appinfo:prefix>
  72. </system_cache__appinfo:binding>
  73. </xsl:when>
  74. <xsl:when test="contains(@targetNamespace,'default_db/Types')"></xsl:when>
  75. <xsl:otherwise>
  76. <xsl:comment>#71 unknown type schema? maybe some fixing or external schema?</xsl:comment>
  77. <system_cache__appinfo:binding targetNamespace="{@targetNamespace}" bindPolicy="single">
  78. <system_cache__appinfo:api type="wfs"><xsl:value-of select="$TargetNamespaceBindingsApiUrl"/></system_cache__appinfo:api>
  79. <system_cache__appinfo:prefix>unknown</system_cache__appinfo:prefix>
  80. </system_cache__appinfo:binding>
  81. </xsl:otherwise>
  82. </xsl:choose>
  83. </xsl:template>
  84. </xsl:stylesheet>