public static Metadata Decode(XElement metadata) { XElement root = metadata.Element(MlNamespaces.psNs + "dataset"); return(new Metadata() { Title = MlDecode.Element(root, MlNamespaces.dcNs + "title"), Creator = MlDecode.Element(root, MlNamespaces.dcNs + "creator"), Subject = MlDecode.Element(root, MlNamespaces.dcNs + "subject"), Description = MlDecode.Element(root, MlNamespaces.dcNs + "description"), Publisher = MlDecode.Element(root, MlNamespaces.dcNs + "publisher"), Contributor = MlDecode.Element(root, MlNamespaces.dcNs + "contributor"), Date = MlDecode.SafeDateTime(root.Element(MlNamespaces.dcNs + "date")), Type = MlDecode.Element(root, MlNamespaces.dcNs + "type"), Format = MlDecode.Element(root, MlNamespaces.dcNs + "format"), Identifier = MlDecode.Element(root, MlNamespaces.dcNs + "identifier"), Source = MlDecode.Element(root, MlNamespaces.dcNs + "source"), Language = MlDecode.Element(root, MlNamespaces.dcNs + "language"), Relation = MlDecode.Element(root, MlNamespaces.dcNs + "relation"), Coverage = MlDecode.Element(root, MlNamespaces.dcNs + "coverage"), Rights = MlDecode.Element(root, MlNamespaces.dcNs + "rights"), MdFormat = (byte)Enums.MetadataFormats.PanSimple }); //throw new NotImplementedException(); }
private static Metadata DecodeOne(XElement root) { if (root == null) { return(null); } return(new Metadata() { /* attribute - harvestDate */ AdditionalDateTime1 = MlDecode.SafeDateTime(root.Attribute("harvestDate")), /* attribute - altered */ AdditionalBool1 = new Func <bool>(() => { bool outVal; XAttribute xa = root.Attribute("altered"); return xa == null ? false : bool.TryParse(xa.Value, out outVal) ? outVal : false; })(), /* element - baseURL */ Source = MlDecode.Element(root, "baseURL"), Identifier = MlDecode.Element(root, "identifier"), /* element - datestamp */ Date = MlDecode.SafeDateTime(root.Element("datestamp")), /* element - metadataNamespace */ Format = MlDecode.Element(root, "metadataNamespace"), /* is harvest date in datetime format? */ AdditionalBool2 = new Func <bool>(() => { XAttribute xa = root.Attribute("harvestDate"); return xa == null ? false : Common.Helper.IsDateTimeFormat(xa.Value); })(), /* is datestamp in datetime format? */ AdditionalBool3 = new Func <bool>(() => { XElement xe = root.Element("datestamp"); return xe == null ? false : Common.Helper.IsDateTimeFormat(xe.Value); })(), MdFormat = (byte)Enums.MetadataFormats.Provenance }); }