Пример #1
0
 /**
  * @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);
     }
 }
Пример #2
0
 /**
  * @param XSDMap $XSDMap
  * @param \SimpleXMLElement $sxe
  * @param ClassTemplate $classTemplate
  */
 public static function determineParentClass(XSDMap $XSDMap, \SimpleXMLElement $sxe, ClassTemplate $classTemplate)
 {
     $fhirElementName = XMLUtils::getBaseFHIRElementNameFromExtension($sxe);
     if (null === $fhirElementName) {
         $fhirElementName = XMLUtils::getBaseFHIRElementNameFromRestriction($sxe);
     }
     if (null === $fhirElementName) {
         return;
     }
     if (0 === strpos($fhirElementName, 'xs')) {
         $fhirElementName = substr($fhirElementName, 3);
     }
     self::findParentElementXSDMapEntry($fhirElementName, $XSDMap, $classTemplate);
 }
Пример #3
0
 /**
  * @param XSDMap $XSDMap
  * @param ClassTemplate $classTemplate
  * @param \SimpleXMLElement $choice
  */
 public static function implementChoiceProperty(XSDMap $XSDMap, ClassTemplate $classTemplate, \SimpleXMLElement $choice)
 {
     $attributes = $choice->attributes();
     //        $minOccurs = (int)$attributes['minOccurs'];
     $maxOccurs = $attributes['maxOccurs'];
     $documentation = XMLUtils::getDocumentation($choice);
     foreach ($choice->xpath('xs:element') as $_element) {
         $propertyTemplate = self::buildProperty($XSDMap, $classTemplate, $_element, $documentation, $maxOccurs);
         if ($propertyTemplate) {
             $classTemplate->addProperty($propertyTemplate);
         }
     }
 }