<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;
      charset=windows-1252">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Even Rouault kirjoitti 24.10.2017 klo 20:23:<br>
    <blockquote type="cite" cite="mid:21560891.RLOkF2piMS@even-i700">
      <meta name="qrichtext" content="1">
      <style type="text/css">
p, li { white-space: pre-wrap; }
</style>
      <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">On mardi 24 octobre 2017 17:07:51 CEST Ari Jolma wrote:</p>
      <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> Whoa! How hard can XML be? I have a real Capabilities document (from</p>
      <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> well known company) which defines *both* default and ows namespace to</p>
      <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> <a class="moz-txt-link-freetext" href="http://www.opengis.net/ows/2.0">http://www.opengis.net/ows/2.0</a>.</p>
      <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> </p>
      <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> Thus, to be sure, I need to look for *both* ows:ServiceIdentification</p>
      <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> and ServiceIdentification. Or maybe loop through all elements and check</p>
      <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> for both at each element?</p>
      <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p>
      <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">If there's no ambiguity with elements having same names in different namespaces, you can just strip namespace prefixes from elements with</p>
      <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">CPLStripXMLNamespace(psRoot, NULL, true)</p>
    </blockquote>
    <br>
    I implemented a solution, where the namespace prefixes is a list
    (CPLStringList). That is probably a general solution and actually
    quite simple.<br>
    <br>
    Some fundamental thoughts on how to use the driver. The idea is to
    allow starting from a GetCapabilities request. The initial dataset
    name is thus<br>
    <br>
    WCS:URL<br>
    <br>
    where the URL may be without any parameters. We'll add service and
    request parameters but *not* version or acceptVersions since the
    server should return the latest supported version. The one I test
    with seems to return 1.1.2 and 2.0.1 only when requested. We'll
    leave it to user to add the version/acceptVersions. The user can
    also add updateSequence and other parameters. If the user adds
    coverage/identifiers/coverageId then we'll proceed directly to
    DescribeCoverage or further to GetCoverage if there are bounding
    boxes or such. DescribeCoverage is needed unless it is cached (see
    below) since it probably contains important metadata (nodata value,
    min and max values etc).<br>
    <br>
    Errors are reported to the user - it is important to know whether
    the error is HTTP 404 or ExceptionReport InvalidParameterValue.<br>
    <br>
    The driver currently honors some HTTP parameters such as timeout
    length, authorization etc. and they are in the service XML. How to
    forward them to the driver in the case of this simple dataset name
    case? Environment variables or somehow coded into the dataset name?
    (for example "WCS:x=y,URL=url" ?)<br>
    <br>
    Also, it would be useful to cache at least the capabilities and
    coverage description. I have not yet thought much about that but
    using something like $HOME/.gdal/wcs_cache would be preferred I
    guess? Then there is the question how the user can control
    refreshing the cache - with options as above?<br>
    <br>
    Ari<br>
    <br>
    <blockquote type="cite" cite="mid:21560891.RLOkF2piMS@even-i700">
      <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p>
      <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">-- </p>
      <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Spatialys - Geospatial professional services</p>
      <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><a class="moz-txt-link-freetext" href="http://www.spatialys.com">http://www.spatialys.com</a></p>
    </blockquote>
    <br>
  </body>
</html>