Linguaxes de marcas

De MediaWiki
Ir a la navegación Ir a la búsqueda


Clasificación das linguaxes
Uso de HTML vs XHTML
Relacionado con linguaxes de marcas...

As linguaxes de marcas

Breve reseña histórica

Precursores das linguaxes de marcas

A finales dos anos 60 ideanse as primeiras linguaxes de marcas para a preparación de documentos de texto.

Nos 70 creansecrearon varias normas de linguaxes de marcas (GenCode, GML) para o seu uso na industria editorial.

Nacemento de SGML

En 1986 crease da man de IBM o SGML (Standard Generalized Markup Language), unha norma extraordinariamente complexa e publicada como norma ISO 8879 en 1986.

É unha metalinguaxe que posibilita definir linguaxes de marcado. Permite a reutilización, faciltar o control e a integridade dos datos, así coma a súa portabilidade e adaptabilidade... pero é demasiado complexo.

Nacemento do HTML

En 1989, Tim Berners-Lee baseouse na sintaxe do SGML para crear o HTML, a linguaxe de marcas da web. Pensada inicialmente para o seu uso no laboratorio europeo CERN, a web extendeuse globalmente de xeito moi rápido. Para tutelar o crecemiento e a organización da web creouse en 1994 o W3C, un organismo internacional formado por empresas, institucións e investigadores.

O seu primeiro traballo foi normalizar o HTML, incorporando as novidades que aparecían continuamente nos navegadores.

Nacemento do XML

O crecemento da web seguía aumentado as presións para ampliar o HTML para todo tipo de usos. O W3C decidiu que la solución non podía ser seguir ampliando o HTML, se non crear unhas reglas xenerais para que calquera puidera crear linguaxes de marcas axeitdos as súas necesidades', pero mantendo unhas estruturas e sintaxe comunes que permitiran compatibilizalos e tratalos coas mesmas ferramentas. Ese conxunto de reglas é o XML (eXtensible Markup Language, Linguaxe de Marcas Extensible); a súa primera versión publicouse en 1998.

Evolucionando XML, XHTML e Web Semántica

Nos primeros anos do século XXI el W3C planteó uhna triple liña de traballo:

  • desenvolver o XML, creando todo tipo de tecnoloxías para procesar documentos XML que puideran aplicarse a calquer linguaxe de marcas baseado en XML
  • o HTML dos anos 90 non cumplía as normas del XML (xa que o HTML era anterior ó XML), o W3C aprobou no 2000 o XHTML, unha versión do HTML que sí que cumplía as regras do XML, poñendo fin ó desenvolvemento do HTML.
  • poñer en marcha a iniciativa da Web semántica para dotar de "intelixencia" á web, basándose no XML.

Fracaso parcial pola escasa adopción do XML na web

Vinte anos despois, este plan fracasou. O W3C cumplíu a súa parte elaborando e aprobando decenas de recomendacións nesas tres liñas de traballo... pero o mercado non tivo interese en adoptalas, especialmente na web.

Os fabricantes de navegadores non aceptaron o XHTML e crearon en 2004 unha nova organización (a WHATWG) para continuar o desenvolvemento do HTML que o W3C deixara abandonado.

Nacemento de HTML5 e evolución futura

No 2007 o W3C recoñeceu o seu fracaso e retomou o dessenvolvemento do HTML (incluíndo nel unha versión XHTML, baseada en XML). En 2014 o W3C publicou a recomendación HTML 5, que inclúe variantes:

  • HTML 5, non baseada en XML
  • XHTML 5, baseada en XML
  • HTML políglota, que xa foi abandonado.

Co tempo foronse publicando versións actualizadas do HTML 5, pero realmente o desenvolvemento do HTML xa non se fai no seno do W3C, se non no da WHATWG.

Situación actual e alternativas

O XML convirtiuse na ferramenta básica para o intercambio e almacenamiento de información en moitos sectores da informática; pero co tempo o mercado foi evolucionando noutras direccións, empregando tecnoloxías máis sinxelas non baseadas no XML (JSON parece un gran competidor no momento actual).

Para terminar, a iniciativa da Web semántica (ainda supoñendo que as tecnoloxías propostas foran as axeitadas para permitir o procesamento intelixente da información contida nas páxinas web) non tivo oportunidade de éxito xa a web non adoptou case ningún dos compoñentes da web semántica.

O W3C recoñece o fracaso e no 2013 quedan pechados a práctica totalidade dos grupos de traballo adicados á web semántica e no 2018 o W3C tamén pecha prácticamente todos os grupos de traballo adicados ó XML. Probablemente o principal motivo do fracaso sexa que o XML, coa súa exixencia de ausencia de erros nos documentos, é demasiado estricto para unha web que en gran parte todavía se elabora manualmente.

Pero ainda que a web teña maioritariamente abandonado ó XML, este segue sendo utilizando en moitos ámbitos para o almacenamento e transmisión da información, polo que previsiblemente o seu desenvolvemento será retomado nun futuro dentro ou fora do W3C.

Características

Cando alguén escribe un texto, está utilizando marcas. Por exemplo, os espazos indican límites entre as palabras, as comas establecen separacións entre frases e os puntos marcan o fin dunha sentenza. Aínda que non nos damos conta xa empregamos marcas, porque o noso sistema de escritura así o require.

As marcas non son parte do texto en si mesmo, xa que se o lemos en voz alta non as pronunciamos. Con todo, interpretamos estas marcas e xesticulamos para transmitir a información axeitadamente. Por exemplo, un signo de interrogación fará que cambiemos a nosa entoación ou incluso que preguemos o entrecello.

Dende un punto de vista máis técnico, unha linguaxe de marcas (markup language, en inglés) é un sistema que permite incluír anotacións, chamadas marcas ou etiquetas, nun texto. A finalidade disto pode ser diversa. Por exemplo, indicar como se vai amosar o texto cando se visualice nun navegador web. Así, a linguaxe HTML (HyperText Markup Language) utiliza a etiqueta

<b>...</b>

para indicar que o texto ten que se representar en negra:

<b>Isto veríase en negra</b>

Outro uso típico das linguaxes de marcas é na estruturación de datos para permitir así o seu tratamento automatizado por parte dun programa informático. Por exemplo, a continuación amósase un posible formato de datos estruturado para un libro:

<libro>
 <titulo>Sempre en Galiza</titulo>
 <autor>Alfonso Daniel Rodríguez Castelao</autor>
 <editor>Galaxia</editor>
 <prezo>€21.50</prezo>
 <tema>Ensaio</tema>
 <isbn>978-84-8288-729-6</isbn>
</libro>

Se eses mesmos datos non estiveran organizados o seu tratamento informático sería moito máis complicado. Existen máis exemplos de utilización destas linguaxes que se irán vendo nas seguintes seccións.

Ás linguaxes de marcas tamén se lles chama linguaxes de etiquetaxe ou marcado e entre as súas características principais atopamos as seguintes:

  • Separan o contido da súa presentación. É dicir, por un lado temos o contido do documento propiamente dito e, por outro, como queremos que se amose. Por exemplo, a presentación dun documento non será igual se se usa un dispositivo móbil, un computador ou unha impresora.
  • Codifícanse mediante ficheiros de texto plano, non binarios. Pódense, por tanto, codificar as marcas cun simple editor de texto. Con todo, existen multitude de programas de edición para as linguaxes de marcas que facilitan a codificación.
  • Facilitan a interoperabilidade. O uso de ficheiros de texto plano posibilita o seu intercambio entre programas distintos e incluso entre sistemas operativos diferentes, facilitando a independencia con respecto o dispositivo final.
  • Flexibilidade. Pode combinarse o mesmo ficheiro con outras linguaxes, coma HTML con PHP ou JavaScript (coa etiqueta <script>.
  • Empregan etiquetas ou marcas. As etiquetas (tamén chamadas tags, do inglés) permiten marcar o texto e, normalmente, van misturadas co propio documento sobre o que se traballa (o que se coñece coma compacidade). Unha marca ten a seguinte forma:
<nome_etiqueta>Elemento</nome_etiqueta>
A ter en conta. Os caracteres dos ficheros de texto pónde codificar con distintos códigos dependendo do idioma ou alfabeto que se necesite usar. Por exemplo: ASCII, ISO-8859-15, UTF-8...
Ollo! Son as linguaxes de marcas linguaxes de programación? Non! Aínda que se poden usar conxuntamente con linguaxes de programación, as linguaxes de marcado non posúen en xeral as características propias destes: variables, operadores, sentenzas condicionais, bucles, etc. 


Resumindo, as lingúaxes de marcado permitennos xenerar documentos estruturados. Pero... por qué queremos que os documentos estén estruturados?

  • Para darlle estilo as partes (por exemplo que un título teña un tipo de letra e o corpo do texto outra)
  • Para acadar o procesamento mediante algoritmos: os documentos estruturados convíertense en estruturas de datos (árbores) que podemos percorrer usando linguaxes de programación

Identificación de ámbitos de aplicación

As linguaxes de etiquetaxe teñen unha ampla aplicación en multitude de ámbitos. Cítanse a continuación algúns deles:

Marcado de documentos de tipo xeral
Por exemplo, Docbook é unha linguaxe de marcas que permite a etiquetaxe de documentos para todo tipo de material e programas informáticos. Outro exemplo é a linguaxe de marcación para wikis denominada Wikitexto, da que, desgraciadamente, non existe un estándar que defina a súa sintaxe.
Tecnoloxías Internet
Sen dúbida é un dos ámbitos de aplicación onde máis se usan as linguaxes de marcas. De feito, a evolución da World Wide Web está directamente ligada a linguaxes de marcación como SGML (Standard Generalized Markup Language), HTML, XML, etc.
Linguaxes de marcación especializadas
Aplícanse a ámbitos específicos como as matemáticas (OpenMath), o modelado de realidades virtuais (VRML) ou os videoxogos (BulletML), entre outros.

Un dos ámbitos de aplicación onde as linguaxes de marcas teñen un papel moi relevante (en especial o XML) é nas tecnoloxías web e en especial na web semántica. Neste sentido, a evolución das linguaxes de marcas determinaron a World Wide Web, tal e como a coñecemos hoxe en día.

Clasificación

Adóita agruparse as linguaxes de marcas en tres posibles categorías, aínda que non son excluíntes. De feito, existen linguaxes, como o HTML, que poderían formar parte de máis dunha delas:

Linguaxes de marcado de presentación
Son os que usaban ata hai pouco os procesadores de textos e codifican como se debe presentar o documento. As etiquetas indican, por exemplo, "isto está en cursiva", "isto está xustificado cara a dereita", etc. Este tipo de linguaxes son útiles para maquetar a presentación dun documento para a súa lectura, pero non serven para o procesamento automático da información xa que son pouco flexibles e difíciles de manter. Frecuentemente, o usuario non é consciente do marcado xa que se empregan programas de alto nivel para realizar o marcado. O RTF (Rich Text Format) é un tipo de linguaxe de marcado deste tipo.
Linguaxes de marcado procedimentais
Coma as anteriores, están enfocadas cara á presentación do texto, con todo, as etiquetas poden incluír a execución dalgún comando ou rutina que indica como se ten que tratar o texto. Normalmente, as etiquetas son visibles para o usuario que edita o texto. Exemplos destas linguaxes son o TeX, LaTeX e Postcript.
Linguaxes de marcado descritivos
Nesta categoría atopamos ao XML (eXtensible Markup Language) e ao SGML. Ambos son estándares do W3C, que é o organismo encargado da estandarización das tecnoloxías sobre as que se sustenta a Web. Estas linguaxes non indican que facer co texto, senón que é o texto. Como o seu propio nome indica, descríbeno. A idea clave é que as marcas non determinan o procesamento do documento de maneira fixa (como nos procedimentais), xa que devandito procesamento determínase a partir das necesidades concretas, e benefíciase da estrutura lóxica do documento caracterizada a través das súas marcas.

Algunhas linguaxes de marcas

Tecnoloxias XML.PNG

Ademais da clasificación anterior, convén mencionar as principais linguaxes de marcas no eido das tecnoloxías Web:

SGML (Standard Generalized Markup Language)
En realidade é unha metalinguaxe, é dicir, úsase para crear outras linguaxes de marcas. Por exemplo, a gramática do HTML creouse a partir dela. É moi potente pero tamén complexa de utilizar. Motivo polo que se creou XML. Consulta un exemplo de documento SGML.
XML (eXtended Markup Language)
É un subconxunto de SGML. Por tanto, é tamén unha metalinguaxe pero moito máis doada de usar. A súa aplicación vai máis alá de Internet, sendo un estándar para o intercambio de información estruturada entre diferentes plataformas. Consulta un exemplo de documento XML.
HTML (HyperText Markup Language)

É a linguaxe de marcas máis coñecida xa que se usa para converter documentos de texto en páxinas web. Está bastante limitada xa que se pensou inicialmente para representar unicamente texto nun navegador web. Para solventar as súas carencias creouse XHTML. Consulta un exemplo de documento HTML.

XHTML
É unha reformulación de HTML en XML. Noutras palabras, emprega o mesmo vocabulario que HTML pero con regras sintácticas tomadas de XML, moito mais estritas. Consulta un exemplo de documento XHTML.

Outras linguaxes de marcas son:

MathML
Linguaxe para describir a notación matemática capturando a súa estrutura e contido. O obxectivo é permitir que as matemáticas sexan servidas, recibidas w procesadas na World Wide Web do mesmo xeito que HTML permitíu esta funcionalidade para o texto.
Markdown
Markdown é unha linguaxe de marcado lixeira que trata de conseguir a máxima lexibilidade e facilidade de publicación tanto na súa forma de entrada como de saída
TeX
TEΧ, escrito como TeX cando se escribe en texto plano, é un sistema de tipografía escrito por Donald E. Knuth, moi popular no ambiente académico, especialmente entre as comunidades de matemáticos, físicos e informáticos.
EPUB
Acrónimo da expresión inglesa electronic publication. Formato de ficheiro de libro electrónico que utiliza a extensión de archivo ".epub". É compatible con moitos lectores de libros electrónicos e hai software compatible para teléfonos intelixentes, tabletas e ordenadores
DocBook
Aplicación do estándar SGML/XML que se utiliza de manera máis destacada na área da documentación técnica, especialmente para documentar todo tipo de material e programas informáticos
Atom e RSS
Linguaxes derivadas de XML empregadas para a sindicación do contidos. Hai lección específica para aprender máis!
SCORM (Shareable Content Object Reference Model)
Conxunto de estándares e especificacións que permite crear obxectos pedagóxicos estruturados, coa finalidade de facilitar a portabilidade de contido de aprendizaxe, poder compartilo e reutilizalo
SVG (Scalable Vector Graphics)
Linguaxe XML que describe gráficos vectoriais bidimensionais, tanto estáticos como animados. Unha das características principais dos gráficos vectoriais é que non perden calidade ao seren ampliados
OWL (Web Ontology Language)
Linguaxe de marcado para publicar e compartir datos usando ontoloxías na WWW. OWL ten como obxectivo facilitar un modelo de marcado construido sobre RDF e codificado en XML.
VoiceXML (VXML) Voice eXtensible Markup Language
Definido polo World Wide Web Consortium (W3C), representa o estándar en formato XML para a creación de diálogos interactivos entre unha persona e un ordenador. A plataforma VoiceXML funciona de xeito similar a un navegador HTML: os documentos VoiceXML descárganse desde un servidor web e interprétanse e transfórmanse en voz por unha porta de enlace de voz residente no ordenador do usuario final.

HTML

HTML, siglas en inglés de HyperText Markup Language (‘linguaxe de marcado de hipertexto’), fai referencia á linguaxe de marcado para a elaboración de páxinas web.

Serve de referencia do software que conecta coa elaboración de páxinas web. Define unha estrutura moi básica e un código (denominado código HTML) para a definición de contido dunha páxina web, coma texto, imáxenes, videos, xogos, etc.

É un estándar a cargo do World Wide Web Consortium (W3C), organización adicada á estandarización de casi todas as tecnoloxías ligadas á web.

HTML considérase a linguaxe máis imporante sendo crucial na aparición, desenvolvemento e expansión da World Wide Web (WWW).

Exemplo básico

<!-- Exemplo de código HTML dun Ola mundo -->
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>HTML dun Ola mundo
    </title>
  </head>
  <body>
    <h1>Ola mundo!!!!
    </h1>
  </body>
</html>

Explícase con detalle no artigo HTML esta linguaxe e as súas respectivas etiquetas.

XML

O XML (eXtensible Markup Language) é un estándar que define unha metalinguaxe de marcas; porén, non hai un número fixo de etiquetas, e son os desarroladores os que poden definir os elementos que necesitan. Esa flexibilidade faino axeitado para ser adatado ó campo da aplicación que se desexe.

Que non é XML

XML non é:

  • Unha linguaxe de programación. Non hai compiladores de XML que xeneren executables a partir dun documento XML
  • Un protocolo de comunicación que permita enviar os datos. Algúns protocolos de comunicación para ese envío son HTTP ou FTP
  • Un sistema xestor de bases de datos; aínda que XML pode ser almacenado en bases de datos nativas, ou as relacionáis poden conter campos de tipo XML
  • Non é un formato propietario; non pertence a ningunha compañía.
Curiosidade. Cal é a relación entre SGML e XML? Pódese definir utlizando a regla 80/20: 80% da funcionalidade e 20% da complexidade!

Exemplo básico

Un exemplo básico de XML pode ser este:

<persoa>
  <nome> Paca </nome>
  <apelido1> Carballeira </apelido1>
  <apelido2> Pereira </apelido2>
</persoa>

Explicase con detalle esta linguaxe de marcado no artigo XML.

JSON

JSON

JSON é o acrónimo de JavaScript Object Notation: é un formato de texto sinxelo para o intercambio de datos. Podes ler a súa especificación para coñecer todos os detalles do mesmo, ou consultar o resumo na súa web.

JSON é texto plano (fácil de ler e escribir para os humáns) escrito na notación dos obxectos JavaScript, usado para enviar datos entre equipos, e é indepedente da linguaxe.

A sintaxe de JSON syntax é derivada da notación dos obxectos JavaScript, pero o formato JSON é simplemente texto. O código para ler e xenerar JSON existe en moitas linguaxes.

Emprégase en ocasións coma alternativa a XML no envío de datos, por exemplo en AJAX(Asynchronous JavaScript And XML, porque o procesado dun documento en formato JSON é máis sinxelo que o dun documento XML.

A información detallada atópase no artigo de JSON. Aquí so faremos unha breve comparación entre XML e JSON.

Exemplo básico e comparativa con XML

Imos comparar como se visualizan JSON e XML nun exemplo con catro rexistros de estudantes.

JSON style:

{"alumnado":[
   {"nome":"Ana", "idade":"23", "cidade":"Lugo"},
   {"nome":"Pedro", "idade":"28", "cidade":"Ferrol"},
   {"nome":"Lois", "idade":"32", "cidade":"Vigo"},
   {"nome":"Elena", "idade":"28", "cidade":"Cedeira"}
]}






XML style:

<alumnado>
  <alumno>
    <nome>Ana</nome> <idade>23</idade> <cidade>Lugo</cidade>
  </alumno>
  <alumno>
    <nome>Pedro</nome> <idade>28</idade> <cidade>Ferrol</cidade>
  </alumno>
  <alumno>
    <nome>Lois</nome> <idade>32</idade> <cidade>Vigo</cidade>
  </alumno>
  <alumno>
    <nome>Elena</nome> <idade>28</idade> <cidade>Cedeira</cidade>
  </alumno>
</students>

Coma se pode ver JSON é máis lixeiro comparado con XML. Tamén JSON pode tomar vantaxa do uso de arrays, opción que non é posible con XML.

Unha das vantaxes que tamén se adoitan indicar e que non é preciso contar con un XML parser para tratar os datos en formato JSON. JavaScript ten built in funcións para:

Convertir cadeas JSON en obxectos JavaScript:

JSON.parse()

Convertir un obxecto nunha cadea JSON:

JSON.stringify()

YAML

YAML é:

  • un formato de serialización de datos lexible por humanos inspirado en linguaxes coma XML, C, Python, Perl e no formato dos correos electrónicos.
  • un superconxunto de JSON que trata de superar algunhas das limitacións deste. Aínda que significativamente máis completo aínda pode considerarse lixeiro.
  • un acrónimo recursivo que significa YAML Ain't Markup Language (en galego, ‘YAML non é unha linguaxe de marcado’).

A comenzos do seu desenvolvemento, YAML significaba Yet Another Markup Language (‘outra linguaxe de marcado máis’) para distinguir o seu propósito centrado nos datos no lugar do marcado de documentos. Nembargantes dado que se usa frecuentemente XML para serializar datos e XML é unha auténtica linguaxe de marcado de documentos é razoable considerar YAML coma unha linguajxe de marcado lixeiro.

Son JSON e YAML linguaxes de marcado? Hai campo para o debate!

Exemplo e diferenzas con JSON

YAML vs JSON
YAML JSON
Fácil de ler para humáns Díficil de ler para humáns
Permite comentarios Non permite comentarios
Os caracteres de espzaos determinan a xerarquía Chaves e corchetes marcan aos arrays e obxectos
Pódese empregar comiñas sinxelas ou dobres Só permite comiñas dobres
O nodo raíz pode ser calquer tipo de datos válido O nodo raíz debe ser un obxecto ou un array

Cal é a principal diferenza? A lexibilidade (podes comprobalo visitando a súa web, que é en si código YAML válido).

Por ser YAML un superconxunto de JSON:

  • o código JSON será válido por un YAML parser.
  • é facilmente convertible código dun a outro con editores online ou ferramentas.

Exemplo de códig YAML:

YAML: YAML Ain't Markup Language™

What It Is:
  YAML is a human-friendly data serialization
  language for all programming languages.

YAML Resources:
  YAML Specifications:
  - YAML 1.2:
    - Revision 1.2.2      # Oct 1, 2021 *New*
    - Revision 1.2.1      # Oct 1, 2009
    - Revision 1.2.0      # Jul 21, 2009
  - YAML 1.1
  - YAML 1.0

Máis información no artigo.

Ferramentas

Editores

En Linux:

Podes atopar na Wikipedia máis información sobre editores HTML, con listaxe e comparativa dos mesmos

IDEs

Ferramientas de creación e edición XML

Ferramientas de procesamento

Para verificación, depuración e xeneración de documentación:

Complementos do navegador

Mozilla Firefox

Na sección Firefox para deseño e desenvolvemento veremos as posibilidades deste navegador.

Google Chrome

Na sección Chrome para deseño e desenvolvemento veremos as posibilidades deste navegador.

Resumo das linguaxes de marcas

  • Evolución histórica: primeiras linguaxes, SGML, HTML, XML, XHTML, HTML5...
  • Clasificación:
  • de procedemento
  • de presentación
  • descriptivos
  • Características comúns:
  • Texto plano
  • Interoperabilidade e independencia
  • Flexibles e fáciles de crear
  • Ámbitos de aplicación:
  • Páxinas web
  • Especificación de configuración
  • Servizos web
  • Algunhas linguaxes de marcas:
  • XML (en profundidade)
  • JSON
  • YAML (introdución)
  • Outras
  • Ferramentas
  • Editores
  • IDEs
  • Ferramentas de creación, validación, procesamento, transformación,..
  • Complementos dos navegadores
  • Elaboración de documentos ben formados
  • Estrutura xerárquica
  • Único elemento raíz
  • Etiquetas anidadas correctamente
  • Os valores dos atributos entre comiñas
  • Case-sensitive
  • Os nomes de etiquetas, elementos e atributos teñen que seguir unha nomenclatura específica
  • Os comentarios non poden ir dentro de etiquetas
  • Utlización de espazos de nomes en XML:
  • Declaración: <elemento xmlns:prefixo="URI" >

Exercicios

Referencias