19 declare(strict_types=1);
58 $root_name = $root->getDefinition()->name();
59 $xml = new \SimpleXMLElement(
'<' . $root_name .
'></' . $root_name .
'>');
76 if (!$this->copyright_handler->isCopyrightSelectionActive()) {
80 $path_to_copyright = $this->path_factory->custom()
81 ->withNextStep(
'rights')
82 ->withNextStep(
'description')
83 ->withNextStep(
'string')
86 return $this->manipulator->prepareCreateOrUpdate($set, $path_to_copyright,
'');
96 throw new \ilMDXMLException(
'LOM set is nested too deep.');
99 if ($tag?->isExportedAsLangString()) {
106 $sub_name = $sub_element->getDefinition()->name();
107 $sub_value = $this->
getDataValue($sub_element->getData(), $sub_tag);
109 if ($sub_tag?->isOmitted()) {
113 if ($sub_tag?->isExportedAsAttribute()) {
114 $xml->addAttribute($sub_name, (
string) $sub_value);
118 $child_xml = $xml->addChild($sub_name);
119 $child_xml[0] = $sub_value;
128 $string_element =
null;
129 $language_element =
null;
131 if ($sub_element->getDefinition()->name() ===
'string') {
132 $string_element = $sub_element;
133 } elseif ($sub_element->getDefinition()->name() ===
'language') {
134 $language_element = $sub_element;
139 if (!is_null($string_element)) {
141 $string_element->getData(),
145 $string_xml = $xml->addChild(
'string');
146 $xml->string = $string_value;
148 if (is_null($language_element)) {
152 $language_element->getData(),
155 $string_xml->addAttribute(
165 if ($tag?->isTranslatedAsCopyright()) {
166 return $this->copyright_handler->copyrightForExport($data->
value());
169 switch ($data->
type()) {
174 $value = $data->
value();
175 if ($value ===
'xx') {
181 case Type::VOCAB_SOURCE:
182 case Type::VOCAB_VALUE:
184 case Type::NON_NEG_INT:
187 return $data->
value();
193 return $this->dictionary->tagForElement($element, $this->
currentVersion());
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null