Hi Kyle,
Thanks for looking into this. I think you've hit upon the solution, but
ultimately I think it will take updates to the PyDAP server to truly fix
the problem (or text versions of the entire hierarchy). The test
catalog is valid and it reads just fine in my software. However, each
of the catalogRef elements points to another catalog generated by PyDAP
each of which has the same problems as the original so my software fails
again when tries to work with the next level down.
Roland
Kyle Halliday wrote:
Hi Roland -
I've taken a closer look at the THREDDS being generated by our PyDAP
server, and I've found a number of errors. Fortunately, they shouldn't
be too difficult to correct.
I was able to get the XML from
http://climate.llnl.gov/dap/ipcc4?thredds to validate after:
1) Adding the encoding="utf-8" attribute to the XML declaration.
2) Adding the DOCTYPE declaration: <!DOCTYPE catalog SYSTEM
"http://www.unidata.ucar.edu/projects/THREDDS/xml/InvCatalog.0.6.dtd">
3) Referencing the xlink namespace in the catalog tag:
xmlns:xlink="http://www.w3.org/1999/xlink"
4) Adding "name" and "version" attributes to the catalog tag.
5) Changing all catalogRef "href" and "title" attributes to
"xlink:href" and "xlink:title", respectively.
Below is the corrected version of the THREDDS catalog, which I was
able to validate with the THREDDS validation form.
I've also temporarily posted this at:
http://www-pcmdi.llnl.gov/test/thredds.xml
Does this parse successfully using your Java code?
Thanks,
Kyle
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE catalog SYSTEM
"http://www.unidata.ucar.edu/projects/THREDDS/xml/InvCatalog.0.6.dtd">
<catalog xmlns="http://www.unidata.ucar.edu/thredds"
xmlns:xlink="http://www.w3.org/1999/xlink" name="test" version="1.0">
<dataset name="PyDAP server">
<service base="http://climate.llnl.gov/dap" name="PyDAP server"
serviceType="DODS"/>
<catalogRef
xlink:href="http://climate.llnl.gov/dap/ipcc4/2xco2/?thredds"
xlink:title="ipcc4/2xco2"/>
<catalogRef
xlink:href="http://climate.llnl.gov/dap/ipcc4/sresb1/?thredds"
xlink:title="ipcc4/sresb1"/>
<catalogRef
xlink:href="http://climate.llnl.gov/dap/ipcc4/1pctto4x/?thredds"
xlink:title="ipcc4/1pctto4x"/>
<catalogRef
xlink:href="http://climate.llnl.gov/dap/ipcc4/commit/?thredds"
xlink:title="ipcc4/commit"/>
<catalogRef
xlink:href="http://climate.llnl.gov/dap/ipcc4/20c3m/?thredds"
xlink:title="ipcc4/20c3m"/>
<catalogRef
xlink:href="http://climate.llnl.gov/dap/ipcc4/amip/?thredds"
xlink:title="ipcc4/amip"/>
<catalogRef
xlink:href="http://climate.llnl.gov/dap/ipcc4/pdcntrl/?thredds"
xlink:title="ipcc4/pdcntrl"/>
<catalogRef
xlink:href="http://climate.llnl.gov/dap/ipcc4/slabcntl/?thredds"
xlink:title="ipcc4/slabcntl"/>
<catalogRef
xlink:href="http://climate.llnl.gov/dap/ipcc4/picntrl/?thredds"
xlink:title="ipcc4/picntrl"/>
<catalogRef
xlink:href="http://climate.llnl.gov/dap/ipcc4/sresa2/?thredds"
xlink:title="ipcc4/sresa2"/>
<catalogRef
xlink:href="http://climate.llnl.gov/dap/ipcc4/sresa1b/?thredds"
xlink:title="ipcc4/sresa1b"/>
<catalogRef
xlink:href="http://climate.llnl.gov/dap/ipcc4/1pctto2x/?thredds"
xlink:title="ipcc4/1pctto2x"/>
</dataset>
</catalog>
Organization: UCAR/Unidata
Keywords: 200607182040.k6IKeZSZ000730
Date: Tue, 18 Jul 2006 15:40:12 -0500
From: Roland Schweitzer <Roland.Schweitzer@xxxxxxxx>
To: thredds@xxxxxxxxxxxxxxxx
Subject: Error reading catalog with latest (2.2.16) toolsUI jar
Sender: owner-thredds@xxxxxxxxxxxxxxxx
X-Brightmail: Whitelisted1
X-Brightmail-Tracker: AAAAAA=
Hi Folks,
I sent a message on this subject to the support-thredds address at
Unidata, but it occurred to me that this might be a "community
question" that the pyDAP developer might want to weigh in on so here
goes...
When I attempt to read this catalog:
http://climate.llnl.gov/dap/ipcc4?thredds (which I believe is being
automatically generated by the pyDAP server) I get the following error:
Exception in thread "Thread-11" java.lang.NullPointerException
at thredds.catalog.InvCatalogRef.<init>(InvCatalogRef.java:70)
at
thredds.catalog.parser.jdom.InvCatalogFactory10.readCatalogRef(InvCatalogFactory10.java:153)
at
thredds.catalog.parser.jdom.InvCatalogFactory10.readDatasetInfo(InvCatalogFactory10.java:266)
at
thredds.catalog.parser.jdom.InvCatalogFactory10.readDataset(InvCatalogFactory10.java:182)
at
thredds.catalog.parser.jdom.InvCatalogFactory10.readCatalog(InvCatalogFactory10.java:135)
at
thredds.catalog.parser.jdom.InvCatalogFactory10.parseXML(InvCatalogFactory10.java:89)
at
thredds.catalog.InvCatalogFactory.readXML(InvCatalogFactory.java:324)
at
thredds.catalog.InvCatalogFactory.readXML(InvCatalogFactory.java:299)
at
thredds.catalog.ui.CatalogFactoryCancellable.access$701(CatalogFactoryCancellable.java:42)
at
thredds.catalog.ui.CatalogFactoryCancellable$OpenCatalogTask.run(CatalogFactoryCancellable.java:155)
at java.lang.Thread.run(Unknown Source)
I have tried both my own code which I know uses 2.2.16 and the
toolsUI that launches from
http://www.unidata.ucar.edu/software/netcdf-java/v2.2/webstart/netCDFtools-2.2.jnlp.
I could not get the validation form at
http://motherlode.ucar.edu:8080/thredds/validateForm.html to work
against this URL either.
Any ideas?
Thanks,
Roland
===============================================================================
To unsubscribe thredds, visit:
http://www.unidata.ucar.edu/mailing-list-delete-form.html
===============================================================================
==============================================================================
To unsubscribe thredds, visit:
http://www.unidata.ucar.edu/mailing-list-delete-form.html
==============================================================================