[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:11:50 PDT 2016


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.

>
>>> 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


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


More information about the OWSLib-users mailing list