/** * @param \SimpleXMLElement $sxe * @return null|ComplexClassTypesEnum */ public static function getComplexClassType(\SimpleXMLElement $sxe) { $name = XMLUtils::getObjectNameFromElement($sxe); if (false !== strpos($name, '.')) { return new ComplexClassTypesEnum(ComplexClassTypesEnum::COMPONENT); } $baseName = XMLUtils::getBaseFHIRElementNameFromExtension($sxe); if (null === $baseName) { return null; } $baseType = new BaseObjectTypeEnum($baseName); switch ((string) $baseType) { case BaseObjectTypeEnum::BACKBONE_ELEMENT: return new ComplexClassTypesEnum(ComplexClassTypesEnum::RESOURCE); default: return new ComplexClassTypesEnum((string) $baseType); } }