19declare(strict_types=1);
28use ILIAS\MetaData\OERExposer\OAIPMH\DateHelper;
36 $xml = new \DomDocument(
'1.0',
'UTF-8');
37 $element = $xml->createElement(
41 $element->setAttribute(
'code',
$error->value);
42 $xml->appendChild($element);
47 string $repository_name,
49 \DateTimeImmutable $earliest_datestamp,
50 string $first_admin_email,
51 string ...$further_admin_emails
67 $this->getFormattedDate($earliest_datestamp)
78 array_unshift($further_admin_emails, $first_admin_email);
79 foreach ($further_admin_emails as $admin_email) {
91 $xml = new \DomDocument(
'1.0',
'UTF-8');
92 $element_xml = $xml->createElement(
96 $xml->appendChild($element_xml);
102 $xml = new \DomDocument(
'1.0',
'UTF-8');
104 $root = $xml->createElement(
'metadataFormat');
105 $xml->appendChild($root);
107 $prefix = $xml->createElement(
111 $root->appendChild($prefix);
113 $schema = $xml->createElement(
115 'http://www.openarchives.org/OAI/2.0/oai_dc.xsd'
117 $root->appendChild($schema);
121 'http://www.openarchives.org/OAI/2.0/oai_dc/'
130 \DateTimeImmutable $datestamp,
131 bool $deleted =
false
133 $xml = new \DomDocument(
'1.0',
'UTF-8');
135 $root = $xml->createElement(
'header');
137 $root->setAttribute(
'status',
'deleted');
139 $xml->appendChild($root);
141 $identifier = $xml->createElement(
145 $root->appendChild($identifier);
147 $datestamp = $xml->createElement(
149 $this->getFormattedDate($datestamp)
151 $root->appendChild($datestamp);
158 \DateTimeImmutable $datestamp,
159 \DOMDocument $metadata
161 $xml = new \DomDocument(
'1.0',
'UTF-8');
163 $root = $xml->createElement(
'record');
164 $xml->appendChild($root);
166 $header_xml = $this->writeRecordHeader($identifier, $datestamp);
167 $root->appendChild($xml->importNode($header_xml->documentElement,
true));
169 $metadata_xml = $xml->createElement(
'metadata');
170 $root->appendChild($metadata_xml);
171 $metadata_xml->appendChild($xml->importNode($metadata->documentElement,
true));
178 \DateTimeImmutable $datestamp
180 $xml = new \DomDocument(
'1.0',
'UTF-8');
182 $root = $xml->createElement(
'record');
183 $xml->appendChild($root);
185 $header_xml = $this->writeRecordHeader($identifier, $datestamp,
true);
186 $root->appendChild($xml->importNode($header_xml->documentElement,
true));
195 $xml = new \DomDocument(
'1.0',
'UTF-8');
197 $root = $xml->createElement(
'set');
198 $xml->appendChild($root);
200 $spec_xml = $xml->createElement(
'setSpec', $spec);
201 $root->appendChild($spec_xml);
203 $name_xml = $xml->createElement(
'setName', $name);
204 $root->appendChild($name_xml);
211 int $complete_list_size,
214 $xml = new \DomDocument(
'1.0',
'UTF-8');
215 $element = $xml->createElement(
219 $element->setAttribute(
'completeListSize', (
string) $complete_list_size);
220 $element->setAttribute(
'cursor', (
string) $cursor);
221 $xml->appendChild($element);
227 \DOMDocument ...$contents
229 $xml = new \DomDocument(
'1.0',
'UTF-8');
231 $root = $this->createRootElement($xml);
232 $xml->appendChild($root);
234 $date_xml = $this->createDateElement($xml);
235 $root->appendChild($date_xml);
236 $request_xml = $this->createRequestElement($xml, $request);
237 $root->appendChild($request_xml);
239 $verb_xml = $xml->createElement($request->
verb()->value);
240 $root->appendChild($verb_xml);
242 foreach ($contents as $content_xml) {
243 $verb_xml->appendChild(
244 $xml->importNode($content_xml->documentElement,
true)
253 \DOMDocument ...$errors
255 $xml = new \DomDocument(
'1.0',
'UTF-8');
257 $root = $this->createRootElement($xml);
258 $xml->appendChild($root);
260 $date_xml = $this->createDateElement($xml);
261 $root->appendChild($date_xml);
262 $request_xml = $this->createRequestElement($xml, $request);
263 $root->appendChild($request_xml);
265 foreach ($errors as $error_xml) {
267 $xml->importNode($error_xml->documentElement,
true)
276 $root = $xml->createElement(
'OAI-PMH');
279 'http://www.openarchives.org/OAI/2.0/'
283 'http://www.w3.org/2001/XMLSchema-instance'
286 'xsi:schemaLocation',
287 'http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd'
294 return $xml->createElement(
296 $this->getFormattedDateTime($this->getCurrentDateTime())
304 $request_xml = $xml->createElement(
306 (string) $request->baseURL()
309 $request_xml->setAttribute(
310 Argument::VERB->value,
311 $request->
verb()->value
315 $request_xml->setAttribute(
The scope of this class is split ilias-conform URI's into components.
if($err=$client->getError()) $namespace