private function &visitElementDef(Schema $schema, ElementDef $element)
{
if (!isset($this->classes[spl_object_hash($element)])) {
$className = $this->findPHPNamespace($element) . "\\" . $this->getNamingStrategy()->getItemName($element);
$class = array();
$data = array();
$ns = $className;
$class[$ns] =& $data;
$data["xml_root_name"] = $element->getName();
if ($schema->getTargetNamespace()) {
$data["xml_root_namespace"] = $schema->getTargetNamespace();
}
$this->classes[spl_object_hash($element)]["class"] =& $class;
if (!$element->getType()->getName()) {
$this->visitTypeBase($class, $data, $element->getType(), $element->getName());
} else {
$this->handleClassExtension($class, $data, $element->getType(), $element->getName());
}
}
return $this->classes[spl_object_hash($element)]["class"];
}