loadXML(file_get_contents(GeneralUtility::getFileAbsFileName('EXT:backend/Resources/Private/tsref.xml'))); return new JsonResponse($this->getTypes($xmlDoc)); } /** * Get types from XML */ protected function getTypes(\DOMDocument $xmlDoc): array { $types = $xmlDoc->getElementsByTagName('type'); $typeArr = []; foreach ($types as $type) { $typeId = $type->getAttribute('id'); $typeName = $type->getAttribute('name'); if (!$typeName) { $typeName = $typeId; } $properties = $type->getElementsByTagName('property'); $propArr = []; foreach ($properties as $property) { $p = []; $p['name'] = $property->getAttribute('name'); $p['type'] = $property->getAttribute('type'); $propArr[$property->getAttribute('name')] = $p; } $typeArr[$typeId] = []; $typeArr[$typeId]['properties'] = $propArr; $typeArr[$typeId]['name'] = $typeName; if ($type->hasAttribute('extends')) { $typeArr[$typeId]['extends'] = $type->getAttribute('extends'); } } return $typeArr; } }