code: public void write(ComplexType type) throws ODataRenderException {
  
          LOG.debug("Writing type {} of type {}", type.getName(), type.getMetaType());
  
          try {
              xmlWriter.writeStartElement(COMPLEX_TYPE);
              xmlWriter.writeAttribute(NAME, type.getName());
              if (type.isAbstract()) {
                  xmlWriter.writeAttribute(ABSTRACT, "true");
              }
  
              visitProperties(entityDataModel, type, property -> {
                  try {
                      propertyWriter.write(property);
                  } catch (XMLStreamException e) {
                      throw new ODataRenderException("Error while writing property: " + property.getName(), e);
                  }
              });
  
              xmlWriter.writeEndElement();
          } catch (XMLStreamException e) {
              throw new ODataRenderException("Error while writing complex type: " + type.getName(), e);
          }
      }
docs: Write an {@code <ComplexType>} element for the given {@code ComplexType}.
  
  @param type The given complex type. It can not be {@code null}.
  @throws ODataRenderException if unable to render