get_wfs.Insert.xsl 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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:wfs="http://www.opengis.net/wfs"
  5. xmlns:gml="http://www.opengis.net/gml"
  6. exclude-result-prefixes="xs"
  7. version="2.0">
  8. <xsl:output indent="yes"/>
  9. <xsl:strip-space elements="*"/>
  10. <xsl:param name="source.obj" required="yes"/>
  11. <xsl:param name="target.obj" required="yes"/>
  12. <xsl:param name="READ_ONLY">
  13. <READ_ONLY>
  14. <A_RECORD_CREATE_DATE/>
  15. <A_RECORD_CREATE_AUTHOR/>
  16. <A_RECORD_UPDATE_DATE/>
  17. <A_RECORD_UPDATE_AUTHOR/>
  18. </READ_ONLY>
  19. </xsl:param>
  20. <xsl:template match="wfs:FeatureCollection">
  21. <Transaction
  22. xmlns="http://www.opengis.net/wfs"
  23. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  24. version="1.0.0"
  25. service="WFS"
  26. xmlns:p5_default_db="https://biuro.biall-net.pl/wfs/default_db"
  27. xmlns:gml="http://www.opengis.net/gml">
  28. <xsl:apply-templates/>
  29. </Transaction>
  30. </xsl:template>
  31. <xsl:template match="gml:featureMember" >
  32. <Insert xmlns="http://www.opengis.net/wfs">
  33. <xsl:apply-templates mode="translateSourceToTarget"/>
  34. </Insert>
  35. </xsl:template>
  36. <xsl:template mode="translateSourceToTarget" match="*[ local-name()= $source.obj]">
  37. <xsl:namespace name="default_db__x3A__{$target.obj}" select="concat('https://biuro.biall-net.pl/wfs/default_db/',$target.obj)"/>
  38. <xsl:element name="default_db__x3A__{$target.obj}:{$target.obj}" namespace="https://biuro.biall-net.pl/wfs/default_db/{$target.obj}">
  39. <xsl:for-each select="*">
  40. <xsl:choose>
  41. <xsl:when test="$READ_ONLY//*[ name() = current()/local-name()]"/>
  42. <xsl:otherwise>
  43. <xsl:element name="default_db__x3A__{$target.obj}:{local-name()}" namespace="https://biuro.biall-net.pl/wfs/default_db/{$target.obj}"><xsl:value-of select="text()"/></xsl:element>
  44. </xsl:otherwise>
  45. </xsl:choose>
  46. </xsl:for-each>
  47. </xsl:element>
  48. </xsl:template>
  49. <xsl:template mode="translateSourceToTarget" match="text()|comment()"/>
  50. <xsl:template mode="translateSourceToTarget" match="*">
  51. <xsl:message terminate="yes">ERROR found not expected object name=<xsl:value-of select="name()"/> - expected was <xsl:value-of select="$source.obj"/> ;</xsl:message>
  52. </xsl:template>
  53. </xsl:stylesheet>