private function navigate(Schema $schema, array &$visited)
{
if (isset($visited[spl_object_hash($schema)])) {
return;
}
$visited[spl_object_hash($schema)] = true;
foreach ($schema->getTypes() as $type) {
$this->visitType($type);
}
foreach ($schema->getElements() as $element) {
$this->visitElementDef($element);
}
foreach ($schema->getSchemas() as $schildSchema) {
if (!in_array($schildSchema->getTargetNamespace(), $this->baseSchemas, true)) {
$this->navigate($schildSchema, $visited);
}
}
}