One problem is that your catalog is not valid according to the InvCatalog schema. The TDS is pretty lenient when reading catalogs so I don't think any of this is causing the problem you are seeing. But here are the details. Just a few changes fix it. At the catalog level, service elements must come before dataset elements. The datasetRoot element needs a location attribute instead of a dirLocation attribute (either is allowed in datasetScan but not in datasetRoot). Inside of datasets, access elements come after metadata and dataSize elements. Also, metadata elements have to come before dataset elements. I've attached a new version of your catalog that fixes these problems.
Hi Ethan - I hope your prepared for this!
Specifically, the metadata element that does not work with the TDS HTML is <metadata xlink:href="http://sands01.ssec.wisc.edu:8080/thredds/Shelves/7a75/4fd8/7a754fd85b39c6b6795936bbcd26955d/" xlink:title="Parent Dataset" />.
It fails with the error output found at http://www.ssec.wisc.edu/~brucef when navigating to the dataset containing the above metadata. The above XML works if you change the tag to documentation and place it in a metadata element. ???
**Error: InvCatalogFactory.readOtherXML failed on http://sands01.ssec.wisc.edu:8080/thredds/Shelves/7a75/4fd8/7a754fd85b39c6b6795936bbcd26955d/
Exception= org.xml.sax.SAXParseException The element type "meta" must be terminated by the matching end-tag "</meta>".
** failed to read thredds metadata at = http://sands01.ssec.wisc.edu:8080/thredds/Shelves/7a75/4fd8/7a754fd85b39c6b6795936bbcd26955d/ for datasetmichelle.tar
Well, I'm not sure I really understand but it sounds like you want to explicitly capture a parent/child relationship that the THREDDS catalogs being produced don't capture. The only way to capture this information would be to build a single THREDDS catalog with the parent/child relationships showing up as the hierarchical structure of the catalog. The reason we don't have a place for this kind of information outside of the hierarchical structure is because a catalog can be pointed to from multiple locations so there isn't necessarily a single parent to any given catalog.
What I am trying to accomplish is kinda hard to explain, but I'll give it a shot...
I have 2 parallel TDS representations for the same data. There is a "Shelves" tree generated using datasetScan that is an exact recreation of our datastore back-end on our XSAN. The data-store is in a format that is not user navigable, so for users to get to their data we provide soft-links to something more "friendly," which we call the "user links." The XSAN back-end will never change, but the user links might. I have python scripts that generate TDS catalogs from the user links that replicate the soft-linked user navigable access to the XSAN back-end.
So... If a link to a particular dataset(ie. netcdf file) is distributed from one user to another, that user may also be interested in the related files in the parent dataset. Therefore, there was a requirement to have a link to the parent dataset containing related files. Since the user links may change it made sense to provide that link to the shelves tree, which is static.
For example, the user links URL for the above metadata tag is http://localhost:8080/thredds/dodsC/User_Links/Users/johnm/catalog.html, which actually represents the same data.
So, it seems unnatural to classify the link to a parent dataset as documentation.
or as we've been discussing, an xlink to another document.
Hope this all helps.
-- Ethan R. Davis Telephone: (303) 497-8155 Software Engineer Fax: (303) 497-8690 UCAR Unidata Program Center E-mail: address@hidden P.O. Box 3000 Boulder, CO 80307-3000 http://www.unidata.ucar.edu/ ---------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?> <catalog xmlns="http://www.unidata.ucar.edu/namespaces/thredds/InvCatalog/v1.0" xmlns:xlink="http://www.w3.org/1999/xlink"> <service name="group" base="" serviceType="Compound"> <service name="dods" base="/thredds/dodsC/" serviceType="OpenDAP"/> <service name="http" base="/thredds/fileServer/" serviceType="HTTPServer"/> <datasetRoot path="Shelves" location="/Volumes/gulf1/.bruce_dev/"/> </service> <service name="other" base="/thredds/fileServer/" serviceType="HTTPServer"/> <dataset name="7a754fd85b39c6b6795936bbcd26955d" ID="7a754fd85b39c6b6795936bbcd26955d"> <metadata inherited="true"> <documentation type="summary"> MM5 code for michelle dataset setup by John M </documentation> <keyword>MM5</keyword> <keyword>michelle</keyword> <keyword>Jan2003</keyword> <property name="link" value="Users/johnm"/> <creator> <name>eriko</name> <contact email="address@hidden"/> </creator> <publisher> <name>Administrator</name> <contact email="address@hidden"/> </publisher> </metadata> <dataset name="michelle.tar" ID="7a754fd85b39c6b6795936bbcd26955d-michelle.tar"> <metadata> <documentation> The dataset in which this file is contained is available at: </documentation> <property name="MD5 Checksum" value="a41252c9243d6ee8b66ff353736a3fc4"/> <dataFormat>text/plain</dataFormat> </metadata> <metadata xlink:href="http://sands01.ssec.wisc.edu:8080/thredds/Shelves/7a75/4fd8/7a754fd85b39c6b6795936bbcd26955d/" xlink:title="Parent Dataset"/> <dataSize units="bytes">1984233675</dataSize> <access urlPath="Shelves/7a75/4fd8/7a754fd85b39c6b6795936bbcd26955d/michelle.tar" serviceName="other"/> </dataset> </dataset> </catalog>
NOTE: All email exchanges with Unidata User Support are recorded in the Unidata inquiry tracking system and then made publicly available through the web. If you do not want to have your interactions made available in this way, you must let us know in each email you send to us.