The table below describes the major changes in DDMS 5.0. For additional details, refer to the Release Notes bundled with DDMS 5.0.
|DDMS 4.1||DDMS 5.0|
|A metacard has five core sets (Metacard Info, Security, Resource, Summary Content, and Format) and an Extensible Layer.||An assertion has four core sets (Metacard Info, Resource, Summary Content, and Format) and no Extensible Layer. Security information has moved to the Enterprise Data Header (EDH) of the TDO. Extensions would be modeled as standalone assertions in the TDO, separate from the DDMS discovery assertion.|
|Cardinality of DDMS components is enforced in the XML schema.||Cardinality of DDMS components have been removed from the XML schema, to allow the schema to be used in alternate contexts. The specification still identifies some components as Mandatory for discovery.|
|Some Mandatory string components were allowed to have a nonsensical value of an "empty string".||DDMS now requires all Mandatory string components to have a minimum length of 1.|
|A GML profile and a custom
||Geolocations are handled with the Time-Space-Position Information specification.
Table 1. Major Differences in DDMS 5.0
These changes have impacted DDMSence 2.2.0 in the following ways:
DDMSReaderclass works on both metacards and assertions. The
DDMSReadercannot interpret an entire Trusted Data Object -- you will need to extract the
ddms:resourceassertion before it can be loaded into DDMSence. Assertions created by DDMSence are incomplete on their own, and are intended for insertion into a TDO record.
BoundingGeometry.getPoints()has been renamed as
BoundingGeometry.getGmlPoints()to eliminate confusion between GML points and TSPI points.
BoundingGeometry.getPolygons()has been renamed as
BoundingGeometry.getGmlPolygons()to eliminate confusion between GML polygons and TSPI polygons.
DDMSReader(), now requires a specific DDMSVersion as a parameter. Each reader instance is tied to a single version of DDMS. You will need to create a separate DDMSReader for each version of DDMS XML file you intend to load. The sample applications have instructional code for this.