Exemple #1
0
        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();
        }
Exemple #2
0
        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
            });
        }