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 |
---|---|
The ddms:resource element is a "metacard". The metacard is a full-fledged, top-level element containing all of the details about a described asset. |
The ddms:resource element is an "assertion" in the IC's Trusted Data Object (TDO). The assertion by itself is insufficient for describing an asset, and
the entire TDO record is needed to fully understand what is being described. |
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 ddms:postalAddress defintion are used for geolocations. |
Geolocations are handled with the Time-Space-Position Information specification.
ddms:boundingBox , ddms:verticalExtent , gml:Point , and gml:Polygon are replaced by comparable TSPI shapes. |
Table 1. Major Differences in DDMS 5.0
These changes have impacted DDMSence 2.2.0 in the following ways:
DDMSReader
class works on both metacards and assertions. The DDMSReader
cannot interpret an entire Trusted Data Object -- you will need to extract
the ddms:resource
assertion 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.