private function types()
{
$ns = $this->builder->getNs();
$typesElement = $this->createElement('types');
$schemaElement = $this->createElementWithAttributes('xsd:schema', ['targetNamespace' => $ns, 'xmlns' => $ns]);
foreach ($this->builder->getMethods() as $method) {
$typesForParameters = $this->XMLStyle->generateTypes($this->DOMDocument, $method->getParameters(), $this->XMLSoapVersion);
$typesForReturn = $this->XMLStyle->generateTypes($this->DOMDocument, Arrays::toArray($method->getReturn()), $this->XMLSoapVersion);
$types = array_merge($typesForParameters, $typesForReturn);
foreach ($types as $type) {
$schemaElement->appendChild($type);
}
}
$typesElement->appendChild($schemaElement);
$this->definitionsRootNode->appendChild($typesElement);
return $this;
}