62 lines
1.8 KiB
Dart
62 lines
1.8 KiB
Dart
import '../../util/helpers.dart';
|
|
import 'package:xml/xml.dart';
|
|
|
|
class DublinCore {
|
|
final String title;
|
|
final String description;
|
|
final String creator;
|
|
final String subject;
|
|
final String publisher;
|
|
final String contributor;
|
|
final String date;
|
|
final String type;
|
|
final String format;
|
|
final String identifier;
|
|
final String source;
|
|
final String language;
|
|
final String relation;
|
|
final String coverage;
|
|
final String rights;
|
|
|
|
DublinCore({
|
|
this.title,
|
|
this.description,
|
|
this.creator,
|
|
this.subject,
|
|
this.publisher,
|
|
this.contributor,
|
|
this.date,
|
|
this.type,
|
|
this.format,
|
|
this.identifier,
|
|
this.source,
|
|
this.language,
|
|
this.relation,
|
|
this.coverage,
|
|
this.rights,
|
|
});
|
|
|
|
factory DublinCore.parse(XmlElement element) {
|
|
if (element == null) {
|
|
return null;
|
|
}
|
|
return DublinCore(
|
|
title: findElementOrNull(element, "dc:title")?.text,
|
|
description: findElementOrNull(element, "dc:description")?.text,
|
|
creator: findElementOrNull(element, "dc:creator")?.text,
|
|
subject: findElementOrNull(element, "dc:subject")?.text,
|
|
publisher: findElementOrNull(element, "dc:publisher")?.text,
|
|
contributor: findElementOrNull(element, "dc:contributor")?.text,
|
|
date: findElementOrNull(element, "dc:date")?.text,
|
|
type: findElementOrNull(element, "dc:type")?.text,
|
|
format: findElementOrNull(element, "dc:format")?.text,
|
|
identifier: findElementOrNull(element, "dc:identifier")?.text,
|
|
source: findElementOrNull(element, "dc:source")?.text,
|
|
language: findElementOrNull(element, "dc:language")?.text,
|
|
relation: findElementOrNull(element, "dc:relation")?.text,
|
|
coverage: findElementOrNull(element, "dc:coverage")?.text,
|
|
rights: findElementOrNull(element, "dc:rights")?.text,
|
|
);
|
|
}
|
|
}
|