code: public static function implementProperty(
          XSDMap $XSDMap,
          ClassTemplate $classTemplate,
          \SimpleXMLElement $propertyElement
      ) {
          switch (strtolower($propertyElement->getName())) {
              case ElementTypeEnum::ATTRIBUTE:
                  self::implementAttributeProperty($XSDMap, $classTemplate, $propertyElement);
                  break;
              case ElementTypeEnum::CHOICE:
                  self::implementChoiceProperty($XSDMap, $classTemplate, $propertyElement);
                  break;
              case ElementTypeEnum::SEQUENCE:
                  self::implementPropertySequence($XSDMap, $classTemplate, $propertyElement);
                  break;
              case ElementTypeEnum::UNION:
                  self::implementUnionProperty($XSDMap, $classTemplate, $propertyElement);
                  break;
              case ElementTypeEnum::ENUMERATION:
                  self::implementEnumerationProperty($XSDMap, $classTemplate, $propertyElement);
                  break;
          }
      }
docs: TODO: I don't like how this is utilized, really.  Should think of a better way to do it.
  
  @param XSDMap $XSDMap
  @param ClassTemplate $classTemplate
  @param \SimpleXMLElement $propertyElement