XML SchemaXML Schema és un llenguatge d'esquema utilitzat per descriure l'estructura i les restriccions dels continguts dels documents XML d'una forma molt precisa, més enllà de les normes sintàctiques imposades pel mateix llenguatge XML. S'aconsegueix així, una percepció del tipus de document amb un alt nivell d'abstracció. Va ser desenvolupat pel World Wide Web Consortium (W3C) i va arribar al nivell de recomanació al maig de 2001. TerminologiaEl terme "XML Schema" és utilitzat amb diferents significats dins del mateix context de descripció de documents, i és important tenir presents les següents consideracions:
W3C Schema XMLEl World Wide Web Consortium (W3C) va començar a treballar en l'XML Schema el 1998. La primera versió es va convertir en recomanació oficial al maig de 2001. Una segona edició revisada està disponible des d'octubre de 2004. Aquesta recomanació está desenvolupada en tres parts:
(vegi Enllaços externs) ComponentsXML Schema és un llenguatge d'esquema escrit en XML, basat en la gramàtica i pensat per proporcionar una major potència expressiva que la DTD, més limitada en la descripció dels documents a nivell formal. Disposa d'eines per caracteritzar detalls concrets com a color, forma o textures i poder relacionar-los amb característiques més generals. Així aconseguim accedir a contingut caracteritzat mitjançant informació de petits detalls. Els documents esquema (normalment amb extensió .xsd d'XML Schema Definition (XSD)) es van concebre com una alternativa a la DTD, més complexa, intentant superar els seus punts febles i buscar noves capacitats a l'hora de definir estructures per a documents XML. La principal aportació d'XML Schema és el gran nombre dels tipus de dades que incorpora. D'aquesta manera, XML Schema augmenta les possibilitats i funcionalitats d'aplicacions de processament de dades, incloent tipus de dades complexes com dates, nombres i strings. Tipus de componentsEls esquemes es construeixen a partir de diferents tipus de components:
XML Schema supera moltes de les limitacions i febleses de les DTDs. Va ser dissenyat completament al voltant de namespaces i suporta tipus de dades típiques dels llenguatges de programació, a més de tipus personalitzats simples i complexos. Un esquema es defineix pensant en el seu ús final. AplicacionsXML Schema és el llenguatge probablement més utilitzat actualment en els sistemes de classificació de dades de qualsevol tipus en un suport electrònic (material digital i audiovisual). A més, està inclòs en l'estàndard més conegut i general en aquest camp, el MPEG-7. Els esquemes XML permeten definir les restriccions i condicions dels arxius XML als que s'associa, facilitant l'accés a la informació que contenen, tant des del punt de vista estructural com a semàntic. Com tots els llenguatges d'esquema de l'XML, l'XML Schema defineix un conjunt de regles que ha de complir un document de l'XML per ser considerat " válid " segons l'esquema associat. Tanmateix, a diferència de la major part dels altres llenguatges d'esquema, l'XML Schema aporta la possibilitat de recopilar informació d'estructura i contingut per obtenir el model de dades utilitzat en l'esquema. Aquesta funcionalitat denominada Post-Schema-Validation Infoset (PSVI), es realitza després de la validació del document, i incrementa els usos del llenguatge en combinació amb altres aplicacions o llenguatges. Per exemple, es pot utilitzar per transformar el document en una jerarquia d'objectes, als quals es pot accedir a través d'un llenguatge de programació orientada a objectes (OOP). NamespacesLa programació a l'XML Schema es basa en Namespaces. En podem trobar una analogia entre aquests i els anomenats packages en Java. Cada Namespace en conté uns elements i atributs que estan estretament relacionats amb el Namespace. Així, alhora, en cas de definir un element o un atribut d'un Namespace, sempre es crearà una connexió entre els diferents camps d'aquest. A més, aquesta forma de treballar, ens permet relacionar elements que no són en la mateixa Namespace però sí que mantenen una relació. Després d'escriure un document XML es pot confirmar la correcta realització mitjançant la validació d'esquemes XML: Validació XML. ExempleUn exemple de l'estructura d'un document esquema buit seria el següent: <?xml version="1.0" encoding="ISO-8859-1"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="0.1" xml:lang="es"> </xsd:schema> Un exemple de definició amb XML Schema seria el següent: <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="Llibre"> <xsd:complexType> <xsd:sequence> <xsd:element name="Títol" type="xsd:string"/> <xsd:element name="Autors" type="xsd:string" maxOccurs="10"/> <xsd:element name="Editorial" type="xsd:string"/> </xsd:sequence> <xsd:attribute name="preu" type="xsd:double"/> </xsd:complexType> </xsd:element> </xsd:schema> Podem veure com en ambdós casos s'inicien les declaracions indicant la versió de XML que s'utilitzarà i la codificació que s'usa. Aquests dos camps són necessaris per a poder interpretar l'esquema. A més, a la següent línia de codi podem veure com es redirecciona a l'usuari a la pàgina que ofereix les pautes de creació d'XML Schema en les que es basarà la descripció de l'esquema. L'element arrel s'anomena "Llibre" i té tres fills (elements niats) i un atribut. Els fills són "Títol", "Editorial" que han d'aparèixer una vegada i "Autors" que pot aparèixer d'una a deu vegades. El fet que estiguin agrupats en una seqüència indica que els elements han d'aparèixer en ordre, és a dir, primer el "Títol", després els "Autors" i finalment l'"Editorial". Els tres elements són de tipus string. L'atribut de llibre s'anomena "preu" i és de tipus double. Vegeu tambéTutorialsEnllaços externs |