Opened 4 years ago

Closed 4 years ago

#320 closed defect (fixed)

Adding parameterized definitions doesn't work

Reported by: dmisev Owned by: mrusu
Priority: major Milestone: 8.5
Component: secore Version: 8.3
Keywords: Cc: pcampalani
Complexity: Easy

Description

Adding parameterized definitions via the browse.jsp interface doesn't work properly, as the variables in the parameter values which should be in the form ${variableName} are replaced with $ when inserted in the database.

To reproduce, go to http://localhost:8080/def/crs/AUTO/1.3/browse.jsp and add the following definition:

<ParameterizedCRS xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:epsg="urn:x-ogp:spec:schema-xsd:EPSG:0.1:dataset" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0" xmlns="http://www.opengis.net/gml" gml:id="parameterized">
  <parameters>
    <parameter name="lon">
      <value>0.0</value>
    </parameter>
    <parameter name="lat">
      <value>0.0</value>
    </parameter>
    <parameter name="zone">
      <value>Math.min( Math.floor( (${lon} + 180.0) / 6.0 ) + 1, 60 )</value>
    </parameter>
    <parameter name="central_meridian">
      <value>-183.0 + ${zone} * 6.0</value>
      <target>//gml:greenwichLongitude</target>
    </parameter>
    <parameter name="false_northing">
      <value>(${lat} >= 0.0) ? 0.0 : 10000000.0</value>
    </parameter>
  </parameters>
  <identifier>urn:ogc:def:crs:AUTO:1.3:42002</identifier>
  <targetCRS xlink:href="http://www.opengis.net/def/crs/EPSG/0/4326"/>
</ParameterizedCRS>

if you click on the created definition it will be like:

<ParameterizedCRS xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:epsg="urn:x-ogp:spec:schema-xsd:EPSG:0.1:dataset" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0" xmlns="http://www.opengis.net/gml" gml:id="parameterized">
  <parameters>
    <parameter name="lon">
      <value>0.0</value>
    </parameter>
    <parameter name="lat">
      <value>0.0</value>
    </parameter>
    <parameter name="zone">
      <value>Math.min( Math.floor( ($ + 180.0) / 6.0 ) + 1, 60 )</value>
    </parameter>
    <parameter name="central_meridian">
      <value>-183.0 + $ * 6.0</value>
      <target>//gml:greenwichLongitude</target>
    </parameter>
    <parameter name="false_northing">
      <value>($ >= 0.0) ? 0.0 : 10000000.0</value>
    </parameter>
  </parameters>
  <identifier>urn:ogc:def:crs:AUTO:1.3:42002</identifier>
  <targetCRS xlink:href="http://www.opengis.net/def/crs/EPSG/0/4326"/>
</ParameterizedCRS>

Change History (4)

comment:1 Changed 4 years ago by dmisev

Mihaela, can you please take care of this since you wrote the browse interface.

comment:2 Changed 4 years ago by mrusu

  • Status changed from new to accepted

The problem doesn't seem to be with browse.jsp, the query sent to the servlet still contains the curly brackets. Most probably it happens when adding it to the db. Working on it.

comment:3 Changed 4 years ago by dmisev

Ok forget it, I submitted a patch that fixes it. Curly braces need to be escaped by double curly braces in XQuery.

comment:4 Changed 4 years ago by dmisev

  • Resolution set to fixed
  • Status changed from accepted to closed
Note: See TracTickets for help on using tickets.