XML

De WikiLingua.net

Extensible Markup Language (XML)
Extensió d'arxiu: .xml
Tipus d'ACARONI: application/xml, text/xml
Desenvolupat per: World Wide Web Consortium
Tipus de format: Llenguatge de marcat
Estès de: SGML
Estès a: XHTML, RSS, Atom, ...
Estàndard(és): 1.0 (Fourth Edition)
1.1 (Second Edition)

XML, sigla en anglès de I xtensible Markup Languagellenguatge de marques extensible»), és un metalenguaje extensible d'etiquetes desenvolupat pel World Wide Web Consortium (W3C). És una simplificació i adaptació del SGML i permet definir la gramática de llenguatges específics (de la mateixa manera que HTML és al seu torn 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 d'aquests llenguatges que usen XML per a la seva definició són XHTML, SVG, MathML.

XML no ha nascut només per a la seva aplicació en Internet, sinó que es proposa com un estàndard per a l'intercanvi d'informació estructurada entre diferents plataformes. Es pot usar en bases de dades, editors de text, fulles de càlcul i gairebé qualsevol cosa imaginable.

XML és una tecnologia senzilla que té a la seva al voltant unes altres que la complementen i la fan molt més gran i amb unes possibilitats molt majors. Té un paper molt important en l'actualitat ja que permet la compatibilidad entre sistemes per a compartir la informació d'una manera segura, fiable i fàcil.

Taula de continguts

[editar] Història

XML prové d'un llenguatge inventat per IBM en els anys setanta, anomenat GML (Generalized Markup Language), que va sorgir per la necessitat que tenia l'empresa d'emmagatzemar grans quantitats d'informació. Aquest llenguatge va agradar a la ISO, pel que en 1986 van treballar per a normalitzar-ho, creant SGML (Standard Generalized Markup Language), capaç d'adaptar-se a un gran ventall de problemes. A partir d'ell s'han creat altres sistemes per a emmagatzemar informació.

En l'any 1989 Tim Berners Llegeix va crear la web, i juntament amb ella el llenguatge HTML. Aquest llenguatge es va definir en el marc de SGML i va anar de lluny l'aplicació més coneguda d'aquest estàndard. Els navegadors web no obstant això sempre han posat poques exigències al codi HTML que interpreten i així les pàgines web són caòtiques i no compleixen amb la sintaxis. Aquestes pàgines web depenen fortament d'una forma específica de lidiar amb els errors i les ambigüitats, el que fa a les pàgines més fràgils i als navegadors més complexos.

Una altra limitació de SGML és que cada document pertany a un vocabulario fix, establert pel DTD. No es poden combinar elements de diferents vocabularios. Així mateix és impossible per a un intèrpret (per exemple un navegador) analitzar el document sense tenir coneixement del seu gramática (del DTD). Per exemple, el navegador sap que abans d'una etiqueta <div> ha d'haver-se tancat qualsevol <p> prèviament obert. Els navegadors van resoldre això incloent lògica ad hoc per a l'HTML, en comptes d'incloure un analizador genèric. Ambdues opcions, de totes maneres, són molt complexes per als navegadors. Es va buscar llavors definir un subconjunto del SGML que permeti:

  • Barrejar elements de diferents llenguatges. És a dir que els llenguatges siguin extensibles.
  • La creació d'analizadores simples, sense cap lògica especial per a cada llenguatge.
  • Començar de zero i fer hincapié en què no s'accepti mai un document amb errors de sintaxis.

Per a fer això XML deixa de costat moltes característiques de SGML que estaven pensades per a facilitar l'escriptura manual de documents. XML en canvi està orientat a fer les coses més senzilles per als programes automàtics que necessitin interpretar el document.

[editar] Avantatges del XML

  • És extensible, el que vol dir que una vegada dissenyat un llenguatge i lloc en producció, igual és possible estendre-ho amb l'addició de noves etiquetes de manera que els antics consumidors de la vella versió encara puguin entendre el nou format.
  • L'analizador és un component estàndard, no és necessari crear un analizador específic per a cada llenguatge. Això possibilita l'ocupació d'un dels tants disponibles. D'aquesta manera s'eviten bugs i s'accelera el desenvolupament de l'aplicació.
  • Si un tercer decideix usar un document creat en XML, és senzill entendre la seva estructura i processar-ho. Millora la compatibilidad entre aplicacions.

[editar] Estructura d'un document XML

La tecnologia XML cerca donar solució al problema d'expressar informació estructurada de la manera més abstracta i reutilizable possible. Que la informació sigui estructurada vol dir que es compon de parts bé definides, i que aquestes parts es componen al seu torn d'altres parts. Llavors es té un arbre de trossos d'informació. Exemples són un tema musical, que es compon de compassos, que estan formats al seu torn per notes. Aquestes parts es diuen elements, i les hi assenyala mitjançant etiquetes.

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

A continuació es mostra un exemple per a entendre l'estructura d'un document XML:

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

Aquí està l'exemple de codi del DTD del document "Edit_Missatge":

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!-- Aquest és el DTD d'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  (Parrafo)>
                    <!ELEMENT Parrafo (#PCDATA)>

[editar] Documents XML bé formats

Els documents denominats com "bé formats" (de l'anglès well formed) són aquells que compleixen amb totes les definicions bàsiques de format i poden, per tant, analitzar-se correctament per qualsevol analizador sintáctico (parser) que compleixi amb la norma. Se separa això del concepte de validesa que s'explica més avanci.

  • Els documents han de seguir una estructura estrictament jerárquica amb el que respecta a les etiquetes que delimitan els seus elements. Una etiqueta ha d'estar correctament inclosa en una altra, és a dir, les etiquetes han d'estar correctament anidadas. Els elements amb contingut han d'estar correctament tancats.
  • Els documents XML només permeten un element arrel del que tots els altres siguin part, és a dir, sol poden tenir un element inicial.
  • Els valoris atributs en XML sempre han d'estar tancats entre comillas simples o dobles.
  • El XML és sensible a majúscules i minúscules. Existeix un conjunt de caràcters anomenats espais en blanc (espais, tabuladores, tornades de carro, salts de línia) que els processadors XML tracten de forma diferent en el marcat XML.
  • És necessari assignar noms a les estructures, tipus d'elements, entitats, elements particulars, etc. En XML els noms tenen alguna característica en comuna.
  • Les construccions com etiquetes, referències d'entitat i declaracions es denominen marques; són parts del document que el processador XML espera entendre. La resta del document entre marques són les dades "entendibles" per les persones.

[editar] Parts d'un document XML

Un document XML està format pel prólogo i pel cos del document.

[editar] Prólogo

Encara que no és obligatori, els documents XML poden començar amb unes línies que descriuen la versió XML, el tipus de document i altres coses.

El prólogo conté:

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

[editar] Cos

A diferència del prólogo, el cos no és opcional en un document XML, el cos ha de contenir un i sol un element arrel, característica indispensable també perquè el document estigui ben format.

[editar] Elements

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


[editar] Atributs

Els elements poden tenir atributs, que són una manera d'incorporar característiques o propietats als elements d'un document. Han d'anar entre comillas.

[editar] Entitats predefinidas

Entitats per a representar caràcters especials perquè, d'aquesta forma, no siguin interpretats com marcat en el processador XML.


[editar] Seccions CDATA

És una construcció en XML per a especificar dades utilitzant qualsevol caràcter sense que s'interpreti com marcat XML. Solament s'utilitza en els atributs. No confondre amb 2(#PCDATA) que és per als elements. Permet que caràcters especials no trenquin l'estructura. Ej:

<![CDATA[" contingut especial: áéíóúñ& "]]>

[editar] Comentaris

Comentaris a manera informativa per al programador que han de ser ignorats pel processador.

Els comentaris en XML tenen el següent format:

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

[editar] Validesa

Que un document estigui "ben format" solament es refereix a la seva estructura sintáctica bàsica, és a dir, que es compongui d'elements, atributs i comentaris com XML especifica que s'escriguin. Ara bé, cada aplicació de XML, és a dir, cada llenguatge definit amb aquesta tecnologia, necessitarà especificar quin és exactament la relació que ha de verificar-se entre els distints elements presents en el document.

Aquesta relació entre elements s'especifica en un document extern o definició (expressada com DTD (Document Type Definition = Definició de Tipus de Document) o com XSchema). Crear una definició equival a crear un nou llenguatge de marcat, per a una aplicació específica.

[editar] Document type definition (DTD)

La DTD defineix els tipus d'elements, atributs i entitats permeses, i pot expressar algunes limitacions per a combinar-los. Els documents XML que s'ajusten al seu DTD són denominats vàlids.

[editar] Declaracions tipus element

Els elements han d'ajustar-se a un tipus de document declarat en una DTD perquè el document sigui considerat com vàlid.

[editar] Models de contingut

Un model de contingut és un patró que estableix els subelementos acceptats, i l'ordre en què s'accepten.

[editar] Declaracions de llista d'atributs

Els atributs s'usen per a afegir informació addicional als elements d'un document.

[editar] Tipus d'atributs

  • Atributs CDATA i NMTOKEN
  • Atributs enumerats i notaciones
  • Atributs ANEU i IDREF

[editar] Declaració d'entitats

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

  • Internes o externes
  • Analitzades o no analitzades
  • Generals o parametrizadas

[editar] Espais de noms

Els espais de noms XML permeten separar semánticamente els elements que formen un document XML.

[editar] XML Schemas (XSD)

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

[editar] Avantatges dels Schemas enfront dels DTDs

  • Usen sintaxis de XML, al contrari que els DTDs.
  • Permeten especificar els tipus de dades.
  • Són extensibles.

[editar] Eines per a treballar amb documents XML

De fet qualsevol processador de text, que sigui capaç de produir arxius txt és capaç de generar XML, encara que en els entorns de desenvolupament com Eclipse o Visual Studio, es facilita, ja que reconeix els formats i ajuda a generar un XML bé format.

[editar] Llenguatges creats usant XML

[editar] Extensible Stylesheet Language (XSL)

EL Llenguatge de Fulla d'Estil Extensible (iXtensible Stylesheet Language, XSL) és una família de llenguatges que permeten descriure com els arxius codificados en xml seran formateados (per a mostrar-los) o transformats. Hi ha tres llenguatges en aquesta família: XSL Transformations (XSLT), XSL Formatting Objects (XSL-FO)i XML Path Language.

[editar] Llenguatge d'enllaci XML (XLINK)

XLink és una aplicació XML que intenta superar les limitacions que tenen els enllacis d'hipertext en HTML. És una especificació que encara està en desenvolupament.

[editar] Altres tecnologies

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

  • Simple Outline XML: és un XML simplificado que es pot convertir sense problemes en XML complet.
  • YAML i OGDL. Aquests dos són fitxers de sol text que no estan emparentados amb XML com el SOX, abans comentat. Més Informació
  • BBCode. Aquest té un ús molt restringit per a donar format gens més.
  • Slip

També hi ha almenys un llenguatge basat en XML en format binario, anomenat EBML.

[editar] Vegi's també

  • Ver el portal sobre XML Portal:Informàtica Contingut relacionat amb Informàtica.
  • XML-RPC Protocol de trucada de procediment remot (RPC) que utilitza XML per a codificar les dades.
  • SOAP Protocol de trucades a mètodes remots i intercanvi de missatges XML utilitzant tecnologia d'objectes.

[editar] Enllaços externs