[HOME PAGE] [STORES] [CLASSICISTRANIERI.COM] [FOTO] [YOUTUBE CHANNEL]

Extensible Markup Language - Viquipèdia

Extensible Markup Language

De Viquipèdia

XML, de l’anglès eXtensible Markup Languagellenguatge de marques extensible»), és un metallenguatge extensible, d’etiquetes, desenvolupat pel World Wide Web Consortium (W3C). És una simplificació i adaptació de l’experimentat SGML, i permet definir la gramàtica de llenguatges específics (de la mateixa manera que HTML és, alhora, un llenguatge definit per SGML). Per tant, XML no és realment un llenguatge en particular, sinó una manera de definir llenguatges per a diferents necessitats. Alguns dels llenguatges que empren XML per a la seva definició són XHTML, SVG, MathML. XML no ha nascut només per a la seva aplicació a Internet, sinó que es proposa com a un estàndard per a l’intercanvi d’informació estructurada entre diferents plataformes. Es pot utilitzar per a bases de dades, editors de text, fulls de càlcul i per moltes altres aplicacions diverses. XML és una tecnologia relativament senzilla que té al seu voltant altres que la complementen i la fan notablement més extensa, a més de proporcionar-li unes possibilitats molt més grans. A l’actualitat té un paper molt important, ja que permet la compatibilitat entre sistemes, permetent de compartir informació d’una manera segura, fiable i fàcil.


Taula de continguts

[edita] Història

XML prové d’un llenguatge inventat per IBM als anys setanta, anomenat GML (General Markup Language), i que va ser creat per la necessitat que tenia l’empresa d’emmagatzemar grans quantitats d’informació. Aquest llenguatge va agradar a la ISO, i al 1986 van començar a treballar per tal de normalitzar-lo, creant el llenguatge SGML (Standard General Markup Language), que era capaç d’adaptar-se a un ampli ventall de problemes. A partir d’aquest SGML s’han creat altres sistemes d’emmagatzematge d’informació.

L’any 1989 Tim Berners Lee va crear la web i, juntament amb ella, el llenguatge HTML. Aquest llenguatge es va definir en el marc del SGML, i va ser l’aplicació més coneguda d’aquest estàndard. De tota manera, els navegadors web sempre han posat poques exigències al codi HTML que interpreten, i per això les pàgines web són caòtiques i no compleixen estrictament la sintaxi. Aquestes pàgines web depenen, fonamentalment, d’una manera específica d’actuar davant els errors i les ambigüitats, el què fa que les pàgines siguin més fràgils i els navegadors més complexes.

Una altra limitació del SGML és que cada document pertany a un vocabulari fix, establert per la DTD (Document Type Definition, Definició del tipus de document). No es poden combinar elements de diferents vocabularis. D’aquesta manera, és impossible per a un intèrpret (per exemple, un navegador) analitzar el document sense tenir coneixement de la seva gramàtica (de la DTD). Per exemple, el navegador sap que abans d’una etiqueta <div> s’ha d’haver tancat qualsevol <p> obert prèviament. Els navegadors ho resolgueren incloent lògica ad hoc per a HTML, en lloc d’incloure un analitzador genèric. Qualsevol de les dues opcions és molt complexa per als navegadors. Va ser llavors quan es va definir un subconjunt del SGML que permetia:


  • Combinar elements de diferents llenguatges. És a dir, que els llenguatges fossin extensius.
  • La creació d’analitzadors simples, sense cap lògica especial per cada llenguatge.
  • Començar des de zero i remarcar que mai s’accepti un document amb errors de sintaxi.

Per tal d’aconseguir-ho, XML deixa de banda moltes característiques del SGML que estaven pensades per tal de facilitar l’escriptura manual de documents. XML, en canvi, està orientat a fer les coses més senzilles per als programes automàtics que necessiten interpretar el document.

[edita] Estructura d’un document XML

La tecnologia XML busca donar solució al problema d’expressar informació estructurada de la manera més abstracte i reutilitzable possible. Per informació estructurada entenem que es composa de parts ben definides, i que aquelles parts es composen d’altres parts. S’aconsegueix un arbre amb trossos d’informació. Es podria comparar amb un tema musical, que es composa de compassos, i aquests estan formats per notes. Cadascuna d’aquestes parts es diuen elements. Se’ls senyala mitjançant etiquetes.

Una etiqueta consisteix en una marca feta al document, que senyala una porció d’aquest com un element, un tros d’informació amb un sentit clar i definit. Les etiquetes tenen la forma <nom>, on nom és el nom de l’element al que està senyalant.

A continuació hi ha un exemple per entendre l’estructura d’un document XML:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE Edit_Missatge SYSTEM "Llista_dades_missate.dtd" 
[<!ELEMENT Edit_Missatge (Missatge)*>]>
<Edit_Missatge>
  <Missatge>
    <Remitent>
      <Nom>Nom del remitent</Nom>
      <Mail> Correu del remitent </Mail>
    </Remitent>
    <Destinatari>
      <Nom>Nom del destinatari</Nom>
      <Mail> Correu del destinatari</Mail>
    </Destinatari>
    <Text>
      <Parraf>
      Aquest és el meu document, amb una estructura molt senzilla. No conté atributs ni entitats...
      </Parraf>
    </Text>
  </Missatge>
</Edit_Missatge>

Aquí hi ha l’exemple de codi de la DTD del document “Edit_missatge”:

<?xml version="1.0" encoding="ISO-8859-1" ?>
 <!-- Aquesta és la DTD de Edit_Missatge -->
<!ELEMENT Missatge (Remitent, Destinatari, Assumpte, Text)*>
          <!ELEMENT Remitent (Nom, Mail)>
                    <!ELEMENT Nom    (#PCDATA)>
                    <!ELEMENT Mail   (#PCDATA)>
           <!ELEMENT Destinatari (Nom, Mail)>
                    <!ELEMENT Nom    (#PCDATA)>
                    <!ELEMENT Mail   (#PCDATA)>
           <!ELEMENT Assumpte (#PCDATA)>
          <!ELEMENT Text  (Parraf)>
                    <!ELEMENT Parraf (#PCDATA)>

[edita] Documents XML ben conformats

Els documents anomenats ben conformats (de l’anglès well formed) són aquells que acompleixen totes les definicions bàsiques de format i poden, en conseqüència, ésser analitzats correctament per qualsevol analitzador sintàctic (parser) que segueixi la norma. Distingirem aquest concepte del de validesa, que s’explica més endavant.

  • Els documents han de seguir una estructura estrictament jeràrquica pel què respecta a les etiquetes que delimiten els seus elements. Una etiqueta ha d’estar correctament inclosa dins d’una altra. Els elements amb contingut han d’estar correctament tancats.
  • Els documents XML només permeten un element arrel del què la resta en formin part, és a dir, només poden tenir un element inicial.
  • Els valors atributs en XML sempre han d’estar tancats entre cometes simples o dobles.
  • L’XML és sensible a majúscules i minúscules. Existeix un conjunt de caràcters anomenats espais en blanc (espais, tabuladors, retorns de carro, salts de línia) que els processadors XML tracten de forma diferent en el marcatge XML.
  • És necessari assignar noms a les estructures, tipus d’elements, entitats, elements particulars, etc. En XML els noms tenen alguna característica en comú.
  • Les construccions tals com etiquetes, referències d’entitat i declaracions s’anomenen marques; són parts del document que el processador XML espera entendre. La resta del document entre marques són les dades comprensibles per les persones.


[edita] Parts d’un document XML


[edita] Pròleg

Tot i no ser obligatori, els documents XML poden començar amb unes línies que descriuen la versió XML, el tipus de document i d’altres coses. El pròleg conté:

  • Una declaració XML. És la sentència que declara el document com un document XML.
  • Una declaració del tipus de document. Enllaça el document amb la seva DTD, o bé aquesta pot estar inclosa a la pròpia declaració, o ambdues coses al mateix temps.
  • Un o més comentaris i instruccions de processament.

[edita] Cos

A diferència del pròleg, el cos no és opcional en un document XML. Ha de contenir un únic element arrel, característica indispensable també per a què el document estigui ben format.

[edita] Elements

Els elements XML poden tenir contingut (més elements, caràcters o ambdós), o bé ésser elements buits.

[edita] Atributs

Els elements poden tenir atributs, que són una manera d’incorporar característiques o propietats als elements d’un document.

[edita] Entitats predefinides

Entitats per a representar caràcters especials per tal que no siguin interpretats com a marcatge al processador XML.

[edita] Seccions CDATA

És una construcció en XML per a especificar dades utilitzant qualsevol caràcter sense que s’interpreti com a marcatge XML. Només s’utilitza en els atributs. No confondre amb (#PCDATA) que és per als elements.

[edita] Comentaris

Comentaris de caire informatiu per al programador que han d’ésser ignorats pel processador. Els comentaris en XML tenen el següent format:

<!-- Això és un comentari -->
  <!-- Un altre comentari -->

[edita] Validesa

Que un document sigui ben conformat únicament parla de la seva estructura sintàctica bàsica, és a dir que es composi d'elements, atributs i comentaris com XML mana que s’escriguin. Ara bé, cada aplicació d’ XML, és a dir, cada llenguatge definit amb aquesta tecnologia, necessitarà especificar quina és exactament la relació que s’ha de verificar entre els diferents elements presents en el document. Aquesta relació entre elements s’especifica en un document extern o definició expressada com DTD o com Xschema. Crear una definició equival a crear un nou llenguatge de marcat per a una aplicació específica.

[edita] Document type definition (DTD)

La DTD defineix els tipus d’elements, atributs i entitats permeses, i pot expressar algunes limitacions per combinar-los. Els documents XML que s’ajusten a la seva DTD s’anomenen vàlids.

[edita] Declaracions tipus element

Els elements han d’ajustar-se a un tipus de document declarat en una DTD per tal que el document sigui considerat com a vàlid.

[edita] Models de contingut

Un model de contingut es un patró que estableix els sub-elements acceptats i l’ordre en què s’accepten.

[edita] Declaracions de llista d’ atributs

Els atributs s’utilitzen per afegir informació addicional als elements d’un document.

[edita] Tipus d’ atributs

  • Atributs CDATA i NMTOKEN.
  • Atributs enumerats i notacions.
  • Atributs ID i IDREF.

[edita] Declaració d’entitats

XML fa referència a objectes que no han de ser analitzats sintàcticament segons les regles XML, mitjançant l’ús de entitats. Les entitats poden ser:

  • Internes o externes.
  • Analitzades o no analitzades.
  • Generals o parametritzades.

[edita] XML Schemas

Un Schema és similar a una DTD. Defineix quins elements pot contenir un document XML, com estan organitzats i quins atributs i de quin tipus poden tenir els seus elements.

[edita] Avantatges dels Schemas davant les DTDs

  • Utilitzen sintaxis de XML, contràriament a la que utilitzen les DTDs.
  • Permeten especificar els tipus de dades.
  • Són extensibles.

[edita] Eines per treballar amb documents XML

Qualsevol processador de textos que sigui capaç de produir arxius .txt és capaç de generar XML, encara que en els entorns de desenvolupament com Eclipse o Visual Studio]] resulta més fàcil, ja que reconeix els formats i ajuda a generar un XML ben conformat.

[edita] Llista de tecnologies XML

[edita] Extended Stylesheet Language (XSL)

El llenguatge de Full d’Estil Extensible (eXtensible Stylesheet Language, XSL) és una família de llenguatges que permeten descriure com els arxius codificats en XML seran formatats (per mostrar-los) o transformats. Hi ha tres llenguatges en aquesta família: XSL Transformations (XSLT), XSL formatting Objects (XSL-FO) i XML Path Language.

[edita] Llenguatge d’enllaç XML (XLINK)

Xlink és una aplicació XML que intenta superar les limitacions que tenen els enllaços d’hipertext en HTML. És una especificació que encara es troba en fase de desenvolupament.

[edita] Altres tecnologies

  • Fulls d’estil
  • XPointer
  • Fulls d’estil en cascada
  • JDOM
  • SAX
  • STAX

Hi ha qui opina que XML és massa pesat per algunes aplicacions i difícil d’editar amb un editor de text simple. Per això val la pena esmentar algunes alternatives més lleugeres i simples. Els llenguatges de marques lleugeres:

  • Simple Outline XML (SOX): És un XML simplificat que es pot convertir sense problemes en XML complet.
  • YAML i OGDL: Aquests dos fitxers de text que no estan emparentats amb XML com el SOX, abans comentat.
  • BBCode. Té un ús molt restringit, exclusivament per donar format.
  • Slip
  • També existeix com a mínim un llenguatge basat en XML en format binari. S’anomena EBML.


[edita] Crítica

[edita] Avantatges

  • Està basat en text.
  • Suporta Unicode, permetent així la comunicació amb pràcticament tots el idiomes escrits.
  • Pot representar les estructures de dades del món dels ordinadors: registres, llistes i arbres.
  • L’estricta sintaxi, i els requeriments d’anàlisi sintàctica d’aquesta, fan que els algorismes d’anàlisi hagin de ser extremadament simples, eficients i coherents.
  • És extensible, el què permet que un cop creat el llenguatge sigui possible d’expandir-lo gràcies a la creació de noves etiquetes.
  • Mantenir la compatibilitat entre versions antigues i més noves és relativament senzill.
  • XML és vastament utilitzat com a format per a l’emmagatzematge i processat de documents, tant online com offline.
  • Està basat en els estàndards internacionals.
  • Permet la validació emprant llenguatges esquemàtics, tals com XSD o Schematron. Això comporta diverses facilitats a diferents àmbits, com per exemple el disseny de [[software]].
  • L’estructura jeràrquica és convenient per la majoria de tipus de documents.
  • Els arxius són creats com a text pla, cosa que els fa menys restrictius que d’altres de propietaris.
  • Al ser una plataforma independent és relativament més immune als canvis tecnològics.
  • Un fragment de l’element d’un document ben format de XML és també un document ben format en XML.

[edita] Inconvenients

  • La sintaxi és redundant.
  • La redundància del llenguatge pot arribar a afectar a l’eficiència de l’aplicació degut a l’augment dels costos d’emmagatzematge, transmissió i processament.
  • XML és el parent més detallat de formats de transmissió alternatius també basats en text.
  • No dóna suport intrínsec als diferents tipus de dades. No proporciona, així, una noció específica de enter, cadena de caràcters, booleà, etc.
  • El model jeràrquic utilitzat es queda curt al costat del model orientat a objectes o el model relacional.
  • Expressar la relació entre nodes que se superposen (no jeràrquicament) requereix un esforç extra.
  • La utilització d’espais en blanc en XML és molt problemàtica i el suport d’aquests pot resultar difícil d’aplicar correctament a un analitzador de XML.
  • XML és representat sovint com a auto documentat però aquesta descripció ignora alguns aspectes crítics.

[edita] Vegeu també

[edita] Enllaços externs