19 declare(strict_types=1);
43 SchemaFolderInterface $schema_folder,
45 ParserFactoryInterface $parser_factory,
46 XSDFileFactoryInterface $xsd_file_factory
53 $this->subtype =
null;
54 $this->version =
null;
66 $schema_info = $this->schema_folder->getByVersionOrLatest(
71 return is_null($schema_info)
73 : $this->xsd_file_factory->handler()->withFileInfo($schema_info->getFile());
84 $schema_info = $this->schema_folder->getLatest(
88 return is_null($schema_info)
90 : $this->xsd_file_factory->handler()->withFileInfo($schema_info->getFile());
102 $schema_info = $this->schema_folder->getByVersion(
107 return !is_null($schema_info);
111 XMLFileNodeInfoInterface $xml_file_node_info
113 $type_str = $xml_file_node_info->getValueOfAttribute(
'Entity');
114 $types = str_contains($type_str,
'_')
115 ? explode(
'_', $type_str)
117 $version_str = $xml_file_node_info->hasAttribute(
'SchemaVersion')
118 ? $xml_file_node_info->getValueOfAttribute(
'SchemaVersion')
120 if ($version_str ===
'') {
122 ->withType($types[0])
123 ->withSubType($types[1])
127 ->withType($types[0])
128 ->withSubType($types[1])
129 ->withVersion($this->data_factory->version($version_str));
135 $clone = clone $this;
136 $clone->type =
$type;
143 $clone = clone $this;
151 $clone = clone $this;
161 return $this->
getVersion()->getMajor() .
".0.0";
getXSDFileHandlerByVersionOrLatest()
SchemaFolderInterface $schema_folder
getXSDFileHandlerLatest()
withVersion(Version $version)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
const ILIAS_VERSION_NUMERIC
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
withInformationOf(XMLFileNodeInfoInterface $xml_file_node_info)
XSDFileFactoryInterface $xsd_file_factory
withSubType(string $subtype)
ParserFactoryInterface $parser_factory
DataFactory $data_factory
doesXSDFileWithMatchingVersionExist()
A version number that consists of three numbers (major, minor, patch).
__construct(SchemaFolderInterface $schema_folder, DataFactory $data_factory, ParserFactoryInterface $parser_factory, XSDFileFactoryInterface $xsd_file_factory)