viernes, 25 de septiembre de 2015

Más ejercicios de realizar documentos XML bien formados


Más ejercicios de XML

1.     Realizar un documento XML bien formado que estructure la información del siguiente email:


Destinatario: brucewayne@gmail.com

Asunto: Saludos

Mensaje: Hola, ¿Te parece bien quedar el lunes y nos vemos? Saludos.

 

2.     Realizar un documento XML bien formado que estructure la información del siguiente email:

Remitente: Juan López [clarkkent@gmail.com]

Destinatario: José González [brucewayne@gmail.com]

Asunto: Saludos

Mensaje: Hola, ¿Te parece bien quedar el lunes y nos vemos? Saludos.

Ejemplo de uso de xml para la creación de un gráfico escalar vectorizado

Hola a todos
El archivo Ejemplo.svg contiene la siguiente información:



<?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="12cm" height="8cm">
<title>El triangulo rojo</title>
<polygon style="fill:red" points="0, 311,180,0,360,311" />
</svg>


Si lo guardáis con la extensión svg y lo abrís con un navegador capaz de entender svg, os aparecerá un triangulo rojo, tal y como podéis ver en la figura.

Saludos,
Alfredo

lunes, 21 de septiembre de 2015

Introducción a XML

Hola a todos

Introducción/Definición de XML
XML (Extended Markup Language) Es un metalenguaje extensible de etiquetas desarrollado por el W3C que permite definir la gramatica de lenguajes específicos(de la misma manera que HTML es a su vez un lenguaje definido por SGML)
Por tanto, XML no es realmente un lenguaje en particular, sino una manera de definir lenguajes para diferentes necesidades
Se puede ver como un subconjunto de SGML mucho más simple, hasta el punto de que la especificación de XML es una décima parte que SGML. Por otro lado, el lenguaje XML se puede definir como un metalenguaje, esto es, XML puede ser usado para definir otros lenguaje, al igual que SGML. Por ejemplo, el lenguaje XHTML, ampliamente usado hoy en día en la web, se ha construido usando como base XML.

Estructura y sintaxis de XML
Un documento XML está formado, en principio, por lo que se conoce como “texto plano”, esto es, texto en el cual todos los caracteres se representan visualmente, sin existir caracteres no visible exceptuando los de salto de línea, tabulador o espacio.
Los documentos escritos usando XML contendrán marcas para separar la información que estructura el documento de la información que se quiere almacenar. Para construir dichas marcas, en XML se usan los caractere “<” y “>” para delimitar el texto que se desea marcar, mientras que el carácter “/” sirve para indicar la etiqueta de finalización del marcado. Un posible ejemplo de documento XML sería el siguiente:
<nombre>Luis</nombre>
Esta construcción se denomina habitualmente “elemento” y constituye la base principal de los documentos XML. Además de los elementos, un documento XML puede contener otros tipos de información. A continuación, se especificarán los más relevantes.

Etiquetas, Elementos y atributos.
Las etiquetas son el componente de XML que permite definir los elementos que conformarán un documento de la siguiente forma:

<etiqueta>Valor</etiqueta>

Como se puede observar los elementos se formarán usando una etiqueta de inicio, otra de fin, delimitadas por los caracteres “>” y “<”, y que comparten el identificador textual, pero añadiendo el carácter  “/” al principio. En medio de las etiquetas de inicio y fin del elemento se representará el contenido que se desee almacenar en ese elemento . Este contenido puede a su vez englobar otros elementos. Por otro lado, los elementos pueden no contener ningún valor, pero en ese caso se deberá usar solamente la etiqueta de finalización.
Se considera que en el elemento XML engloba todo lo que se encuentra entre las correspondentes etiquetas de inicio y de fin y pueden contener tanto otros elementos como simplemente texto o una combinación de ambos

Ejemplo de XML para representar la ficha de un alumno sería sintácticamente correcto:

<alumno>
         <nombre>Pablo</nombre>
         <apellido>Pérez</apellido>
         <telefono>91555555</telefono>
</alumno>
Los nombres de los elementos deberán empezar por una letra o bien por el carácter “_” o “:” siempre y cuando el principio no contenga la palabra “xml en cualquier combianción posible de mayúsculas y minúsculas. Además, los nombres son “case sensitive”(Sensibles a las mayúsculas) y solo podrán contener letras, números y los caracteres “_”, ”.”, ”:”

Los elementos pueden asimismo contener atributos, los cuales se especificarán en la etiqueta de inicio del elemento. El objetivo de los atributos es poder proporcionar una información adicional sobre un elemento concreto. La sintaxis para representar los atributos consiste en especificar el nombre del atributo dentro de la etiqueta de inicio, a continuació un símbolo “=” y finalmente el valor del atributo delimitado por comillas dobles o por comillas simples.

<Elemento1 atrib1=”val1” atrib2=”val2”>Valor</Elemento1>
<Elemento2 atrib1=”Val3” atrib3=”val3”>Valor</Elemento2>

Incluyendo atributos en nuestro ejemplo anterior

<alumno sexo=”varon” FechaNacimiento=”5/6/1990”>
         <nombre>Pablo</nombre>
         <apellido>Pérez</apellido>
         <telefono>91555555</telefono>
</alumno>

Se puede observar que generalmente se pueden usar tanto atributos como nuevos elementos para representar información. Sin emabrgo, el uso de un número excesivo de atributos puede provocar que el documento XML sea menos legible, más difícil de mantener y difícilmente extensible. Además hay que tener en cuenta que los atributos no pueden contener información en forma de árbol, esto es, no pueden contener otros elementos o atributos tal y como sucede con los elementos. De forma general, se puede establecer la recomendación no usar atributos en exceso y dejarlos casi exclusivamente para representación de metadatos

Siguiendo esta recomendación, tanto el atributo “sexo” como el atributo “FechaNacimiento” se pueden convertir en elementos. Además, en este ejemplo, se añade un identificador del alumno como atributo

<?xml version="1.0" encoding="utf-8"?>
<alumno id="532">
         <nombre>Pablo</nombre>
         <apellido>Pére</apellido>
         <FechaNacimiento>
                   <dia>5</dia>
                   <mes>6</mes>
                   <año>90</a>
         </FechaNacimiento>
         <sexo>varon</sexo>
         <telefono tipo="movil">555-555-555</telefono>
         <direccion>Ronda de Segovia</direccion>
        
</alumno>

Caracteres especiales
En XML algunos símbolos son reservados del lenguaje por lo que para poder representarlos es necesario usar unos código. Estos se definen usando el símbolo & seguido de una palabra clave y terminados por punto y coma. Estas construcciones son entidades predefinidas (Luego veremos las entidades) A continuación, se detallan algunos de los más relevantes:

Código
Carácter
&quot;
&amp;
&
&apos;
&lt;
< 
&gt;
> 


Instrucciones de procesamiento
Más allá de los propios datos contenidos en los ficheros XML y las etiquetas de marcado en un fichero XML se pueden encontrar instrucciones especiales llamadas instrucciones de procesamiento. Éstas comienzan con <? Y terminan con ¿> Una de las instrucciones procesamiento más habituales es la que se usa para indicar qué versión de XML se va a usar y cuál es la codificación de caracteres que se va a usar. Por ejemplo, si se usa XML 1.0 y UTF-8 la instrucción de procesamiento sería la siguiente:

<?xml version=”1.0” encoding=”UTF-8”?>

Comentarios y secciones CDATA
Dentro de un documetno XML se puede añadir información que no pertenezca ni al marcado ni la información contenida en el documento y que sirve para documentarlo en forma de comentarios internos. La sintaxis de un comentario consta de un texto delimitado por una marca inicial “<!--“ y una marca final “-->”
<!—Comentario válido en XML-->

Los comentarios son elementos especiales y no necesita ninguna marca de cierre. Además hay que tener en cuenta que dentro de un comentario no se pueden usar dos guiones seguidos “--“
Además, en XML se encuentran disponibles las secciones CDATA que permiten marcar un texto para que éste no sea procesado por el parser, es decir, no serán analizadas sintácticamente. CDATA proviene de “Character Data” (Datos de carácter) en contraposición a datos de marcado. La sintaxis de estas secciones se basa en la etiqueta de inicio “<![CDATA[“ y la etiquea de fin, “]]>”

Ejemplo:
<?xml version="1.0" encoding="utf-8"?>
<!--Las dos definiciones del elemento serían interpretadas de la misma forma -->
<alumnos>

<!CDATA[
         <alumno id="321">
                   <nombre>Luis</nombre>
         </alumno>
</alumnos>


<alumnos>
         &lt;alumno id "321"&gt;
         &lt;nombre&gt;luis&lt;/nombre&gt;
         &lt;alumno&gt;
</alumnos>

Documentos XML bien formados y válidos
Una vez hemos visto los elementos que pueden formar parte de un documento XM y sus características el siguiente paso será establecer cuando un documento es correcto. En este sentido, en XML se puede hablar de documentos “bien formados” y documentos “válidos”

Los documentos bien formados son aquellos que son sintácticamente correctos, es decir, que cumplen las reglas expuestas anteriormente. Sin embargo, los documentos válidos son aquellos que además de estar bien formados, cumplen los requisitos de una definición de estructura o DTD

Además de las reglas expuestas anteriormente, se pueden destacar algunos otros aspectos en los que no se ha incidido de forma directa:
-          Un documento XML debe contener un único elemento raíz
-           Los elementos son case-sensitive, por lo que las etiquetas de inicio y fin de un   
      elemento deben concordar en mayúsculas y minúsculas
-           El documento sólo contendrá caracteres válidos dependiendo del tipo de codificación  
      del documento
-          Los caracteres “<”, “>”, y “&” solo deben aparecer para delimitar las etiquetas de los elementos y para usar caracteres especiales

Espacios de nombres
De forma general, los documentos XML se suelene combinar con otros documentos XML existentes, esto es, es habitual que se desee usar uno o varios módulos desarrollados previamente por terceras personas. Esta modularida es una característica esenciall de XML y permite al desarrollador poder reutilizar código existente que en muchos casos ya sido depurado y ampliamente probado.
El problema que sirge en estos casos es la posible colisión que se puede producir en los nombres d elos elementos que conformen los módulo que se quieren usar. Para solucionar este problema XML proporciona un mecanismo denominado “espacio de nombres”, que permite asignar nombres extendidos a los elementos de forma que se puedan evitar las colisiones

Declaración de un espacio de nombres
Un espacio de nombres se define como una referencia URI que servirá para identificar los elementos que pertenecen a dicho espacio de nombres. Otra forma de verlo es que los elementos tendrán un nombre compuesto por dos partes: una primera con su nombre y una segunda con el nombre de espacio de nombres. Este nombre compuesto permitirá identificar de forma unívoca al elemento en cuestión y de esta forma conocer siempre a qué elemento se está refiriendo el documento.
La construcción de estos nombres extendidos se realiza uniendo el nombre al espacio de nombres y el nombre del elemento o atributo usando como conector el símbolo “:”. Sin embargo, las referencias URI pueden ser largas, lo que va en detrimento de la legibilidad y claridad del documento, además de propiciar que se cometan errores más fácilmente. Además las URIs pueden contener caracteres no válidos en XML. Para solucionar este problema, en XML se puede asignar un sinónimo corto al espacio de nombres de forma que este sinónimo corto sea el que se use a lo largo del documento. . El sinónimo se asigna usando el separador “:” y la etiqueta “xmlns”. En realizada, “xmlns” es un atributo reservado 

Ejemplo:

<?xml version="1.0" encoding="utf-8"?>
<elementoej xmlns:enej="http://dominioeje.com/rutaej">
         <enej:elemento1>Texto 1</enej:elemento1>
         <enej:elemento2>Texto 2</enej:elemento2>
</elementoej>

Se puede observar que el sinónimo corto del espacio de nombres de ejemplo es “enej” y que su uso resulta más adecuado que el nombre completo del espacio de nombres http://dominioeje.com/rutaej. Además, se puede observar que los elementos “elemento1” y “elemento2” pertenecen al espacio de nombres “enej” al estar calificados con el sinónimo de dicho espacio.


Espacios de nombres por defecto
Si un espacio de nombres se declara sin su sinónimo correspondiente esto indicará que todos los elementos (incluido el elemento que declara el espacio de nombres) que contenga pertenecerán a dicho espacio de nombres. Por tanto, sería como definir un espacio de nombres por defecto para los elementos que no tengan espacio de nombres asignado.
Otro uso de los espacios de nombres que puede resultar de gran utilidad es dejar su declaración en blanco (xmlns=””), lo que indicaría que los elementos y atributos contenidos, por defecto no pertenecen a ningún espacio de nombres.
Para terminar, hacer hincapié en que cuando se declara un espacio de nombres por defecto (o sin espacio de nombres por defecto, dejando el atributo xmlns vacío) pero un elemento contiene un prefijo de un espacio de nombres, el espacio de nombres que prevalecerá será éste último.

  
Ejercicios
  1. Definir un documento XML que permita representar un libro. Deberá contener los atributos típicos como “título”, “autores”, “editorial”,”fecha de publicacion”, “isbn”…
  2. A partir d ela definición anterior escribir un documento XML que al menos contenga 10 entradas de libros.
  3. Buscar un validador de XML online por ejemplo el de W3C http://validator.w3.org , introducir el documento generado en el ejercicio anterior y comprobar que el documento esté bien formado.
  4. Crear un espacio de nombres ficticio e introducirlo en el XML del ejercicio 2 y comprobar que el documento XML sigue estando bien formado.

Saludos,
Alfredo











  

sábado, 19 de septiembre de 2015

Lenguajes de Marcas

Lenguajes de Marcas

Introducción histórica

Hay un formato de archivo que cualquier dispositivo es capaz de entender.
El texto. La cuestión es que el texto sólo es capaz de almacenar  texto plano; es decir
simplemente caracteres. Pero no información más compleja como hojas de cálculo,
imágenes, etc.
Por ello se  intenta que el propio texto sirva para almacenar otros datos.
Evidentemente no es posible usar texto para almacenar por ejemplo  imágenes, pero sí
otras cosas. Para ello dentro del archivo habrá contenido que no se interpretará como
texto sin más sino como otro tipo de información. Es decir texto que contiene marcas
especiales. Desde el principio hay dos campos en los que está idea ha funcionado bien:
en las bases de datos y en  los procesadores de texto. Actualmente el éxito de Internet
ha permitido utilizar esta tecnología más a fondo.
Hay un problema con el texto, puesto que es un formato tan universal, su contenido
siempre es visible y por lo tanto es peligroso como fuente para almacenar  datos
confidenciales. Los binarios tampoco lo son, porque los principales formatos se pueden
abrir con el software apropiado; pero cifrar la información es una operación puramente
binaria. Por ello el texto puro no se suele utilizar para esta tarea.

Algunos procesadores de texto optaron por guardar toda la información como texto,
haciendo que las indicaciones  de formato  no se almacenen de forma binaria sino
textual. Dichas indicaciones son caracteres marcados de manera especial para que así
un programa  adecuado  pueda traducir dichos caracteres no como texto  sino  como
operaciones  que finalmente producirán mostrar el  texto del documento  de forma
adecuada..
La idea del marcado procede del inglés marking up término con el que se referían a
la técnica de marcar manuscritos con lápiz de color para hacer anotaciones como por
ejemplo la tipografía a emplear en las imprentas. Este mismo término se ha utilizado
para los documentos de texto que contienen comandos u anotaciones.
Las posibles anotaciones o indicaciones incluidos en los documentos de texto han
dado lugar a  lenguajes (entendiendo que en realidad son formatos de documento y no
lenguajes en el sentido de los lenguajes de programación de aplicaciones) llamados
lenguajes de marcas, lenguajes de marcado o lenguajes de etiquetas.


Goldfarb

Se considera a Charles Goldfarb como al padre de los lenguajes de marcas. Se trata de
un investigador de IBM que propuso ideas para que los documentos de texto tuvieran la
posibilidad de indicar el formato del mismo. Al final ayudó a realizar el lenguaje GML de
IBM el cual puso los cimientos del futuro SGML ideado por el propio Goldfarb.

Tex y Latex

En la década de los 70  Donald Knuth (uno de los ingenieros informáticos más
importantes de la historia, padre del análisis de algoritmos) creó  para producir
documentos científicos utilizando una tipografía y capacidades que fueran iguales en
cualquier computadora, asegurando además una gran calidad en los resultados.
Para ello apoyó a  TeX con tipografía especial (fuentes  Modern  Computer) y un
lenguaje  de definición de tipos (METAFONT).  TeX ha tenido cierto éxito en la
comunidad científica gracias a sus 300 comandos que permiten crear documentos con
tipos de gran calidad, para ello se necesita un programa capaz de convertir el archivo
TeX a un formato de impresión.
El éxito de TeX produjo numerosos derivados de los cuales el más popular es
(LaTeX). Se trata de un lenguaje que intenta simplificar a TeX, fue definido en 1984 por
Leslie Lamport, aunque después ha sido numerosas veces revisado. Al utilizar comandos
de TeX y toda su estructura tipográfica, adquirió rápidamente notoriedad y sigue siendo
utilizado para producir documentos con expresiones científicas, de gran calidad. La idea
es que los científicos se centren en el contenido y no en la presentación.

RTF

RTF es el acrónimo de Rich Text Format (Formato de Texto Enriquecido) un lenguaje
ideado por  Microsoft en 1987 para producir documentos de texto que incluyan
anotaciones de formato.
Actualmente se trata de un formato aceptado como texto con formato y en
ambiente Windows es muy utilizado ya que el procesador de texto  Word Pad
incorporado por Windows lo utiliza como formato nativo.

SGML

Se trata de la versión de  GML que estandarizaba el lenguaje de marcado y que  fue
definida finalmente por ISO como estándar mundial en documentos de texto con
etiquetas de marcado. La estandarización la hace el subcomité  SC24 que forma parte
del comité JTC1 del organismo IEC de ISO que se encarga de los estándares electrónicos e informáticos (en definitiva se trata de una norma ISO/IEC JTC1/SC34, concretamente la 8879).
Su importancia radica en que es el padre del lenguaje XML y la base sobre la que se
sostiene el lenguaje HTML.
En SGML las etiquetas que contienen indicaciones para el texto se colocan entre
símbolos < y >. Las etiquetas se cierran con el signo /. Es decir las reglas fundamentales
de los lenguajes de etiquetas actuales ya las había definido SGML.
En realidad (como XML) no es un lenguaje con unas etiquetas concretas, sino que se
trata de un lenguaje que sirve para definir lenguajes de etiquetas; o más exactamente
es un lenguaje de marcado que sirve para definir formatos de documentos de texto con
marcas. Entre los formatos definidos mediante SGML, sin duda HTML es el más popular.

XML

Se trata de un subconjunto de SGML ideado para mejorar el propio SGML y con él definir
lenguajes de marcado con sintaxis más estricta, pero más entendibles. Su popularidad le
ha convertido en el lenguaje de marcado más importante de la actualidad y en el
formato de documentos para exportación e importación más exitoso. A él se dedican en
profundidad los temas posteriores.

Tipos de lenguajes de marcas

Orientados a la presentación. En ellos al texto común se añaden palabras
encerradas en símbolos especiales que contienen indicaciones de formato
que permiten a los traductores de este tipo de documentos generar un
documento final en el que el texto aparece con el formato indicado. Es el
caso de HTML en el que se indica cómo debe presentarse el texto (y no por
ejemplo lo que significa el mismo) también se considera así los archivos
generados por los procesadores de texto tradicionales en los que al texto del
documento se le acompaña de indicaciones de formato (como negrita,
cursiva,…)
Orientados a la descripción. En ellos las marcas especiales permiten dar
significado al texto pero no indican cómo se debe presentar en pantalla el
mismo. Sería el caso de XML o de SGML en el que la presentación nunca se
indica en el documento; simplemente se indica una semántica de contenido
que lo hace ideal para almacenar datos (por ejemplo si el texto es un
nombre de persona o un número de identificación fiscal).
Orientados a procedimientos. Se trata de documentos en los que hay texto
marcado especialmente que en realidad se interpreta como órdenes a seguir
y así el archivo en realidad contiene instrucciones a realizar con el texto. Es
el caso de  LaTeX donde por ejemplo se puede indicar una fórmula
matemática

Formas de representar información en el ordenador

Formas de representar información en el ordenador
El ordenador es una máquina digital, por lo tanto sólo es capaz de representar números
binarios. Lo que obliga a que para poder almacenar información en un ordenador,
previamente hay que codificarla en forma de números binarios.
El problema de los números binarios es que están muy alejados del ser humano; es
decir, que las personas no estamos capacitadas para manejar información en binario.
Sin embargo actualmente un ordenador es capaz de manejar información de todo
tipo: música, imágenes, texto,…. Nuestra perspectiva humana nos permite rápidamente
diferenciar lo que son números, de lo que es texto, imagen,… Pero en un ordenador
todo es más complicado por esa naturaleza binaria.
Desde los inicios de la informática la codificación (el paso de información humana a
información digital)  ha sido problemática  debido a la  falta de acuerdo en la
representación. Pero hoy día ya tenemos numerosos estándares.
Fundamentalmente la información que un ordenador maneja  son Números y Texto.
Pero curiosamente cualquier tipo de información  que no es texto  (imagen, sonido,
vídeo,…) se considera binaria (aunque como ya hemos comentado,  en realidad  toda la
información que maneja un ordenador es binaria).


Datos en forma de texto y binarios
Cualquier dato que no sea texto, se considera dato binario. Por ejemplo: música, vídeo,
imagen, un archivo Excel, un programa,…
La forma de codificar ese tipo de datos a su forma binaria es muy variable. Por
ejemplo en el caso de las imágenes, cada punto (píxel) de la imagen se codifica
utilizando su nivel de rojo, verde y azul. De modo que una sola imagen produce millones
de dígitos binarios (píxeles)



En cualquier caso sea cual sea la información que estamos codificando en binario,
para poder acceder a dicha información, el ordenador necesita el software que sepa
como decodificar la misma, eso sólo es posible utilizando el mismo software con el que
se codificó o bien otro software pero que sea capaz de entender la información
codificada.

Texto



El texto es quizá la forma más humana de representar información. Antes de la llegada
del ordenador, la información se transmitía mediante documentos o libros en papel. Esa
forma de transmitir es milenaria y sigue la forma más habitual de transmitir información
entre humanos.
En cuanto apareció la informática como una ciencia digital, apareció también el
problema de cómo codificar texto en forma de dígitos binarios. La forma habitual ha
sido codificar cada carácter en una serie de números binarios. De modo que por ejemplo
el carácter A fuera por ejemplo 01000001 y la B el 01000010.
El problema surgió por la falta de estandarización, la letra A se podía codificar
distinto en diferentes ordenadores y así encontrarnos con un problema en cuanto
quisiéramos pasar datos de un ordenador a otro.  Por ello aparecieron estándares para
intentar que todo el hardware y software codificara los caracteres igual.

El código ASCII

El problema de la codificación de texto que hacía incompatibles los documentos de
texto entre diferentes sistemas, se palió cuando se ideó en 1967 un código estándar por
parte de la ANSI, la agencia de estándares norteamericana, dicho código es el llamado
ASCII (American Standard Code for Information Interchange, código estándar
americano para el intercambio de información). El código utiliza el alfabeto inglés (que
utiliza caracteres latinos) y para codificar todos los posibles caracteres necesarios para
escribir en inglés se ideó un sistema de 7 bits (con 7 bits se pueden representar 128
símbolos, suficientes para todas las letras del alfabeto inglés,  en minúsculas y
mayúsculas, caracteres de puntuación, símbolos especiales e incluso símbolos de
control).

Pero, puesto que los alfabetos de otros países poseen otros símbolos, surgió  el
problema de que los alfabetos de las demás lenguas diferentes del inglés no podían
representar algunos (o muchos) símbolos.
Por ello se  diseñaron códigos de 8 bits que añadían 128 símbolos más  y así
aparecieron los llamados códigos ASCII extendidos. En ellos, los 128 símbolos primeros
son los mismos de la tabla ASCII original y los 128 siguientes se corresponden a símbolos
extra. Así por ejemplo el sistema MS-DOS utilizaba el llamado código  437 que incluía
símbolos y caracteres de otras lenguas de Europa Occidental y caracteres que permitían
hacer marcos y bordes en pantallas de texto, entre otros símbolos.
Sin embargo 8 bits siguen siendo insuficientes para codificar todos los alfabetos del
planeta. Por lo que cada zona usaba su propia  tabla  ASCII extendida. Ante el caos
consiguiente, la ISO decidió normalizar dichas tablas de códigos para conseguir
versiones estándares de los mismos. Lo hizo mediante  las siguientes normas (cada una
de las cuales definía una tabla de 256 caracteres, siempre los 128 primeros son el ASCII
original)


8859-1. ASCII extendido para Europa Occidental (incluye símbolos como ñ o β)
8859-2. ASCII extendido para Europa Central y del Este (incluye símbolos como Ź o č)
8859-3. ASCII extendido para Europa del Sur (incluye símbolos como Ġ o Ï)
8859-4. ASCII extendido para Europa del Norte (incluye símbolos como  ø o å)
8859-5. ASCII extendido para alfabeto cirílico (incluye símbolos como  д o Ж)
8859-6. ASCII extendido para alfabeto árabe (incluye símbolos como ن o ن)

8859-7. ASCII extendido para alfabeto griego moderno (incluye símbolos como φ o α)
8859-8. ASCII extendido para alfabeto hebreo (incluye símbolos como ץ o ק)
8859-9. ASCII extendido, versión de 8859-1 que incluye símbolos turcos en lugar de otros poco utilizados
8859-10. ASCII extendido, versión de 8859-4 que incluye símbolos más utilizados en las lenguas nórdicas actuales
8859-11. ASCII extendido para alfabeto tailandés (incluye símbolos como ๗o ๔)
8859-12. ASCII extendido para alfabeto devanagari de India y Nepal que ya no se usa
8859-13. ASCII extendido para alfabetos bálticos con símbolos que no estaban en 8859-4
8859-14. ASCII extendido para alfabeto celta (incluye símbolos como ŵ o Ẃ)
8859-15. ASCII extendido, versión de 8859-1 que incluye el símbolo del euro y símbolos de lenguas bálticas. Es el recomendado actualmente para Europa Occidental.
8859-16. ASCII extendido, versión de 8859-1 pensada para los países del sureste de Europa
2022-JP. Símbolos japoneses (parte 1)
2022-JP-2. Símbolos japoneses (parte 2)
2022-KR. Símbolos coreanos








Este problema sigue existiendo ahora de modo que en los documentos de texto hay que
indicar el sistema de codificación utilizado (el caso más evidente son las páginas web),
para saber cómo interpretar los códigos del archivo. Así en 8859_1 el código 245 es el
carácter õ y en 8859_2 es el carácter


Unicode

La complicación de las tablas de código se intenta resolver gracias al  sistema Unicode
que ha conseguido incluir los caracteres de todas las lenguas del planeta a cambio de
que cada carácter ocupe más de un byte (ocho bits). En Unicode a cada símbolo se le
asigna un número (evidentemente los 128 primeros son los originales de ASCII para
mantener la compatibilidad con los textos ya codificados y de hecho los 256 primeros
son la tabla ISO-8859_1).
Para ello el organismo también llamado Unicode participado por numerosas e
influyentes empresas informáticas y coordinado por la propia ISO, ha definido tres
formas de codificar los caracteres:


UTF-8.  Es la más utilizada (y la más compleja de usar para el ordenador).
Utiliza para cada carácter de uno a cuatro caracteres, de forma que:

  • o Utilizan uno los que pertenecen al código ASCII original
  • o Dos los pertenecientes a lenguas latinas, cirílicas, griegas, árabes, 
  • hebreas y otras de Europa, Asia Menor y Egipto
  • o Tres para símbolos fuera de los alfabetos anteriores como el chino o 
  • el japonés 
  • o Cuatro para otros símbolos: por ejemplo los matemáticos y símbolos 
  • de lenguas muertas como el fenicio o el asirio o símbolos asiáticos de 
  • uso poco frecuente.

UTF-16.  Utiliza para cada carácter  dos (para los dos primeros grupos del
punto anterior) o cuatro caracteres (para el resto). Es más sencillo que el
anterior
UTF-32. La más sencilla de todas. Cada carácter independientemente del
grupo al que pertenezca ocupa 4 caracteres. No se utiliza.

  
Archivos Binarios Vs Archivos de texto


Ventajas de los archivos binarios

(1)Ocupan menos espacio que los archivos de texto, ya que optimizan mejor su
codificación a binario (por ejemplo el número 213 ocupa un solo byte y no tres
como ocurriría si fuera un texto).
(2) Son más rápidos de manipular por parte del ordenador (se parecen más al
lenguaje nativo del ordenador)
(3) Permiten el acceso directo a los datos. Los archivos de texto siempre se manejan
de forma secuencial, más lenta
(4) En cierto modo permiten cifrar el contenido que de otra forma sería totalmente
visible por cualquier aplicación capaz de entender textos (como el bloc de
notas). Es decir los datos están cifrados.

Ventajas de los archivos de texto 

(1)Son ideales para almacenar datos para exportar e importar información a
cualquier dispositivo electrónico ya que cualquier es capaz de interpretar texto
(2) Son directamente modificables, sin tener que acudir a software específico
(3) Su manipulación es más sencilla que la de los archivos binarios
(4) Son directamente transportables y entendibles por todo tipo de redes

Exportar/Importar Datos
El problema de compartir datos

Los problemas relacionados con  el intercambio de información entre aplicaciones y
máquinas informáticas es tan viejo como la propia informática.
El problema parte del hecho de haber realizado un determinado trabajo con un
software en un ordenador concreto y después querer pasar dicho trabajo a otro
software en ese u otro ordenador.
Los archivos binarios tienen la complicación de que para hacer ese proceso, el origen
y el destino de los datos  deben comprender cómo decodificar la información. Eso en
muchos casos ha sido un gran problema que ha obligado que en muchos casos todos los
trabajadores y trabajadoras hayan tenido que adaptarse al software de la empresa y por
supuesto en toda la empresa utilizar dicho software.
En la informática actual eso es aún más problema al tener una necesidad de
disponibilidad global del trabajo y además la posibilidad de ver dicho trabajo en
dispositivos de todo tipo como mini ordenadores, PDA o incluso teléfonos móviles.

Por ello poco a poco han aparecido formatos binarios de archivo que han sido
estándares de facto (aunque no han sido reconocidos por ningún organismo de
estándares) como por ejemplo el formato documental PDF, el formato de imagen JPEG,
la música MP3 o el formato MPEG de vídeo.
Pero sigue habiendo empresas que utilizan formato propio por la idea de que sus
formatos de archivo  están directamente relacionados con la calidad de su software es
decir razonan que el software que fabrican es muy potente y necesitan un formato
binario propio compatible con esa potencia. De ahí que muchas veces la opción para
exportar e importar datos sea utilizar conversores, capaces de convertir los datos de un
formato a otro (por ejemplo de Word a Open Office; de MP3 a MOV de Apple, etc.).
El texto como el formato más versátil

Sin embargo hay un formato de archivo que cualquier dispositivo es capaz de entender.
El texto. La cuestión es que el texto sólo es capaz de almacenar  texto plano; es decir
simplemente caracteres. Pero no información más compleja como hojas de cálculo,
imágenes, etc.
Por ello se  intenta que el propio texto sirva para almacenar otros datos.
Evidentemente no es posible usar texto para almacenar por ejemplo  imágenes, pero sí
otras cosas. Para ello dentro del archivo habrá contenido que no se interpretará como
texto sin más sino como otro tipo de información. Es decir texto que contiene marcas
especiales. Desde el principio hay dos campos en los que está idea ha funcionado bien:
en las bases de datos y en  los procesadores de texto. Actualmente el éxito de Internet
ha permitido espolear esta tecnología.
Hay un problema con el texto, puesto que es un formato tan universal, su contenido
siempre es visible y por lo tanto es peligroso como fuente para almacenar  datos
confidenciales. Los binarios tampoco lo son, porque los principales formatos se pueden
abrir con el software apropiado; pero cifrar la información es una operación puramente
binaria. Por ello el texto puro no se suele utilizar para esta tarea.