public void serialize(
      final javax.xml.namespace.QName parentQName,
      final org.apache.axiom.om.OMFactory factory,
      org.apache.axis2.databinding.utils.writer.MTOMAwareXMLStreamWriter xmlWriter,
      boolean serializeType)
      throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException {

    java.lang.String prefix = null;
    java.lang.String namespace = null;

    prefix = parentQName.getPrefix();
    namespace = parentQName.getNamespaceURI();

    if ((namespace != null) && (namespace.trim().length() > 0)) {
      java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
      if (writerPrefix != null) {
        xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
      } else {
        if (prefix == null) {
          prefix = generatePrefix(namespace);
        }

        xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
        xmlWriter.writeNamespace(prefix, namespace);
        xmlWriter.setPrefix(prefix, namespace);
      }
    } else {
      xmlWriter.writeStartElement(parentQName.getLocalPart());
    }

    if (serializeType) {

      java.lang.String namespacePrefix =
          registerPrefix(xmlWriter, "http://ec2.amazonaws.com/doc/2012-08-15/");
      if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)) {
        writeAttribute(
            "xsi",
            "http://www.w3.org/2001/XMLSchema-instance",
            "type",
            namespacePrefix + ":DescribeAvailabilityZonesType",
            xmlWriter);
      } else {
        writeAttribute(
            "xsi",
            "http://www.w3.org/2001/XMLSchema-instance",
            "type",
            "DescribeAvailabilityZonesType",
            xmlWriter);
      }
    }

    if (localAvailabilityZoneSet == null) {
      throw new org.apache.axis2.databinding.ADBException("availabilityZoneSet cannot be null!!");
    }
    localAvailabilityZoneSet.serialize(
        new javax.xml.namespace.QName(
            "http://ec2.amazonaws.com/doc/2012-08-15/", "availabilityZoneSet"),
        factory,
        xmlWriter);
    if (localFilterSetTracker) {
      if (localFilterSet == null) {
        throw new org.apache.axis2.databinding.ADBException("filterSet cannot be null!!");
      }
      localFilterSet.serialize(
          new javax.xml.namespace.QName("http://ec2.amazonaws.com/doc/2012-08-15/", "filterSet"),
          factory,
          xmlWriter);
    }
    xmlWriter.writeEndElement();
  }
  public void serialize(
      final javax.xml.namespace.QName parentQName,
      final org.apache.axiom.om.OMFactory factory,
      org.apache.axis2.databinding.utils.writer.MTOMAwareXMLStreamWriter xmlWriter,
      boolean serializeType)
      throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException {

    java.lang.String prefix = null;
    java.lang.String namespace = null;

    prefix = parentQName.getPrefix();
    namespace = parentQName.getNamespaceURI();

    if ((namespace != null) && (namespace.trim().length() > 0)) {
      java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
      if (writerPrefix != null) {
        xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
      } else {
        if (prefix == null) {
          prefix = generatePrefix(namespace);
        }

        xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
        xmlWriter.writeNamespace(prefix, namespace);
        xmlWriter.setPrefix(prefix, namespace);
      }
    } else {
      xmlWriter.writeStartElement(parentQName.getLocalPart());
    }

    if (serializeType) {

      java.lang.String namespacePrefix =
          registerPrefix(xmlWriter, "http://ec2.amazonaws.com/doc/2012-08-15/");
      if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)) {
        writeAttribute(
            "xsi",
            "http://www.w3.org/2001/XMLSchema-instance",
            "type",
            namespacePrefix + ":DescribeInstanceStatusType",
            xmlWriter);
      } else {
        writeAttribute(
            "xsi",
            "http://www.w3.org/2001/XMLSchema-instance",
            "type",
            "DescribeInstanceStatusType",
            xmlWriter);
      }
    }

    if (localInstancesSet == null) {
      throw new org.apache.axis2.databinding.ADBException("instancesSet cannot be null!!");
    }
    localInstancesSet.serialize(
        new javax.xml.namespace.QName("http://ec2.amazonaws.com/doc/2012-08-15/", "instancesSet"),
        factory,
        xmlWriter);
    if (localFilterSetTracker) {
      if (localFilterSet == null) {
        throw new org.apache.axis2.databinding.ADBException("filterSet cannot be null!!");
      }
      localFilterSet.serialize(
          new javax.xml.namespace.QName("http://ec2.amazonaws.com/doc/2012-08-15/", "filterSet"),
          factory,
          xmlWriter);
    }
    if (localNextTokenTracker) {
      namespace = "http://ec2.amazonaws.com/doc/2012-08-15/";
      if (!namespace.equals("")) {
        prefix = xmlWriter.getPrefix(namespace);

        if (prefix == null) {
          prefix = generatePrefix(namespace);

          xmlWriter.writeStartElement(prefix, "nextToken", namespace);
          xmlWriter.writeNamespace(prefix, namespace);
          xmlWriter.setPrefix(prefix, namespace);

        } else {
          xmlWriter.writeStartElement(namespace, "nextToken");
        }

      } else {
        xmlWriter.writeStartElement("nextToken");
      }

      if (localNextToken == null) {
        // write the nil attribute

        throw new org.apache.axis2.databinding.ADBException("nextToken cannot be null!!");

      } else {

        xmlWriter.writeCharacters(localNextToken);
      }

      xmlWriter.writeEndElement();
    }
    if (localMaxResultsTracker) {
      namespace = "http://ec2.amazonaws.com/doc/2012-08-15/";
      if (!namespace.equals("")) {
        prefix = xmlWriter.getPrefix(namespace);

        if (prefix == null) {
          prefix = generatePrefix(namespace);

          xmlWriter.writeStartElement(prefix, "maxResults", namespace);
          xmlWriter.writeNamespace(prefix, namespace);
          xmlWriter.setPrefix(prefix, namespace);

        } else {
          xmlWriter.writeStartElement(namespace, "maxResults");
        }

      } else {
        xmlWriter.writeStartElement("maxResults");
      }

      if (localMaxResults == java.lang.Integer.MIN_VALUE) {

        throw new org.apache.axis2.databinding.ADBException("maxResults cannot be null!!");

      } else {
        xmlWriter.writeCharacters(
            org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localMaxResults));
      }

      xmlWriter.writeEndElement();
    }
    if (localIncludeAllInstancesTracker) {
      namespace = "http://ec2.amazonaws.com/doc/2012-08-15/";
      if (!namespace.equals("")) {
        prefix = xmlWriter.getPrefix(namespace);

        if (prefix == null) {
          prefix = generatePrefix(namespace);

          xmlWriter.writeStartElement(prefix, "includeAllInstances", namespace);
          xmlWriter.writeNamespace(prefix, namespace);
          xmlWriter.setPrefix(prefix, namespace);

        } else {
          xmlWriter.writeStartElement(namespace, "includeAllInstances");
        }

      } else {
        xmlWriter.writeStartElement("includeAllInstances");
      }

      if (false) {

        throw new org.apache.axis2.databinding.ADBException("includeAllInstances cannot be null!!");

      } else {
        xmlWriter.writeCharacters(
            org.apache.axis2.databinding.utils.ConverterUtil.convertToString(
                localIncludeAllInstances));
      }

      xmlWriter.writeEndElement();
    }
    xmlWriter.writeEndElement();
  }