protected function createElement($name, $value = null)
{
// The DOMElement instance must be different for every node,
// otherwise only one element is attached to the DOM.
$id = null;
$uri = null;
// The node name can contain the namespace id prefix.
// Example: xsl:template
$colon_pos = \strpos($name, ':');
if ($colon_pos !== false) {
$id = \substr($name, 0, $colon_pos);
$name = \substr($name, $colon_pos + 1);
}
if ($id !== null) {
$ns = $this->namespaces[$id];
$uri = $ns->uri();
if ($ns->mode() === FluidNamespace::MODE_EXPLICIT) {
$name = "{$id}:{$name}";
}
}
// Algorithm 1:
$el = new \DOMElement($name, $value, $uri);
// Algorithm 2:
// $el = $dom->createElement($name, $value);
return $el;
}