<?xml version="1.0" encoding="utf-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
             xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema"
             xmlns:tns="https://api.datario.cl/soap/v1"
             targetNamespace="https://api.datario.cl/soap/v1"
             name="Datario">
  <types>
    <xsd:schema targetNamespace="https://api.datario.cl/soap/v1" elementFormDefault="qualified">

      <xsd:element name="ObtenerFicha">
        <xsd:complexType><xsd:sequence>
          <xsd:element name="rut" type="xsd:string"/>
        </xsd:sequence></xsd:complexType>
      </xsd:element>
      <xsd:element name="ObtenerFichaResponse">
        <xsd:complexType><xsd:sequence>
          <xsd:element name="ficha" type="tns:Ficha"/>
        </xsd:sequence></xsd:complexType>
      </xsd:element>

      <xsd:element name="ObtenerActividades">
        <xsd:complexType><xsd:sequence>
          <xsd:element name="rut" type="xsd:string"/>
        </xsd:sequence></xsd:complexType>
      </xsd:element>
      <xsd:element name="ObtenerActividadesResponse">
        <xsd:complexType><xsd:sequence>
          <xsd:element name="ficha" type="tns:FichaActividades"/>
        </xsd:sequence></xsd:complexType>
      </xsd:element>

      <xsd:element name="ObtenerDomicilios">
        <xsd:complexType><xsd:sequence>
          <xsd:element name="rut" type="xsd:string"/>
        </xsd:sequence></xsd:complexType>
      </xsd:element>
      <xsd:element name="ObtenerDomiciliosResponse">
        <xsd:complexType><xsd:sequence>
          <xsd:element name="ficha" type="tns:FichaDomicilios"/>
        </xsd:sequence></xsd:complexType>
      </xsd:element>

      <xsd:element name="BuscarEmpresas">
        <xsd:complexType><xsd:sequence>
          <xsd:element name="razon_social" type="xsd:string" minOccurs="0"/>
          <xsd:element name="actividad" type="xsd:int" minOccurs="0"/>
          <xsd:element name="comuna" type="xsd:string" minOccurs="0"/>
          <xsd:element name="region" type="xsd:string" minOccurs="0"/>
          <xsd:element name="modo" type="xsd:string" minOccurs="0"/>
          <xsd:element name="limite" type="xsd:int" minOccurs="0"/>
          <xsd:element name="pagina" type="xsd:string" minOccurs="0"/>
          <!-- Los tres refinamientos por tamaño (0051), al FINAL y opcionales:
               un proxy generado con el WSDL anterior sigue mandando lo suyo. -->
          <xsd:element name="tramo_minimo" type="xsd:int" minOccurs="0"/>
          <xsd:element name="trabajadores_minimo" type="xsd:int" minOccurs="0"/>
          <xsd:element name="vigentes" type="xsd:boolean" minOccurs="0"/>
        </xsd:sequence></xsd:complexType>
      </xsd:element>
      <xsd:element name="BuscarEmpresasResponse">
        <xsd:complexType><xsd:sequence>
          <xsd:element name="pagina" type="tns:PaginaEmpresas"/>
        </xsd:sequence></xsd:complexType>
      </xsd:element>

      <!-- Sociedades y grupos (0052): dos operaciones más, sus tipos abajo. -->
      <xsd:element name="ObtenerSociedades">
        <xsd:complexType><xsd:sequence>
          <xsd:element name="rut" type="xsd:string"/>
        </xsd:sequence></xsd:complexType>
      </xsd:element>
      <xsd:element name="ObtenerSociedadesResponse">
        <xsd:complexType><xsd:sequence>
          <xsd:element name="sociedades" type="tns:Sociedades"/>
        </xsd:sequence></xsd:complexType>
      </xsd:element>
      <xsd:element name="ObtenerGrupos">
        <xsd:complexType><xsd:sequence>
          <xsd:element name="rut" type="xsd:string"/>
          <xsd:element name="saltos" type="xsd:int" minOccurs="0"/>
        </xsd:sequence></xsd:complexType>
      </xsd:element>
      <xsd:element name="ObtenerGruposResponse">
        <xsd:complexType><xsd:sequence>
          <xsd:element name="grupos" type="tns:Grupo"/>
        </xsd:sequence></xsd:complexType>
      </xsd:element>

      <!-- Cambios e historial (0047): el historial de un RUT y la enumeración
           de cambios entre dos días, cobrada por cambio devuelto. -->
      <xsd:element name="ObtenerHistorial">
        <xsd:complexType><xsd:sequence>
          <xsd:element name="rut" type="xsd:string"/>
        </xsd:sequence></xsd:complexType>
      </xsd:element>
      <xsd:element name="ObtenerHistorialResponse">
        <xsd:complexType><xsd:sequence>
          <xsd:element name="historial" type="tns:Historial"/>
        </xsd:sequence></xsd:complexType>
      </xsd:element>
      <xsd:element name="ListarCambios">
        <xsd:complexType><xsd:sequence>
          <xsd:element name="desde" type="xsd:date"/>
          <xsd:element name="hasta" type="xsd:date" minOccurs="0"/>
          <xsd:element name="tipo" type="xsd:string" minOccurs="0"/>
          <xsd:element name="aspecto" type="xsd:string" minOccurs="0"/>
          <xsd:element name="campo" type="xsd:string" minOccurs="0"/>
          <xsd:element name="comuna" type="xsd:string" minOccurs="0"/>
          <xsd:element name="region" type="xsd:string" minOccurs="0"/>
          <xsd:element name="actividad" type="xsd:int" minOccurs="0"/>
          <xsd:element name="limite" type="xsd:int" minOccurs="0"/>
          <xsd:element name="pagina" type="xsd:string" minOccurs="0"/>
        </xsd:sequence></xsd:complexType>
      </xsd:element>
      <xsd:element name="ListarCambiosResponse">
        <xsd:complexType><xsd:sequence>
          <xsd:element name="pagina" type="tns:PaginaCambios"/>
        </xsd:sequence></xsd:complexType>
      </xsd:element>
      <xsd:element name="LeerNovedades">
        <xsd:complexType><xsd:sequence>
          <xsd:element name="desde" type="xsd:date" minOccurs="0"/>
          <xsd:element name="lista" type="xsd:string" minOccurs="0"/>
          <xsd:element name="limite" type="xsd:int" minOccurs="0"/>
          <xsd:element name="pagina" type="xsd:string" minOccurs="0"/>
        </xsd:sequence></xsd:complexType>
      </xsd:element>
      <xsd:element name="LeerNovedadesResponse">
        <xsd:complexType><xsd:sequence>
          <xsd:element name="pagina" type="tns:PaginaNovedades"/>
        </xsd:sequence></xsd:complexType>
      </xsd:element>

      <xsd:complexType name="Ficha"><xsd:sequence>
        <xsd:element name="rut" type="xsd:string"/>
        <xsd:element name="rut_formateado" type="xsd:string"/>
        <xsd:element name="es_empresa" type="xsd:boolean"/>
        <xsd:element name="fuente" type="xsd:string"/>
        <xsd:element name="padron_publicado" type="xsd:dateTime"/>
        <xsd:element name="consultado_en" type="xsd:dateTime"/>
        <xsd:element name="razon_social" type="xsd:string"/>
        <xsd:element name="actividades" type="tns:Actividades"/>
        <xsd:element name="domicilios" type="tns:Domicilios"/>
        <xsd:element name="casilla_intercambio" type="xsd:string"/>
        <!-- La 0046, al FINAL y opcionales: es lo que deja seguir leyendo a un
             cliente generado con el WSDL anterior (el precedente que dejó
             escrito `sugerencia` en mensajes.py). Los tres strings se emiten
             siempre, aunque sea vacíos; las fechas se OMITEN cuando no hay,
             porque un `<termino_giro/>` vacío no valida contra xsd:date.

             TODA fecha lleva su tipo XSD y no `xsd:string`: `xsd:date` las de
             calendario y `xsd:dateTime` los dos instantes de arriba. Estos dos
             estuvieron en `xsd:string` con el argumento de no romper a quien ya
             generó su proxy, y ese argumento era falso: el producto está en
             pre-lanzamiento y no hay proxies generados. Lo que sí había era un
             WSDL que declaraba texto libre donde manda un instante — o sea, el
             tipo mintiéndole justamente a quien genera código desde él. El
             valor emitido no cambia: `2026-08-05T15:36:37+00:00` ya era un
             `xsd:dateTime` válido. -->
        <xsd:element name="tipo_sociedad" type="xsd:string" minOccurs="0"/>
        <xsd:element name="subtipo_sociedad" type="xsd:string" minOccurs="0"/>
        <xsd:element name="cod_subtipo" type="xsd:string" minOccurs="0"/>
        <xsd:element name="inicio_actividades" type="xsd:date" minOccurs="0"/>
        <xsd:element name="termino_giro" type="xsd:date" minOccurs="0"/>
        <!-- La 0051, después de la 0046 y por la misma regla: al FINAL y
             opcional. Se OMITE entero cuando la nómina anual no clasifica al
             RUT como empresa; adentro, cada sub-elemento opcional se omite por
             separado (un `<rubro/>` vacío no valida contra tns:Rubro). -->
        <xsd:element name="tamano" type="tns:Tamano" minOccurs="0"/>
        <!-- La 0052, después: el anexo de Grandes Contribuyentes, dos campos
             planos. `gran_contribuyente` va siempre; el grupo, si está. -->
        <xsd:element name="gran_contribuyente" type="xsd:boolean" minOccurs="0"/>
        <xsd:element name="grupo_economico" type="xsd:int" minOccurs="0"/>
        <!-- La 0059, al FINAL y opcional por la misma regla: el Boletín
             Concursal, OTRO organismo, con su fuente y su fecha ADENTRO. Se
             OMITE entero cuando no hay con qué contestar —la fuente no está, o
             el RUT no es de una empresa que el padrón nombra—; con la fuente y
             una empresa sin procedimientos va con la lista VACÍA, que es otra
             respuesta: el Boletín no le registra ninguno. -->
        <xsd:element name="concursal" type="tns:Concursal" minOccurs="0"/>
        <!-- Y cerrando la ficha, por la misma regla: `origenes`, de qué
             publicación sale cada dato, con su enlace público y su fecha. Cada
             origen lleva UNA de sus dos fechas —`publicado` los archivos del
             SII, `actualizado_al` el Boletín— y OMITE la otra: un
             `<publicado/>` vacío no valida contra xsd:dateTime. -->
        <xsd:element name="origenes" type="tns:Origenes" minOccurs="0"/>
      </xsd:sequence></xsd:complexType>

      <!-- Sociedades y grupos (0052). `publicado` es la marca de la
           composición de sociedades, no la de las nóminas. Las participaciones
           van en xsd:decimal, verbatim (hasta diez decimales, pueden pasar de
           100) y se OMITEN cuando el SII no las informa. -->
      <xsd:complexType name="Sociedades"><xsd:sequence>
        <xsd:element name="rut" type="xsd:string"/>
        <xsd:element name="rut_formateado" type="xsd:string"/>
        <xsd:element name="es_empresa" type="xsd:boolean"/>
        <xsd:element name="participaciones" type="tns:Participaciones"/>
        <xsd:element name="socios" type="tns:Participaciones"/>
        <xsd:element name="personas_naturales" type="tns:PersonasNaturales" minOccurs="0"/>
        <xsd:element name="fuente" type="xsd:string"/>
        <xsd:element name="publicado" type="xsd:dateTime"/>
        <xsd:element name="consultado_en" type="xsd:dateTime"/>
      </xsd:sequence></xsd:complexType>
      <xsd:complexType name="Participaciones"><xsd:sequence>
        <xsd:element name="participacion" type="tns:Participacion"
                     minOccurs="0" maxOccurs="unbounded"/>
      </xsd:sequence></xsd:complexType>
      <xsd:complexType name="Participacion"><xsd:sequence>
        <xsd:element name="rut" type="xsd:string"/>
        <xsd:element name="rut_formateado" type="xsd:string"/>
        <xsd:element name="razon_social" type="xsd:string"/>
        <xsd:element name="participacion" type="xsd:decimal" minOccurs="0"/>
      </xsd:sequence></xsd:complexType>
      <xsd:complexType name="PersonasNaturales"><xsd:sequence>
        <xsd:element name="participacion" type="xsd:decimal" minOccurs="0"/>
      </xsd:sequence></xsd:complexType>
      <xsd:complexType name="Grupo"><xsd:sequence>
        <xsd:element name="rut" type="xsd:string"/>
        <xsd:element name="rut_formateado" type="xsd:string"/>
        <xsd:element name="es_empresa" type="xsd:boolean"/>
        <xsd:element name="saltos" type="xsd:int"/>
        <xsd:element name="empresas" type="tns:EmpresasGrupo"/>
        <xsd:element name="participaciones" type="tns:AristasGrupo"/>
        <xsd:element name="truncado" type="xsd:boolean"/>
        <xsd:element name="fuente" type="xsd:string"/>
        <xsd:element name="publicado" type="xsd:dateTime"/>
        <xsd:element name="consultado_en" type="xsd:dateTime"/>
      </xsd:sequence></xsd:complexType>
      <xsd:complexType name="EmpresasGrupo"><xsd:sequence>
        <xsd:element name="empresa" type="tns:EmpresaGrupo" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:sequence></xsd:complexType>
      <xsd:complexType name="EmpresaGrupo"><xsd:sequence>
        <xsd:element name="rut" type="xsd:string"/>
        <xsd:element name="rut_formateado" type="xsd:string"/>
        <xsd:element name="razon_social" type="xsd:string"/>
        <xsd:element name="distancia" type="xsd:int"/>
      </xsd:sequence></xsd:complexType>
      <xsd:complexType name="AristasGrupo"><xsd:sequence>
        <xsd:element name="arista" type="tns:Arista" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:sequence></xsd:complexType>
      <xsd:complexType name="Arista"><xsd:sequence>
        <xsd:element name="socio" type="xsd:string"/>
        <xsd:element name="sociedad" type="xsd:string"/>
        <xsd:element name="participacion" type="xsd:decimal" minOccurs="0"/>
      </xsd:sequence></xsd:complexType>

      <!-- Cambios e historial (0047). `antes` y `despues` van como TEXTO con
           el JSON del aspecto adentro (un objeto o una lista, con la forma de
           la ficha): un xsd:choice tipado por aspecto espera su gatillo en el
           backlog. `campos` solo en un cambio de contribuyente. -->
      <xsd:complexType name="Historial"><xsd:sequence>
        <xsd:element name="rut" type="xsd:string"/>
        <xsd:element name="rut_formateado" type="xsd:string"/>
        <xsd:element name="es_empresa" type="xsd:boolean"/>
        <xsd:element name="cambios" type="tns:Cambios"/>
        <xsd:element name="historial_desde" type="xsd:dateTime" minOccurs="0"/>
        <xsd:element name="fuente" type="xsd:string"/>
        <xsd:element name="publicado" type="xsd:dateTime"/>
        <xsd:element name="consultado_en" type="xsd:dateTime"/>
      </xsd:sequence></xsd:complexType>
      <xsd:complexType name="Cambios"><xsd:sequence>
        <xsd:element name="cambio" type="tns:Cambio" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:sequence></xsd:complexType>
      <xsd:complexType name="PaginaNovedades"><xsd:sequence>
        <xsd:element name="novedades" type="tns:Novedades"/>
        <xsd:element name="hay_mas" type="xsd:boolean"/>
        <xsd:element name="pagina_siguiente" type="xsd:string" minOccurs="0"/>
        <xsd:element name="retenidas" type="xsd:int"/>
        <xsd:element name="fuente" type="xsd:string"/>
        <xsd:element name="padron_publicado" type="xsd:dateTime"/>
        <xsd:element name="consultado_en" type="xsd:dateTime"/>
      </xsd:sequence></xsd:complexType>
      <xsd:complexType name="Novedades"><xsd:sequence>
        <xsd:element name="novedad" type="tns:Novedad" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:sequence></xsd:complexType>
      <xsd:complexType name="Novedad"><xsd:sequence>
        <xsd:element name="id" type="xsd:long"/>
        <xsd:element name="rut" type="xsd:string"/>
        <xsd:element name="rut_formateado" type="xsd:string"/>
        <xsd:element name="razon_social" type="xsd:string"/>
        <xsd:element name="descripcion" type="xsd:string"/>
        <xsd:element name="publicado" type="xsd:dateTime"/>
        <xsd:element name="aspecto" type="xsd:string"/>
        <xsd:element name="tipo" type="xsd:string"/>
        <xsd:element name="campos" type="tns:Campos" minOccurs="0"/>
        <xsd:element name="antes" type="xsd:string" minOccurs="0"/>
        <xsd:element name="despues" type="xsd:string" minOccurs="0"/>
        <xsd:element name="lista" type="xsd:string"/>
        <xsd:element name="etiqueta" type="xsd:string"/>
        <xsd:element name="entregada_en" type="xsd:dateTime"/>
      </xsd:sequence></xsd:complexType>
      <xsd:complexType name="Cambio"><xsd:sequence>
        <xsd:element name="publicado" type="xsd:dateTime"/>
        <xsd:element name="aspecto" type="xsd:string"/>
        <xsd:element name="tipo" type="xsd:string"/>
        <xsd:element name="campos" type="tns:Campos" minOccurs="0"/>
        <xsd:element name="antes" type="xsd:string" minOccurs="0"/>
        <xsd:element name="despues" type="xsd:string" minOccurs="0"/>
      </xsd:sequence></xsd:complexType>
      <xsd:complexType name="Campos"><xsd:sequence>
        <xsd:element name="campo" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:sequence></xsd:complexType>
      <xsd:complexType name="PaginaCambios"><xsd:sequence>
        <xsd:element name="cambios" type="tns:CambiosDelPadron"/>
        <xsd:element name="hay_mas" type="xsd:boolean"/>
        <xsd:element name="pagina_siguiente" type="xsd:string" minOccurs="0"/>
        <xsd:element name="fuente" type="xsd:string"/>
        <xsd:element name="publicado" type="xsd:dateTime"/>
        <xsd:element name="consultado_en" type="xsd:dateTime"/>
      </xsd:sequence></xsd:complexType>
      <xsd:complexType name="CambiosDelPadron"><xsd:sequence>
        <xsd:element name="cambio" type="tns:CambioDelPadron" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:sequence></xsd:complexType>
      <xsd:complexType name="CambioDelPadron"><xsd:sequence>
        <xsd:element name="rut" type="xsd:string"/>
        <xsd:element name="rut_formateado" type="xsd:string"/>
        <xsd:element name="razon_social" type="xsd:string"/>
        <xsd:element name="publicado" type="xsd:dateTime"/>
        <xsd:element name="aspecto" type="xsd:string"/>
        <xsd:element name="tipo" type="xsd:string"/>
        <xsd:element name="campos" type="tns:Campos" minOccurs="0"/>
        <xsd:element name="antes" type="xsd:string" minOccurs="0"/>
        <xsd:element name="despues" type="xsd:string" minOccurs="0"/>
      </xsd:sequence></xsd:complexType>

      <!-- El tamaño y el régimen del último año comercial (la nómina anual de
           empresas del SII): la misma forma que `tamano` en la ficha del REST.
           `anio_comercial` es un entero y no una fecha. Los rangos en UF van en
           xsd:decimal; `hasta_uf` falta en el tramo abierto y los dos en «Sin
           Información». -->
      <xsd:complexType name="Tamano"><xsd:sequence>
        <xsd:element name="anio_comercial" type="xsd:int"/>
        <xsd:element name="tramo_ventas" type="tns:Tramo" minOccurs="0"/>
        <xsd:element name="trabajadores" type="xsd:int"/>
        <xsd:element name="tramo_capital" type="tns:TramoCapital" minOccurs="0"/>
        <xsd:element name="regimen" type="tns:Regimen" minOccurs="0"/>
        <xsd:element name="renta_presunta" type="xsd:boolean"/>
        <xsd:element name="rubro" type="tns:Rubro" minOccurs="0"/>
        <xsd:element name="subrubro" type="xsd:string" minOccurs="0"/>
        <xsd:element name="actividad_principal" type="xsd:int" minOccurs="0"/>
        <xsd:element name="primera_inscripcion" type="xsd:date" minOccurs="0"/>
        <xsd:element name="comuna" type="xsd:string"/>
      </xsd:sequence></xsd:complexType>
      <xsd:complexType name="Tramo"><xsd:sequence>
        <xsd:element name="codigo" type="xsd:int"/>
        <xsd:element name="descripcion" type="xsd:string"/>
        <xsd:element name="desde_uf" type="xsd:decimal" minOccurs="0"/>
        <xsd:element name="hasta_uf" type="xsd:decimal" minOccurs="0"/>
        <xsd:element name="categoria" type="xsd:string" minOccurs="0"/>
      </xsd:sequence></xsd:complexType>
      <xsd:complexType name="TramoCapital"><xsd:sequence>
        <xsd:element name="codigo" type="xsd:int"/>
        <xsd:element name="descripcion" type="xsd:string"/>
        <xsd:element name="desde_uf" type="xsd:decimal" minOccurs="0"/>
        <xsd:element name="hasta_uf" type="xsd:decimal" minOccurs="0"/>
        <xsd:element name="negativo" type="xsd:boolean"/>
      </xsd:sequence></xsd:complexType>
      <xsd:complexType name="Regimen"><xsd:sequence>
        <xsd:element name="codigo" type="xsd:string"/>
        <xsd:element name="descripcion" type="xsd:string"/>
      </xsd:sequence></xsd:complexType>
      <xsd:complexType name="Rubro"><xsd:sequence>
        <xsd:element name="codigo" type="xsd:string"/>
        <xsd:element name="descripcion" type="xsd:string"/>
      </xsd:sequence></xsd:complexType>

      <!-- El Boletín Concursal (0059): la misma forma que `concursal` en la
           ficha del REST. `actualizado_al`, `apertura` y `ultima_actuacion` son
           DÍAS del Boletín, no instantes; `materia` falta cuando el catálogo
           de Datario no conoce el tipo. -->
      <xsd:complexType name="Concursal"><xsd:sequence>
        <xsd:element name="fuente" type="xsd:string"/>
        <xsd:element name="actualizado_al" type="xsd:date"/>
        <xsd:element name="procedimientos" type="tns:Procedimientos"/>
      </xsd:sequence></xsd:complexType>
      <xsd:complexType name="Procedimientos"><xsd:sequence>
        <xsd:element name="procedimiento" type="tns:Procedimiento"
                     minOccurs="0" maxOccurs="unbounded"/>
      </xsd:sequence></xsd:complexType>
      <xsd:complexType name="Procedimiento"><xsd:sequence>
        <xsd:element name="rol_causa" type="xsd:string"/>
        <xsd:element name="tribunal" type="xsd:string"/>
        <xsd:element name="tipo" type="xsd:string"/>
        <xsd:element name="materia" type="xsd:string" minOccurs="0"/>
        <xsd:element name="apertura" type="xsd:date"/>
        <xsd:element name="ultima_actuacion" type="xsd:date"/>
        <xsd:element name="ultima_actuacion_nombre" type="xsd:string"/>
        <xsd:element name="publicaciones" type="xsd:int"/>
      </xsd:sequence></xsd:complexType>
      <xsd:complexType name="Origenes"><xsd:sequence>
        <xsd:element name="origen" type="tns:Origen" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:sequence></xsd:complexType>
      <xsd:complexType name="Origen"><xsd:sequence>
        <xsd:element name="publicacion" type="xsd:string"/>
        <xsd:element name="organismo" type="xsd:string"/>
        <xsd:element name="enlace" type="xsd:anyURI"/>
        <xsd:element name="publicado" type="xsd:dateTime" minOccurs="0"/>
        <xsd:element name="actualizado_al" type="xsd:date" minOccurs="0"/>
        <xsd:element name="campos" type="tns:Campos"/>
      </xsd:sequence></xsd:complexType>

      <xsd:complexType name="FichaActividades"><xsd:sequence>
        <xsd:element name="rut" type="xsd:string"/>
        <xsd:element name="rut_formateado" type="xsd:string"/>
        <xsd:element name="es_empresa" type="xsd:boolean"/>
        <xsd:element name="fuente" type="xsd:string"/>
        <xsd:element name="padron_publicado" type="xsd:dateTime"/>
        <xsd:element name="consultado_en" type="xsd:dateTime"/>
        <xsd:element name="actividades" type="tns:Actividades"/>
      </xsd:sequence></xsd:complexType>

      <xsd:complexType name="FichaDomicilios"><xsd:sequence>
        <xsd:element name="rut" type="xsd:string"/>
        <xsd:element name="rut_formateado" type="xsd:string"/>
        <xsd:element name="es_empresa" type="xsd:boolean"/>
        <xsd:element name="fuente" type="xsd:string"/>
        <xsd:element name="padron_publicado" type="xsd:dateTime"/>
        <xsd:element name="consultado_en" type="xsd:dateTime"/>
        <xsd:element name="domicilios" type="tns:Domicilios"/>
      </xsd:sequence></xsd:complexType>

      <xsd:complexType name="Actividades"><xsd:sequence>
        <xsd:element name="actividad" type="tns:Actividad" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:sequence></xsd:complexType>
      <xsd:complexType name="Actividad"><xsd:sequence>
        <xsd:element name="codigo" type="xsd:int"/>
        <xsd:element name="descripcion" type="xsd:string"/>
        <xsd:element name="afecta_iva" type="xsd:boolean"/>
        <xsd:element name="desde" type="xsd:date" minOccurs="0"/>
      </xsd:sequence></xsd:complexType>

      <xsd:complexType name="Domicilios"><xsd:sequence>
        <xsd:element name="domicilio" type="tns:Domicilio" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:sequence></xsd:complexType>
      <xsd:complexType name="Domicilio"><xsd:sequence>
        <xsd:element name="tipo" type="xsd:string"/>
        <xsd:element name="direccion" type="xsd:string"/>
        <xsd:element name="calle" type="xsd:string"/>
        <xsd:element name="numero" type="xsd:string"/>
        <xsd:element name="departamento" type="xsd:string"/>
        <xsd:element name="comuna" type="xsd:string"/>
        <xsd:element name="ciudad" type="xsd:string"/>
        <xsd:element name="region" type="xsd:string"/>
        <xsd:element name="bloque" type="xsd:string" minOccurs="0"/>
        <xsd:element name="villa" type="xsd:string" minOccurs="0"/>
        <xsd:element name="vigente_desde" type="xsd:date" minOccurs="0"/>
      </xsd:sequence></xsd:complexType>

      <xsd:complexType name="PaginaEmpresas"><xsd:sequence>
        <xsd:element name="resultados" type="tns:Resultados"/>
        <xsd:element name="hay_mas" type="xsd:boolean"/>
        <xsd:element name="pagina_siguiente" type="xsd:string" minOccurs="0"/>
        <xsd:element name="fuente" type="xsd:string"/>
        <xsd:element name="padron_publicado" type="xsd:dateTime"/>
        <xsd:element name="consultado_en" type="xsd:dateTime"/>
        <xsd:element name="sugerencia" type="xsd:string" minOccurs="0"/>
      </xsd:sequence></xsd:complexType>
      <xsd:complexType name="Resultados"><xsd:sequence>
        <xsd:element name="empresa" type="tns:Empresa" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:sequence></xsd:complexType>
      <xsd:complexType name="Empresa"><xsd:sequence>
        <xsd:element name="rut" type="xsd:string"/>
        <xsd:element name="rut_formateado" type="xsd:string"/>
        <xsd:element name="razon_social" type="xsd:string"/>
        <xsd:element name="comuna" type="xsd:string"/>
        <xsd:element name="region" type="xsd:string"/>
        <!-- El tamaño del último año comercial (0051), al final y opcionales:
             se omiten cuando la nómina anual no trae al RUT. -->
        <xsd:element name="tramo_ventas" type="xsd:int" minOccurs="0"/>
        <xsd:element name="trabajadores" type="xsd:int" minOccurs="0"/>
      </xsd:sequence></xsd:complexType>

      <xsd:element name="falla" type="tns:FallaDatario"/>
      <xsd:complexType name="FallaDatario"><xsd:sequence>
        <xsd:element name="error" type="xsd:string"/>
        <xsd:element name="detail" type="xsd:string"/>
        <xsd:element name="estado_http" type="xsd:int"/>
      </xsd:sequence></xsd:complexType>

    </xsd:schema>
  </types>

  <message name="ObtenerFichaIn">
    <part name="parameters" element="tns:ObtenerFicha"/>
  </message>
  <message name="ObtenerFichaOut">
    <part name="parameters" element="tns:ObtenerFichaResponse"/>
  </message>
  <message name="ObtenerActividadesIn">
    <part name="parameters" element="tns:ObtenerActividades"/>
  </message>
  <message name="ObtenerActividadesOut">
    <part name="parameters" element="tns:ObtenerActividadesResponse"/>
  </message>
  <message name="ObtenerDomiciliosIn">
    <part name="parameters" element="tns:ObtenerDomicilios"/>
  </message>
  <message name="ObtenerDomiciliosOut">
    <part name="parameters" element="tns:ObtenerDomiciliosResponse"/>
  </message>
  <message name="BuscarEmpresasIn">
    <part name="parameters" element="tns:BuscarEmpresas"/>
  </message>
  <message name="BuscarEmpresasOut">
    <part name="parameters" element="tns:BuscarEmpresasResponse"/>
  </message>
  <message name="ObtenerSociedadesIn">
    <part name="parameters" element="tns:ObtenerSociedades"/>
  </message>
  <message name="ObtenerSociedadesOut">
    <part name="parameters" element="tns:ObtenerSociedadesResponse"/>
  </message>
  <message name="ObtenerGruposIn">
    <part name="parameters" element="tns:ObtenerGrupos"/>
  </message>
  <message name="ObtenerGruposOut">
    <part name="parameters" element="tns:ObtenerGruposResponse"/>
  </message>
  <message name="ObtenerHistorialIn">
    <part name="parameters" element="tns:ObtenerHistorial"/>
  </message>
  <message name="ObtenerHistorialOut">
    <part name="parameters" element="tns:ObtenerHistorialResponse"/>
  </message>
  <message name="ListarCambiosIn">
    <part name="parameters" element="tns:ListarCambios"/>
  </message>
  <message name="ListarCambiosOut">
    <part name="parameters" element="tns:ListarCambiosResponse"/>
  </message>
  <message name="LeerNovedadesIn">
    <part name="parameters" element="tns:LeerNovedades"/>
  </message>
  <message name="LeerNovedadesOut">
    <part name="parameters" element="tns:LeerNovedadesResponse"/>
  </message>
  <message name="FallaMsg">
    <part name="falla" element="tns:falla"/>
  </message>

  <portType name="DatarioPuerto">
    <operation name="ObtenerFicha">
      <input message="tns:ObtenerFichaIn"/><output message="tns:ObtenerFichaOut"/>
      <fault name="Falla" message="tns:FallaMsg"/>
    </operation>
    <operation name="ObtenerActividades">
      <input message="tns:ObtenerActividadesIn"/><output message="tns:ObtenerActividadesOut"/>
      <fault name="Falla" message="tns:FallaMsg"/>
    </operation>
    <operation name="ObtenerDomicilios">
      <input message="tns:ObtenerDomiciliosIn"/><output message="tns:ObtenerDomiciliosOut"/>
      <fault name="Falla" message="tns:FallaMsg"/>
    </operation>
    <operation name="BuscarEmpresas">
      <input message="tns:BuscarEmpresasIn"/><output message="tns:BuscarEmpresasOut"/>
      <fault name="Falla" message="tns:FallaMsg"/>
    </operation>
    <operation name="ObtenerSociedades">
      <input message="tns:ObtenerSociedadesIn"/><output message="tns:ObtenerSociedadesOut"/>
      <fault name="Falla" message="tns:FallaMsg"/>
    </operation>
    <operation name="ObtenerGrupos">
      <input message="tns:ObtenerGruposIn"/><output message="tns:ObtenerGruposOut"/>
      <fault name="Falla" message="tns:FallaMsg"/>
    </operation>
    <operation name="ObtenerHistorial">
      <input message="tns:ObtenerHistorialIn"/><output message="tns:ObtenerHistorialOut"/>
      <fault name="Falla" message="tns:FallaMsg"/>
    </operation>
    <operation name="ListarCambios">
      <input message="tns:ListarCambiosIn"/><output message="tns:ListarCambiosOut"/>
      <fault name="Falla" message="tns:FallaMsg"/>
    </operation>
    <operation name="LeerNovedades">
      <input message="tns:LeerNovedadesIn"/><output message="tns:LeerNovedadesOut"/>
      <fault name="Falla" message="tns:FallaMsg"/>
    </operation>
  </portType>

  <binding name="DatarioSoap" type="tns:DatarioPuerto">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="ObtenerFicha">
      <soap:operation soapAction="https://api.datario.cl/soap/v1/ObtenerFicha"/>
      <input><soap:body use="literal"/></input>
      <output><soap:body use="literal"/></output>
      <fault name="Falla"><soap:fault name="Falla" use="literal"/></fault>
    </operation>
    <operation name="ObtenerActividades">
      <soap:operation soapAction="https://api.datario.cl/soap/v1/ObtenerActividades"/>
      <input><soap:body use="literal"/></input>
      <output><soap:body use="literal"/></output>
      <fault name="Falla"><soap:fault name="Falla" use="literal"/></fault>
    </operation>
    <operation name="ObtenerDomicilios">
      <soap:operation soapAction="https://api.datario.cl/soap/v1/ObtenerDomicilios"/>
      <input><soap:body use="literal"/></input>
      <output><soap:body use="literal"/></output>
      <fault name="Falla"><soap:fault name="Falla" use="literal"/></fault>
    </operation>
    <operation name="BuscarEmpresas">
      <soap:operation soapAction="https://api.datario.cl/soap/v1/BuscarEmpresas"/>
      <input><soap:body use="literal"/></input>
      <output><soap:body use="literal"/></output>
      <fault name="Falla"><soap:fault name="Falla" use="literal"/></fault>
    </operation>
    <operation name="ObtenerSociedades">
      <soap:operation soapAction="https://api.datario.cl/soap/v1/ObtenerSociedades"/>
      <input><soap:body use="literal"/></input>
      <output><soap:body use="literal"/></output>
      <fault name="Falla"><soap:fault name="Falla" use="literal"/></fault>
    </operation>
    <operation name="ObtenerGrupos">
      <soap:operation soapAction="https://api.datario.cl/soap/v1/ObtenerGrupos"/>
      <input><soap:body use="literal"/></input>
      <output><soap:body use="literal"/></output>
      <fault name="Falla"><soap:fault name="Falla" use="literal"/></fault>
    </operation>
    <operation name="ObtenerHistorial">
      <soap:operation soapAction="https://api.datario.cl/soap/v1/ObtenerHistorial"/>
      <input><soap:body use="literal"/></input>
      <output><soap:body use="literal"/></output>
      <fault name="Falla"><soap:fault name="Falla" use="literal"/></fault>
    </operation>
    <operation name="ListarCambios">
      <soap:operation soapAction="https://api.datario.cl/soap/v1/ListarCambios"/>
      <input><soap:body use="literal"/></input>
      <output><soap:body use="literal"/></output>
      <fault name="Falla"><soap:fault name="Falla" use="literal"/></fault>
    </operation>
    <operation name="LeerNovedades">
      <soap:operation soapAction="https://api.datario.cl/soap/v1/LeerNovedades"/>
      <input><soap:body use="literal"/></input>
      <output><soap:body use="literal"/></output>
      <fault name="Falla"><soap:fault name="Falla" use="literal"/></fault>
    </operation>
  </binding>

  <service name="Datario">
    <port name="DatarioSoap" binding="tns:DatarioSoap">
      <soap:address location="http://localhost:8011/soap/v1"/>
    </port>
  </service>
</definitions>
