protected function createValueFromInput($inputValue)
{
if (is_string($inputValue)) {
if (empty($inputValue)) {
$inputValue = Value::EMPTY_VALUE;
}
if ($this->inputNormalizer !== null && $this->inputNormalizer->accept($inputValue)) {
$inputValue = $this->inputNormalizer->normalize($inputValue);
}
$inputValue = $this->loadXMLString($inputValue);
}
if ($inputValue instanceof DOMDocument) {
if ($this->inputValidatorDispatcher !== null) {
$errors = $this->inputValidatorDispatcher->dispatch($inputValue);
if (!empty($errors)) {
throw new InvalidArgumentException('$inputValue', 'Validation of XML content failed: ' . implode("\n", $errors));
}
}
$inputValue = new Value($this->inputConverterDispatcher->dispatch($inputValue));
}
return $inputValue;
}