This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
After trying to implement nested datasets in a Java object model, ive come to the conclusion that the distinction between collections and datasets complicates life too much. So, here is yet another version of the catalog DTD. I hope this is the last major change to subject you to. http://www.unidata.ucar.edu/projects/THREDDS/xml/InvCatalog.0.6.dtd specification at http://www.unidata.ucar.edu/projects/THREDDS/tech/InvCatalogSpecification2.h tml I have an alpha version Java library implemented, code will be available in a few days, javadoc is at: http://www.unidata.ucar.edu/projects/THREDDS/tech/catalog/javadoc/ comments are requested.
<!-- see http://www.unidata.ucar.edu/thredds --> <!ENTITY % DataType "Grid | Image | Station"> <!ENTITY % ServiceType "DODS | ADDE | NetCDF | Catalog | FTP | WMS | WFS | WCS | WSDL | Compound | Other"> <!ENTITY % MetadataType "THREDDS | Aggregation | DublinCore | DIF | ADN | FGDC | LAS | Other"> <!-- top-level element --> <!ELEMENT catalog (dataset)> <!ATTLIST catalog name CDATA #REQUIRED version CDATA #REQUIRED xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink" xmlns CDATA #FIXED "http://www.unidata.ucar.edu/thredds" > <!-- only service type Compound can have nested services--> <!ELEMENT service (property*, service*)> <!ATTLIST service name CDATA #REQUIRED serviceType (%ServiceType;) #REQUIRED base CDATA #REQUIRED suffix CDATA #IMPLIED > <!-- use access elements when there are multiple services --> <!ELEMENT dataset (service*, (documentation | metadata | property)*, access*, (dataset | catalogRef)*)> <!ATTLIST dataset name CDATA #REQUIRED dataType (%DataType;) #IMPLIED authority CDATA #IMPLIED ID ID #IMPLIED alias IDREF #IMPLIED serviceName CDATA #IMPLIED urlPath CDATA #IMPLIED > <!-- use serviceID and relative URL -OR- serviceType and absolute URL --> <!ELEMENT access EMPTY> <!ATTLIST access urlPath CDATA #REQUIRED serviceName CDATA #IMPLIED serviceType (%ServiceType;) #IMPLIED > <!-- display this info to the user during the selection process --> <!ELEMENT documentation (#PCDATA)> <!ATTLIST documentation xlink:type (simple) #FIXED "simple" xlink:href CDATA #IMPLIED xlink:title CDATA #IMPLIED xlink:show (new | replace | embed) "new" > <!-- these are optional structured metadata, not typically shown to the user in the dataset chooser --> <!ELEMENT metadata ANY> <!ATTLIST metadata xlink:type (simple) #FIXED "simple" xlink:href CDATA #IMPLIED metadataType (%MetadataType;) #REQUIRED > <!-- external catalog gets added as a collection --> <!ELEMENT catalogRef (documentation*) > <!ATTLIST catalogRef xlink:type (simple) #FIXED "simple" xlink:href CDATA #REQUIRED xlink:title CDATA #REQUIRED > <!-- arbitrary name/value pairs to associate with the dataset, collection or service --> <!ELEMENT property EMPTY> <!ATTLIST property name CDATA #REQUIRED value CDATA #REQUIRED >