Tipos de archivos

En la entrada ‘¿Qué son los Servicios Web (Web Services)?‘ aparecieron muchos tipos de archivos (XML, JSON, WSDL…) dando por hecho que se conocen. Pero esto no tiene que ser así necesariamente, por lo que vamos a repasar los que, a mi juicio, son más interesantes, particulares y usados dentro del mundo de sistemas de información.

Antes de la digitalización de documentos la cosa no pintaba a bien

CSV (Valores Separados por Comas)

Los archivos CSV son fundamentales para el almacenamiento y la transferencia de datos tabulares. Su simplicidad y eficiencia los hacen ideales para el intercambio de grandes volúmenes de datos entre aplicaciones.

  • Características: Datos tabulares separados por comas, fácil de leer y escribir.
  • Usos: Intercambio de datos entre aplicaciones, manejo de grandes cantidades de datos.
  • Estructura: Filas con el mismo número de campos, separados por comas o punto y coma, líneas separadas por saltos de línea.
  • Ventajas: Simplicidad, bajo sobrecoste computacional.
  • Desventajas: Limitado en cuanto a tipos de datos, no es ideal para datos complejos.
  • Ejemplo:
nombre,edad,ciudad
Juan,30,Madrid

La forma más sencilla de crear archivos CSV es desde un fichero Excel (xlsx) ya que el propio Excel permite Guardar el archivo como un CSV separado por comas. Además la apertura de un CSV también es directa a Excel. Pero, cuidado, que esto conlleva sus riesgos, ya que el Excel quita los ceros a la izquierda de las celdas que considera números. En este caso hay que indicar siempre que todas las celdas son de tipo texto.


JSON (JavaScript Object Notation)

JSON se destaca por su facilidad de lectura y estructuración de datos en un formato de texto. Es ampliamente utilizado para la transmisión de datos en aplicaciones web.

  • Características: Texto legible, nombres y valores como indicadores.
  • Usos: Intercambio de información entre aplicaciones.
  • Estructura: Datos en formato de texto, incluyendo números, cadenas y fechas.
  • Ventajas: Fácil de leer, liviano y rápido.
  • Desventajas: No es tan adecuado para datos muy complejos.
  • Ejemplo:
{
  "estudiantes": [
    {
      "id": 1,
      "nombre": "Ana",
      "asignaturas": {
        "matematicas": 85,
        "ciencias": 90
      }
    },
    {
      "id": 2,
      "nombre": "Luis",
      "asignaturas": {
        "matematicas": 75,
        "ciencias": 80
      }
    }
  ]
}

Lo que yo recomiendo cuando tenemos un json y queremos poder verlo y entenderlo es usar o bien el Visual Studio o una web gratuita de JSON Viewer. Que se verá en jerárquico y pudiendo expandir o contraer nodos.


XML (Extensible Markup Language)

XML es un meta-lenguaje que permite definir lenguajes estructurados (WSDL, XHTML para páginas web, MathML para expresiones matemáticas, SVG para gráficos vectoriales y RSS para feeds web), utilizado en la representación de datos en la web y en el intercambio de información entre aplicaciones.

  • Características: Meta-lenguaje para definir otros lenguajes estructurados.
  • Usos: Representación de datos en la web, intercambio de datos, configuración. Es la base de los servicios web SOAP. Tanto para definición del WSDL y los XSD como para el. Intercambio de mensajes.
  • Estructura: Elementos y atributos, con reglas predefinidas.
  • Ventajas: Interoperabilidad, validación de documentos.
  • Desventajas: Puede ser verboso y complejo.
  • Ejemplo:
<estudiantes>
  <estudiante id="1">
    <nombre>Ana</nombre>
    <asignaturas>
      <matematicas>85</matematicas>
      <ciencias>90</ciencias>
    </asignaturas>
  </estudiante>
  <estudiante id="2">
    <nombre>Luis</nombre>
    <asignaturas>
      <matematicas>75</matematicas>
      <ciencias>80</ciencias>
    </asignaturas>
  </estudiante>
</estudiantes>

Es el formato de archivo que se usa en los servicios SOAP. Personalmente a mi me gusta pegarlos en Ultraedit y pulsar en «View as highlighting file type» para verlo bien.


PROPERTIES

Estos archivos son esenciales en aplicaciones Java, almacenando información como texto en un formato de clave-valor.

  • Características: Almacena valores emparejados a nombres.
  • Usos: Principalmente en aplicaciones Java.
  • Estructura: Texto con formato clave=valor.
  • Ventajas: Fácil de editar y leer.
  • Desventajas: Limitado en cuanto a tipos de datos.
  • Ejemplo:
language=ES
hostname=www.jorgeocampos.com

WSDL (Web Services Description Language)

WSDL es crucial para describir servicios web, especificando interfaces y protocolos en un formato basado en XML.

  • Características: Basado en XML para describir servicios web.
  • Usos: Define interfaces para servicios web.
  • Estructura: Tipos de datos, mensajes, tipos de puerto, bindings, servicios.
  • Ventajas: Permite una descripción detallada y precisa.
  • Desventajas: Complejidad y requerimiento de conocimientos específicos.
  • Ejemplo:
<definitions name="EstudiantesService"
             targetNamespace="http://www.example.com/estudiantes"
             xmlns="http://schemas.xmlsoap.org/wsdl/"
             xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema"
             xmlns:est="http://www.example.com/estudiantes">
    <types>
        <schema targetNamespace="http://www.example.com/estudiantes"
                xmlns="http://www.w3.org/2001/XMLSchema">
            <complexType name="DetallesEstudiante">
                <sequence>
                    <element name="nombre" type="xsd:string"/>
                    <element name="matematicas" type="xsd:int"/>
                    <element name="ciencias" type="xsd:int"/>
                </sequence>
            </complexType>
        </schema>
    </types>
    <message name="ObtenerEstudianteRequest">
        <part name="idEstudiante" type="xsd:int"/>
    </message>
    <message name="ObtenerEstudianteResponse">
        <part name="detallesEstudiante" type="est:DetallesEstudiante"/>
    </message>
    <!-- ... Resto del WSDL ... -->
</definitions>

Como norma general, desde SAP no tenemos que generar WSDL «a mano», ya se encarga el propio sistema de generarlo y consumirlo vía Wizard. Pero me consta que otras tecnologías si que hay que hacer manualidades. Y lo se porque es un estándar y, en ocasiones, viene mal creado (SAP es estricto y no admite errores). No obstante para el las pruebas del consumo de servicios web SOAP y la validación del WSDL yo uso la aplicación gratuita SOAPUI.

Si un servicio funciona, sin errores de validación, en SOAPUI es que esta bien. Y así descartas problemas y te centras en temas de redes, firewall, etc.


XSD (XML Schema Definition)

XSD es un lenguaje que describe la estructura y las reglas de un documento XML, permitiendo validar su contenido. WSDL utiliza XSD para definir las operaciones, mensajes y protocolos de un servicio web.

  • Características: Define elementos y atributos en documentos XML.
  • Usos: Validación de documentos XML.
  • Estructura: Reglas y restricciones para documentos XML.
  • Ventajas: Marco claro para estructura XML.
  • Desventajas: Puede ser complejo de entender y manejar.
  • Ejemplo:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="estudiantes">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="estudiante" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="id" type="xs:int"/>
              <xs:element name="nombre" type="xs:string"/>
              <xs:element name="matematicas" type="xs:int"/>
              <xs:element name="ciencias" type="xs:int"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

YAML (YAML Ain’t Markup Language)

Los archivos YAML (YAML Ain’t Markup Language) son utilizados para la serialización de datos de forma que sean legibles por humanos. Son comunes en configuraciones, archivos de definición y transmisión de datos entre diferentes componentes de un sistema. Su estructura se basa en la utilización de sangrías para representar jerarquías de datos, lo cual facilita su lectura y escritura. Son muy usados en el mundo del desarrollo, especialmente en la configuración de proyectos y entornos.

  • Características: Lenguaje de serialización de datos, fácil de leer.
  • Usos: Creación de archivos de configuración, automatización (Ansible).
  • Estructura: Mapas y listas con jerarquía basada en sangría.
  • Ventajas: Lectura sencilla, sin caracteres de tabulación.
  • Desventajas: Necesidad de validar la sintaxis.
  • Ejemplo:
estudiantes:
- id: 1
nombre: Ana
asignaturas:
matematicas: 85
ciencias: 90
- id: 2
nombre: Luis
asignaturas:
matematicas: 75
ciencias: 80

JS (JavaScript)

Los archivos JS son el núcleo de la interactividad en las páginas web, almacenando código JavaScript para diversas funciones.

  • Características: Código JavaScript para funciones en páginas web.
  • Usos: Interacción dinámica en páginas web.
  • Estructura: Texto con código JavaScript.
  • Ventajas: Flexibilidad y dinamismo en páginas web.
  • Desventajas: Puede afectar la velocidad de carga de la página.
  • Ejemplo:
function saludo() { 
    alert('Hola Mundo!');
}

CSS (Cascading Style Sheets)

CSS dicta cómo se presentan los elementos HTML en la pantalla, siendo fundamental para el diseño de páginas web.

  • Características: Define la presentación de documentos HTML
  • Usos: Diseño y estilización de páginas web.
  • Estructura: Selectores y declaraciones (propiedad y valor).
  • Ventajas: Consistencia en el diseño en múltiples páginas.
  • Desventajas: Complejidad al manejar estilos extensos.
  • Ejemplo:
body {
  font-family: Arial, sans-serif;
  background-color: #f8f8f8;
}

h1 {
  color: #333;
  font-size: 24px;
}

p {
  color: #666;
  line-height: 1.6;
}

HTML (HyperText Markup Language)

HTML es el lenguaje utilizado para estructurar y presentar contenido en la World Wide Web.

  • Características: Lenguaje de marcado para la creación de páginas web.
  • Usos: Estructuración y presentación de contenido en la web.
  • Estructura: Etiquetas que definen elementos y estructura
  • Ventajas: Amplia adaptabilidad, fácil interpretación.
  • Desventajas: Limitado en funcionalidades interactivas avanzadas.
  • Ejemplo:
<!DOCTYPE html>
<html>
<head>
  <title>Mi Página Web</title>
</head>
<body>
  <h1>Bienvenidos a Mi Página Web</h1>
  <p>Este es un párrafo de introducción.</p>
  <h2>Sección 1</h2>
  <p>Información detallada sobre el primer tema.</p>
  <h2>Sección 2</h2>
  <p>Información detallada sobre el segundo tema.</p>
  <p>Para más información, visita <a href="http://www.jorgeocampos.com">nuestro sitio</a>.</p>
</body>
</html>

EDI (Electronic Data Interchange)

EDI facilita la transmisión estructurada de datos comerciales entre organizaciones, optimizando la eficiencia y precisión.

  • Características: Transmisión estructurada de datos entre organizaciones.
  • Usos: Transferencia de documentos electrónicos o datos de negocios.
  • Estructura: Varía según el estándar (EDIFACT, XML, ANSI ASC X12).
  • Ventajas: Ahorro de tiempo, evita errores de comunicación en papel.
  • Desventajas: Requiere estándares y protocolos específicos.
  • Ejemplo: No aplicable directamente, ya que depende del estándar utilizado.

BAT (Archivo Batch)

Un archivo `.BAT` es un archivo de procesamiento por lotes en sistemas operativos Windows. Contiene una serie de comandos de línea de comandos que se ejecutan secuencialmente. Es utilizado comúnmente para automatizar tareas repetitivas y puede ejecutar prácticamente cualquier comando que un usuario podría introducir en la consola de comandos.

  • Características: Ejecutan comandos de la consola automáticamente
  • Usos: Automatización de tareas en Windows.
  • Estructura: Serie de comandos de línea de comandos.
  • Ventajas: Automatización sencilla y rápida.
  • Desventajas: Limitado a las capacidades del intérprete de comandos.
  • Ejemplo: echo Hola Mundo

Se trata de un tipo de archivo bastante rudimentario. Pero yo lo uso todos los días para acceder al SAP GUI directamente sin necesidad de tener que introducir usuario y contraseña. Además lo he usado para automatizar ciertas acciones manuales encadenadas en una sola. Me lo apunto y si veo que tiene suficiente entidad lo explicaré.


INI (Archivos de Configuración)

Los archivos .ini son archivos de texto utilizados para la configuración de aplicaciones y sistemas. Contienen pares clave=valor organizados en secciones, lo que permite una fácil lectura y edición. A pesar de su simplicidad y utilidad, carecen de un estándar universal, lo que puede conducir a inconsistencias entre diferentes programas. Son ampliamente utilizados para personalizar la configuración del software y adaptar el comportamiento de los programas a las necesidades específicas del usuario.

  • Características: Texto simple con pares clave=valor.
  • Usos: Configuración de programas y sistemas.
  • Estructura: Secciones con claves y valores.
  • Ventajas: Fácil de leer y editar.
  • Desventajas: Falta de estándares universales.
  • Ejemplo:
[Settings]
language=es
theme=dark

Dll (Dynamic Link Library)

Los archivos .dll son bibliotecas de enlace dinámico esenciales en sistemas Windows para compartir funciones entre diversas aplicaciones. Aportan eficiencia al evitar la redundancia de código y facilitan actualizaciones. Sin embargo, pueden presentar desafíos de seguridad y dependencias complejas. Estos archivos no se ejecutan por sí solos, sino que son invocados por aplicaciones que requieren sus servicios.

  • Características: Contienen código y recursos utilizados por múltiples programas.
  • Usos: Compartir funciones y recursos en aplicaciones Windows.
  • Estructura: Binaria compilada.
  • Ventajas: Reutilización de código y eficiencia en memoria.
  • Desventajas: Problemas de seguridad y compatibilidad.
  • Ejemplo: No aplicable; es un archivo binario.

Ver las extensiones de archivo en Windows

No te fíes de los iconos que aparecen en el explorador de Windows. Si quieres ser tu quien controle que archivos estás visualizando y para poder modificar las extensiones de archivo, es necesario activar en Windows la visualización de extensiones de archivo.


En conclusión

El objetivo de este artículo no es el aprenderse todos estos tipos de archivos, además muchos de ellos se circunscriben a un lenguaje o aplicación que quizás nunca manejemos y otros son más comunes. Estos son los que yo, de una forma u otra, he manejado. Además de los evidentes claro (Excel, Word, PPT, TXT…)