public MetacardInfo(Element element) throws InvalidDDMSException {
try {
setXOMElement(element, false);
DDMSVersion version = getDDMSVersion();
_identifiers = new ArrayList<Identifier>();
Elements components = element.getChildElements(Identifier.getName(version), getNamespace());
for (int i = 0; i < components.size(); i++) {
_identifiers.add(new Identifier(components.get(i)));
}
Element component = element.getFirstChildElement(Dates.getName(version), getNamespace());
if (component != null)
_dates = new Dates(component);
components = element.getChildElements(Creator.getName(version), getNamespace());
for (int i = 0; i < components.size(); i++)
_creators.add(new Creator(components.get(i)));
components = element.getChildElements(Publisher.getName(version), getNamespace());
for (int i = 0; i < components.size(); i++)
_publishers.add(new Publisher(components.get(i)));
components = element.getChildElements(Contributor.getName(version), getNamespace());
for (int i = 0; i < components.size(); i++)
_contributors.add(new Contributor(components.get(i)));
components = element.getChildElements(PointOfContact.getName(version), getNamespace());
for (int i = 0; i < components.size(); i++)
_pointOfContacts.add(new PointOfContact(components.get(i)));
component = element.getFirstChildElement(Description.getName(version), getNamespace());
if (component != null)
_description = new Description(component);
components = element.getChildElements(ProcessingInfo.getName(version), getNamespace());
for (int i = 0; i < components.size(); i++)
_processingInfos.add(new ProcessingInfo(components.get(i)));
component = element.getFirstChildElement(RevisionRecall.getName(getDDMSVersion()), getNamespace());
if (component != null)
_revisionRecall = new RevisionRecall(component);
component = element.getFirstChildElement(RecordsManagementInfo.getName(getDDMSVersion()), getNamespace());
if (component != null)