/**
*
* @param mixed $xml
* @return \Zend\Code\Generator\ClassGenerator[]
*/
protected function getPhpClasses($xml, array $types = array())
{
$creator = new PhpConverter(new ShortNamingStrategy());
$creator->addNamespace('', 'Example');
foreach ($types as $typeData) {
list($ns, $name, $type) = $typeData;
$creator->addAliasMapType($ns, $name, $type);
}
$generator = new ClassGenerator();
$reader = new SchemaReader();
if (!is_array($xml)) {
$xml = ['schema.xsd' => $xml];
}
$schemas = [];
foreach ($xml as $name => $str) {
$schemas[] = $reader->readString($str, $name);
}
$items = $creator->convert($schemas);
$classes = array();
foreach ($items as $k => $item) {
$codegen = new \Zend\Code\Generator\ClassGenerator();
if ($generator->generate($codegen, $item)) {
$classes[$k] = $codegen;
}
}
return $classes;
}