<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:complexType name="head">
    <xs:attribute name="error" type="xs:string" use="required"/>
    <xs:attribute name="passwd" type="xs:string" use="required"/>
    <xs:attribute name="req_host" type="xs:string" use="required"/>
    <xs:attribute name="status" type="xs:string" use="required"/>
    <xs:attribute name="task_id" type="xs:string" use="required"/>
    <xs:attribute name="task_name" type="xs:string" use="required"/>
    <xs:attribute name="task_type" type="xs:string" use="required"/>
    <xs:attribute name="userid" type="xs:string" use="required"/>
    <xs:attribute name="req_app" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="ext_attr">
    <xs:attribute name="rfc" type="xs:string"/>
    <xs:attribute name="CI" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="host">
    <xs:sequence minOccurs="0" maxOccurs="unbounded">
      <xs:element name="ext_attr" type="ext_attr"/>
    </xs:sequence>
    <xs:attribute name="comment" type="xs:string" use="required"/>
    <xs:attribute name="host_domain" type="xs:string" use="required"/>
    <xs:attribute name="host_name" type="xs:string" use="required"/>
    <xs:attribute name="record_type" type="xs:string" use="required"/>
    <xs:attribute name="subnet_addr" type="xs:string"/>
    <xs:attribute name="disable" type="xs:string"/>
    <xs:attribute name="host_fqdn" type="xs:string"/>
    <xs:attribute name="ib_status" type="xs:string"/>
    <xs:attribute name="ib_status_msg" type="xs:string"/>
    <xs:attribute name="new_ip_addr" type="xs:string"/>
    <xs:attribute name="request_id" type="xs:string"/>
    <xs:attribute name="ttl" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="request">
    <xs:sequence minOccurs="0" maxOccurs="1">
      <xs:choice>
        <xs:element name="host" type="host"/>
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element name="custom" type="custom"/>
        </xs:sequence>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="action_type" type="xs:string"/>
    <xs:attribute name="auth_agent" type="xs:string" use="required"/>
    <xs:attribute name="task_module" type="xs:string" use="required"/>
    <xs:attribute name="task_sub" type="xs:string" use="required"/>
    <xs:attribute name="user_level" type="xs:string" use="required"/>
    <xs:attribute name="client_type" type="xs:string"/>
    <xs:attribute name="service_class" type="xs:string"/>
    <xs:attribute name="service_task" type="xs:string"/>
    <xs:attribute name="service_type" type="xs:string"/>
    <xs:attribute name="action" type="xs:string"/>
    <xs:attribute name="command" type="xs:string"/>
    <xs:attribute name="detail" type="xs:string"/>
    <xs:attribute name="servername" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="response">
    <xs:choice>
      <xs:element name="host" type="host"/>
      <xs:sequence minOccurs="0" maxOccurs="unbounded">
        <xs:element name="info" type="xs:string"/>
      </xs:sequence>
      <xs:sequence>
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element name="alias" type="alias"/>
        </xs:sequence>
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element name="custom" type="custom"/>
        </xs:sequence>
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element name="log" type="xs:string"/>
        </xs:sequence>
      </xs:sequence>
    </xs:choice>
    <xs:attribute name="auth_agent" type="xs:string"/>
    <xs:attribute name="client_type" type="xs:string"/>
    <xs:attribute name="service_class" type="xs:string"/>
    <xs:attribute name="service_task" type="xs:string"/>
    <xs:attribute name="service_type" type="xs:string"/>
    <xs:attribute name="task_module" type="xs:string"/>
    <xs:attribute name="task_sub" type="xs:string"/>
    <xs:attribute name="user_level" type="xs:string"/>
    <xs:attribute name="servername" type="xs:string"/>
  </xs:complexType>
  <xs:element name="task" type="task"/>
  <xs:complexType name="task">
    <xs:sequence>
      <xs:element name="head" type="head"/>
      <xs:element name="request" type="request"/>
      <xs:element name="response" type="response"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="custom">
    <xs:attribute name="name" type="xs:string" use="required"/>
    <xs:attribute name="type" type="xs:string" use="required"/>
    <xs:attribute name="value" type="xs:string" use="required"/>
  </xs:complexType>
  <xs:complexType name="alias">
    <xs:attribute name="name" type="xs:string" use="required"/>
    <xs:attribute name="type" type="xs:string" use="required"/>
    <xs:attribute name="value" type="xs:string" use="required"/>
  </xs:complexType>
</xs:schema>
