XML Metadata Concept Catalog
Status Summary:
The returned status codes for errors are standardized at the top level of the status returned. The status can contain nested errors with detailed explanations, detailed error status messages, and stack dumps. For each of the operation types, the following table shows the top-level status message when there is a fatal error or a partial error. There are three cases that are standard across all operations:
  • No error - returns a status of: OPERATION_SUCCESSFUL.
  • The XML of the request is not schema-valid - returns a status of: NOT_SCHEMA_VALID.
  • An unhandled exception such as thrown by Axis2 is caught - returns a status of: UNHANDLED_EXCEPTION.
  • OperationFatal ErrorPartial Error
    StatusFATAL_STATUS_ERRORNON_FATAL_STATUS_ERROR
    Create UserFATAL_CREATE_ERRORNON_FATAL_CREATE_ERROR
    Delete UserFATAL_DELETE_ERRORNON_FATAL_DELETE_ERROR
    User ExistsFATAL_QUERY_ERRORNON_FATAL_QUERY_ERROR
    Query WhiteboardFATAL_QUERY_ERRORNON_FATAL_QUERY_ERROR
    Create ObjectFATAL_CREATE_ERRORNON_FATAL_CREATE_ERROR
    Delete ObjectFATAL_DELETE_ERRORNON_FATAL_DELETE_ERROR
    Move ObjectFATAL_UPDATE_ERROROPERATION_SUCCESSFUL (1)
    Object ExistsFATAL_QUERY_ERRORNON_FATAL_QUERY_ERROR
    Add PropertyFATAL_UPDATE_ERRORNON_FATAL_UPDATE_ERROR
    Update PropertyFATAL_UPDATE_ERRORNON_FATAL_UPDATE_ERROR
    Delete PropertyFATAL_DELETE_ERRORNON_FATAL_DELETE_ERROR
    Context QueryFATAL_QUERY_ERRORNON_FATAL_QUERY_ERROR
    Query By IDFATAL_QUERY_ERRORNON_FATAL_QUERY_ERROR
    Workspace QueryFATAL_QUERY_ERRORNON_FATAL_QUERY_ERROR
    Property Def QueryFATAL_QUERY_ERRORNON_FATAL_QUERY_ERROR
    (1)The only non-fatal error that can occur in the move object operation is after the changes have been successfully committed, so the non-fatal error is a successful operation.
    Note:The "Update User" and "Query User" methods have not been programmed yet because of anticipated changes to make the additional metadata about users more flexible. However, the error status settings for these methods will be the same as the other update and query methods respectively.

    LEAD Vocabulary:
    The LEAD Metadata Schema (LMS) contains elements for tracking keywords used to describe the data products. Although the schema allows for four types of keywords: theme, place, stratum, and temporal, mostly the metadata contains theme keywords. For data products available in the LEAD portal from Unidata, the CF-1.0 vocabulary has been used to describe the data products. These are included in the metadata as theme keywords.
    Each keyword has a thesaurus element and one or more keywords. The thesaurus element identifies the source of the keyword's definition (such as CF-1.0 for the keywords from that vocabulary). In addition to the CF-1.0 vocabulary, we have defined additional LEAD-specific vocabularies. Following are the thesaurus element values we use in LEAD:

    CF-1.0These are terms from the CF-1.0 controlled vocabulary.
    leadproject.orgThis is used to identify the cross-walk version for files from UNIDATA and to identify the version of the LEAD minimal metadata utility used. This also is used with the value "LEAD" to provide a required default theme keyword.
    DatasetTypes.lead.orgWhen data files are downloaded from the Data Catalog in the LEAD Portal, this identifies the type of data file (e.g., NAM versus ADAS).
    NAMELISTThis is used for namelist files to identify the type and version of the namelist (e.g., WRF versus Terrain).
    VisTools.lead.orgThis is used to identify viewable files. The only current theme key value for this is IDV.

    Examples:
    Following are some small test programs that provide an example of using the catalog service. In the programs for adding objects (e.g., experiments or files), as well as the program for adding properties to an existing object, the XML for the LEAD Schema valid metadata is provided as a file. This is because for test purposes, we need to populate an XML bean. in an actual program using the catalog, other code would have already generated the XML bean with the LEAD metadata. All of these tests are also included in this jar file. All of the programs are in the package edu.indiana.dde.catalog.catalogtester. For each program, if run from the command line, including only -help as a parameter will show the usage.
    These tests all require the client jar (catalog-client-1.0.0.jar) listed above and all of the jars in the Axis2 lib folder. You will also need to swap out the xbean-2.2.0.jar file from that lib folder and replace it with the xbean.jar file from the current XML Beans 2.3.0 installation.
    All of the necessary Axis2 jars are in this tarball.
    The additional LEAD schema and catalog files are in this tarball.

    NOTE: Examples are designed to work with the current version and may not work with earlier versions.

    Metadata Catalog Types Jar Version 1.2.6 November 12, 2009
    XMC Cat Schemas and Jars
    xmccat_types_metadata.xsd
    xmccat_status.xsd
    xmccat-types-metadata-1.2.6.jar

    Client Jars:
    xmccat-client-1.2.6.jar
    xmccat-client-xbeans-packaged-1.2.6.jar

    LEAD-Specific Jar
    lead-xmccat-domain-metadata-1.2.1.jar

    Changes in This Version:

    Changes in this version are mainly to put XMC Cat into the OGCE incubator, but there was a change in the query result format (used for all XMC Cat queries) that adds two additional optional boolean elements:
    1) showCreateDate
    2) showModifyDate
    If these elements are set to true, then the query response for each entity will contain attributes named creationDate and modificationDate respectively with the date value as a long (number of millisenconds similar to a Java Date or Calendar instance).

    Metadata Catalog Types Jar Version 1.2.4 July 24, 2009
    XMC Cat Schemas and Jars     Javadocs: online tarball
    xmccat_types_metadata.xsd
    xmccat_status.xsd
    xmccat-types-metadata-1.2.4.jar

    LEAD-Specific Domain Schema and Jar
    The domain-specific schema jar for LEAD has not changed since version 1.2.0 (available here), but version 1.8.1 of the LEAD schema XML Bean jar should be used (available here).

    Client Jars:
    xmccat-client-1.2.4.jar
    xmccat-client-xbeans-packaged-1.2.4.jar

    Changes in This Version:

    Most of the changes in this version were on the server side and the existing version 1.2.0 client jars would continue to work except for the two new operations (that were not in version 1.2.0). The two new operations are:

    Metadata Catalog Types Jar Version 1.2.0 January 20, 2009
    XMC Cat Schemas and Jars     Javadocs: online tarball
    xmccat_types_metadata.xsd
    xmccat_status.xsd
    xmccat-types-metadata-1.2.0.jar

    LEAD-Specific Domain Schema and Jar     Javadocs: online tarball
    lead-xmccat-domain-metadata.xsd
    lead-xmccat-domain-metadata-1.2.0.jar

    Client Jars:
    xmccat-client-1.2.0.jar
    xmccat-client-xbeans-packaged-1.2.0.jar

    Changes in This Version:

    Executive Summary: If you are using the client API, replace the types jar (mylead-catalog-types-1.0.15.jar) with the types and domain-specific jars (xmccat-types-metadata-1.2.0.jar and lead-xmccat-domain-metadata-1.2.0.jar). Then, if you use the * to import all of the classes in the types jar, just add the following import for the domain-specific jar:
    import edu.indiana.dde.metadata.catalog.domain.*;

    If instead you import specific classes, look at the list in the 4th bullet point below and change the package name of the import to the extent you use those classes
    Use the new client jars listed above and you are all done.

    More Details About These Changes:

    Metadata Catalog Types Jar Version 1.0.15 July 17, 2008 ** Beta - Development **
    mylead-catalog-types-1.0.15.jar
    catalog_types.xsd
    catalog_status.xsd

    catalog-client-1.0.15.jar
    catalog-client-XBeans-packaged-1.0.15.jar

    Please Note: This change was only implemented on the development server as of 2008-07-17. It will be added to the production server after the weather camp completes.

    Changes in This Version:

    Metadata Catalog Types Jar Version 1.0.10 June 06, 2008
    mylead-catalog-types-1.0.10.jar
    catalog-client-1.0.3.jar
    catalog-client-XBeans-packaged-1.0.3.jar

    Metadata Catalog Types Jar Version 1.0.8 May 14, 2008 ** Beta **
    mylead-catalog-types-1.0.8.jar    Javadocs:   online   download
    catalog-client-1.0.0.jar
    XBeans-packaged.jar
    catalog.wsdl
    catalog_types.xsd
    catalog_status.xsd
    domain_properties.xsd

    Changes in This Version:

    Metadata Catalog Types Jar Version 1.0.7 April 20, 2008 ** Beta **
    mylead-catalog-types-1.0.7.jar    Javadocs:   download
    catalog-client-1.0.0.jar
    XBeans-packaged.jar
    catalog.wsdl
    catalog_types.xsd
    catalog_status.xsd
    domain_properties.xsd

    Changes in This Version:

    Metadata Catalog Types Jar Version 1.0.4 April 15, 2008 ** Beta **
    mylead-catalog-types-1.0.4.jar    Javadocs:   download
    catalog-client-1.0.0.jar
    XBeans-packaged.jar
    catalog.wsdl
    catalog_types.xsd
    catalog_status.xsd
    domain_properties.xsd

    Changes in This version:
    Global element declarations were added for three globally declared types. Whithin the schema elements based on these types are by reference (ref) to the global elements instead of the types.

    Metadata Catalog Types Jar Version 1.0.3 April 07, 2008 ** Beta **
    mylead-catalog-types-1.0.3.jar    Javadocs: download

    Changes in This Version:

    Metadata Catalog Types Jar Version 1.0.1 March 13, 2008 ** Alpha **
    mylead-catalog-types-1.0.1.jar    Javadocs: online - see version 1.0.3  download
    catalog.wsdl
    catalog_types.xsd
    catalog_status.xsd
    domain_properties.xsd

    Changes from version 1.0 to version 1.0.1:
    The package name used for the java classes from the catalog schema namespace:
    http://www.cs.indiana.edu/dde/namespaces/2008/02/catalog/types
    now use the package name:
    edu.indiana.dde.metadata.catalog.types
    This prevents the need for updating all of the imports when there is a change in the schema jar.

    Changes:
    In the prior version, the WSDL consisted of 3 files (plus the LEAD Metadata Schema). In this version the schema types (types section of the catalog.wsdl) is broken out as a separate schema and the mylead-catalog-types-1.0.jar is compiled from that schema as well as the catalog_status.xsd and domain_properties.xsd that are included in the catalog_types.xsd.

    There are also some minor fixes to the schema.

    A new version of the client and examples that use this types jar will be posted soon.

    Metadata Catalog WSDL and Client Jars Version 0.0.1 February 11, 2008 ** Pre-Alpha **
    Catalog-client-0.0.1.jar
    Catalog-XBeans-packaged-0.0.1.jar

    catalog.wsdl
    catalog_status.xsd
    domain_properties.xsd

    ** THIS VERSION IS PRE-ALPHA **

    Requires:

    Description:
    The WSDL consists of three files: catalog.wsdl, catalog_status.xsd, and domain_properties.xsd. The WSDL file defines the operations the catalog will perform. The catalog_status is the schema for the portion of the response that includes the status of the operation. the domain_properties.xsd schema file is the domain specific (LEAD) part of the schema. This is separate so later it can be swapped out for other domains without changing the other two files.

    Expected Further Changes:
    The catalog_status.xsd will change as far as some of the catalogStatusType enums that indicate the status returned - these are somewhat similar to the ReturnType in myLEAD but more extensive. The domain_properties.xsd will change as the list of properties (formerly attributes) that can be deleted is added to the schema.

    Documentation
    The link below is to the javadocs for the Client jar and the types used in the Catalog methods.
    Client Javadocs
    WSDL Types Javadocs

    Example Program
    Coming Soon ....