Introducción ao XML e as Linguaxes de Marcas

De Wiki do Ciclo ASIR do IES de Rodeira

Índice

Introducción ás Linguaxes de Marcas.

O termo “marcado” ven das prácticas que se realizan nas empresas de impresión que consistían en facer marcas nos manuscritos ou borradores mediante anotaciones a man indicando instruccións para a impresión nos marxes e no texto. Durante moito tempo, esta tarefa a realizaban tipógrafos expertos coñecidos como “marcadores” ou “marcadores de copia” que indicaban no texto que fonte, estilo e tamaño se tiña que aplicar a cada parte, e logo pasaba o resultado para realizar a tipografía.

Unha linguaxe de marcado ou linguaxe de marcas é unha forma de codificar un documento de xeito que xunto coa información incorpora etiquetas ou marcas que aportan datos sobre a súa presentación ou a súa estructura. Históricamente o marcado utilízase moito na industria editorial e na comunicación para crear formatos do texto independentes da información a visualizar e do dispositivo de impresión. Por exemplo, os procesadores de texto máis comúns utilizan unha linguaxe de marcas para indicar o formato do documento, particularmente formatos derivado de XML coma ODF (Open Document Format) no caso de Open Office ou OOXML (Office Open XML) no caso de Microsoft Word.

Tipos de Linguaxes de Marcado.

As linguaxes de marcas utilizadas hoxe en día poden clasificarse en tres grupos:

  • Linguaxes de Marcas de Presentación

E o sistema que utilizaba MS Word e moitos outros procesadores de texto, consiste en colocar códigos antes do texto indicando as súas características, coma “subraiado” ou “Palatino, xustificado á dereita”. Este sistema non proporciona demasiada flexibilidade e non facilita a reutilización, pero permite diseñar páxinas atractivas con pouco esforzo.

O marcado de presentación casi sempre se utiliza en sistemas de publicación que as ocultan ó usuario ofrecendo interfaces WYSIWYG (What You See Is What You Get).

  • Linguaxes de Marcas Procedurales

Este tipo de linguaxes de marcado inclue ferramentas tradicionais do mundo Unix como TeX (LaTeX) ou PostScript (de especial relevancia nas impresoras). As marcas primitivas son presentacionais do mesmo xeito que falamos nas linguaxes de presentación, pero ademáis se poden indicar macros e “subrutinas” que poden ser chamadas polo seu nome, ademáis de poder manipular a “posición gráfica” no documento. Un procesador da linguaxe de marcas procesará o texto marcado do principio ó fin seguindo as instruccións atopadas. As marcas no texto con este tipo de marcado normalmente son visibles e manipuladas directamente polo autor. Hoxe en día unha parte moi grande de libros científicos e de investigación están deseñados e publicados utilizando este tipo de linguaxe de marcas, particularmente TeX. Con este tipo de linguaxes un usuario experto é capaz de conseguir formatos de texto completamente profesionais.

Os usuarios do marcado procedural a miudo recurren a creación de macros e subrutinas cada vez máis elaborados. Por exemplo, podemos agrupar unha serie de instruccións que producen texto San Serif en negriña a 16 puntos e centrado e chamarlle “título”. A partir de aquí podemos definir outro tipo de linguaxe de marcado.

  • Linguaxes de marcas descriptivas

A idea é que o marcado non ten que indicar que facer co texto, o que ten que facer e indicar que é o texto, qué representa. E decir, o describe. O obxectivo é a separación da estructura do documento do uso que logo se queira facer de él .

Deste xeito podemos etiquetar unha parte dun texto coma <titulo>, e outra como <cabeceira 1> ou <corpo do documento>. O xeito de presentación variará segun esté definida no sistema a presentación deses elementos, e variando esa presentación variará a visualización do documento, sen necesidade de cambiar nada do documento orixinal. Ademáis o uso que se pode facer da información de marcado non está limitado a impresión, se non que pode ser dun ámbito moito maior convertíndose deste xeito nun marcado de propósito xeral.

A primeira linguaxe en facer unha distinción clara entre a estructura do documento é a súa presentación foi Scribe que introduciu a idea de separar o estilo do marcado e o deseño dunha gramática que controlara o uso dos elementos descriptivos.

A finais dos 80, a idea de que o marcado debía centrarse na estructura do documento e deixar a presentación visual ó intérprete deu lugar a creación da linguaxe SGML (Standard Generalized Markup Language). SGML especificou unha sintaxe para incluir o marcado nos documentos, ademáis de describir que etiquetas se permiten e donde nun documento separado que recibiu o nome de DTD (Document Type Definition) ou Schema. Esto permitiu os autores crear e utilizar calqueira marcado que desexaran, seleccionando as etiquetas que tiveran máis sentido para eles e dándolles o nome que consideraran oportunos, polo tanto, podemos considerar SGML coma unha meta-linguaxe da que derivaron múltiples linguaxes de marcado como DocBook, HTML ou XML.

A división entre estas tres categorías ás veces e algo borrosa. Nos sistemas de proceso de textos modernos o marcado presentacional (que é o que utilizamos para a ferramenta WYSYWYG) a miudo se almacena nun sistema orientado o marcado descriptivo, como XML, que logo é procesado de xeito procedural polas distintas implementacións. Os documentos construidos en sistemas de marcado descriptivos como TeX, poden utilizarse para crear sistemas de marcado de maior nivel que resultan máis descriptivos, coma LaTeX.

Nos últimos anos apareceron múltiples linguaxes de marcado pequenas e non estándar desenvoltas para crear texto con formato mediante o navegador Web para utilizalas ne Wikis e foros. Un exemplo é a linguaxe de marcado utilizado pola Wikipedia.

A Linguaxe de Marcado XML (eXtensible Markup Language).

O obxectivo principal de XML foi a simplificación de SGML enfocando o seu deseño a un problema particular: O manexo de documentación en Internet. XML é tamén unha meta-linguaxe, coma SGML, permitindo ós usuarios crear as etiquetas de marcado que consideren necesarias e describir os seus posibles usos. A adopción de XML foi moi rápida, xa que é a súa vez un documento SGML, de xeito que os usuarios e o software xa existente podían traballar con este formato fácilmente. Ademáis, XML eliminou moitas das características máis complexas de SGML para simplificar a elaboración de documentos e publicacións. Hoxe en día XML é moi utilizado para o intercambio de datos entre aplicacións.

A partir de XML desenvolvéronse rápidamente moitas linguaxes de amplio uso como son Atom, RSS, XHTML e SOAP, e a maioría dos procesadores de textos desenvolveron formatos de arquivo basados en XML como ODF (Open/Libre Office) ou OOXML (MicroSoft Office).

En realidade XML é un conxunto de estándares relacionados entre sí e que son:

  • XSL, eXtensible Style Language. Permite definir follas de estilo para os documentos XML e inclúe capacidade para a transformación de documentos.
  • XML Linking Language, inclúe Xpath, Xlink e Xpointer. Determinan aspectos sobre os enlaces entre documentos XML e permiten acceder selectivamente á información.
  • XML Namespaces. Proveen un contexto ao que se aplican as marcas dun documento de XML que serve para diferencialas de outras co mesmo nome válidas noutros contextos.
  • XML Schemas. Permiten definir restriccións que se aplicarán a un documento XML e as etiquetas e tipos de contido que terá a linguaxe XML deseñada. Actualmente os máis usados son las DTD.

Entre as múltiples ventaxas que nos ofrece XML podemos citar:

  • XML permite separar a información da presentación.

Particularmente, permitirá separar a información que queremos amosar de como a queremos amosar (por exemplo nunha páxina web mediante HTML).

Si queremos facer unha páxina que amose información que varía con frecuencia, deberíamos estar editando o HTML da páxina continuamente. A información codificada en XML permite que mediante ferramentas estándar se podan xerar as páxinas HTML automáticamente.

  • XML simplifica o intercambio de información, o transporte de datos e o intercambio de plataformas.

O ser un formato estándar soportado por múltiples ferramentas e consistir en texto plano fai que a comunicación de información codificada en XML e a súa transformación sexa extremadamente simple.

Estructura dun documento XML.

Podemos clasificar a información presente nun documento XML en marcado e contido. As aplicacións encargadas de procesar os documentos XML deben poder distiguir o marcado do contido aplicando unhas reglas sintácticas simples:

  • Todas as cadeas de caracteres que forman unha marca ou ben comenzan polo caracter “<” e finalizan con “>” (etiquetas ou Tags) ou comenzan por “&” e rematan con “;” (entidades). O texto que non é marcado, é contido.

As etiquetas que se utilizan para indicar as marcas se dividen a súa vez en marcas de inicio (por exemplo <capítulo>) e marcas de finalización (</capítulo>) que poden incluir entre as dúas un contido e marcas valeiras (<novaliña/>) que non teñen contido. As entidades se utilizan para representar caracteres reservados ou de difícil presentación como &aacute; (á) ou &lt; (<).

Si necesitamos especificar datos sen que os caracteres que formen parte de eles se interpreten como marcado XML, se pode especificar mediante unha sección CDATA:

   <![CDATA[ </nowiki>contido especial: áéíóúñ&]]>

As etiquetas poden ter atributos, que definen algunha característica particular dunha etiqueta para o contido que pecha, por exemplo: <capítulo autor=”Xavi Taboada”> ... </capítulo>.

O contido dunha etiqueta XML tamén chamado elemento fillo, pode ser calqueira información incluindo novas etiquetas XML, formando así unha árbore XML.

Un documento XML comenza sempre pola declaración xml. A declaración xml é unha etiqueta sen contido que indica entre outras cousas qué versión de xml se vai a utilizar e que codificación de caracteres: <?xml version="1.0" encoding="UTF-8" ?>. A continuación se especifica a etiqueta raíz que englobará todo o contido do documento XML. Exemplo:

  <?xml version="1.0" encoding="UTF-8" ?>
  <lista_reproduccion modo=”random”>
     <cancion>
        <interprete>Pink Floyd</interprete>
        <album>The Wall</album>
        <titulo>Mother</titulo>
        <archivo>/discoteca/pinkfloyd/thewall/mother.mp3</archivo>
        <portada>/discoteca/covers/thewall.png</portada>
     </cancion>
     <cancion>
        <interprete>RadioHead</interprete>
        <album>The Bends</album>
        <titulo>Black Star</titulo>
        <archivo>/discoteca/radiohead/thebends/blackstar.mp3</archivo>
        <portada>/discoteca/covers/thebends.png</portada>
     </cancion>
  </lista_reproduccion>

Unha etiqueta especial son os comentarios: <!-- o que nos queiramos <comentar> -->

Os DTD e os verificadores XML

Os documentos XML deben estar ben formados, e decir, cumplen unha serie de reglas sintácticas:

  • So conten caracteres Unicode legais codificados correctamente.
  • Os caracteres especiais (como < e &) so se utilizan para a súa tarefa de marcado.
  • As etiquetas de comenzo e fin e as etiquetas valeiras están correctamente anidadas, sen que falte ningunha nin se solapen.
  • Os nomes das etiquetas son sensibles as maiúsculas, as etiquetas de comenzo e fin deben coincidir.
  • Existe un único elemento raíz que conten todos os outros elementos.

Calqueira documento que non cumpla as reglas para estar ben formado, non é XML. Os procesadores XML avisarán dos erros e pararán o proceso.

Ademáis de estar ben formados, os documentos XML deben ser válidos. Esto significa que os documentos conteñen unha referencia a unha definición do documento (DTD (Document Type Definition)), que todos os elementos e atributos utilizados están declarados no DTD e que siguen as reglas gramaticais que este DTD especifica.

Os procesadores de XML se poden clasificar como con validación ou sen validación dependendo si realizan una verificación da validez do documento. Si o procesador atopa un erro de validación o proceso continuará.

Os DTD son exemplos de esquemas ou gramáticas que indican o conxunto de elementos que se poden utilizar nun documento, que atributos se poden aplicar a eles e en qué orde, as relacións pai/fillo permitidas e incluso o contido permitido en cada etiqueta. A especificación do DTD no documento XML realízase xusto despois da declaración xml coa seguinte sintaxe:

   <!DOCTYPE elementoRaíz>
   <!DOCTYPE elementoRaíz SYSTEM referenciaURIdoDTD>
   <!DOCTYPE elementoRaíz PUBLIC identificadorPúblico referenciaURIdoDTD>

Os espacios de nomes.

Os espacios de nomes XML utilízanse para proporcionar nomes de elementos e atributos únicos nun documento XML.Unha instancia XML pode conter elementos ou atributos de máis de un vocabulario XML, si a cada vocabulario lle asignamos un espacio de nomes entonces é posible resolver a ambiguedade entre os elementos e atributos que se chaman igual. Un exemplo podería ser un documento XML que conten referencias a un cliente e un producto. Ambos, o cliente e o producto, teñen un elemento fillo chamado id. As referencias a este elemento id resultarán polo tanto ambiguas; Facendo que este elemento esté en distintos espacios de nomes resolverá a ambiguedade.

   <ventas xmlns:nsc="http://www.w3.org/TR/html4" xmlns:nsp=“xmlns:http://www.w3schools.com/furniture”>
      <cliente>
         <nsc:id>97221</nsc:id>
      </cliente>
      <producto>
         <nsp:id>A00003</nsp:id>
      </producto>
   </ventas>

O alcance da declaración dun prefixo de espacio de nomes comprende dende a etiqueta de inicio do elemento XML na que se declara ata a etiqueta final dese elemento.

XML e a WWW

XML é unha linguaxe especialmente utilizada a través de Internet e as súas aplicacións, entre elas podemos distinguir:

  • Linguaxes orientadas o marcado de páxinas Web: XHTML.
  • Linguaxes orientadas á sindicación de contidos: Atom. RSS.
  • Linguaxes orientadas ó intercambio de información e execución remota de procesos: SOAP (Simple Object Access Protocol).

O XHTML é unha un dialecto de XML que adapta HTML as exixencias máis estrictas de XML, facendo así que sexa moito máis simple o seu procesamento e independizar a información a visualizar do formato en que se amosará esa información ademáis de permitir o uso de espacios de nomes e a verificación automática da validez do documento.

O protocolo HTTP, navegadores e servidores Web.

Os documentos HTML ou XHTML se almacenan nun ordenador central, que recibe solicitudes de documentos de outros ordenadores e os envía como resposta. Estas peticións e respostas se realizan mediante un protocolo de comunicacións especialmente deseñado para este propósito, chamado HTTP (HyperText Transport Protocol). As aplicacións encargadas de recoller as peticións, ler as páxinas solicitadas e envialas os seus destinatarios reciben o nome de servidores web ou servidores http, os máis importantes son Apache e IIS (Internet Information Server). Hoxe en día o servidor web Apache sirve o 56% dos sitios web do mundo por un 24% de IIS. As aplicacións encargadas de solicitar os documentos ós servidores web reciben o nome de clientes web ou navegadores, sendo os máis coñecidos IE, Firefox, Opera, Google Chrome ou Safari. O número de peticións total dos navegadores IE supoñen un 60% das peticións na rede mentras que Firefox ten unha cuota do 23%.

Introducción a HTML (Hypertext Markup Language).

HTML é unha derivación de SGML que hoxe en día é o principal recurso para a elaboración das páxinas web. Consiste nun conxunto de etiquetas que definen a apariencia e función das distintas partes que compoñen unha páxina web. Como derivación de SGML, a linguaxe HTML está definida por un DTD e permite a comprobación da súa validez.A versión inicial e máis sinxela de HTML foi a 2.0, posteriormente saíron as seguintes versións:

  • 3.2
  • 4.0, que aparecía en tres versións distintas:
    • strict:Non se permite o uso de elementos que van ser eliminados en futuras versións nin a maior parte dos atributos de presentación, requirindo o uso de follas de estilo para unha boa visualización.
    • transitional: Permítese o suso de todos os elementos.
    • frameset: E unha variante de transitional que permite o uso de marcos (frames).
  • 4.01 (similar a 4.0)

Hoxe en día está en desenvolvemento a versión 5, que incorpora importatísimas novidades como o soporte para vídeo. O tipo de HTML a utilizar se especificará no inicio do documento mediante unha etiqueta DOCTYPE, por exemplo:

   <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

Introducción a XHTML.

XHTML é un rediseño do HTML seguindo as normas máis estrictas de XML como un intento de evitar as páxinas web mal construídas e facilitar o seu correcto procesamento polos distintos navegadores. Os tipos de XHTML son similares os equivalentes HTML. A versión actual de XHTML é a 1.0, e ten variacións do mesmo tipo que o HTML (strict, transitional, frameset).