[OWSLib-users] error in CSW insert transaction : Document is XML, but not CSW-ish

Chiarello Ernest Ernest.Chiarello at univ-fcomte.fr
Tue May 3 02:37:47 PDT 2016


Le 03/05/2016 11:11, Chiarello Ernest a écrit :
> new idea !
>
> Le 03/05/2016 11:05, Chiarello Ernest a écrit :
>> Hi Tom,
>>
>> Le 03/05/2016 05:04, Tom Kralidis a écrit :
>>> On Mon, May 2, 2016 at 6:12 AM, Chiarello Ernest
>>> <Ernest.Chiarello at univ-fcomte.fr>  wrote:
>>>> Hi all,
>>>>
>>>> I am trying to insert a metadata in GeoNetwork, according OWSlib
>>>> documentation but it fails with this error message :
>>>> RuntimeError: Document is XML, but not CSW-ish
>>>>
>>>> But above all, i think quotes are missing in the csw transaction. you should
>>>> write :
>>>>
>>>>>>> csw.transaction(ttype='insert', typename='gmd:MD_Metadata',
>>>>>>> record=open("file.xml").read())
>>>> instead of :
>>>>>>> csw.transaction(ttype='insert', typename='gmd:MD_Metadata',
>>>>>>> record=open(file.xml).read())
>>>> Next i recovered a file from another GeoNetwork, in order to be sure that
>>>> the metadata file would be correct.
>>>>
>>>> wget
>>>> https://georchestra-mshe.univ-fcomte.fr/geonetwork/srv/fre/xml.metadata.get?id=17804
>>>> -O metadata.xml
>>>>
>>>> And then i tried to insert this metadata in my GeoNetwork Dev machine :
>>>>
>>>>>>> geonetwork =
>>>>>>> 'http://geonetwork-mshe.univ-fcomte.fr:8080/geonetwork/srv/fre/csw'
>>>>>>> from owslib.csw import CatalogueServiceWeb
>>>>>>> csw = CatalogueServiceWeb(geonetwork)
>>>>>>> csw.transaction(ttype='insert', typename='gmd:MD_Metadata',
>>>>>>> record=open("metadata.xml").read())
>>>> Traceback (most recent call last):
>>>>    File "<stdin>", line 1, in <module>
>>>>    File "/usr/lib/python2.7/dist-packages/owslib/csw.py", line 446, in
>>>> transaction
>>>>      self._invoke()
>>>>    File "/usr/lib/python2.7/dist-packages/owslib/csw.py", line 680, in
>>>> _invoke
>>>>      raise RuntimeError('Document is XML, but not CSW-ish')
>>>> RuntimeError: Document is XML, but not CSW-ish
>>>>
>>>> Can anybody explain to me why my metadata.xml file is not CSW-ish ?
>>>>
>>> My guess is that some sort of authentication is required to make CSW-T
>>> requests against the CSW in question.  Try adding the username an
>>> password parameters to the constructor?
>>>
>>> ..Tom
>> sorry, but i do not know how to set username and passord in the csw 
>> transaction.
>>
>> def transaction(self, ttype=None, typename='csw:Record', record=None, 
>> propertyname=None, propertyvalue=None, bbox=None, keywords=[], 
>> cql=None, identifier=None):
>>
>> """
>>
>> Construct and process a Transaction request
>>
>> Parameters
>> ----------
>>
>> - ttype: the type of transaction 'insert, 'update', 'delete'
>> - typename: the typename to describe (default is 'csw:Record')
>> - record: the XML record to insert
>> - propertyname: the RecordProperty/PropertyName to Filter against
>> - propertyvalue: the RecordProperty Value to Filter against (for 
>> updates)
>> - bbox: the bounding box of the spatial query in the form 
>> [minx,miny,maxx,maxy]
>> - keywords: list of keywords
>> - cql: common query language text. Note this overrides bbox, qtype, 
>> keywords
>> - identifier: record identifier. Note this overrides bbox, qtype, 
>> keywords, cql
>>
>>
>>
>> thanks for your help,
>>
>>
>> Ernest.
>>
>
> I realized that username and password should be send when opening CSW !
> csw = CatalogueServiceWeb(geonetwork, skip_caps=True, 
> username='admin', password='admin')
>
> but i have a new error...
>
> >>> geonetwork = 
> 'http://geonetwork-mshe.univ-fcomte.fr:8080/geonetwork/srv/fre/csw'
> >>> from owslib.csw import CatalogueServiceWeb
> >>> csw = CatalogueServiceWeb(geonetwork, skip_caps=True, 
> username='admin', password='admin')
> >>> csw.transaction(ttype='insert', typename='gmd:MD_Metadata', 
> record=open('metadata.xml').read())
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File "/usr/lib/python2.7/dist-packages/owslib/csw.py", line 429, in 
> transaction
>     node1.append(etree.fromstring(record))
>   File "src/lxml/lxml.etree.pyx", line 3213, in lxml.etree.fromstring 
> (src/lxml/lxml.etree.c:82934)
>   File "src/lxml/parser.pxi", line 1819, in 
> lxml.etree._parseMemoryDocument (src/lxml/lxml.etree.c:124533)
>   File "src/lxml/parser.pxi", line 1707, in lxml.etree._parseDoc 
> (src/lxml/lxml.etree.c:123074)
>   File "src/lxml/parser.pxi", line 1079, in 
> lxml.etree._BaseParser._parseDoc (src/lxml/lxml.etree.c:117114)
>   File "src/lxml/parser.pxi", line 573, in 
> lxml.etree._ParserContext._handleParseResultDoc 
> (src/lxml/lxml.etree.c:110510)
>   File "src/lxml/parser.pxi", line 683, in 
> lxml.etree._handleParseResult (src/lxml/lxml.etree.c:112276)
>   File "src/lxml/parser.pxi", line 624, in lxml.etree._raiseParseError 
> (src/lxml/lxml.etree.c:111367)
> lxml.etree.XMLSyntaxError: None
>
> any help ?
>
> Ernest.

sorry, the metadata file was empty, for an unknow reason... >:o
so, i can try another time, with user authentication :

 >>> geonetwork = 
'http://geonetwork-mshe.univ-fcomte.fr:8080/geonetwork/srv/fre/csw'
 >>> from owslib.csw import CatalogueServiceWeb
 >>> csw = CatalogueServiceWeb(geonetwork, skip_caps=True, 
username='admin', password='admin')
 >>>
 >>> csw.transaction(ttype='insert', typename='gmd:MD_Metadata', 
record=open('metadata.xml').read())
Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
   File "/usr/lib/python2.7/dist-packages/owslib/csw.py", line 446, in 
transaction
     self._invoke()
   File "/usr/lib/python2.7/dist-packages/owslib/csw.py", line 680, in 
_invoke
     raise RuntimeError('Document is XML, but not CSW-ish')
RuntimeError: Document is XML, but not CSW-ish

it seems the error is the same...
what am i missing ?


Ernest.


>
>>
>>>> Thanks in advance,
>>>>
>>>> Ernest.
>>
>>
>> -- 
>> Ernest CHIARELLO  -Ernest.Chiarello at univ-fcomte.fr
>> UMR6049 ThéMA - Théoriser et Modéliser pour Aménager
>> CNRS / université de Bourgogne Franche-Comté
>> 32 rue Mégevand 25030 BESANÇON Cedex
>>
>> Tel : 03 81 66 54 80           Mob : 07 82 99 11 08
>>
>>
>>
>>
>> _______________________________________________
>> OWSLib-users mailing list
>> OWSLib-users at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/owslib-users
>
>
> -- 
> Ernest CHIARELLO  -Ernest.Chiarello at univ-fcomte.fr
> UMR6049 ThéMA - Théoriser et Modéliser pour Aménager
> CNRS / université de Bourgogne Franche-Comté
> 32 rue Mégevand 25030 BESANÇON Cedex
>
> Tel : 03 81 66 54 80           Mob : 07 82 99 11 08
>
>
>
>
> _______________________________________________
> OWSLib-users mailing list
> OWSLib-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/owslib-users


-- 
Ernest CHIARELLO  -  Ernest.Chiarello at univ-fcomte.fr
UMR6049 ThéMA - Théoriser et Modéliser pour Aménager
CNRS / université de Bourgogne Franche-Comté
32 rue Mégevand 25030 BESANÇON Cedex

Tel : 03 81 66 54 80           Mob : 07 82 99 11 08


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/owslib-users/attachments/20160503/f95ee2e4/attachment.html>


More information about the OWSLib-users mailing list