public function createWorkflowDefinition(WorkflowDefinitionContainer $parent, $name, $naming_behavior, $xml)
 {
     if (trim($name) == "") {
         throw new e\CreationErrorException(S_SPAN . c\M::EMPTY_BLOCK_NAME . E_SPAN);
     }
     if (trim($xml) == "") {
         throw new e\CreationErrorException(S_SPAN . c\M::EMPTY_XML . E_SPAN);
     }
     if (!c\NamingBehaviorValues::isNamingBehaviorValue($naming_behavior)) {
         throw new e\UnacceptableValueException(S_SPAN . "The naming behavior {$naming_behavior} is unacceptable. " . E_SPAN);
     }
     $asset = AssetTemplate::getWorkflowDefinition();
     $asset->workflowDefinition->name = $name;
     $asset->workflowDefinition->parentContainerPath = $parent->getPath();
     $asset->workflowDefinition->siteName = $parent->getSiteName();
     $asset->workflowDefinition->xml = $xml;
     $asset->workflowDefinition->namingBehavior = $naming_behavior;
     $asset->workflowDefinition->copy = true;
     return $this->createAsset($asset, WorkflowDefinition::TYPE, $this->getPath($parent, $name), $parent->getSiteName());
 }