lenguaje de marcas

21
Semana 1: Características de los lenguajes de marcas 1 Concepto de lenguaje de marcas La palabra marcado se originó en la industria de la publicación electrónica. En la publicación tradicional, el manuscrito se anota con instrucciones de diseño para el tipógrafo. Estas anotaciones se conocen como marcado. Un lenguaje de marcado o lenguaje de marcas es una forma de codificar un documento que, junto con el texto, incorpora etiquetas o marcas que contienen información adicional acerca de la estructura del texto o su presentación. Las marcas también están formadas de texto pero que es interpretado cuando se muestra el documento, estas marcas se suelen llamar también etiquetas. El lenguaje de marcas más extendido es el HTML, fundamento del World Wide Web. Los lenguajes de marcado suelen confundirse con lenguajes de programación. Sin embargo, no son lo mismo, ya que el lenguaje de marcado no tiene funciones aritméticas o variables, como sí poseen los lenguajes de programación. Tipos de Lenguajes de Marcas Se suele diferenciar entre dos clases de lenguajes de marcas: el marcado de procedimientos y el marcado descriptivo aunque en la práctica pueden combinarse varias clases en un mismo documento. Por ejemplo, el HTML contiene etiquetas puramente procedimentales, como la <b> de bold (negrita), junto con otras puramente descriptivas (p.e. el atributo href de <a>). El HTML también incluye el elemento <pre>, que indica que el texto debe representarse tal y como está escrito. El marcado de procedimientos Está enfocado hacia la presentación del texto, sin embargo, también es visible para el usuario que edita el texto. El programa que representa el documento debe interpretar

Upload: juan

Post on 03-Feb-2016

20 views

Category:

Documents


0 download

DESCRIPTION

que son sus usos

TRANSCRIPT

Page 1: lenguaje de marcas

Semana 1 Caracteriacutesticas de los lenguajes de marcas

1

Concepto de lenguaje de marcas La palabra marcado se originoacute en la industria de la publicacioacuten electroacutenica En la publicacioacuten tradicional el manuscrito se anota con instrucciones de disentildeo para el tipoacutegrafo Estas anotaciones se conocen como marcado

Un lenguaje de marcado o lenguaje de marcas es una forma de codificar un documento que junto con el texto incorpora etiquetas o marcas que contienen informacioacuten adicional acerca de la estructura del texto o su presentacioacuten Las marcas tambieacuten estaacuten formadas de texto pero que es interpretado cuando se muestra el documento estas marcas se suelen llamar tambieacuten etiquetas El lenguaje de marcas maacutes extendido es el HTML fundamento del World Wide Web Los lenguajes de marcado suelen confundirse con lenguajes de programacioacuten Sin embargo no son lo mismo ya que el lenguaje de marcado no tiene funciones aritmeacuteticas o variables como siacute poseen los lenguajes de programacioacuten

Tipos de Lenguajes de Marcas Se suele diferenciar entre dos clases de lenguajes de marcas el marcado de procedimientos y el marcado descriptivo aunque en la praacutectica pueden combinarse varias clases en un mismo documento Por ejemplo el HTML contiene etiquetas puramente procedimentales como la ltbgt de bold (negrita) junto con otras puramente descriptivas (pe el atributo href de ltagt) El HTML tambieacuten incluye el elemento ltpregt que indica que el texto debe representarse tal y como estaacute escrito El marcado de procedimientos Estaacute enfocado hacia la presentacioacuten del texto sin embargo tambieacuten es visible para el usuario que edita el texto El programa que representa el documento debe interpretar

Semana 1 Caracteriacutesticas de los lenguajes de marcas

2

el coacutedigo en el mismo orden en que aparece Por ejemplo para formatear un tiacutetulo debe haber una serie de directivas inmediatamente antes del texto en cuestioacuten indicaacutendole al software instrucciones tales como centrar aumentar el tamantildeo de la fuente o cambiar a negrita Inmediatamente despueacutes del tiacutetulo deberaacute haber etiquetas inversas que reviertan estos efectos En sistemas maacutes avanzados se utilizan macros que facilitan el trabajo ltigtltbgtltbiggt TITULO ltbiggtltbgtltigt La etiqueta ltigt indica que se escribiraacute el texto en cursiva La etiqueta ltbgt indica que se escribiraacute el texto en negrita La etiqueta ltbiggt indica que se escribiraacute el texto con un tamantildeo mayor El resultado seraacute el siguiente TITULO Algunos ejemplos de lenguajes de marcas de procedimientos son nroff troff TeX Este tipo de marcado se ha usado extensivamente en aplicaciones de edicioacuten profesional manipulados por tipoacutegrafos calificados ya que puede llegar a ser extremadamente complejo

Un documento en Tex podemos verlo a continuacioacuten

La formula cuadratica es $x_12=-bpmsqrtb^2-4cdot acdot c over 2 cdot a$ bye Con el texto de arriba deberiacuteas obtener algo que se viese como esto

La foacutermula cuadraacutetica es

El marcado descriptivo o semaacutentico

Utiliza etiquetas para describir los fragmentos de texto pero sin especificar coacutemo deben ser representados o en queacute orden es decir sirve para describir la estructura del documento separando un texto en los elementos que lo componen como tiacutetulo paacuterrafos pie etc Los lenguajes expresamente disentildeados para generar marcado descriptivo son el SGML y el XML

En los lenguajes de marcas descriptivos el formato estaacute separado del contenido permitiendo flexibilidad a la hora de reformatear el texto

Semana 1 Caracteriacutesticas de los lenguajes de marcas

3

Una de las virtudes del marcado descriptivo es su flexibilidad los fragmentos de texto se etiquetan tal como son y no tal como deben aparecer Estos fragmentos pueden utilizarse para maacutes usos de los previstos inicialmente Por ejemplo los hiperenlaces fueron disentildeados en un principio para que un usuario que lee el texto los pulse Sin embargo los buscadores los emplean para localizar nuevas paacuteginas con informacioacuten relacionada o para evaluar la popularidad de determinado sitio web

El marcado descriptivo estaacute evolucionando hacia lo que se denomina el marcado geneacuterico Los nuevos sistemas de marcado descriptivo estructuran los documentos en aacuterbol con la posibilidad de antildeadir referencias cruzadas Esto permite tratarlos como bases de datos en las que el propio almacenamiento tiene en cuenta la estructura

Un ejemplo de marcado descriptivo en XML podemos verlo a continuacioacuten

ltxml version=10 gt ltdoctype email system httpwwwsitioesDTDsemaildtdgt ltemail id=E1X108gt ltheadgt ltfromgt ltnamegtJesuacutes Vegasltnamegt ltaddressgtjvegasinforuvaesltaddressgt ltfromgt lttogt ltnamegtFulanitoltnamegt ltaddressgtfulanitounsitioesltaddressgt lttogt ltsubjectgtIntroduccioacuten a XMLltsubjectgt ltheadgt ltbodygt ltpgtEste es el guioacuten de la conferencia sobre XML Mira a ver queacute te parece Saludos jvegasltpgt ltattach encoding=mime name=ixmlhtml gt ltbodygt ltemailgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

4

XML

Introduccioacuten XML el lenguaje de marcas extensible (Extensible Markup Language) es un estaacutendar avalado por el W3C (Consorcio World Wide Web) para marcar documentos Permite que los disentildeadores creen sus propias etiquetas permitiendo la definicioacuten transmisioacuten validacioacuten e interpretacioacuten de datos entre aplicaciones y entre organizaciones Define una sintaxis geneacuterica utilizada para marcar datos con etiquetas sencillas y de faacutecil lectura

XML no es realmente un lenguaje en particular sino una manera de definir lenguajes para diferentes necesidades

XML estaacute disentildeado para trasladar datos de una forma eficiente e independiente del sistema o plataforma no para visualizar los datos Se propone un estaacutendar para el intercambio de informacioacuten estructurada entre diferentes plataformas Se puede usar en bases de datos editores de texto hojas de caacutelculo y casi cualquier cosa imaginable

XML por siacute soacutelo no hace nada soacutelo describe informacioacuten

Por ejemplo

ltnotagt ltparagtRaquelltparagt ltdegtJavierltdegt ltcabeceragtRecordatorioltcabeceragt ltmensajegtNo te olvides que quedamos para este fin de semanaltmensajegt ltnotagt

En XML las etiquetas definen la estructura y el significado de los datos queacute son los datos

Se utiliza un sistema para generar los datos y marcarlos con etiquetas XML y despueacutes procesar esos datos en otros muchos sistemas independientemente de la plataforma de hardware y del sistema operativo Esta portabilidad es la razoacuten por la que XML se ha convertido en una de las tecnologiacuteas maacutes populares para el intercambio de datos

XML no es soacutelo una herramienta de uso en sistemas de Web se utiliza como meacutetodo de intercambio y traspaso de informacioacuten entre muacuteltiples aplicaciones

XML no sustituye a HTML (no sirven para lo mismo)

‐ XML se encarga de trasladar los datos y su formato

‐ HTML se encarga de visualizar los datos

En XML no dependemos de un formato ya predefinido de etiquetas como en HTML Nos podemos inventar las etiquetas que necesitemos para definir nuestros datos es por esto por lo que XML es un lenguaje de meta‐marcas XML permite a

Semana 1 Caracteriacutesticas de los lenguajes de marcas

5

desarrolladores y escritores inventar los elementos que necesitan cuando los necesitan Los quiacutemicos pueden usar elementos que describen moleacuteculas y aacutetomos y los agentes inmobiliarios elementos que describen apartamentos pisos alquileres y ubicaciones La X de XML proviene de extensible lo que significa que el lenguaje se puede ampliar y adaptar para ajustarse a las distintas necesidades

El ejemplo siguiente muestra un documento XML sencillo Este documento se puede encontrar en un sistema de control de inventario o en una base de datos de existencias y marca los datos con etiquetas y atributos que describen el color el tamantildeo etc

Este documento es texto y se puede guardar en un archivo de texto Podemos editar este archivo con cualquier editor de textos como Notepad o vi

Los programas que realmente intentan interpretar el contenido del documento XML (es decir hacen algo maacutes que simplemente tratarlo como texto) van a usar un analizador sintaacutectico XML Este analizador es el responsable de dividir el documento en elementos atributos y otras piezas individuales Si en cualquier momento el analizador detecta una infraccioacuten de las reglas de una estructura bien formada de XML informa del error a la aplicacioacuten y detiene el anaacutelisis sintaacutectico A veces el analizador puede seguir leyendo el documento pasado el error original para detectar e informar de otros errores

Semana 1 Caracteriacutesticas de los lenguajes de marcas

6

Para preparar el manual hemos usado EditiX 2010 Tiene una versioacuten free que puedes bajar desde httpfreeeditixcomdownloadhtml

Evolucioacuten de XML XML es un descendiente de SGML el Lenguaje estaacutendar de marcas generalizadas (Standard Generalized Markup Language)El lenguaje que finalmente se convertiriacutea en SGML fue creado por un equipo de IBM dirigido por Charles F Goldfarb a finales de 1970 y fue desarrollado por cientos de personas hasta su adopcioacuten final como estaacutendar ISO en 1986 Es un lenguaje de marcas estructurado para documentos de texto Es muy eficaz y cosechoacute gran eacutexito en los sectores militares y gubernamentales de USA y en otros sectores que necesitaban formas de administrar documentos teacutecnicos con miles de paacuteginas de contenido

Un documento SGML se compone de tres partes o archivos

bull Declaracioacuten SGML

bull Declaracioacuten de tipo de documento (DTD)

bull Instancia de Documento

La declaracioacuten SGML caracteriza la DTD y por tanto las instancias de documento (que incluyen el contenido propiamente dicho) que se generen a partir de ella en teacuterminos de conjunto de caracteres usados y otros puntos opcionales de SGML Esta declaracioacuten puede ser omitida en cuyo caso se asumen unos grupos de caracteres por defecto y ninguna caracteriacutestica opcional

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 32ENgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

7

Esta cabecera indica que el DTD desarrollada por W3C es la versioacuten 32 para HTML y estaacute escrito en ingleacutes

Una clase de documentos tiene en comuacuten una gramaacutetica que define el marcado permitido en esa clase el marcado requerido y coacutemo debe ser utilizado dicho marcado en la instancia de documento El estaacutendar define esta gramaacutetica mediante la DTD SGML no especifica ninguacuten conjunto particular de elementos el conjunto de elementos que pueden utilizarse se define en la DTD

ltELEMENT DOCUMENTO - - (titulo contenido autor) gt ltELEMENT CONTENIDO - - (capitulo+) gt ltELEMENT CAPITULO - (subtitulo parrafo) gt

La instancia de documento lleva pues el contenido estructurado seguacuten el marco definido en la DTD y con las caracteriacutesticas fijadas por la declaracioacuten SGML

ltdocumentogt lttitulogtHIPERTEXTOlttitulogt ltautorgt MARIA JESUS LAMARCA ltautorgt ltcontenidogt

ltcapitulogt ltsubtitulogtEL NUEVO CONCEPTO DE DOCUMENTO EN LA CULTURA DE LA IMAGEN ltsubtitulogt ltparrafogt Doctorado Fundamentos Metodologiacutea y Aplicaciones de las Tecnologiacuteas Documentales y Procesamiento de la Informacioacuten ltparrafogt ltcapitulogt

ltcontenidogt ltdocumentogt El mayor eacutexito de SGML fue HTML que es una aplicacioacuten SGML Sin embargo HTML no permite su uso maacutes allaacute de la propia aplicacioacuten de disentildeo de paacuteginas web No podemos utilizar HTML para intercambiar datos entre bases de datos incompatibles ni para enviar cataacutelogos de productos actualizados a los sitios de venta HTML crea paacuteginas web y lo hace muy bien pero solo crea paacuteginas web

SGML fue la opcioacuten evidente para otras aplicaciones que aprovechaban Internet El problema residiacutea en que SGML era complicado (muy muy complicado) La especificacioacuten oficial SGML tiene aproximadamente 150 paacuteginas muy teacutecnicas y analiza muchos casos especiales y escenarios poco probables Es tan complejo que ninguacuten software lo ha implementado completamente

En 1996 Jon Bosak Tim Bray y otros empezaron a trabajar en una versioacuten ldquolivianardquo de SGML que conservaba la mayor parte de la eficacia de SGML a la vez que recortaba muchas opciones que habiacutean demostrado ser redundantes demasiado complicadas para su implementacioacuten confusas para los usuarios finales o simplemente inuacutetiles a lo largo de los 20 antildeos de experiencia con SGML El resultado en febrero de 1998 fue XML y obtuvo un eacutexito inmediato Muchos desarrolladores que sabiacutean que necesitaban

Semana 1 Caracteriacutesticas de los lenguajes de marcas

8

un lenguaje de marcas estructural pero que no podiacutean aceptar la complejidad de SGML adoptaron XML con confianza Se comenzoacute a usar en sectores tan variados como los tribunales o los criaderos de cerdos

Sin embargo XML 10 fue tan solo el principio El siguiente estaacutendar fueron los espacios de nombres (Namespaces) un esfuerzo para permitir que marcas de distintas aplicaciones con el mismo nombre se pudieran usar en el mismo documento sin conflicto Asiacute un documento sobre libros podiacutea tener un elemento titulo que haciacutea referencia al tiacutetulo del libro y elementos titulo para los tiacutetulos de los capiacutetulos y ambos sin presentar conflicto alguno

A continuacioacuten aparecioacute el Lenguaje de hojas de estilo extensible (XSL Extensible Stylesheet Language) una aplicacioacuten para transformar documentos XML en un formulario que podiacutea visualizarse en una paacutegina web Pronto aparecieron las transformaciones XSL (XSLT Transformations XSL)y los objetos de formato XSL (XSL‐FO XSL Formatting Objects) XSLT se ha convertido en un lenguaje de propoacutesito general para transformar un documento XML en otro ya sea para una presentacioacuten web o para cualquier otro propoacutesito y XSL‐FO sirve para dar formato PostScript a un documento XML

Para el direccionamiento de partes individuales del documento surge XPath y otra pieza del rompecabezas fue una interfaz para el direccionamiento desde un programa java javascript o C++ La API maacutes simple solamente trataba el documento como un objeto que conteniacutea a otros objetos Se inicioacute una labor dentro y fuera del W3C para definirlo como modelo de objeto de documento (DOM Document Object Model) para HTML Ampliar este esfuerzo a XML no resultoacute difiacutecil

Esta rica coleccioacuten de especificaciones solo dirige tecnologiacuteas que son principales para XML Se han desarrollado muchas maacutes y continuacutean hacieacutendolo a un ritmo acelerado Aplicaciones XML como SOAP utilizado en el intercambio de datos en los servicios web SVG para describir graacuteficos vectoriales MathML para el uso en matemaacuteticas Atom para la sindicacioacuten XForms para definir interfaces de usuario a base de formularios web WordprocessingML para el trabajo con procesadores de texto y miles de ellas maacutes XML ha demostrado por siacute mismo ser una base soacutelida para muchas y variadas tecnologiacuteas

Componentes de XML

Elementos XML Un elemento XML es cualquier cosa que incluya una marca de inicio una marca de fin y la informacioacuten o no que se encuentra entre ambas marcas ltpeliculagtLa Red Socialltpeliculagt

Atributos Modificador de una etiqueta XML Da una caracteriacutestica ampliada de la etiqueta definida Pueden utilizarse comillas dobles y simples indistintamente pero se debe abrir y cerrar con el mismo siacutembolo

Semana 1 Caracteriacutesticas de los lenguajes de marcas

9

ltpelicula categoria=DramagtLa Red Socialltpeliculagt ltpelicula categoria=Comediagt 2 tontos muy tontosltpeliculagt

Sintaxis XML bull Todas las marcas utilizadas en XML deben tener un inicio y un final no como

sucede en HTML bull Las marcas de XML tienen en cuenta que sean mayuacutesculas y minuacutesculas (las

marcas deben colocarse de forma exacta) bull Las marcas se deben cerrar en el mismo orden en que se abrieron bull Un documento XML debe tener un elemento raiacutez de partida bull Todos los atributos de XML deben colocarse entre comillas dobles bull Para colocar determinados caracteres reservados en XML se deben utilizar

cadenas de identificacioacuten bull Se pueden colocar comentarios en XML

Documento XML Aunque a primera vista un documento XML puede parecer similar a HTML hay una diferencia principal Un documento XML contiene datos que se autodefinen exclusivamente Un documento HTML contiene datos mal definidos mezclados con elementos de formato En XML se separa el contenido de la presentacioacuten de forma total Una forma de entender raacutepidamente la estructura de un documento XML es viendo un pequentildeo ejemplo

ltxml version=10gt ltDOCTYPE MENSAJE SYSTEM mensajedtdgt ltmensajegt

ltremitegt ltnombregtAlfredo Reinoltnombregt ltemailgtalfibiumcomltemailgt

ltremitegt ltdestinatariogt

ltnombregtBill Clintonltnombregt ltemailgtpresidentwhitehousegovltemailgt

ltdestinatariogt ltasuntogtHola Billltasuntogt lttextogt

ltparrafogtiquestHola queacute tal Hace ltenfasisgtmucholtenfasisgt que no escribes A ver si llamas y quedamos para tomar algoltparrafogt lttextogt

ltmensajegt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

10

Este mismo documento puede ser visto de forma graacutefica para comprender mejor la estructura de un documento XML

Realiza las Actividades 1 y 2

Estructura de un documento XML

Un documento XML tiene dos estructuras una loacutegica y otra fiacutesica

Fiacutesicamente el documento estaacute compuesto por unidades llamadas entidades Una entidad puede hacer referencia a otra entidad causando que esta se incluya en el documento Cada documento comienza con una entidad documento tambieacuten llamada raiacutez

Loacutegicamente el documento estaacute compuesto de declaraciones elementos comentarios referencias a caracteres e instrucciones de procesamiento todos los cuales estaacuten indicados por una marca expliacutecita Las estructuras loacutegica y fiacutesica deben encajar de manera adecuada

Los documentos XML se dividen en dos grupos documentos bien formados y documentos vaacutelidos

bull Bien formados Son todos los que cumplen las especificaciones del lenguaje respecto a las reglas sintaacutecticas sin estar sujetos a unos elementos fijados en un DTD De hecho los documentos XML deben tener una estructura jeraacuterquica muy estricta y los documentos bien formados deben cumplirla El documento debe de contener una soacutela raiacutez y todas las etiquetas estar correctamente anidadas

Semana 1 Caracteriacutesticas de los lenguajes de marcas

11

bull Vaacutelidos Ademaacutes de estar bien formados siguen una estructura y una semaacutentica determinada por un DTD sus elementos y sobre todo la estructura jeraacuterquica que define el DTD ademaacutes de los atributos deben ajustarse a lo que el DTD dicte Veremos maacutes adelante maacutes detalladamente lo que es un DTD pero podemos ir adelantando que un DTD permite especificar la estructura del documento y que el DTD puede estar separado del documento

Un fichero puede estar bien escrito seguacuten las reglas de XML (bien formado) pero no ldquotener ni pies ni cabezardquo ( no vaacutelido)

Aquiacute podemos ver otro ejemplo muy sencillo de documento XML

ltxml version= 10 encoding= UTF-8 standalone= yes gt ltfichagt

ltnombregt Angel ltnombregt ltapellidogt Barbero ltapellidogt ltdirecciongt cUlises 36 ltdirecciongt

ltfichagt La estructura baacutesica de un bloque XML se muestra en la siguiente figura

Semana 1 Caracteriacutesticas de los lenguajes de marcas

12

Lo primero que tenemos que observar es la primera liacutenea Con ella deben empezar todos los documentos XML ya que en ella se indica que el documento es XML Aunque es opcional es recomendable incluirla Puede tener varios atributos algunos obligatorios y otros no

bull version Indica la versioacuten de XML usada en el documento Es obligatorio ponerlo a no ser que sea un documento externo a otro que ya lo incluiacutea

bull encoding La forma en que se ha codificado el documento Se puede poner cualquiera y depende del parser el poder entender o no la codificacioacuten Por defecto es UTF‐8 aunque podriacutean ponerse otras como UTF‐16 US‐ASCII ISO‐8859‐1 etc No es obligatorio salvo que sea un documento externo a otro principal

bull standalone Indica si el documento va acompantildeado de un DTD (no) o no lo necesita (yes) en principio no hay porqueacute ponerlo porque luego se indica el DTD si se necesita Veremos los DTD maacutes adelante

Realiza la Actividad 3

Caracteriacutesticas de los documentos XML bien formados

Un documento XML se dice que estaacute bien formado si encaja con las especificaciones XML de produccioacuten lo que implica

Estructura jeraacuterquica de elementos

Los documentos XML deben seguir una estructura estrictamente jeraacuterquica con lo que respecta a las etiquetas que delimitan sus elementos Una etiqueta debe estar correctamente incluiacuteda en otra Asiacutemismo los elementos con contenido deben estar correctamente cerrados A continuacioacuten se muestra un ejemplo incorrecto y posteriormente otro ejemplo escrito correctamente

ltligtHTML ltbgt permite ltigt esto ltbgt ltigt Ejemplo incorrecto ltligtEn XML la ltbgt estructura ltigt es ltigt jeraacuterquica ltbgtltligt Ejemplo correcto

Realiza la Actividad 4

Semana 1 Caracteriacutesticas de los lenguajes de marcas

13

Etiquetas vaciacuteas

HTML permite elementos sin contenido XML tambieacuten pero la etiqueta debe ser de la siguiente forma ltelemento sin contenido gt A continuacioacuten se muestra un ejemplo incorrecto y posteriormente otro correcto

ltligtEsto es HTML ltbrgt en el que casi todo estaacute permitido ltligt

Hay que tener en cuenta que el siacutembolo lt siempre se interpreta como inicio de una etiqueta XML Si no es el caso el documento no estaraacute bien formado Para usar ciertos siacutembolos se usan las entidades predefinidas que se explican maacutes adelante

Un elemento vaciacuteo es el que no tiene contenido Por ejemplo

ltidentificador DNI=23123244 gt

ltlinea-horizontal gt

Al no tener una etiqueta de cierre que delimite un contenido se utiliza la forma ltetiqueta gt que puede contener atributos o no La sintaxis de HTML permite etiquetas vaciacuteas tipo lthrgt o ltimg src=gt En HTML reformulado para que sea un documento XML bien formado se deberiacutea usar lthr gt o ltimg src=

Atributos

Como se ha mencionado antes los elementos pueden tener atributos que son una manera de incorporar caracteriacutesticas o propiedades a los elementos de un documento

Por ejemplo un elemento chiste puede tener un atributo tipo y un atributo calidad con valores vascos y bueno respectivamente

ltchiste tipo=vascos calidad=buenogt Esto es un diacutea que Patxi y Josu van paseando ltchistegt

En una Definicioacuten de Tipo de Documento (DTD) se especifican los atributos que pueden tener cada tipo de elemento asiacute como sus valores y tipos de valor posible

Al igual que en otras cadenas literales de XML los atributos pueden estar marcados entre comillas simples () o doble () Cuando se usa uno para delimitar el valor del atributo el otro tipo se puede usar dentro

ltverdura clase=zanahoria longitud=15 y mediagt

ltcita texto=Hola buenos dias dijo eacutelgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

14

A veces un elemento con contenido puede modelarse como un elemento vaciacuteo con atributos Un concepto se puede representar de muy diversas formas pero una vez elegida una es aconsejable fijarla en el DTD y usar siempre la misma consistentemente dentro de un documento XML

Entidades Predefinidas

En XML 10 se definen cinco entidades para representar caracteres especiales y que no se interpreten como marcado en el procesador XML Es decir que asiacute podemos usar el caraacutecter lt sin que se interprete como el comienzo de una etiqueta XML por ejemplo Entidad Caraacutecter

ampamp amp amplt lt ampgt gt ampapos lsquo ampquot ldquo

ltgatogt ltnombregtMicifuacuteltnombregt ltrazagtPersaltrazagt

ltgatogt ltgato raza=Persagt

Micifuacute ltgatogt

ltgato raza=Persa nombre=Micifuacutegt

Secciones CDATA

Existe otra construccioacuten en XML que permite especificar datos utilizando cualquier caraacutecter especial o no sin que se interprete como marcado XML La razoacuten de esta construccioacuten llamada CDATA (Character DATA) es que a veces es necesario para los autores de documentos XML poder leerlo faacutecilmente sin tener que descifrar los coacutedigos de entidades Especialmente cuando son muchos

Como ejemplo el siguiente (primero usando entidades predefinidas y luego con un bloque CDATA) Podemos comprobar su uso en el siguiente ejemplo

ltejemplogt amplthtmlampgt ampltheadampgtamplttitlegtRock ampamp Rollamplttitleampgtampltheadampgt

ltejemplogt

ltejemplogt lt[CDATA[

lthtmlgt ltheadgtlttitlegtRock amp Rolllttitlegtltheadgt

]]gt ltejemplogt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

15

Como hemos visto dentro de una seccioacuten CDATA podemos poner cualquier cosa que no seraacute interpretada como algo que no es asiacute Existe una excepcioacuten y es la cadena ]]gt con el que termina el bloque CDATA Esta cadena no puede utilizarse dentro de una seccioacuten CDATA

Comentarios

A veces es conveniente insertar comentarios en el documento XML que son ignorados por el procesado de la informacioacuten y las reproducciones del documento Los comentarios tienen el mismo formato que los comentarios de HTML Es decir comienza por la cadena lt‐‐ y termina con ‐‐gt

lt‐‐ Esto es un comentario ‐‐gt

Se pueden introducir comentarios en cualquier parte del documento salvo dentro de las declaraciones etiquetas u otros comentarios

Realiza la actividad 5 y 6

Espacios de nombre (NameSpaces)

En XML los espacios de nombre (namespace) tienen dos propoacutesitos

1 Distinguir entre elementos y atributos de distintos vocabularios con distintos significados que puedan compartir el mismo nombre

2 Agrupar todos los elementos y atributos relacionados de una sola aplicacioacuten

XML para que el software pueda reconocerlos con facilidad El primer propoacutesito es maacutes faacutecil de explicar y entender pero el segundo es maacutes importante en la praacutectica La extensibilidad es una facultad que no es gratuita En un entorno distribuido esta facultad deberaacute ser administrada para evitar conflictos Los espacios de nombre son una solucioacuten para ayudar a administrar la extensibilidad de XML Un espacio de nombres puede ser definido como un mecanismo para identificar elementos XML Establece los nombres de los elementos en un contexto global Supongamos que decide publicar sus marcadores como muestra el siguiente documento

Semana 1 Caracteriacutesticas de los lenguajes de marcas

16

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

Con frecuencia es necesario extender un documento existente para transmitirle nueva informacioacuten No obstante hay problemas si la extensioacuten no se administra Suponga que alguien maacutes decide clasificar la lista anterior con asesoriacutea para padres El listado siguiente muestra el resultado (Noticias ABC y Coacutemics podriacutean contener violencia o escenas de sexo por esto tienen un nivel de Guiacutea paterna)

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

17

Esto es algo problemaacutetico Supongamos que la extensioacuten contempla ambos tipos de categoriacuteas

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

El problema con el anterior listado es que un software disentildeado para funcionar con el anterior listado con el objetivo de listar viacutenculos ofensivos no sabriacutea queacute hacer con la categoriacutea 5 estrellas El software tan soacutelo tiene que pasar por alto las etiquetas de categoriacutea de calidad pero iquestcoacutemo podriacutea hacerlo si no puede distinguir entre ambas etiquetas de categoriacutea La solucioacuten es obvia utilizar distintos nombres para ambas categoriacuteas por ejemplo Para el control de calidad ltcld‐categoriacuteagt3 estrellasltcategoriacuteagt Y para el control parental

Semana 1 Caracteriacutesticas de los lenguajes de marcas

18

ltpdr‐categoriacuteagtGuiacutea paternaltcategoriacuteagt El problema del ejemplo anterior es hellip el caraacutecter de extensibilidad de XML Dado que cualquiera puede generar etiquetas hay un enorme riesgo de conflictos Una solucioacuten para evitarlo es establecer un registro global de etiquetas aceptadas y su definicioacuten asociada No obstante podriacutea limitar severamente la flexibilidad de XML Nadie desea hacer esto La flexibilidad fue una meta primordial en el disentildeo de XML La propuesta de los espacios de nombre corrige este problema con un meacutetodo elegante no limita la extensibilidad sino que presenta mecanismos para administrarla El listado siguiente es similar al uacuteltimo pero utiliza espacios de nombre para evitar los conflictos Xmlns Xml Name Schema

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferencias xmlnscld=httpjokerplayfieldcomstar‐categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

19

A primera vista todo parece similar pero la diferencia estaacute en el formato de los nombres Ahora se agrega un prefijo a cada nombre de elemento El prefijo y el nombre estaacuten separados por dos puntos () ltcldcategoriacuteagt3 estrellasltcategoriacuteagt El prefijo identifica uniacutevocamente el tipo de categoriacutea en este documento No obstante tales prefijos por siacute solos no resuelven nada dado que cualquier persona puede generarlos Asiacute pues distintas personas podriacutean generar prefijos incompatibles y volvemos al primer paso Para evitar tales conflictos los prefijos deben estar declarados ltreferencias xmlnscld=httpjokerplayfieldcomstar-categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt La declaracioacuten asocia a un URI con un prefijo Este es el punto crucial de la propuesta de los espacios de nombre dado que los URIs a diferencia de los nombres son uacutenicos Los espacios de nombre se fundamentan en los mecanismos de registro establecidos para los URIs Por tanto se garantiza que los URLs son uacutenicos dado que estaacuten basados en nombres de dominio registrados para garantizar la unicidad

El nombre del espacio de nombre

El nombre del espacio de nombre es el URI no el prefijo Cuando una aplicacioacuten compara a dos elementos utiliza el URI no el prefijo para reconocer sus espacios de nombre

Asiacute en el listado siguiente rffnombre y refnombre se consideran ideacutenticos a pesar de tener un prefijo distinto Ambos estaacuten en el espacio de nombre httpcatwomanpineapplesoftcomref15

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 175012 CEST 2010 --gt ltreferenciasgt ltrffnombre xmlnsrff=httpcatwomanpineapplesoftcomref15gt Pearson Educational ltrffnombregt ltlink href=httpwwwpearsoncommx gt ltrefnombre xmlnsref=httpcatwomanpineapplesoftcomref15gt Pineapplesoft ltrefnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

20

Espacio de nombre predeterminado

Todos los elementos sin prefijo nombre y link en los ejemplos anteriores y todos sus elementos descendientes pertenecen a un espacio de nombres predeterminado antildeadiendo un atributo xmlns sin prefijo en el elemento de la parte superior En nuestro caso

xmlns=httpcatwomanpineapplesoftcomref15

Los atributos son diferentes Los espacios de nombre predeterminados solo se aplican a los elementos no a los atributos Por lo tanto en el espacio anterior el atributo sin prefijo href no estaacute en ninguacuten espacio de nombre

Realiza la Actividad 7

Los URIs Un URI (Uniform Resource Identifier) es una cadena corta de caracteres que identifica inequiacutevocamente un recurso (servicio paacutegina documento direccioacuten de correo electroacutenico enciclopedia etc) Normalmente estos recursos son accesibles en una red o sistema

En el caso que nos ocupa el URI solo se utiliza para asegurar la unicidad de los nombres Podriacutea (aunque no necesariamente) apuntar a una descripcioacuten del nombre Por ejemplo podriacutea haber un documento en httppenguinxmlicomreview10 que describa la categoriacutea o podriacutea no haber nada

No obstante lo importante es que los URIs son uacutenicos y deberiacuteamos generarlos de acuerdo con nuestros nombres de dominio Los nombres de dominio Los URLs (Uniform Resource Locator) son direcciones para localizar recursos en Internet y actualmente han sido englobados por el concepto maacutes general de URI

Tienen el siguiente formato

httpwwwpearsoncommx httpwwwpineapplesoftcomnewsletter ftpftpmcpcom newsnewspsolcomcompxml mailtobmarchalpineapplesoftcom El nombre del dominio es solo una parte del URL ldquopearsoncommxrdquo y ldquopineapplesoftcomrdquo son dos de ellos

Semana 1 Caracteriacutesticas de los lenguajes de marcas

21

El nombre del dominio estaacute registrado por una autoridad global para asegurar que no haya duplicados Dada la globalidad del registro uno no puede hacer lo que quiera con los nombres de dominio Por ejemplo no es posible registrar nombres que ya esteacuten en uso La parte final del nombre de dominio (ldquocomrdquo por ejemplo) se conoce como Dominio de nivel superior (TLD Top Level Domain) identifica a la autoridad que asignoacute el nombre de dominio InterNIC (wwwinternicnet) es la autoridad para la mayor parte de los llamados TLD geneacutericos ldquocomrdquo (comercial) ldquonetrdquo (proveedores de servicios de Internet) ldquoorgrdquo (instituciones sin aacutenimo de lucro) Son geneacutericas puesto que estaacuten abiertas a empresas u organizaciones con un aacutembito mundial Tambieacuten hay TLDs especiacuteficos de un paiacutes ldquoesrdquo en Espantildea ldquoukrdquo en el Reino Unido ldquousrdquo en Estados Unidos etc Los nombres de dominio no son muy costosos (actualmente unos 15 euro anuales) por lo que es muy recomendable contratar uno

  • Introduccioacuten
    • Elementos XML
    • Atributos
      • Caracteriacutesticas de los documentos XML bien formados
Page 2: lenguaje de marcas

Semana 1 Caracteriacutesticas de los lenguajes de marcas

2

el coacutedigo en el mismo orden en que aparece Por ejemplo para formatear un tiacutetulo debe haber una serie de directivas inmediatamente antes del texto en cuestioacuten indicaacutendole al software instrucciones tales como centrar aumentar el tamantildeo de la fuente o cambiar a negrita Inmediatamente despueacutes del tiacutetulo deberaacute haber etiquetas inversas que reviertan estos efectos En sistemas maacutes avanzados se utilizan macros que facilitan el trabajo ltigtltbgtltbiggt TITULO ltbiggtltbgtltigt La etiqueta ltigt indica que se escribiraacute el texto en cursiva La etiqueta ltbgt indica que se escribiraacute el texto en negrita La etiqueta ltbiggt indica que se escribiraacute el texto con un tamantildeo mayor El resultado seraacute el siguiente TITULO Algunos ejemplos de lenguajes de marcas de procedimientos son nroff troff TeX Este tipo de marcado se ha usado extensivamente en aplicaciones de edicioacuten profesional manipulados por tipoacutegrafos calificados ya que puede llegar a ser extremadamente complejo

Un documento en Tex podemos verlo a continuacioacuten

La formula cuadratica es $x_12=-bpmsqrtb^2-4cdot acdot c over 2 cdot a$ bye Con el texto de arriba deberiacuteas obtener algo que se viese como esto

La foacutermula cuadraacutetica es

El marcado descriptivo o semaacutentico

Utiliza etiquetas para describir los fragmentos de texto pero sin especificar coacutemo deben ser representados o en queacute orden es decir sirve para describir la estructura del documento separando un texto en los elementos que lo componen como tiacutetulo paacuterrafos pie etc Los lenguajes expresamente disentildeados para generar marcado descriptivo son el SGML y el XML

En los lenguajes de marcas descriptivos el formato estaacute separado del contenido permitiendo flexibilidad a la hora de reformatear el texto

Semana 1 Caracteriacutesticas de los lenguajes de marcas

3

Una de las virtudes del marcado descriptivo es su flexibilidad los fragmentos de texto se etiquetan tal como son y no tal como deben aparecer Estos fragmentos pueden utilizarse para maacutes usos de los previstos inicialmente Por ejemplo los hiperenlaces fueron disentildeados en un principio para que un usuario que lee el texto los pulse Sin embargo los buscadores los emplean para localizar nuevas paacuteginas con informacioacuten relacionada o para evaluar la popularidad de determinado sitio web

El marcado descriptivo estaacute evolucionando hacia lo que se denomina el marcado geneacuterico Los nuevos sistemas de marcado descriptivo estructuran los documentos en aacuterbol con la posibilidad de antildeadir referencias cruzadas Esto permite tratarlos como bases de datos en las que el propio almacenamiento tiene en cuenta la estructura

Un ejemplo de marcado descriptivo en XML podemos verlo a continuacioacuten

ltxml version=10 gt ltdoctype email system httpwwwsitioesDTDsemaildtdgt ltemail id=E1X108gt ltheadgt ltfromgt ltnamegtJesuacutes Vegasltnamegt ltaddressgtjvegasinforuvaesltaddressgt ltfromgt lttogt ltnamegtFulanitoltnamegt ltaddressgtfulanitounsitioesltaddressgt lttogt ltsubjectgtIntroduccioacuten a XMLltsubjectgt ltheadgt ltbodygt ltpgtEste es el guioacuten de la conferencia sobre XML Mira a ver queacute te parece Saludos jvegasltpgt ltattach encoding=mime name=ixmlhtml gt ltbodygt ltemailgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

4

XML

Introduccioacuten XML el lenguaje de marcas extensible (Extensible Markup Language) es un estaacutendar avalado por el W3C (Consorcio World Wide Web) para marcar documentos Permite que los disentildeadores creen sus propias etiquetas permitiendo la definicioacuten transmisioacuten validacioacuten e interpretacioacuten de datos entre aplicaciones y entre organizaciones Define una sintaxis geneacuterica utilizada para marcar datos con etiquetas sencillas y de faacutecil lectura

XML no es realmente un lenguaje en particular sino una manera de definir lenguajes para diferentes necesidades

XML estaacute disentildeado para trasladar datos de una forma eficiente e independiente del sistema o plataforma no para visualizar los datos Se propone un estaacutendar para el intercambio de informacioacuten estructurada entre diferentes plataformas Se puede usar en bases de datos editores de texto hojas de caacutelculo y casi cualquier cosa imaginable

XML por siacute soacutelo no hace nada soacutelo describe informacioacuten

Por ejemplo

ltnotagt ltparagtRaquelltparagt ltdegtJavierltdegt ltcabeceragtRecordatorioltcabeceragt ltmensajegtNo te olvides que quedamos para este fin de semanaltmensajegt ltnotagt

En XML las etiquetas definen la estructura y el significado de los datos queacute son los datos

Se utiliza un sistema para generar los datos y marcarlos con etiquetas XML y despueacutes procesar esos datos en otros muchos sistemas independientemente de la plataforma de hardware y del sistema operativo Esta portabilidad es la razoacuten por la que XML se ha convertido en una de las tecnologiacuteas maacutes populares para el intercambio de datos

XML no es soacutelo una herramienta de uso en sistemas de Web se utiliza como meacutetodo de intercambio y traspaso de informacioacuten entre muacuteltiples aplicaciones

XML no sustituye a HTML (no sirven para lo mismo)

‐ XML se encarga de trasladar los datos y su formato

‐ HTML se encarga de visualizar los datos

En XML no dependemos de un formato ya predefinido de etiquetas como en HTML Nos podemos inventar las etiquetas que necesitemos para definir nuestros datos es por esto por lo que XML es un lenguaje de meta‐marcas XML permite a

Semana 1 Caracteriacutesticas de los lenguajes de marcas

5

desarrolladores y escritores inventar los elementos que necesitan cuando los necesitan Los quiacutemicos pueden usar elementos que describen moleacuteculas y aacutetomos y los agentes inmobiliarios elementos que describen apartamentos pisos alquileres y ubicaciones La X de XML proviene de extensible lo que significa que el lenguaje se puede ampliar y adaptar para ajustarse a las distintas necesidades

El ejemplo siguiente muestra un documento XML sencillo Este documento se puede encontrar en un sistema de control de inventario o en una base de datos de existencias y marca los datos con etiquetas y atributos que describen el color el tamantildeo etc

Este documento es texto y se puede guardar en un archivo de texto Podemos editar este archivo con cualquier editor de textos como Notepad o vi

Los programas que realmente intentan interpretar el contenido del documento XML (es decir hacen algo maacutes que simplemente tratarlo como texto) van a usar un analizador sintaacutectico XML Este analizador es el responsable de dividir el documento en elementos atributos y otras piezas individuales Si en cualquier momento el analizador detecta una infraccioacuten de las reglas de una estructura bien formada de XML informa del error a la aplicacioacuten y detiene el anaacutelisis sintaacutectico A veces el analizador puede seguir leyendo el documento pasado el error original para detectar e informar de otros errores

Semana 1 Caracteriacutesticas de los lenguajes de marcas

6

Para preparar el manual hemos usado EditiX 2010 Tiene una versioacuten free que puedes bajar desde httpfreeeditixcomdownloadhtml

Evolucioacuten de XML XML es un descendiente de SGML el Lenguaje estaacutendar de marcas generalizadas (Standard Generalized Markup Language)El lenguaje que finalmente se convertiriacutea en SGML fue creado por un equipo de IBM dirigido por Charles F Goldfarb a finales de 1970 y fue desarrollado por cientos de personas hasta su adopcioacuten final como estaacutendar ISO en 1986 Es un lenguaje de marcas estructurado para documentos de texto Es muy eficaz y cosechoacute gran eacutexito en los sectores militares y gubernamentales de USA y en otros sectores que necesitaban formas de administrar documentos teacutecnicos con miles de paacuteginas de contenido

Un documento SGML se compone de tres partes o archivos

bull Declaracioacuten SGML

bull Declaracioacuten de tipo de documento (DTD)

bull Instancia de Documento

La declaracioacuten SGML caracteriza la DTD y por tanto las instancias de documento (que incluyen el contenido propiamente dicho) que se generen a partir de ella en teacuterminos de conjunto de caracteres usados y otros puntos opcionales de SGML Esta declaracioacuten puede ser omitida en cuyo caso se asumen unos grupos de caracteres por defecto y ninguna caracteriacutestica opcional

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 32ENgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

7

Esta cabecera indica que el DTD desarrollada por W3C es la versioacuten 32 para HTML y estaacute escrito en ingleacutes

Una clase de documentos tiene en comuacuten una gramaacutetica que define el marcado permitido en esa clase el marcado requerido y coacutemo debe ser utilizado dicho marcado en la instancia de documento El estaacutendar define esta gramaacutetica mediante la DTD SGML no especifica ninguacuten conjunto particular de elementos el conjunto de elementos que pueden utilizarse se define en la DTD

ltELEMENT DOCUMENTO - - (titulo contenido autor) gt ltELEMENT CONTENIDO - - (capitulo+) gt ltELEMENT CAPITULO - (subtitulo parrafo) gt

La instancia de documento lleva pues el contenido estructurado seguacuten el marco definido en la DTD y con las caracteriacutesticas fijadas por la declaracioacuten SGML

ltdocumentogt lttitulogtHIPERTEXTOlttitulogt ltautorgt MARIA JESUS LAMARCA ltautorgt ltcontenidogt

ltcapitulogt ltsubtitulogtEL NUEVO CONCEPTO DE DOCUMENTO EN LA CULTURA DE LA IMAGEN ltsubtitulogt ltparrafogt Doctorado Fundamentos Metodologiacutea y Aplicaciones de las Tecnologiacuteas Documentales y Procesamiento de la Informacioacuten ltparrafogt ltcapitulogt

ltcontenidogt ltdocumentogt El mayor eacutexito de SGML fue HTML que es una aplicacioacuten SGML Sin embargo HTML no permite su uso maacutes allaacute de la propia aplicacioacuten de disentildeo de paacuteginas web No podemos utilizar HTML para intercambiar datos entre bases de datos incompatibles ni para enviar cataacutelogos de productos actualizados a los sitios de venta HTML crea paacuteginas web y lo hace muy bien pero solo crea paacuteginas web

SGML fue la opcioacuten evidente para otras aplicaciones que aprovechaban Internet El problema residiacutea en que SGML era complicado (muy muy complicado) La especificacioacuten oficial SGML tiene aproximadamente 150 paacuteginas muy teacutecnicas y analiza muchos casos especiales y escenarios poco probables Es tan complejo que ninguacuten software lo ha implementado completamente

En 1996 Jon Bosak Tim Bray y otros empezaron a trabajar en una versioacuten ldquolivianardquo de SGML que conservaba la mayor parte de la eficacia de SGML a la vez que recortaba muchas opciones que habiacutean demostrado ser redundantes demasiado complicadas para su implementacioacuten confusas para los usuarios finales o simplemente inuacutetiles a lo largo de los 20 antildeos de experiencia con SGML El resultado en febrero de 1998 fue XML y obtuvo un eacutexito inmediato Muchos desarrolladores que sabiacutean que necesitaban

Semana 1 Caracteriacutesticas de los lenguajes de marcas

8

un lenguaje de marcas estructural pero que no podiacutean aceptar la complejidad de SGML adoptaron XML con confianza Se comenzoacute a usar en sectores tan variados como los tribunales o los criaderos de cerdos

Sin embargo XML 10 fue tan solo el principio El siguiente estaacutendar fueron los espacios de nombres (Namespaces) un esfuerzo para permitir que marcas de distintas aplicaciones con el mismo nombre se pudieran usar en el mismo documento sin conflicto Asiacute un documento sobre libros podiacutea tener un elemento titulo que haciacutea referencia al tiacutetulo del libro y elementos titulo para los tiacutetulos de los capiacutetulos y ambos sin presentar conflicto alguno

A continuacioacuten aparecioacute el Lenguaje de hojas de estilo extensible (XSL Extensible Stylesheet Language) una aplicacioacuten para transformar documentos XML en un formulario que podiacutea visualizarse en una paacutegina web Pronto aparecieron las transformaciones XSL (XSLT Transformations XSL)y los objetos de formato XSL (XSL‐FO XSL Formatting Objects) XSLT se ha convertido en un lenguaje de propoacutesito general para transformar un documento XML en otro ya sea para una presentacioacuten web o para cualquier otro propoacutesito y XSL‐FO sirve para dar formato PostScript a un documento XML

Para el direccionamiento de partes individuales del documento surge XPath y otra pieza del rompecabezas fue una interfaz para el direccionamiento desde un programa java javascript o C++ La API maacutes simple solamente trataba el documento como un objeto que conteniacutea a otros objetos Se inicioacute una labor dentro y fuera del W3C para definirlo como modelo de objeto de documento (DOM Document Object Model) para HTML Ampliar este esfuerzo a XML no resultoacute difiacutecil

Esta rica coleccioacuten de especificaciones solo dirige tecnologiacuteas que son principales para XML Se han desarrollado muchas maacutes y continuacutean hacieacutendolo a un ritmo acelerado Aplicaciones XML como SOAP utilizado en el intercambio de datos en los servicios web SVG para describir graacuteficos vectoriales MathML para el uso en matemaacuteticas Atom para la sindicacioacuten XForms para definir interfaces de usuario a base de formularios web WordprocessingML para el trabajo con procesadores de texto y miles de ellas maacutes XML ha demostrado por siacute mismo ser una base soacutelida para muchas y variadas tecnologiacuteas

Componentes de XML

Elementos XML Un elemento XML es cualquier cosa que incluya una marca de inicio una marca de fin y la informacioacuten o no que se encuentra entre ambas marcas ltpeliculagtLa Red Socialltpeliculagt

Atributos Modificador de una etiqueta XML Da una caracteriacutestica ampliada de la etiqueta definida Pueden utilizarse comillas dobles y simples indistintamente pero se debe abrir y cerrar con el mismo siacutembolo

Semana 1 Caracteriacutesticas de los lenguajes de marcas

9

ltpelicula categoria=DramagtLa Red Socialltpeliculagt ltpelicula categoria=Comediagt 2 tontos muy tontosltpeliculagt

Sintaxis XML bull Todas las marcas utilizadas en XML deben tener un inicio y un final no como

sucede en HTML bull Las marcas de XML tienen en cuenta que sean mayuacutesculas y minuacutesculas (las

marcas deben colocarse de forma exacta) bull Las marcas se deben cerrar en el mismo orden en que se abrieron bull Un documento XML debe tener un elemento raiacutez de partida bull Todos los atributos de XML deben colocarse entre comillas dobles bull Para colocar determinados caracteres reservados en XML se deben utilizar

cadenas de identificacioacuten bull Se pueden colocar comentarios en XML

Documento XML Aunque a primera vista un documento XML puede parecer similar a HTML hay una diferencia principal Un documento XML contiene datos que se autodefinen exclusivamente Un documento HTML contiene datos mal definidos mezclados con elementos de formato En XML se separa el contenido de la presentacioacuten de forma total Una forma de entender raacutepidamente la estructura de un documento XML es viendo un pequentildeo ejemplo

ltxml version=10gt ltDOCTYPE MENSAJE SYSTEM mensajedtdgt ltmensajegt

ltremitegt ltnombregtAlfredo Reinoltnombregt ltemailgtalfibiumcomltemailgt

ltremitegt ltdestinatariogt

ltnombregtBill Clintonltnombregt ltemailgtpresidentwhitehousegovltemailgt

ltdestinatariogt ltasuntogtHola Billltasuntogt lttextogt

ltparrafogtiquestHola queacute tal Hace ltenfasisgtmucholtenfasisgt que no escribes A ver si llamas y quedamos para tomar algoltparrafogt lttextogt

ltmensajegt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

10

Este mismo documento puede ser visto de forma graacutefica para comprender mejor la estructura de un documento XML

Realiza las Actividades 1 y 2

Estructura de un documento XML

Un documento XML tiene dos estructuras una loacutegica y otra fiacutesica

Fiacutesicamente el documento estaacute compuesto por unidades llamadas entidades Una entidad puede hacer referencia a otra entidad causando que esta se incluya en el documento Cada documento comienza con una entidad documento tambieacuten llamada raiacutez

Loacutegicamente el documento estaacute compuesto de declaraciones elementos comentarios referencias a caracteres e instrucciones de procesamiento todos los cuales estaacuten indicados por una marca expliacutecita Las estructuras loacutegica y fiacutesica deben encajar de manera adecuada

Los documentos XML se dividen en dos grupos documentos bien formados y documentos vaacutelidos

bull Bien formados Son todos los que cumplen las especificaciones del lenguaje respecto a las reglas sintaacutecticas sin estar sujetos a unos elementos fijados en un DTD De hecho los documentos XML deben tener una estructura jeraacuterquica muy estricta y los documentos bien formados deben cumplirla El documento debe de contener una soacutela raiacutez y todas las etiquetas estar correctamente anidadas

Semana 1 Caracteriacutesticas de los lenguajes de marcas

11

bull Vaacutelidos Ademaacutes de estar bien formados siguen una estructura y una semaacutentica determinada por un DTD sus elementos y sobre todo la estructura jeraacuterquica que define el DTD ademaacutes de los atributos deben ajustarse a lo que el DTD dicte Veremos maacutes adelante maacutes detalladamente lo que es un DTD pero podemos ir adelantando que un DTD permite especificar la estructura del documento y que el DTD puede estar separado del documento

Un fichero puede estar bien escrito seguacuten las reglas de XML (bien formado) pero no ldquotener ni pies ni cabezardquo ( no vaacutelido)

Aquiacute podemos ver otro ejemplo muy sencillo de documento XML

ltxml version= 10 encoding= UTF-8 standalone= yes gt ltfichagt

ltnombregt Angel ltnombregt ltapellidogt Barbero ltapellidogt ltdirecciongt cUlises 36 ltdirecciongt

ltfichagt La estructura baacutesica de un bloque XML se muestra en la siguiente figura

Semana 1 Caracteriacutesticas de los lenguajes de marcas

12

Lo primero que tenemos que observar es la primera liacutenea Con ella deben empezar todos los documentos XML ya que en ella se indica que el documento es XML Aunque es opcional es recomendable incluirla Puede tener varios atributos algunos obligatorios y otros no

bull version Indica la versioacuten de XML usada en el documento Es obligatorio ponerlo a no ser que sea un documento externo a otro que ya lo incluiacutea

bull encoding La forma en que se ha codificado el documento Se puede poner cualquiera y depende del parser el poder entender o no la codificacioacuten Por defecto es UTF‐8 aunque podriacutean ponerse otras como UTF‐16 US‐ASCII ISO‐8859‐1 etc No es obligatorio salvo que sea un documento externo a otro principal

bull standalone Indica si el documento va acompantildeado de un DTD (no) o no lo necesita (yes) en principio no hay porqueacute ponerlo porque luego se indica el DTD si se necesita Veremos los DTD maacutes adelante

Realiza la Actividad 3

Caracteriacutesticas de los documentos XML bien formados

Un documento XML se dice que estaacute bien formado si encaja con las especificaciones XML de produccioacuten lo que implica

Estructura jeraacuterquica de elementos

Los documentos XML deben seguir una estructura estrictamente jeraacuterquica con lo que respecta a las etiquetas que delimitan sus elementos Una etiqueta debe estar correctamente incluiacuteda en otra Asiacutemismo los elementos con contenido deben estar correctamente cerrados A continuacioacuten se muestra un ejemplo incorrecto y posteriormente otro ejemplo escrito correctamente

ltligtHTML ltbgt permite ltigt esto ltbgt ltigt Ejemplo incorrecto ltligtEn XML la ltbgt estructura ltigt es ltigt jeraacuterquica ltbgtltligt Ejemplo correcto

Realiza la Actividad 4

Semana 1 Caracteriacutesticas de los lenguajes de marcas

13

Etiquetas vaciacuteas

HTML permite elementos sin contenido XML tambieacuten pero la etiqueta debe ser de la siguiente forma ltelemento sin contenido gt A continuacioacuten se muestra un ejemplo incorrecto y posteriormente otro correcto

ltligtEsto es HTML ltbrgt en el que casi todo estaacute permitido ltligt

Hay que tener en cuenta que el siacutembolo lt siempre se interpreta como inicio de una etiqueta XML Si no es el caso el documento no estaraacute bien formado Para usar ciertos siacutembolos se usan las entidades predefinidas que se explican maacutes adelante

Un elemento vaciacuteo es el que no tiene contenido Por ejemplo

ltidentificador DNI=23123244 gt

ltlinea-horizontal gt

Al no tener una etiqueta de cierre que delimite un contenido se utiliza la forma ltetiqueta gt que puede contener atributos o no La sintaxis de HTML permite etiquetas vaciacuteas tipo lthrgt o ltimg src=gt En HTML reformulado para que sea un documento XML bien formado se deberiacutea usar lthr gt o ltimg src=

Atributos

Como se ha mencionado antes los elementos pueden tener atributos que son una manera de incorporar caracteriacutesticas o propiedades a los elementos de un documento

Por ejemplo un elemento chiste puede tener un atributo tipo y un atributo calidad con valores vascos y bueno respectivamente

ltchiste tipo=vascos calidad=buenogt Esto es un diacutea que Patxi y Josu van paseando ltchistegt

En una Definicioacuten de Tipo de Documento (DTD) se especifican los atributos que pueden tener cada tipo de elemento asiacute como sus valores y tipos de valor posible

Al igual que en otras cadenas literales de XML los atributos pueden estar marcados entre comillas simples () o doble () Cuando se usa uno para delimitar el valor del atributo el otro tipo se puede usar dentro

ltverdura clase=zanahoria longitud=15 y mediagt

ltcita texto=Hola buenos dias dijo eacutelgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

14

A veces un elemento con contenido puede modelarse como un elemento vaciacuteo con atributos Un concepto se puede representar de muy diversas formas pero una vez elegida una es aconsejable fijarla en el DTD y usar siempre la misma consistentemente dentro de un documento XML

Entidades Predefinidas

En XML 10 se definen cinco entidades para representar caracteres especiales y que no se interpreten como marcado en el procesador XML Es decir que asiacute podemos usar el caraacutecter lt sin que se interprete como el comienzo de una etiqueta XML por ejemplo Entidad Caraacutecter

ampamp amp amplt lt ampgt gt ampapos lsquo ampquot ldquo

ltgatogt ltnombregtMicifuacuteltnombregt ltrazagtPersaltrazagt

ltgatogt ltgato raza=Persagt

Micifuacute ltgatogt

ltgato raza=Persa nombre=Micifuacutegt

Secciones CDATA

Existe otra construccioacuten en XML que permite especificar datos utilizando cualquier caraacutecter especial o no sin que se interprete como marcado XML La razoacuten de esta construccioacuten llamada CDATA (Character DATA) es que a veces es necesario para los autores de documentos XML poder leerlo faacutecilmente sin tener que descifrar los coacutedigos de entidades Especialmente cuando son muchos

Como ejemplo el siguiente (primero usando entidades predefinidas y luego con un bloque CDATA) Podemos comprobar su uso en el siguiente ejemplo

ltejemplogt amplthtmlampgt ampltheadampgtamplttitlegtRock ampamp Rollamplttitleampgtampltheadampgt

ltejemplogt

ltejemplogt lt[CDATA[

lthtmlgt ltheadgtlttitlegtRock amp Rolllttitlegtltheadgt

]]gt ltejemplogt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

15

Como hemos visto dentro de una seccioacuten CDATA podemos poner cualquier cosa que no seraacute interpretada como algo que no es asiacute Existe una excepcioacuten y es la cadena ]]gt con el que termina el bloque CDATA Esta cadena no puede utilizarse dentro de una seccioacuten CDATA

Comentarios

A veces es conveniente insertar comentarios en el documento XML que son ignorados por el procesado de la informacioacuten y las reproducciones del documento Los comentarios tienen el mismo formato que los comentarios de HTML Es decir comienza por la cadena lt‐‐ y termina con ‐‐gt

lt‐‐ Esto es un comentario ‐‐gt

Se pueden introducir comentarios en cualquier parte del documento salvo dentro de las declaraciones etiquetas u otros comentarios

Realiza la actividad 5 y 6

Espacios de nombre (NameSpaces)

En XML los espacios de nombre (namespace) tienen dos propoacutesitos

1 Distinguir entre elementos y atributos de distintos vocabularios con distintos significados que puedan compartir el mismo nombre

2 Agrupar todos los elementos y atributos relacionados de una sola aplicacioacuten

XML para que el software pueda reconocerlos con facilidad El primer propoacutesito es maacutes faacutecil de explicar y entender pero el segundo es maacutes importante en la praacutectica La extensibilidad es una facultad que no es gratuita En un entorno distribuido esta facultad deberaacute ser administrada para evitar conflictos Los espacios de nombre son una solucioacuten para ayudar a administrar la extensibilidad de XML Un espacio de nombres puede ser definido como un mecanismo para identificar elementos XML Establece los nombres de los elementos en un contexto global Supongamos que decide publicar sus marcadores como muestra el siguiente documento

Semana 1 Caracteriacutesticas de los lenguajes de marcas

16

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

Con frecuencia es necesario extender un documento existente para transmitirle nueva informacioacuten No obstante hay problemas si la extensioacuten no se administra Suponga que alguien maacutes decide clasificar la lista anterior con asesoriacutea para padres El listado siguiente muestra el resultado (Noticias ABC y Coacutemics podriacutean contener violencia o escenas de sexo por esto tienen un nivel de Guiacutea paterna)

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

17

Esto es algo problemaacutetico Supongamos que la extensioacuten contempla ambos tipos de categoriacuteas

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

El problema con el anterior listado es que un software disentildeado para funcionar con el anterior listado con el objetivo de listar viacutenculos ofensivos no sabriacutea queacute hacer con la categoriacutea 5 estrellas El software tan soacutelo tiene que pasar por alto las etiquetas de categoriacutea de calidad pero iquestcoacutemo podriacutea hacerlo si no puede distinguir entre ambas etiquetas de categoriacutea La solucioacuten es obvia utilizar distintos nombres para ambas categoriacuteas por ejemplo Para el control de calidad ltcld‐categoriacuteagt3 estrellasltcategoriacuteagt Y para el control parental

Semana 1 Caracteriacutesticas de los lenguajes de marcas

18

ltpdr‐categoriacuteagtGuiacutea paternaltcategoriacuteagt El problema del ejemplo anterior es hellip el caraacutecter de extensibilidad de XML Dado que cualquiera puede generar etiquetas hay un enorme riesgo de conflictos Una solucioacuten para evitarlo es establecer un registro global de etiquetas aceptadas y su definicioacuten asociada No obstante podriacutea limitar severamente la flexibilidad de XML Nadie desea hacer esto La flexibilidad fue una meta primordial en el disentildeo de XML La propuesta de los espacios de nombre corrige este problema con un meacutetodo elegante no limita la extensibilidad sino que presenta mecanismos para administrarla El listado siguiente es similar al uacuteltimo pero utiliza espacios de nombre para evitar los conflictos Xmlns Xml Name Schema

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferencias xmlnscld=httpjokerplayfieldcomstar‐categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

19

A primera vista todo parece similar pero la diferencia estaacute en el formato de los nombres Ahora se agrega un prefijo a cada nombre de elemento El prefijo y el nombre estaacuten separados por dos puntos () ltcldcategoriacuteagt3 estrellasltcategoriacuteagt El prefijo identifica uniacutevocamente el tipo de categoriacutea en este documento No obstante tales prefijos por siacute solos no resuelven nada dado que cualquier persona puede generarlos Asiacute pues distintas personas podriacutean generar prefijos incompatibles y volvemos al primer paso Para evitar tales conflictos los prefijos deben estar declarados ltreferencias xmlnscld=httpjokerplayfieldcomstar-categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt La declaracioacuten asocia a un URI con un prefijo Este es el punto crucial de la propuesta de los espacios de nombre dado que los URIs a diferencia de los nombres son uacutenicos Los espacios de nombre se fundamentan en los mecanismos de registro establecidos para los URIs Por tanto se garantiza que los URLs son uacutenicos dado que estaacuten basados en nombres de dominio registrados para garantizar la unicidad

El nombre del espacio de nombre

El nombre del espacio de nombre es el URI no el prefijo Cuando una aplicacioacuten compara a dos elementos utiliza el URI no el prefijo para reconocer sus espacios de nombre

Asiacute en el listado siguiente rffnombre y refnombre se consideran ideacutenticos a pesar de tener un prefijo distinto Ambos estaacuten en el espacio de nombre httpcatwomanpineapplesoftcomref15

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 175012 CEST 2010 --gt ltreferenciasgt ltrffnombre xmlnsrff=httpcatwomanpineapplesoftcomref15gt Pearson Educational ltrffnombregt ltlink href=httpwwwpearsoncommx gt ltrefnombre xmlnsref=httpcatwomanpineapplesoftcomref15gt Pineapplesoft ltrefnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

20

Espacio de nombre predeterminado

Todos los elementos sin prefijo nombre y link en los ejemplos anteriores y todos sus elementos descendientes pertenecen a un espacio de nombres predeterminado antildeadiendo un atributo xmlns sin prefijo en el elemento de la parte superior En nuestro caso

xmlns=httpcatwomanpineapplesoftcomref15

Los atributos son diferentes Los espacios de nombre predeterminados solo se aplican a los elementos no a los atributos Por lo tanto en el espacio anterior el atributo sin prefijo href no estaacute en ninguacuten espacio de nombre

Realiza la Actividad 7

Los URIs Un URI (Uniform Resource Identifier) es una cadena corta de caracteres que identifica inequiacutevocamente un recurso (servicio paacutegina documento direccioacuten de correo electroacutenico enciclopedia etc) Normalmente estos recursos son accesibles en una red o sistema

En el caso que nos ocupa el URI solo se utiliza para asegurar la unicidad de los nombres Podriacutea (aunque no necesariamente) apuntar a una descripcioacuten del nombre Por ejemplo podriacutea haber un documento en httppenguinxmlicomreview10 que describa la categoriacutea o podriacutea no haber nada

No obstante lo importante es que los URIs son uacutenicos y deberiacuteamos generarlos de acuerdo con nuestros nombres de dominio Los nombres de dominio Los URLs (Uniform Resource Locator) son direcciones para localizar recursos en Internet y actualmente han sido englobados por el concepto maacutes general de URI

Tienen el siguiente formato

httpwwwpearsoncommx httpwwwpineapplesoftcomnewsletter ftpftpmcpcom newsnewspsolcomcompxml mailtobmarchalpineapplesoftcom El nombre del dominio es solo una parte del URL ldquopearsoncommxrdquo y ldquopineapplesoftcomrdquo son dos de ellos

Semana 1 Caracteriacutesticas de los lenguajes de marcas

21

El nombre del dominio estaacute registrado por una autoridad global para asegurar que no haya duplicados Dada la globalidad del registro uno no puede hacer lo que quiera con los nombres de dominio Por ejemplo no es posible registrar nombres que ya esteacuten en uso La parte final del nombre de dominio (ldquocomrdquo por ejemplo) se conoce como Dominio de nivel superior (TLD Top Level Domain) identifica a la autoridad que asignoacute el nombre de dominio InterNIC (wwwinternicnet) es la autoridad para la mayor parte de los llamados TLD geneacutericos ldquocomrdquo (comercial) ldquonetrdquo (proveedores de servicios de Internet) ldquoorgrdquo (instituciones sin aacutenimo de lucro) Son geneacutericas puesto que estaacuten abiertas a empresas u organizaciones con un aacutembito mundial Tambieacuten hay TLDs especiacuteficos de un paiacutes ldquoesrdquo en Espantildea ldquoukrdquo en el Reino Unido ldquousrdquo en Estados Unidos etc Los nombres de dominio no son muy costosos (actualmente unos 15 euro anuales) por lo que es muy recomendable contratar uno

  • Introduccioacuten
    • Elementos XML
    • Atributos
      • Caracteriacutesticas de los documentos XML bien formados
Page 3: lenguaje de marcas

Semana 1 Caracteriacutesticas de los lenguajes de marcas

3

Una de las virtudes del marcado descriptivo es su flexibilidad los fragmentos de texto se etiquetan tal como son y no tal como deben aparecer Estos fragmentos pueden utilizarse para maacutes usos de los previstos inicialmente Por ejemplo los hiperenlaces fueron disentildeados en un principio para que un usuario que lee el texto los pulse Sin embargo los buscadores los emplean para localizar nuevas paacuteginas con informacioacuten relacionada o para evaluar la popularidad de determinado sitio web

El marcado descriptivo estaacute evolucionando hacia lo que se denomina el marcado geneacuterico Los nuevos sistemas de marcado descriptivo estructuran los documentos en aacuterbol con la posibilidad de antildeadir referencias cruzadas Esto permite tratarlos como bases de datos en las que el propio almacenamiento tiene en cuenta la estructura

Un ejemplo de marcado descriptivo en XML podemos verlo a continuacioacuten

ltxml version=10 gt ltdoctype email system httpwwwsitioesDTDsemaildtdgt ltemail id=E1X108gt ltheadgt ltfromgt ltnamegtJesuacutes Vegasltnamegt ltaddressgtjvegasinforuvaesltaddressgt ltfromgt lttogt ltnamegtFulanitoltnamegt ltaddressgtfulanitounsitioesltaddressgt lttogt ltsubjectgtIntroduccioacuten a XMLltsubjectgt ltheadgt ltbodygt ltpgtEste es el guioacuten de la conferencia sobre XML Mira a ver queacute te parece Saludos jvegasltpgt ltattach encoding=mime name=ixmlhtml gt ltbodygt ltemailgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

4

XML

Introduccioacuten XML el lenguaje de marcas extensible (Extensible Markup Language) es un estaacutendar avalado por el W3C (Consorcio World Wide Web) para marcar documentos Permite que los disentildeadores creen sus propias etiquetas permitiendo la definicioacuten transmisioacuten validacioacuten e interpretacioacuten de datos entre aplicaciones y entre organizaciones Define una sintaxis geneacuterica utilizada para marcar datos con etiquetas sencillas y de faacutecil lectura

XML no es realmente un lenguaje en particular sino una manera de definir lenguajes para diferentes necesidades

XML estaacute disentildeado para trasladar datos de una forma eficiente e independiente del sistema o plataforma no para visualizar los datos Se propone un estaacutendar para el intercambio de informacioacuten estructurada entre diferentes plataformas Se puede usar en bases de datos editores de texto hojas de caacutelculo y casi cualquier cosa imaginable

XML por siacute soacutelo no hace nada soacutelo describe informacioacuten

Por ejemplo

ltnotagt ltparagtRaquelltparagt ltdegtJavierltdegt ltcabeceragtRecordatorioltcabeceragt ltmensajegtNo te olvides que quedamos para este fin de semanaltmensajegt ltnotagt

En XML las etiquetas definen la estructura y el significado de los datos queacute son los datos

Se utiliza un sistema para generar los datos y marcarlos con etiquetas XML y despueacutes procesar esos datos en otros muchos sistemas independientemente de la plataforma de hardware y del sistema operativo Esta portabilidad es la razoacuten por la que XML se ha convertido en una de las tecnologiacuteas maacutes populares para el intercambio de datos

XML no es soacutelo una herramienta de uso en sistemas de Web se utiliza como meacutetodo de intercambio y traspaso de informacioacuten entre muacuteltiples aplicaciones

XML no sustituye a HTML (no sirven para lo mismo)

‐ XML se encarga de trasladar los datos y su formato

‐ HTML se encarga de visualizar los datos

En XML no dependemos de un formato ya predefinido de etiquetas como en HTML Nos podemos inventar las etiquetas que necesitemos para definir nuestros datos es por esto por lo que XML es un lenguaje de meta‐marcas XML permite a

Semana 1 Caracteriacutesticas de los lenguajes de marcas

5

desarrolladores y escritores inventar los elementos que necesitan cuando los necesitan Los quiacutemicos pueden usar elementos que describen moleacuteculas y aacutetomos y los agentes inmobiliarios elementos que describen apartamentos pisos alquileres y ubicaciones La X de XML proviene de extensible lo que significa que el lenguaje se puede ampliar y adaptar para ajustarse a las distintas necesidades

El ejemplo siguiente muestra un documento XML sencillo Este documento se puede encontrar en un sistema de control de inventario o en una base de datos de existencias y marca los datos con etiquetas y atributos que describen el color el tamantildeo etc

Este documento es texto y se puede guardar en un archivo de texto Podemos editar este archivo con cualquier editor de textos como Notepad o vi

Los programas que realmente intentan interpretar el contenido del documento XML (es decir hacen algo maacutes que simplemente tratarlo como texto) van a usar un analizador sintaacutectico XML Este analizador es el responsable de dividir el documento en elementos atributos y otras piezas individuales Si en cualquier momento el analizador detecta una infraccioacuten de las reglas de una estructura bien formada de XML informa del error a la aplicacioacuten y detiene el anaacutelisis sintaacutectico A veces el analizador puede seguir leyendo el documento pasado el error original para detectar e informar de otros errores

Semana 1 Caracteriacutesticas de los lenguajes de marcas

6

Para preparar el manual hemos usado EditiX 2010 Tiene una versioacuten free que puedes bajar desde httpfreeeditixcomdownloadhtml

Evolucioacuten de XML XML es un descendiente de SGML el Lenguaje estaacutendar de marcas generalizadas (Standard Generalized Markup Language)El lenguaje que finalmente se convertiriacutea en SGML fue creado por un equipo de IBM dirigido por Charles F Goldfarb a finales de 1970 y fue desarrollado por cientos de personas hasta su adopcioacuten final como estaacutendar ISO en 1986 Es un lenguaje de marcas estructurado para documentos de texto Es muy eficaz y cosechoacute gran eacutexito en los sectores militares y gubernamentales de USA y en otros sectores que necesitaban formas de administrar documentos teacutecnicos con miles de paacuteginas de contenido

Un documento SGML se compone de tres partes o archivos

bull Declaracioacuten SGML

bull Declaracioacuten de tipo de documento (DTD)

bull Instancia de Documento

La declaracioacuten SGML caracteriza la DTD y por tanto las instancias de documento (que incluyen el contenido propiamente dicho) que se generen a partir de ella en teacuterminos de conjunto de caracteres usados y otros puntos opcionales de SGML Esta declaracioacuten puede ser omitida en cuyo caso se asumen unos grupos de caracteres por defecto y ninguna caracteriacutestica opcional

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 32ENgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

7

Esta cabecera indica que el DTD desarrollada por W3C es la versioacuten 32 para HTML y estaacute escrito en ingleacutes

Una clase de documentos tiene en comuacuten una gramaacutetica que define el marcado permitido en esa clase el marcado requerido y coacutemo debe ser utilizado dicho marcado en la instancia de documento El estaacutendar define esta gramaacutetica mediante la DTD SGML no especifica ninguacuten conjunto particular de elementos el conjunto de elementos que pueden utilizarse se define en la DTD

ltELEMENT DOCUMENTO - - (titulo contenido autor) gt ltELEMENT CONTENIDO - - (capitulo+) gt ltELEMENT CAPITULO - (subtitulo parrafo) gt

La instancia de documento lleva pues el contenido estructurado seguacuten el marco definido en la DTD y con las caracteriacutesticas fijadas por la declaracioacuten SGML

ltdocumentogt lttitulogtHIPERTEXTOlttitulogt ltautorgt MARIA JESUS LAMARCA ltautorgt ltcontenidogt

ltcapitulogt ltsubtitulogtEL NUEVO CONCEPTO DE DOCUMENTO EN LA CULTURA DE LA IMAGEN ltsubtitulogt ltparrafogt Doctorado Fundamentos Metodologiacutea y Aplicaciones de las Tecnologiacuteas Documentales y Procesamiento de la Informacioacuten ltparrafogt ltcapitulogt

ltcontenidogt ltdocumentogt El mayor eacutexito de SGML fue HTML que es una aplicacioacuten SGML Sin embargo HTML no permite su uso maacutes allaacute de la propia aplicacioacuten de disentildeo de paacuteginas web No podemos utilizar HTML para intercambiar datos entre bases de datos incompatibles ni para enviar cataacutelogos de productos actualizados a los sitios de venta HTML crea paacuteginas web y lo hace muy bien pero solo crea paacuteginas web

SGML fue la opcioacuten evidente para otras aplicaciones que aprovechaban Internet El problema residiacutea en que SGML era complicado (muy muy complicado) La especificacioacuten oficial SGML tiene aproximadamente 150 paacuteginas muy teacutecnicas y analiza muchos casos especiales y escenarios poco probables Es tan complejo que ninguacuten software lo ha implementado completamente

En 1996 Jon Bosak Tim Bray y otros empezaron a trabajar en una versioacuten ldquolivianardquo de SGML que conservaba la mayor parte de la eficacia de SGML a la vez que recortaba muchas opciones que habiacutean demostrado ser redundantes demasiado complicadas para su implementacioacuten confusas para los usuarios finales o simplemente inuacutetiles a lo largo de los 20 antildeos de experiencia con SGML El resultado en febrero de 1998 fue XML y obtuvo un eacutexito inmediato Muchos desarrolladores que sabiacutean que necesitaban

Semana 1 Caracteriacutesticas de los lenguajes de marcas

8

un lenguaje de marcas estructural pero que no podiacutean aceptar la complejidad de SGML adoptaron XML con confianza Se comenzoacute a usar en sectores tan variados como los tribunales o los criaderos de cerdos

Sin embargo XML 10 fue tan solo el principio El siguiente estaacutendar fueron los espacios de nombres (Namespaces) un esfuerzo para permitir que marcas de distintas aplicaciones con el mismo nombre se pudieran usar en el mismo documento sin conflicto Asiacute un documento sobre libros podiacutea tener un elemento titulo que haciacutea referencia al tiacutetulo del libro y elementos titulo para los tiacutetulos de los capiacutetulos y ambos sin presentar conflicto alguno

A continuacioacuten aparecioacute el Lenguaje de hojas de estilo extensible (XSL Extensible Stylesheet Language) una aplicacioacuten para transformar documentos XML en un formulario que podiacutea visualizarse en una paacutegina web Pronto aparecieron las transformaciones XSL (XSLT Transformations XSL)y los objetos de formato XSL (XSL‐FO XSL Formatting Objects) XSLT se ha convertido en un lenguaje de propoacutesito general para transformar un documento XML en otro ya sea para una presentacioacuten web o para cualquier otro propoacutesito y XSL‐FO sirve para dar formato PostScript a un documento XML

Para el direccionamiento de partes individuales del documento surge XPath y otra pieza del rompecabezas fue una interfaz para el direccionamiento desde un programa java javascript o C++ La API maacutes simple solamente trataba el documento como un objeto que conteniacutea a otros objetos Se inicioacute una labor dentro y fuera del W3C para definirlo como modelo de objeto de documento (DOM Document Object Model) para HTML Ampliar este esfuerzo a XML no resultoacute difiacutecil

Esta rica coleccioacuten de especificaciones solo dirige tecnologiacuteas que son principales para XML Se han desarrollado muchas maacutes y continuacutean hacieacutendolo a un ritmo acelerado Aplicaciones XML como SOAP utilizado en el intercambio de datos en los servicios web SVG para describir graacuteficos vectoriales MathML para el uso en matemaacuteticas Atom para la sindicacioacuten XForms para definir interfaces de usuario a base de formularios web WordprocessingML para el trabajo con procesadores de texto y miles de ellas maacutes XML ha demostrado por siacute mismo ser una base soacutelida para muchas y variadas tecnologiacuteas

Componentes de XML

Elementos XML Un elemento XML es cualquier cosa que incluya una marca de inicio una marca de fin y la informacioacuten o no que se encuentra entre ambas marcas ltpeliculagtLa Red Socialltpeliculagt

Atributos Modificador de una etiqueta XML Da una caracteriacutestica ampliada de la etiqueta definida Pueden utilizarse comillas dobles y simples indistintamente pero se debe abrir y cerrar con el mismo siacutembolo

Semana 1 Caracteriacutesticas de los lenguajes de marcas

9

ltpelicula categoria=DramagtLa Red Socialltpeliculagt ltpelicula categoria=Comediagt 2 tontos muy tontosltpeliculagt

Sintaxis XML bull Todas las marcas utilizadas en XML deben tener un inicio y un final no como

sucede en HTML bull Las marcas de XML tienen en cuenta que sean mayuacutesculas y minuacutesculas (las

marcas deben colocarse de forma exacta) bull Las marcas se deben cerrar en el mismo orden en que se abrieron bull Un documento XML debe tener un elemento raiacutez de partida bull Todos los atributos de XML deben colocarse entre comillas dobles bull Para colocar determinados caracteres reservados en XML se deben utilizar

cadenas de identificacioacuten bull Se pueden colocar comentarios en XML

Documento XML Aunque a primera vista un documento XML puede parecer similar a HTML hay una diferencia principal Un documento XML contiene datos que se autodefinen exclusivamente Un documento HTML contiene datos mal definidos mezclados con elementos de formato En XML se separa el contenido de la presentacioacuten de forma total Una forma de entender raacutepidamente la estructura de un documento XML es viendo un pequentildeo ejemplo

ltxml version=10gt ltDOCTYPE MENSAJE SYSTEM mensajedtdgt ltmensajegt

ltremitegt ltnombregtAlfredo Reinoltnombregt ltemailgtalfibiumcomltemailgt

ltremitegt ltdestinatariogt

ltnombregtBill Clintonltnombregt ltemailgtpresidentwhitehousegovltemailgt

ltdestinatariogt ltasuntogtHola Billltasuntogt lttextogt

ltparrafogtiquestHola queacute tal Hace ltenfasisgtmucholtenfasisgt que no escribes A ver si llamas y quedamos para tomar algoltparrafogt lttextogt

ltmensajegt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

10

Este mismo documento puede ser visto de forma graacutefica para comprender mejor la estructura de un documento XML

Realiza las Actividades 1 y 2

Estructura de un documento XML

Un documento XML tiene dos estructuras una loacutegica y otra fiacutesica

Fiacutesicamente el documento estaacute compuesto por unidades llamadas entidades Una entidad puede hacer referencia a otra entidad causando que esta se incluya en el documento Cada documento comienza con una entidad documento tambieacuten llamada raiacutez

Loacutegicamente el documento estaacute compuesto de declaraciones elementos comentarios referencias a caracteres e instrucciones de procesamiento todos los cuales estaacuten indicados por una marca expliacutecita Las estructuras loacutegica y fiacutesica deben encajar de manera adecuada

Los documentos XML se dividen en dos grupos documentos bien formados y documentos vaacutelidos

bull Bien formados Son todos los que cumplen las especificaciones del lenguaje respecto a las reglas sintaacutecticas sin estar sujetos a unos elementos fijados en un DTD De hecho los documentos XML deben tener una estructura jeraacuterquica muy estricta y los documentos bien formados deben cumplirla El documento debe de contener una soacutela raiacutez y todas las etiquetas estar correctamente anidadas

Semana 1 Caracteriacutesticas de los lenguajes de marcas

11

bull Vaacutelidos Ademaacutes de estar bien formados siguen una estructura y una semaacutentica determinada por un DTD sus elementos y sobre todo la estructura jeraacuterquica que define el DTD ademaacutes de los atributos deben ajustarse a lo que el DTD dicte Veremos maacutes adelante maacutes detalladamente lo que es un DTD pero podemos ir adelantando que un DTD permite especificar la estructura del documento y que el DTD puede estar separado del documento

Un fichero puede estar bien escrito seguacuten las reglas de XML (bien formado) pero no ldquotener ni pies ni cabezardquo ( no vaacutelido)

Aquiacute podemos ver otro ejemplo muy sencillo de documento XML

ltxml version= 10 encoding= UTF-8 standalone= yes gt ltfichagt

ltnombregt Angel ltnombregt ltapellidogt Barbero ltapellidogt ltdirecciongt cUlises 36 ltdirecciongt

ltfichagt La estructura baacutesica de un bloque XML se muestra en la siguiente figura

Semana 1 Caracteriacutesticas de los lenguajes de marcas

12

Lo primero que tenemos que observar es la primera liacutenea Con ella deben empezar todos los documentos XML ya que en ella se indica que el documento es XML Aunque es opcional es recomendable incluirla Puede tener varios atributos algunos obligatorios y otros no

bull version Indica la versioacuten de XML usada en el documento Es obligatorio ponerlo a no ser que sea un documento externo a otro que ya lo incluiacutea

bull encoding La forma en que se ha codificado el documento Se puede poner cualquiera y depende del parser el poder entender o no la codificacioacuten Por defecto es UTF‐8 aunque podriacutean ponerse otras como UTF‐16 US‐ASCII ISO‐8859‐1 etc No es obligatorio salvo que sea un documento externo a otro principal

bull standalone Indica si el documento va acompantildeado de un DTD (no) o no lo necesita (yes) en principio no hay porqueacute ponerlo porque luego se indica el DTD si se necesita Veremos los DTD maacutes adelante

Realiza la Actividad 3

Caracteriacutesticas de los documentos XML bien formados

Un documento XML se dice que estaacute bien formado si encaja con las especificaciones XML de produccioacuten lo que implica

Estructura jeraacuterquica de elementos

Los documentos XML deben seguir una estructura estrictamente jeraacuterquica con lo que respecta a las etiquetas que delimitan sus elementos Una etiqueta debe estar correctamente incluiacuteda en otra Asiacutemismo los elementos con contenido deben estar correctamente cerrados A continuacioacuten se muestra un ejemplo incorrecto y posteriormente otro ejemplo escrito correctamente

ltligtHTML ltbgt permite ltigt esto ltbgt ltigt Ejemplo incorrecto ltligtEn XML la ltbgt estructura ltigt es ltigt jeraacuterquica ltbgtltligt Ejemplo correcto

Realiza la Actividad 4

Semana 1 Caracteriacutesticas de los lenguajes de marcas

13

Etiquetas vaciacuteas

HTML permite elementos sin contenido XML tambieacuten pero la etiqueta debe ser de la siguiente forma ltelemento sin contenido gt A continuacioacuten se muestra un ejemplo incorrecto y posteriormente otro correcto

ltligtEsto es HTML ltbrgt en el que casi todo estaacute permitido ltligt

Hay que tener en cuenta que el siacutembolo lt siempre se interpreta como inicio de una etiqueta XML Si no es el caso el documento no estaraacute bien formado Para usar ciertos siacutembolos se usan las entidades predefinidas que se explican maacutes adelante

Un elemento vaciacuteo es el que no tiene contenido Por ejemplo

ltidentificador DNI=23123244 gt

ltlinea-horizontal gt

Al no tener una etiqueta de cierre que delimite un contenido se utiliza la forma ltetiqueta gt que puede contener atributos o no La sintaxis de HTML permite etiquetas vaciacuteas tipo lthrgt o ltimg src=gt En HTML reformulado para que sea un documento XML bien formado se deberiacutea usar lthr gt o ltimg src=

Atributos

Como se ha mencionado antes los elementos pueden tener atributos que son una manera de incorporar caracteriacutesticas o propiedades a los elementos de un documento

Por ejemplo un elemento chiste puede tener un atributo tipo y un atributo calidad con valores vascos y bueno respectivamente

ltchiste tipo=vascos calidad=buenogt Esto es un diacutea que Patxi y Josu van paseando ltchistegt

En una Definicioacuten de Tipo de Documento (DTD) se especifican los atributos que pueden tener cada tipo de elemento asiacute como sus valores y tipos de valor posible

Al igual que en otras cadenas literales de XML los atributos pueden estar marcados entre comillas simples () o doble () Cuando se usa uno para delimitar el valor del atributo el otro tipo se puede usar dentro

ltverdura clase=zanahoria longitud=15 y mediagt

ltcita texto=Hola buenos dias dijo eacutelgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

14

A veces un elemento con contenido puede modelarse como un elemento vaciacuteo con atributos Un concepto se puede representar de muy diversas formas pero una vez elegida una es aconsejable fijarla en el DTD y usar siempre la misma consistentemente dentro de un documento XML

Entidades Predefinidas

En XML 10 se definen cinco entidades para representar caracteres especiales y que no se interpreten como marcado en el procesador XML Es decir que asiacute podemos usar el caraacutecter lt sin que se interprete como el comienzo de una etiqueta XML por ejemplo Entidad Caraacutecter

ampamp amp amplt lt ampgt gt ampapos lsquo ampquot ldquo

ltgatogt ltnombregtMicifuacuteltnombregt ltrazagtPersaltrazagt

ltgatogt ltgato raza=Persagt

Micifuacute ltgatogt

ltgato raza=Persa nombre=Micifuacutegt

Secciones CDATA

Existe otra construccioacuten en XML que permite especificar datos utilizando cualquier caraacutecter especial o no sin que se interprete como marcado XML La razoacuten de esta construccioacuten llamada CDATA (Character DATA) es que a veces es necesario para los autores de documentos XML poder leerlo faacutecilmente sin tener que descifrar los coacutedigos de entidades Especialmente cuando son muchos

Como ejemplo el siguiente (primero usando entidades predefinidas y luego con un bloque CDATA) Podemos comprobar su uso en el siguiente ejemplo

ltejemplogt amplthtmlampgt ampltheadampgtamplttitlegtRock ampamp Rollamplttitleampgtampltheadampgt

ltejemplogt

ltejemplogt lt[CDATA[

lthtmlgt ltheadgtlttitlegtRock amp Rolllttitlegtltheadgt

]]gt ltejemplogt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

15

Como hemos visto dentro de una seccioacuten CDATA podemos poner cualquier cosa que no seraacute interpretada como algo que no es asiacute Existe una excepcioacuten y es la cadena ]]gt con el que termina el bloque CDATA Esta cadena no puede utilizarse dentro de una seccioacuten CDATA

Comentarios

A veces es conveniente insertar comentarios en el documento XML que son ignorados por el procesado de la informacioacuten y las reproducciones del documento Los comentarios tienen el mismo formato que los comentarios de HTML Es decir comienza por la cadena lt‐‐ y termina con ‐‐gt

lt‐‐ Esto es un comentario ‐‐gt

Se pueden introducir comentarios en cualquier parte del documento salvo dentro de las declaraciones etiquetas u otros comentarios

Realiza la actividad 5 y 6

Espacios de nombre (NameSpaces)

En XML los espacios de nombre (namespace) tienen dos propoacutesitos

1 Distinguir entre elementos y atributos de distintos vocabularios con distintos significados que puedan compartir el mismo nombre

2 Agrupar todos los elementos y atributos relacionados de una sola aplicacioacuten

XML para que el software pueda reconocerlos con facilidad El primer propoacutesito es maacutes faacutecil de explicar y entender pero el segundo es maacutes importante en la praacutectica La extensibilidad es una facultad que no es gratuita En un entorno distribuido esta facultad deberaacute ser administrada para evitar conflictos Los espacios de nombre son una solucioacuten para ayudar a administrar la extensibilidad de XML Un espacio de nombres puede ser definido como un mecanismo para identificar elementos XML Establece los nombres de los elementos en un contexto global Supongamos que decide publicar sus marcadores como muestra el siguiente documento

Semana 1 Caracteriacutesticas de los lenguajes de marcas

16

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

Con frecuencia es necesario extender un documento existente para transmitirle nueva informacioacuten No obstante hay problemas si la extensioacuten no se administra Suponga que alguien maacutes decide clasificar la lista anterior con asesoriacutea para padres El listado siguiente muestra el resultado (Noticias ABC y Coacutemics podriacutean contener violencia o escenas de sexo por esto tienen un nivel de Guiacutea paterna)

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

17

Esto es algo problemaacutetico Supongamos que la extensioacuten contempla ambos tipos de categoriacuteas

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

El problema con el anterior listado es que un software disentildeado para funcionar con el anterior listado con el objetivo de listar viacutenculos ofensivos no sabriacutea queacute hacer con la categoriacutea 5 estrellas El software tan soacutelo tiene que pasar por alto las etiquetas de categoriacutea de calidad pero iquestcoacutemo podriacutea hacerlo si no puede distinguir entre ambas etiquetas de categoriacutea La solucioacuten es obvia utilizar distintos nombres para ambas categoriacuteas por ejemplo Para el control de calidad ltcld‐categoriacuteagt3 estrellasltcategoriacuteagt Y para el control parental

Semana 1 Caracteriacutesticas de los lenguajes de marcas

18

ltpdr‐categoriacuteagtGuiacutea paternaltcategoriacuteagt El problema del ejemplo anterior es hellip el caraacutecter de extensibilidad de XML Dado que cualquiera puede generar etiquetas hay un enorme riesgo de conflictos Una solucioacuten para evitarlo es establecer un registro global de etiquetas aceptadas y su definicioacuten asociada No obstante podriacutea limitar severamente la flexibilidad de XML Nadie desea hacer esto La flexibilidad fue una meta primordial en el disentildeo de XML La propuesta de los espacios de nombre corrige este problema con un meacutetodo elegante no limita la extensibilidad sino que presenta mecanismos para administrarla El listado siguiente es similar al uacuteltimo pero utiliza espacios de nombre para evitar los conflictos Xmlns Xml Name Schema

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferencias xmlnscld=httpjokerplayfieldcomstar‐categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

19

A primera vista todo parece similar pero la diferencia estaacute en el formato de los nombres Ahora se agrega un prefijo a cada nombre de elemento El prefijo y el nombre estaacuten separados por dos puntos () ltcldcategoriacuteagt3 estrellasltcategoriacuteagt El prefijo identifica uniacutevocamente el tipo de categoriacutea en este documento No obstante tales prefijos por siacute solos no resuelven nada dado que cualquier persona puede generarlos Asiacute pues distintas personas podriacutean generar prefijos incompatibles y volvemos al primer paso Para evitar tales conflictos los prefijos deben estar declarados ltreferencias xmlnscld=httpjokerplayfieldcomstar-categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt La declaracioacuten asocia a un URI con un prefijo Este es el punto crucial de la propuesta de los espacios de nombre dado que los URIs a diferencia de los nombres son uacutenicos Los espacios de nombre se fundamentan en los mecanismos de registro establecidos para los URIs Por tanto se garantiza que los URLs son uacutenicos dado que estaacuten basados en nombres de dominio registrados para garantizar la unicidad

El nombre del espacio de nombre

El nombre del espacio de nombre es el URI no el prefijo Cuando una aplicacioacuten compara a dos elementos utiliza el URI no el prefijo para reconocer sus espacios de nombre

Asiacute en el listado siguiente rffnombre y refnombre se consideran ideacutenticos a pesar de tener un prefijo distinto Ambos estaacuten en el espacio de nombre httpcatwomanpineapplesoftcomref15

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 175012 CEST 2010 --gt ltreferenciasgt ltrffnombre xmlnsrff=httpcatwomanpineapplesoftcomref15gt Pearson Educational ltrffnombregt ltlink href=httpwwwpearsoncommx gt ltrefnombre xmlnsref=httpcatwomanpineapplesoftcomref15gt Pineapplesoft ltrefnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

20

Espacio de nombre predeterminado

Todos los elementos sin prefijo nombre y link en los ejemplos anteriores y todos sus elementos descendientes pertenecen a un espacio de nombres predeterminado antildeadiendo un atributo xmlns sin prefijo en el elemento de la parte superior En nuestro caso

xmlns=httpcatwomanpineapplesoftcomref15

Los atributos son diferentes Los espacios de nombre predeterminados solo se aplican a los elementos no a los atributos Por lo tanto en el espacio anterior el atributo sin prefijo href no estaacute en ninguacuten espacio de nombre

Realiza la Actividad 7

Los URIs Un URI (Uniform Resource Identifier) es una cadena corta de caracteres que identifica inequiacutevocamente un recurso (servicio paacutegina documento direccioacuten de correo electroacutenico enciclopedia etc) Normalmente estos recursos son accesibles en una red o sistema

En el caso que nos ocupa el URI solo se utiliza para asegurar la unicidad de los nombres Podriacutea (aunque no necesariamente) apuntar a una descripcioacuten del nombre Por ejemplo podriacutea haber un documento en httppenguinxmlicomreview10 que describa la categoriacutea o podriacutea no haber nada

No obstante lo importante es que los URIs son uacutenicos y deberiacuteamos generarlos de acuerdo con nuestros nombres de dominio Los nombres de dominio Los URLs (Uniform Resource Locator) son direcciones para localizar recursos en Internet y actualmente han sido englobados por el concepto maacutes general de URI

Tienen el siguiente formato

httpwwwpearsoncommx httpwwwpineapplesoftcomnewsletter ftpftpmcpcom newsnewspsolcomcompxml mailtobmarchalpineapplesoftcom El nombre del dominio es solo una parte del URL ldquopearsoncommxrdquo y ldquopineapplesoftcomrdquo son dos de ellos

Semana 1 Caracteriacutesticas de los lenguajes de marcas

21

El nombre del dominio estaacute registrado por una autoridad global para asegurar que no haya duplicados Dada la globalidad del registro uno no puede hacer lo que quiera con los nombres de dominio Por ejemplo no es posible registrar nombres que ya esteacuten en uso La parte final del nombre de dominio (ldquocomrdquo por ejemplo) se conoce como Dominio de nivel superior (TLD Top Level Domain) identifica a la autoridad que asignoacute el nombre de dominio InterNIC (wwwinternicnet) es la autoridad para la mayor parte de los llamados TLD geneacutericos ldquocomrdquo (comercial) ldquonetrdquo (proveedores de servicios de Internet) ldquoorgrdquo (instituciones sin aacutenimo de lucro) Son geneacutericas puesto que estaacuten abiertas a empresas u organizaciones con un aacutembito mundial Tambieacuten hay TLDs especiacuteficos de un paiacutes ldquoesrdquo en Espantildea ldquoukrdquo en el Reino Unido ldquousrdquo en Estados Unidos etc Los nombres de dominio no son muy costosos (actualmente unos 15 euro anuales) por lo que es muy recomendable contratar uno

  • Introduccioacuten
    • Elementos XML
    • Atributos
      • Caracteriacutesticas de los documentos XML bien formados
Page 4: lenguaje de marcas

Semana 1 Caracteriacutesticas de los lenguajes de marcas

4

XML

Introduccioacuten XML el lenguaje de marcas extensible (Extensible Markup Language) es un estaacutendar avalado por el W3C (Consorcio World Wide Web) para marcar documentos Permite que los disentildeadores creen sus propias etiquetas permitiendo la definicioacuten transmisioacuten validacioacuten e interpretacioacuten de datos entre aplicaciones y entre organizaciones Define una sintaxis geneacuterica utilizada para marcar datos con etiquetas sencillas y de faacutecil lectura

XML no es realmente un lenguaje en particular sino una manera de definir lenguajes para diferentes necesidades

XML estaacute disentildeado para trasladar datos de una forma eficiente e independiente del sistema o plataforma no para visualizar los datos Se propone un estaacutendar para el intercambio de informacioacuten estructurada entre diferentes plataformas Se puede usar en bases de datos editores de texto hojas de caacutelculo y casi cualquier cosa imaginable

XML por siacute soacutelo no hace nada soacutelo describe informacioacuten

Por ejemplo

ltnotagt ltparagtRaquelltparagt ltdegtJavierltdegt ltcabeceragtRecordatorioltcabeceragt ltmensajegtNo te olvides que quedamos para este fin de semanaltmensajegt ltnotagt

En XML las etiquetas definen la estructura y el significado de los datos queacute son los datos

Se utiliza un sistema para generar los datos y marcarlos con etiquetas XML y despueacutes procesar esos datos en otros muchos sistemas independientemente de la plataforma de hardware y del sistema operativo Esta portabilidad es la razoacuten por la que XML se ha convertido en una de las tecnologiacuteas maacutes populares para el intercambio de datos

XML no es soacutelo una herramienta de uso en sistemas de Web se utiliza como meacutetodo de intercambio y traspaso de informacioacuten entre muacuteltiples aplicaciones

XML no sustituye a HTML (no sirven para lo mismo)

‐ XML se encarga de trasladar los datos y su formato

‐ HTML se encarga de visualizar los datos

En XML no dependemos de un formato ya predefinido de etiquetas como en HTML Nos podemos inventar las etiquetas que necesitemos para definir nuestros datos es por esto por lo que XML es un lenguaje de meta‐marcas XML permite a

Semana 1 Caracteriacutesticas de los lenguajes de marcas

5

desarrolladores y escritores inventar los elementos que necesitan cuando los necesitan Los quiacutemicos pueden usar elementos que describen moleacuteculas y aacutetomos y los agentes inmobiliarios elementos que describen apartamentos pisos alquileres y ubicaciones La X de XML proviene de extensible lo que significa que el lenguaje se puede ampliar y adaptar para ajustarse a las distintas necesidades

El ejemplo siguiente muestra un documento XML sencillo Este documento se puede encontrar en un sistema de control de inventario o en una base de datos de existencias y marca los datos con etiquetas y atributos que describen el color el tamantildeo etc

Este documento es texto y se puede guardar en un archivo de texto Podemos editar este archivo con cualquier editor de textos como Notepad o vi

Los programas que realmente intentan interpretar el contenido del documento XML (es decir hacen algo maacutes que simplemente tratarlo como texto) van a usar un analizador sintaacutectico XML Este analizador es el responsable de dividir el documento en elementos atributos y otras piezas individuales Si en cualquier momento el analizador detecta una infraccioacuten de las reglas de una estructura bien formada de XML informa del error a la aplicacioacuten y detiene el anaacutelisis sintaacutectico A veces el analizador puede seguir leyendo el documento pasado el error original para detectar e informar de otros errores

Semana 1 Caracteriacutesticas de los lenguajes de marcas

6

Para preparar el manual hemos usado EditiX 2010 Tiene una versioacuten free que puedes bajar desde httpfreeeditixcomdownloadhtml

Evolucioacuten de XML XML es un descendiente de SGML el Lenguaje estaacutendar de marcas generalizadas (Standard Generalized Markup Language)El lenguaje que finalmente se convertiriacutea en SGML fue creado por un equipo de IBM dirigido por Charles F Goldfarb a finales de 1970 y fue desarrollado por cientos de personas hasta su adopcioacuten final como estaacutendar ISO en 1986 Es un lenguaje de marcas estructurado para documentos de texto Es muy eficaz y cosechoacute gran eacutexito en los sectores militares y gubernamentales de USA y en otros sectores que necesitaban formas de administrar documentos teacutecnicos con miles de paacuteginas de contenido

Un documento SGML se compone de tres partes o archivos

bull Declaracioacuten SGML

bull Declaracioacuten de tipo de documento (DTD)

bull Instancia de Documento

La declaracioacuten SGML caracteriza la DTD y por tanto las instancias de documento (que incluyen el contenido propiamente dicho) que se generen a partir de ella en teacuterminos de conjunto de caracteres usados y otros puntos opcionales de SGML Esta declaracioacuten puede ser omitida en cuyo caso se asumen unos grupos de caracteres por defecto y ninguna caracteriacutestica opcional

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 32ENgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

7

Esta cabecera indica que el DTD desarrollada por W3C es la versioacuten 32 para HTML y estaacute escrito en ingleacutes

Una clase de documentos tiene en comuacuten una gramaacutetica que define el marcado permitido en esa clase el marcado requerido y coacutemo debe ser utilizado dicho marcado en la instancia de documento El estaacutendar define esta gramaacutetica mediante la DTD SGML no especifica ninguacuten conjunto particular de elementos el conjunto de elementos que pueden utilizarse se define en la DTD

ltELEMENT DOCUMENTO - - (titulo contenido autor) gt ltELEMENT CONTENIDO - - (capitulo+) gt ltELEMENT CAPITULO - (subtitulo parrafo) gt

La instancia de documento lleva pues el contenido estructurado seguacuten el marco definido en la DTD y con las caracteriacutesticas fijadas por la declaracioacuten SGML

ltdocumentogt lttitulogtHIPERTEXTOlttitulogt ltautorgt MARIA JESUS LAMARCA ltautorgt ltcontenidogt

ltcapitulogt ltsubtitulogtEL NUEVO CONCEPTO DE DOCUMENTO EN LA CULTURA DE LA IMAGEN ltsubtitulogt ltparrafogt Doctorado Fundamentos Metodologiacutea y Aplicaciones de las Tecnologiacuteas Documentales y Procesamiento de la Informacioacuten ltparrafogt ltcapitulogt

ltcontenidogt ltdocumentogt El mayor eacutexito de SGML fue HTML que es una aplicacioacuten SGML Sin embargo HTML no permite su uso maacutes allaacute de la propia aplicacioacuten de disentildeo de paacuteginas web No podemos utilizar HTML para intercambiar datos entre bases de datos incompatibles ni para enviar cataacutelogos de productos actualizados a los sitios de venta HTML crea paacuteginas web y lo hace muy bien pero solo crea paacuteginas web

SGML fue la opcioacuten evidente para otras aplicaciones que aprovechaban Internet El problema residiacutea en que SGML era complicado (muy muy complicado) La especificacioacuten oficial SGML tiene aproximadamente 150 paacuteginas muy teacutecnicas y analiza muchos casos especiales y escenarios poco probables Es tan complejo que ninguacuten software lo ha implementado completamente

En 1996 Jon Bosak Tim Bray y otros empezaron a trabajar en una versioacuten ldquolivianardquo de SGML que conservaba la mayor parte de la eficacia de SGML a la vez que recortaba muchas opciones que habiacutean demostrado ser redundantes demasiado complicadas para su implementacioacuten confusas para los usuarios finales o simplemente inuacutetiles a lo largo de los 20 antildeos de experiencia con SGML El resultado en febrero de 1998 fue XML y obtuvo un eacutexito inmediato Muchos desarrolladores que sabiacutean que necesitaban

Semana 1 Caracteriacutesticas de los lenguajes de marcas

8

un lenguaje de marcas estructural pero que no podiacutean aceptar la complejidad de SGML adoptaron XML con confianza Se comenzoacute a usar en sectores tan variados como los tribunales o los criaderos de cerdos

Sin embargo XML 10 fue tan solo el principio El siguiente estaacutendar fueron los espacios de nombres (Namespaces) un esfuerzo para permitir que marcas de distintas aplicaciones con el mismo nombre se pudieran usar en el mismo documento sin conflicto Asiacute un documento sobre libros podiacutea tener un elemento titulo que haciacutea referencia al tiacutetulo del libro y elementos titulo para los tiacutetulos de los capiacutetulos y ambos sin presentar conflicto alguno

A continuacioacuten aparecioacute el Lenguaje de hojas de estilo extensible (XSL Extensible Stylesheet Language) una aplicacioacuten para transformar documentos XML en un formulario que podiacutea visualizarse en una paacutegina web Pronto aparecieron las transformaciones XSL (XSLT Transformations XSL)y los objetos de formato XSL (XSL‐FO XSL Formatting Objects) XSLT se ha convertido en un lenguaje de propoacutesito general para transformar un documento XML en otro ya sea para una presentacioacuten web o para cualquier otro propoacutesito y XSL‐FO sirve para dar formato PostScript a un documento XML

Para el direccionamiento de partes individuales del documento surge XPath y otra pieza del rompecabezas fue una interfaz para el direccionamiento desde un programa java javascript o C++ La API maacutes simple solamente trataba el documento como un objeto que conteniacutea a otros objetos Se inicioacute una labor dentro y fuera del W3C para definirlo como modelo de objeto de documento (DOM Document Object Model) para HTML Ampliar este esfuerzo a XML no resultoacute difiacutecil

Esta rica coleccioacuten de especificaciones solo dirige tecnologiacuteas que son principales para XML Se han desarrollado muchas maacutes y continuacutean hacieacutendolo a un ritmo acelerado Aplicaciones XML como SOAP utilizado en el intercambio de datos en los servicios web SVG para describir graacuteficos vectoriales MathML para el uso en matemaacuteticas Atom para la sindicacioacuten XForms para definir interfaces de usuario a base de formularios web WordprocessingML para el trabajo con procesadores de texto y miles de ellas maacutes XML ha demostrado por siacute mismo ser una base soacutelida para muchas y variadas tecnologiacuteas

Componentes de XML

Elementos XML Un elemento XML es cualquier cosa que incluya una marca de inicio una marca de fin y la informacioacuten o no que se encuentra entre ambas marcas ltpeliculagtLa Red Socialltpeliculagt

Atributos Modificador de una etiqueta XML Da una caracteriacutestica ampliada de la etiqueta definida Pueden utilizarse comillas dobles y simples indistintamente pero se debe abrir y cerrar con el mismo siacutembolo

Semana 1 Caracteriacutesticas de los lenguajes de marcas

9

ltpelicula categoria=DramagtLa Red Socialltpeliculagt ltpelicula categoria=Comediagt 2 tontos muy tontosltpeliculagt

Sintaxis XML bull Todas las marcas utilizadas en XML deben tener un inicio y un final no como

sucede en HTML bull Las marcas de XML tienen en cuenta que sean mayuacutesculas y minuacutesculas (las

marcas deben colocarse de forma exacta) bull Las marcas se deben cerrar en el mismo orden en que se abrieron bull Un documento XML debe tener un elemento raiacutez de partida bull Todos los atributos de XML deben colocarse entre comillas dobles bull Para colocar determinados caracteres reservados en XML se deben utilizar

cadenas de identificacioacuten bull Se pueden colocar comentarios en XML

Documento XML Aunque a primera vista un documento XML puede parecer similar a HTML hay una diferencia principal Un documento XML contiene datos que se autodefinen exclusivamente Un documento HTML contiene datos mal definidos mezclados con elementos de formato En XML se separa el contenido de la presentacioacuten de forma total Una forma de entender raacutepidamente la estructura de un documento XML es viendo un pequentildeo ejemplo

ltxml version=10gt ltDOCTYPE MENSAJE SYSTEM mensajedtdgt ltmensajegt

ltremitegt ltnombregtAlfredo Reinoltnombregt ltemailgtalfibiumcomltemailgt

ltremitegt ltdestinatariogt

ltnombregtBill Clintonltnombregt ltemailgtpresidentwhitehousegovltemailgt

ltdestinatariogt ltasuntogtHola Billltasuntogt lttextogt

ltparrafogtiquestHola queacute tal Hace ltenfasisgtmucholtenfasisgt que no escribes A ver si llamas y quedamos para tomar algoltparrafogt lttextogt

ltmensajegt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

10

Este mismo documento puede ser visto de forma graacutefica para comprender mejor la estructura de un documento XML

Realiza las Actividades 1 y 2

Estructura de un documento XML

Un documento XML tiene dos estructuras una loacutegica y otra fiacutesica

Fiacutesicamente el documento estaacute compuesto por unidades llamadas entidades Una entidad puede hacer referencia a otra entidad causando que esta se incluya en el documento Cada documento comienza con una entidad documento tambieacuten llamada raiacutez

Loacutegicamente el documento estaacute compuesto de declaraciones elementos comentarios referencias a caracteres e instrucciones de procesamiento todos los cuales estaacuten indicados por una marca expliacutecita Las estructuras loacutegica y fiacutesica deben encajar de manera adecuada

Los documentos XML se dividen en dos grupos documentos bien formados y documentos vaacutelidos

bull Bien formados Son todos los que cumplen las especificaciones del lenguaje respecto a las reglas sintaacutecticas sin estar sujetos a unos elementos fijados en un DTD De hecho los documentos XML deben tener una estructura jeraacuterquica muy estricta y los documentos bien formados deben cumplirla El documento debe de contener una soacutela raiacutez y todas las etiquetas estar correctamente anidadas

Semana 1 Caracteriacutesticas de los lenguajes de marcas

11

bull Vaacutelidos Ademaacutes de estar bien formados siguen una estructura y una semaacutentica determinada por un DTD sus elementos y sobre todo la estructura jeraacuterquica que define el DTD ademaacutes de los atributos deben ajustarse a lo que el DTD dicte Veremos maacutes adelante maacutes detalladamente lo que es un DTD pero podemos ir adelantando que un DTD permite especificar la estructura del documento y que el DTD puede estar separado del documento

Un fichero puede estar bien escrito seguacuten las reglas de XML (bien formado) pero no ldquotener ni pies ni cabezardquo ( no vaacutelido)

Aquiacute podemos ver otro ejemplo muy sencillo de documento XML

ltxml version= 10 encoding= UTF-8 standalone= yes gt ltfichagt

ltnombregt Angel ltnombregt ltapellidogt Barbero ltapellidogt ltdirecciongt cUlises 36 ltdirecciongt

ltfichagt La estructura baacutesica de un bloque XML se muestra en la siguiente figura

Semana 1 Caracteriacutesticas de los lenguajes de marcas

12

Lo primero que tenemos que observar es la primera liacutenea Con ella deben empezar todos los documentos XML ya que en ella se indica que el documento es XML Aunque es opcional es recomendable incluirla Puede tener varios atributos algunos obligatorios y otros no

bull version Indica la versioacuten de XML usada en el documento Es obligatorio ponerlo a no ser que sea un documento externo a otro que ya lo incluiacutea

bull encoding La forma en que se ha codificado el documento Se puede poner cualquiera y depende del parser el poder entender o no la codificacioacuten Por defecto es UTF‐8 aunque podriacutean ponerse otras como UTF‐16 US‐ASCII ISO‐8859‐1 etc No es obligatorio salvo que sea un documento externo a otro principal

bull standalone Indica si el documento va acompantildeado de un DTD (no) o no lo necesita (yes) en principio no hay porqueacute ponerlo porque luego se indica el DTD si se necesita Veremos los DTD maacutes adelante

Realiza la Actividad 3

Caracteriacutesticas de los documentos XML bien formados

Un documento XML se dice que estaacute bien formado si encaja con las especificaciones XML de produccioacuten lo que implica

Estructura jeraacuterquica de elementos

Los documentos XML deben seguir una estructura estrictamente jeraacuterquica con lo que respecta a las etiquetas que delimitan sus elementos Una etiqueta debe estar correctamente incluiacuteda en otra Asiacutemismo los elementos con contenido deben estar correctamente cerrados A continuacioacuten se muestra un ejemplo incorrecto y posteriormente otro ejemplo escrito correctamente

ltligtHTML ltbgt permite ltigt esto ltbgt ltigt Ejemplo incorrecto ltligtEn XML la ltbgt estructura ltigt es ltigt jeraacuterquica ltbgtltligt Ejemplo correcto

Realiza la Actividad 4

Semana 1 Caracteriacutesticas de los lenguajes de marcas

13

Etiquetas vaciacuteas

HTML permite elementos sin contenido XML tambieacuten pero la etiqueta debe ser de la siguiente forma ltelemento sin contenido gt A continuacioacuten se muestra un ejemplo incorrecto y posteriormente otro correcto

ltligtEsto es HTML ltbrgt en el que casi todo estaacute permitido ltligt

Hay que tener en cuenta que el siacutembolo lt siempre se interpreta como inicio de una etiqueta XML Si no es el caso el documento no estaraacute bien formado Para usar ciertos siacutembolos se usan las entidades predefinidas que se explican maacutes adelante

Un elemento vaciacuteo es el que no tiene contenido Por ejemplo

ltidentificador DNI=23123244 gt

ltlinea-horizontal gt

Al no tener una etiqueta de cierre que delimite un contenido se utiliza la forma ltetiqueta gt que puede contener atributos o no La sintaxis de HTML permite etiquetas vaciacuteas tipo lthrgt o ltimg src=gt En HTML reformulado para que sea un documento XML bien formado se deberiacutea usar lthr gt o ltimg src=

Atributos

Como se ha mencionado antes los elementos pueden tener atributos que son una manera de incorporar caracteriacutesticas o propiedades a los elementos de un documento

Por ejemplo un elemento chiste puede tener un atributo tipo y un atributo calidad con valores vascos y bueno respectivamente

ltchiste tipo=vascos calidad=buenogt Esto es un diacutea que Patxi y Josu van paseando ltchistegt

En una Definicioacuten de Tipo de Documento (DTD) se especifican los atributos que pueden tener cada tipo de elemento asiacute como sus valores y tipos de valor posible

Al igual que en otras cadenas literales de XML los atributos pueden estar marcados entre comillas simples () o doble () Cuando se usa uno para delimitar el valor del atributo el otro tipo se puede usar dentro

ltverdura clase=zanahoria longitud=15 y mediagt

ltcita texto=Hola buenos dias dijo eacutelgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

14

A veces un elemento con contenido puede modelarse como un elemento vaciacuteo con atributos Un concepto se puede representar de muy diversas formas pero una vez elegida una es aconsejable fijarla en el DTD y usar siempre la misma consistentemente dentro de un documento XML

Entidades Predefinidas

En XML 10 se definen cinco entidades para representar caracteres especiales y que no se interpreten como marcado en el procesador XML Es decir que asiacute podemos usar el caraacutecter lt sin que se interprete como el comienzo de una etiqueta XML por ejemplo Entidad Caraacutecter

ampamp amp amplt lt ampgt gt ampapos lsquo ampquot ldquo

ltgatogt ltnombregtMicifuacuteltnombregt ltrazagtPersaltrazagt

ltgatogt ltgato raza=Persagt

Micifuacute ltgatogt

ltgato raza=Persa nombre=Micifuacutegt

Secciones CDATA

Existe otra construccioacuten en XML que permite especificar datos utilizando cualquier caraacutecter especial o no sin que se interprete como marcado XML La razoacuten de esta construccioacuten llamada CDATA (Character DATA) es que a veces es necesario para los autores de documentos XML poder leerlo faacutecilmente sin tener que descifrar los coacutedigos de entidades Especialmente cuando son muchos

Como ejemplo el siguiente (primero usando entidades predefinidas y luego con un bloque CDATA) Podemos comprobar su uso en el siguiente ejemplo

ltejemplogt amplthtmlampgt ampltheadampgtamplttitlegtRock ampamp Rollamplttitleampgtampltheadampgt

ltejemplogt

ltejemplogt lt[CDATA[

lthtmlgt ltheadgtlttitlegtRock amp Rolllttitlegtltheadgt

]]gt ltejemplogt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

15

Como hemos visto dentro de una seccioacuten CDATA podemos poner cualquier cosa que no seraacute interpretada como algo que no es asiacute Existe una excepcioacuten y es la cadena ]]gt con el que termina el bloque CDATA Esta cadena no puede utilizarse dentro de una seccioacuten CDATA

Comentarios

A veces es conveniente insertar comentarios en el documento XML que son ignorados por el procesado de la informacioacuten y las reproducciones del documento Los comentarios tienen el mismo formato que los comentarios de HTML Es decir comienza por la cadena lt‐‐ y termina con ‐‐gt

lt‐‐ Esto es un comentario ‐‐gt

Se pueden introducir comentarios en cualquier parte del documento salvo dentro de las declaraciones etiquetas u otros comentarios

Realiza la actividad 5 y 6

Espacios de nombre (NameSpaces)

En XML los espacios de nombre (namespace) tienen dos propoacutesitos

1 Distinguir entre elementos y atributos de distintos vocabularios con distintos significados que puedan compartir el mismo nombre

2 Agrupar todos los elementos y atributos relacionados de una sola aplicacioacuten

XML para que el software pueda reconocerlos con facilidad El primer propoacutesito es maacutes faacutecil de explicar y entender pero el segundo es maacutes importante en la praacutectica La extensibilidad es una facultad que no es gratuita En un entorno distribuido esta facultad deberaacute ser administrada para evitar conflictos Los espacios de nombre son una solucioacuten para ayudar a administrar la extensibilidad de XML Un espacio de nombres puede ser definido como un mecanismo para identificar elementos XML Establece los nombres de los elementos en un contexto global Supongamos que decide publicar sus marcadores como muestra el siguiente documento

Semana 1 Caracteriacutesticas de los lenguajes de marcas

16

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

Con frecuencia es necesario extender un documento existente para transmitirle nueva informacioacuten No obstante hay problemas si la extensioacuten no se administra Suponga que alguien maacutes decide clasificar la lista anterior con asesoriacutea para padres El listado siguiente muestra el resultado (Noticias ABC y Coacutemics podriacutean contener violencia o escenas de sexo por esto tienen un nivel de Guiacutea paterna)

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

17

Esto es algo problemaacutetico Supongamos que la extensioacuten contempla ambos tipos de categoriacuteas

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

El problema con el anterior listado es que un software disentildeado para funcionar con el anterior listado con el objetivo de listar viacutenculos ofensivos no sabriacutea queacute hacer con la categoriacutea 5 estrellas El software tan soacutelo tiene que pasar por alto las etiquetas de categoriacutea de calidad pero iquestcoacutemo podriacutea hacerlo si no puede distinguir entre ambas etiquetas de categoriacutea La solucioacuten es obvia utilizar distintos nombres para ambas categoriacuteas por ejemplo Para el control de calidad ltcld‐categoriacuteagt3 estrellasltcategoriacuteagt Y para el control parental

Semana 1 Caracteriacutesticas de los lenguajes de marcas

18

ltpdr‐categoriacuteagtGuiacutea paternaltcategoriacuteagt El problema del ejemplo anterior es hellip el caraacutecter de extensibilidad de XML Dado que cualquiera puede generar etiquetas hay un enorme riesgo de conflictos Una solucioacuten para evitarlo es establecer un registro global de etiquetas aceptadas y su definicioacuten asociada No obstante podriacutea limitar severamente la flexibilidad de XML Nadie desea hacer esto La flexibilidad fue una meta primordial en el disentildeo de XML La propuesta de los espacios de nombre corrige este problema con un meacutetodo elegante no limita la extensibilidad sino que presenta mecanismos para administrarla El listado siguiente es similar al uacuteltimo pero utiliza espacios de nombre para evitar los conflictos Xmlns Xml Name Schema

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferencias xmlnscld=httpjokerplayfieldcomstar‐categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

19

A primera vista todo parece similar pero la diferencia estaacute en el formato de los nombres Ahora se agrega un prefijo a cada nombre de elemento El prefijo y el nombre estaacuten separados por dos puntos () ltcldcategoriacuteagt3 estrellasltcategoriacuteagt El prefijo identifica uniacutevocamente el tipo de categoriacutea en este documento No obstante tales prefijos por siacute solos no resuelven nada dado que cualquier persona puede generarlos Asiacute pues distintas personas podriacutean generar prefijos incompatibles y volvemos al primer paso Para evitar tales conflictos los prefijos deben estar declarados ltreferencias xmlnscld=httpjokerplayfieldcomstar-categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt La declaracioacuten asocia a un URI con un prefijo Este es el punto crucial de la propuesta de los espacios de nombre dado que los URIs a diferencia de los nombres son uacutenicos Los espacios de nombre se fundamentan en los mecanismos de registro establecidos para los URIs Por tanto se garantiza que los URLs son uacutenicos dado que estaacuten basados en nombres de dominio registrados para garantizar la unicidad

El nombre del espacio de nombre

El nombre del espacio de nombre es el URI no el prefijo Cuando una aplicacioacuten compara a dos elementos utiliza el URI no el prefijo para reconocer sus espacios de nombre

Asiacute en el listado siguiente rffnombre y refnombre se consideran ideacutenticos a pesar de tener un prefijo distinto Ambos estaacuten en el espacio de nombre httpcatwomanpineapplesoftcomref15

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 175012 CEST 2010 --gt ltreferenciasgt ltrffnombre xmlnsrff=httpcatwomanpineapplesoftcomref15gt Pearson Educational ltrffnombregt ltlink href=httpwwwpearsoncommx gt ltrefnombre xmlnsref=httpcatwomanpineapplesoftcomref15gt Pineapplesoft ltrefnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

20

Espacio de nombre predeterminado

Todos los elementos sin prefijo nombre y link en los ejemplos anteriores y todos sus elementos descendientes pertenecen a un espacio de nombres predeterminado antildeadiendo un atributo xmlns sin prefijo en el elemento de la parte superior En nuestro caso

xmlns=httpcatwomanpineapplesoftcomref15

Los atributos son diferentes Los espacios de nombre predeterminados solo se aplican a los elementos no a los atributos Por lo tanto en el espacio anterior el atributo sin prefijo href no estaacute en ninguacuten espacio de nombre

Realiza la Actividad 7

Los URIs Un URI (Uniform Resource Identifier) es una cadena corta de caracteres que identifica inequiacutevocamente un recurso (servicio paacutegina documento direccioacuten de correo electroacutenico enciclopedia etc) Normalmente estos recursos son accesibles en una red o sistema

En el caso que nos ocupa el URI solo se utiliza para asegurar la unicidad de los nombres Podriacutea (aunque no necesariamente) apuntar a una descripcioacuten del nombre Por ejemplo podriacutea haber un documento en httppenguinxmlicomreview10 que describa la categoriacutea o podriacutea no haber nada

No obstante lo importante es que los URIs son uacutenicos y deberiacuteamos generarlos de acuerdo con nuestros nombres de dominio Los nombres de dominio Los URLs (Uniform Resource Locator) son direcciones para localizar recursos en Internet y actualmente han sido englobados por el concepto maacutes general de URI

Tienen el siguiente formato

httpwwwpearsoncommx httpwwwpineapplesoftcomnewsletter ftpftpmcpcom newsnewspsolcomcompxml mailtobmarchalpineapplesoftcom El nombre del dominio es solo una parte del URL ldquopearsoncommxrdquo y ldquopineapplesoftcomrdquo son dos de ellos

Semana 1 Caracteriacutesticas de los lenguajes de marcas

21

El nombre del dominio estaacute registrado por una autoridad global para asegurar que no haya duplicados Dada la globalidad del registro uno no puede hacer lo que quiera con los nombres de dominio Por ejemplo no es posible registrar nombres que ya esteacuten en uso La parte final del nombre de dominio (ldquocomrdquo por ejemplo) se conoce como Dominio de nivel superior (TLD Top Level Domain) identifica a la autoridad que asignoacute el nombre de dominio InterNIC (wwwinternicnet) es la autoridad para la mayor parte de los llamados TLD geneacutericos ldquocomrdquo (comercial) ldquonetrdquo (proveedores de servicios de Internet) ldquoorgrdquo (instituciones sin aacutenimo de lucro) Son geneacutericas puesto que estaacuten abiertas a empresas u organizaciones con un aacutembito mundial Tambieacuten hay TLDs especiacuteficos de un paiacutes ldquoesrdquo en Espantildea ldquoukrdquo en el Reino Unido ldquousrdquo en Estados Unidos etc Los nombres de dominio no son muy costosos (actualmente unos 15 euro anuales) por lo que es muy recomendable contratar uno

  • Introduccioacuten
    • Elementos XML
    • Atributos
      • Caracteriacutesticas de los documentos XML bien formados
Page 5: lenguaje de marcas

Semana 1 Caracteriacutesticas de los lenguajes de marcas

5

desarrolladores y escritores inventar los elementos que necesitan cuando los necesitan Los quiacutemicos pueden usar elementos que describen moleacuteculas y aacutetomos y los agentes inmobiliarios elementos que describen apartamentos pisos alquileres y ubicaciones La X de XML proviene de extensible lo que significa que el lenguaje se puede ampliar y adaptar para ajustarse a las distintas necesidades

El ejemplo siguiente muestra un documento XML sencillo Este documento se puede encontrar en un sistema de control de inventario o en una base de datos de existencias y marca los datos con etiquetas y atributos que describen el color el tamantildeo etc

Este documento es texto y se puede guardar en un archivo de texto Podemos editar este archivo con cualquier editor de textos como Notepad o vi

Los programas que realmente intentan interpretar el contenido del documento XML (es decir hacen algo maacutes que simplemente tratarlo como texto) van a usar un analizador sintaacutectico XML Este analizador es el responsable de dividir el documento en elementos atributos y otras piezas individuales Si en cualquier momento el analizador detecta una infraccioacuten de las reglas de una estructura bien formada de XML informa del error a la aplicacioacuten y detiene el anaacutelisis sintaacutectico A veces el analizador puede seguir leyendo el documento pasado el error original para detectar e informar de otros errores

Semana 1 Caracteriacutesticas de los lenguajes de marcas

6

Para preparar el manual hemos usado EditiX 2010 Tiene una versioacuten free que puedes bajar desde httpfreeeditixcomdownloadhtml

Evolucioacuten de XML XML es un descendiente de SGML el Lenguaje estaacutendar de marcas generalizadas (Standard Generalized Markup Language)El lenguaje que finalmente se convertiriacutea en SGML fue creado por un equipo de IBM dirigido por Charles F Goldfarb a finales de 1970 y fue desarrollado por cientos de personas hasta su adopcioacuten final como estaacutendar ISO en 1986 Es un lenguaje de marcas estructurado para documentos de texto Es muy eficaz y cosechoacute gran eacutexito en los sectores militares y gubernamentales de USA y en otros sectores que necesitaban formas de administrar documentos teacutecnicos con miles de paacuteginas de contenido

Un documento SGML se compone de tres partes o archivos

bull Declaracioacuten SGML

bull Declaracioacuten de tipo de documento (DTD)

bull Instancia de Documento

La declaracioacuten SGML caracteriza la DTD y por tanto las instancias de documento (que incluyen el contenido propiamente dicho) que se generen a partir de ella en teacuterminos de conjunto de caracteres usados y otros puntos opcionales de SGML Esta declaracioacuten puede ser omitida en cuyo caso se asumen unos grupos de caracteres por defecto y ninguna caracteriacutestica opcional

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 32ENgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

7

Esta cabecera indica que el DTD desarrollada por W3C es la versioacuten 32 para HTML y estaacute escrito en ingleacutes

Una clase de documentos tiene en comuacuten una gramaacutetica que define el marcado permitido en esa clase el marcado requerido y coacutemo debe ser utilizado dicho marcado en la instancia de documento El estaacutendar define esta gramaacutetica mediante la DTD SGML no especifica ninguacuten conjunto particular de elementos el conjunto de elementos que pueden utilizarse se define en la DTD

ltELEMENT DOCUMENTO - - (titulo contenido autor) gt ltELEMENT CONTENIDO - - (capitulo+) gt ltELEMENT CAPITULO - (subtitulo parrafo) gt

La instancia de documento lleva pues el contenido estructurado seguacuten el marco definido en la DTD y con las caracteriacutesticas fijadas por la declaracioacuten SGML

ltdocumentogt lttitulogtHIPERTEXTOlttitulogt ltautorgt MARIA JESUS LAMARCA ltautorgt ltcontenidogt

ltcapitulogt ltsubtitulogtEL NUEVO CONCEPTO DE DOCUMENTO EN LA CULTURA DE LA IMAGEN ltsubtitulogt ltparrafogt Doctorado Fundamentos Metodologiacutea y Aplicaciones de las Tecnologiacuteas Documentales y Procesamiento de la Informacioacuten ltparrafogt ltcapitulogt

ltcontenidogt ltdocumentogt El mayor eacutexito de SGML fue HTML que es una aplicacioacuten SGML Sin embargo HTML no permite su uso maacutes allaacute de la propia aplicacioacuten de disentildeo de paacuteginas web No podemos utilizar HTML para intercambiar datos entre bases de datos incompatibles ni para enviar cataacutelogos de productos actualizados a los sitios de venta HTML crea paacuteginas web y lo hace muy bien pero solo crea paacuteginas web

SGML fue la opcioacuten evidente para otras aplicaciones que aprovechaban Internet El problema residiacutea en que SGML era complicado (muy muy complicado) La especificacioacuten oficial SGML tiene aproximadamente 150 paacuteginas muy teacutecnicas y analiza muchos casos especiales y escenarios poco probables Es tan complejo que ninguacuten software lo ha implementado completamente

En 1996 Jon Bosak Tim Bray y otros empezaron a trabajar en una versioacuten ldquolivianardquo de SGML que conservaba la mayor parte de la eficacia de SGML a la vez que recortaba muchas opciones que habiacutean demostrado ser redundantes demasiado complicadas para su implementacioacuten confusas para los usuarios finales o simplemente inuacutetiles a lo largo de los 20 antildeos de experiencia con SGML El resultado en febrero de 1998 fue XML y obtuvo un eacutexito inmediato Muchos desarrolladores que sabiacutean que necesitaban

Semana 1 Caracteriacutesticas de los lenguajes de marcas

8

un lenguaje de marcas estructural pero que no podiacutean aceptar la complejidad de SGML adoptaron XML con confianza Se comenzoacute a usar en sectores tan variados como los tribunales o los criaderos de cerdos

Sin embargo XML 10 fue tan solo el principio El siguiente estaacutendar fueron los espacios de nombres (Namespaces) un esfuerzo para permitir que marcas de distintas aplicaciones con el mismo nombre se pudieran usar en el mismo documento sin conflicto Asiacute un documento sobre libros podiacutea tener un elemento titulo que haciacutea referencia al tiacutetulo del libro y elementos titulo para los tiacutetulos de los capiacutetulos y ambos sin presentar conflicto alguno

A continuacioacuten aparecioacute el Lenguaje de hojas de estilo extensible (XSL Extensible Stylesheet Language) una aplicacioacuten para transformar documentos XML en un formulario que podiacutea visualizarse en una paacutegina web Pronto aparecieron las transformaciones XSL (XSLT Transformations XSL)y los objetos de formato XSL (XSL‐FO XSL Formatting Objects) XSLT se ha convertido en un lenguaje de propoacutesito general para transformar un documento XML en otro ya sea para una presentacioacuten web o para cualquier otro propoacutesito y XSL‐FO sirve para dar formato PostScript a un documento XML

Para el direccionamiento de partes individuales del documento surge XPath y otra pieza del rompecabezas fue una interfaz para el direccionamiento desde un programa java javascript o C++ La API maacutes simple solamente trataba el documento como un objeto que conteniacutea a otros objetos Se inicioacute una labor dentro y fuera del W3C para definirlo como modelo de objeto de documento (DOM Document Object Model) para HTML Ampliar este esfuerzo a XML no resultoacute difiacutecil

Esta rica coleccioacuten de especificaciones solo dirige tecnologiacuteas que son principales para XML Se han desarrollado muchas maacutes y continuacutean hacieacutendolo a un ritmo acelerado Aplicaciones XML como SOAP utilizado en el intercambio de datos en los servicios web SVG para describir graacuteficos vectoriales MathML para el uso en matemaacuteticas Atom para la sindicacioacuten XForms para definir interfaces de usuario a base de formularios web WordprocessingML para el trabajo con procesadores de texto y miles de ellas maacutes XML ha demostrado por siacute mismo ser una base soacutelida para muchas y variadas tecnologiacuteas

Componentes de XML

Elementos XML Un elemento XML es cualquier cosa que incluya una marca de inicio una marca de fin y la informacioacuten o no que se encuentra entre ambas marcas ltpeliculagtLa Red Socialltpeliculagt

Atributos Modificador de una etiqueta XML Da una caracteriacutestica ampliada de la etiqueta definida Pueden utilizarse comillas dobles y simples indistintamente pero se debe abrir y cerrar con el mismo siacutembolo

Semana 1 Caracteriacutesticas de los lenguajes de marcas

9

ltpelicula categoria=DramagtLa Red Socialltpeliculagt ltpelicula categoria=Comediagt 2 tontos muy tontosltpeliculagt

Sintaxis XML bull Todas las marcas utilizadas en XML deben tener un inicio y un final no como

sucede en HTML bull Las marcas de XML tienen en cuenta que sean mayuacutesculas y minuacutesculas (las

marcas deben colocarse de forma exacta) bull Las marcas se deben cerrar en el mismo orden en que se abrieron bull Un documento XML debe tener un elemento raiacutez de partida bull Todos los atributos de XML deben colocarse entre comillas dobles bull Para colocar determinados caracteres reservados en XML se deben utilizar

cadenas de identificacioacuten bull Se pueden colocar comentarios en XML

Documento XML Aunque a primera vista un documento XML puede parecer similar a HTML hay una diferencia principal Un documento XML contiene datos que se autodefinen exclusivamente Un documento HTML contiene datos mal definidos mezclados con elementos de formato En XML se separa el contenido de la presentacioacuten de forma total Una forma de entender raacutepidamente la estructura de un documento XML es viendo un pequentildeo ejemplo

ltxml version=10gt ltDOCTYPE MENSAJE SYSTEM mensajedtdgt ltmensajegt

ltremitegt ltnombregtAlfredo Reinoltnombregt ltemailgtalfibiumcomltemailgt

ltremitegt ltdestinatariogt

ltnombregtBill Clintonltnombregt ltemailgtpresidentwhitehousegovltemailgt

ltdestinatariogt ltasuntogtHola Billltasuntogt lttextogt

ltparrafogtiquestHola queacute tal Hace ltenfasisgtmucholtenfasisgt que no escribes A ver si llamas y quedamos para tomar algoltparrafogt lttextogt

ltmensajegt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

10

Este mismo documento puede ser visto de forma graacutefica para comprender mejor la estructura de un documento XML

Realiza las Actividades 1 y 2

Estructura de un documento XML

Un documento XML tiene dos estructuras una loacutegica y otra fiacutesica

Fiacutesicamente el documento estaacute compuesto por unidades llamadas entidades Una entidad puede hacer referencia a otra entidad causando que esta se incluya en el documento Cada documento comienza con una entidad documento tambieacuten llamada raiacutez

Loacutegicamente el documento estaacute compuesto de declaraciones elementos comentarios referencias a caracteres e instrucciones de procesamiento todos los cuales estaacuten indicados por una marca expliacutecita Las estructuras loacutegica y fiacutesica deben encajar de manera adecuada

Los documentos XML se dividen en dos grupos documentos bien formados y documentos vaacutelidos

bull Bien formados Son todos los que cumplen las especificaciones del lenguaje respecto a las reglas sintaacutecticas sin estar sujetos a unos elementos fijados en un DTD De hecho los documentos XML deben tener una estructura jeraacuterquica muy estricta y los documentos bien formados deben cumplirla El documento debe de contener una soacutela raiacutez y todas las etiquetas estar correctamente anidadas

Semana 1 Caracteriacutesticas de los lenguajes de marcas

11

bull Vaacutelidos Ademaacutes de estar bien formados siguen una estructura y una semaacutentica determinada por un DTD sus elementos y sobre todo la estructura jeraacuterquica que define el DTD ademaacutes de los atributos deben ajustarse a lo que el DTD dicte Veremos maacutes adelante maacutes detalladamente lo que es un DTD pero podemos ir adelantando que un DTD permite especificar la estructura del documento y que el DTD puede estar separado del documento

Un fichero puede estar bien escrito seguacuten las reglas de XML (bien formado) pero no ldquotener ni pies ni cabezardquo ( no vaacutelido)

Aquiacute podemos ver otro ejemplo muy sencillo de documento XML

ltxml version= 10 encoding= UTF-8 standalone= yes gt ltfichagt

ltnombregt Angel ltnombregt ltapellidogt Barbero ltapellidogt ltdirecciongt cUlises 36 ltdirecciongt

ltfichagt La estructura baacutesica de un bloque XML se muestra en la siguiente figura

Semana 1 Caracteriacutesticas de los lenguajes de marcas

12

Lo primero que tenemos que observar es la primera liacutenea Con ella deben empezar todos los documentos XML ya que en ella se indica que el documento es XML Aunque es opcional es recomendable incluirla Puede tener varios atributos algunos obligatorios y otros no

bull version Indica la versioacuten de XML usada en el documento Es obligatorio ponerlo a no ser que sea un documento externo a otro que ya lo incluiacutea

bull encoding La forma en que se ha codificado el documento Se puede poner cualquiera y depende del parser el poder entender o no la codificacioacuten Por defecto es UTF‐8 aunque podriacutean ponerse otras como UTF‐16 US‐ASCII ISO‐8859‐1 etc No es obligatorio salvo que sea un documento externo a otro principal

bull standalone Indica si el documento va acompantildeado de un DTD (no) o no lo necesita (yes) en principio no hay porqueacute ponerlo porque luego se indica el DTD si se necesita Veremos los DTD maacutes adelante

Realiza la Actividad 3

Caracteriacutesticas de los documentos XML bien formados

Un documento XML se dice que estaacute bien formado si encaja con las especificaciones XML de produccioacuten lo que implica

Estructura jeraacuterquica de elementos

Los documentos XML deben seguir una estructura estrictamente jeraacuterquica con lo que respecta a las etiquetas que delimitan sus elementos Una etiqueta debe estar correctamente incluiacuteda en otra Asiacutemismo los elementos con contenido deben estar correctamente cerrados A continuacioacuten se muestra un ejemplo incorrecto y posteriormente otro ejemplo escrito correctamente

ltligtHTML ltbgt permite ltigt esto ltbgt ltigt Ejemplo incorrecto ltligtEn XML la ltbgt estructura ltigt es ltigt jeraacuterquica ltbgtltligt Ejemplo correcto

Realiza la Actividad 4

Semana 1 Caracteriacutesticas de los lenguajes de marcas

13

Etiquetas vaciacuteas

HTML permite elementos sin contenido XML tambieacuten pero la etiqueta debe ser de la siguiente forma ltelemento sin contenido gt A continuacioacuten se muestra un ejemplo incorrecto y posteriormente otro correcto

ltligtEsto es HTML ltbrgt en el que casi todo estaacute permitido ltligt

Hay que tener en cuenta que el siacutembolo lt siempre se interpreta como inicio de una etiqueta XML Si no es el caso el documento no estaraacute bien formado Para usar ciertos siacutembolos se usan las entidades predefinidas que se explican maacutes adelante

Un elemento vaciacuteo es el que no tiene contenido Por ejemplo

ltidentificador DNI=23123244 gt

ltlinea-horizontal gt

Al no tener una etiqueta de cierre que delimite un contenido se utiliza la forma ltetiqueta gt que puede contener atributos o no La sintaxis de HTML permite etiquetas vaciacuteas tipo lthrgt o ltimg src=gt En HTML reformulado para que sea un documento XML bien formado se deberiacutea usar lthr gt o ltimg src=

Atributos

Como se ha mencionado antes los elementos pueden tener atributos que son una manera de incorporar caracteriacutesticas o propiedades a los elementos de un documento

Por ejemplo un elemento chiste puede tener un atributo tipo y un atributo calidad con valores vascos y bueno respectivamente

ltchiste tipo=vascos calidad=buenogt Esto es un diacutea que Patxi y Josu van paseando ltchistegt

En una Definicioacuten de Tipo de Documento (DTD) se especifican los atributos que pueden tener cada tipo de elemento asiacute como sus valores y tipos de valor posible

Al igual que en otras cadenas literales de XML los atributos pueden estar marcados entre comillas simples () o doble () Cuando se usa uno para delimitar el valor del atributo el otro tipo se puede usar dentro

ltverdura clase=zanahoria longitud=15 y mediagt

ltcita texto=Hola buenos dias dijo eacutelgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

14

A veces un elemento con contenido puede modelarse como un elemento vaciacuteo con atributos Un concepto se puede representar de muy diversas formas pero una vez elegida una es aconsejable fijarla en el DTD y usar siempre la misma consistentemente dentro de un documento XML

Entidades Predefinidas

En XML 10 se definen cinco entidades para representar caracteres especiales y que no se interpreten como marcado en el procesador XML Es decir que asiacute podemos usar el caraacutecter lt sin que se interprete como el comienzo de una etiqueta XML por ejemplo Entidad Caraacutecter

ampamp amp amplt lt ampgt gt ampapos lsquo ampquot ldquo

ltgatogt ltnombregtMicifuacuteltnombregt ltrazagtPersaltrazagt

ltgatogt ltgato raza=Persagt

Micifuacute ltgatogt

ltgato raza=Persa nombre=Micifuacutegt

Secciones CDATA

Existe otra construccioacuten en XML que permite especificar datos utilizando cualquier caraacutecter especial o no sin que se interprete como marcado XML La razoacuten de esta construccioacuten llamada CDATA (Character DATA) es que a veces es necesario para los autores de documentos XML poder leerlo faacutecilmente sin tener que descifrar los coacutedigos de entidades Especialmente cuando son muchos

Como ejemplo el siguiente (primero usando entidades predefinidas y luego con un bloque CDATA) Podemos comprobar su uso en el siguiente ejemplo

ltejemplogt amplthtmlampgt ampltheadampgtamplttitlegtRock ampamp Rollamplttitleampgtampltheadampgt

ltejemplogt

ltejemplogt lt[CDATA[

lthtmlgt ltheadgtlttitlegtRock amp Rolllttitlegtltheadgt

]]gt ltejemplogt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

15

Como hemos visto dentro de una seccioacuten CDATA podemos poner cualquier cosa que no seraacute interpretada como algo que no es asiacute Existe una excepcioacuten y es la cadena ]]gt con el que termina el bloque CDATA Esta cadena no puede utilizarse dentro de una seccioacuten CDATA

Comentarios

A veces es conveniente insertar comentarios en el documento XML que son ignorados por el procesado de la informacioacuten y las reproducciones del documento Los comentarios tienen el mismo formato que los comentarios de HTML Es decir comienza por la cadena lt‐‐ y termina con ‐‐gt

lt‐‐ Esto es un comentario ‐‐gt

Se pueden introducir comentarios en cualquier parte del documento salvo dentro de las declaraciones etiquetas u otros comentarios

Realiza la actividad 5 y 6

Espacios de nombre (NameSpaces)

En XML los espacios de nombre (namespace) tienen dos propoacutesitos

1 Distinguir entre elementos y atributos de distintos vocabularios con distintos significados que puedan compartir el mismo nombre

2 Agrupar todos los elementos y atributos relacionados de una sola aplicacioacuten

XML para que el software pueda reconocerlos con facilidad El primer propoacutesito es maacutes faacutecil de explicar y entender pero el segundo es maacutes importante en la praacutectica La extensibilidad es una facultad que no es gratuita En un entorno distribuido esta facultad deberaacute ser administrada para evitar conflictos Los espacios de nombre son una solucioacuten para ayudar a administrar la extensibilidad de XML Un espacio de nombres puede ser definido como un mecanismo para identificar elementos XML Establece los nombres de los elementos en un contexto global Supongamos que decide publicar sus marcadores como muestra el siguiente documento

Semana 1 Caracteriacutesticas de los lenguajes de marcas

16

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

Con frecuencia es necesario extender un documento existente para transmitirle nueva informacioacuten No obstante hay problemas si la extensioacuten no se administra Suponga que alguien maacutes decide clasificar la lista anterior con asesoriacutea para padres El listado siguiente muestra el resultado (Noticias ABC y Coacutemics podriacutean contener violencia o escenas de sexo por esto tienen un nivel de Guiacutea paterna)

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

17

Esto es algo problemaacutetico Supongamos que la extensioacuten contempla ambos tipos de categoriacuteas

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

El problema con el anterior listado es que un software disentildeado para funcionar con el anterior listado con el objetivo de listar viacutenculos ofensivos no sabriacutea queacute hacer con la categoriacutea 5 estrellas El software tan soacutelo tiene que pasar por alto las etiquetas de categoriacutea de calidad pero iquestcoacutemo podriacutea hacerlo si no puede distinguir entre ambas etiquetas de categoriacutea La solucioacuten es obvia utilizar distintos nombres para ambas categoriacuteas por ejemplo Para el control de calidad ltcld‐categoriacuteagt3 estrellasltcategoriacuteagt Y para el control parental

Semana 1 Caracteriacutesticas de los lenguajes de marcas

18

ltpdr‐categoriacuteagtGuiacutea paternaltcategoriacuteagt El problema del ejemplo anterior es hellip el caraacutecter de extensibilidad de XML Dado que cualquiera puede generar etiquetas hay un enorme riesgo de conflictos Una solucioacuten para evitarlo es establecer un registro global de etiquetas aceptadas y su definicioacuten asociada No obstante podriacutea limitar severamente la flexibilidad de XML Nadie desea hacer esto La flexibilidad fue una meta primordial en el disentildeo de XML La propuesta de los espacios de nombre corrige este problema con un meacutetodo elegante no limita la extensibilidad sino que presenta mecanismos para administrarla El listado siguiente es similar al uacuteltimo pero utiliza espacios de nombre para evitar los conflictos Xmlns Xml Name Schema

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferencias xmlnscld=httpjokerplayfieldcomstar‐categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

19

A primera vista todo parece similar pero la diferencia estaacute en el formato de los nombres Ahora se agrega un prefijo a cada nombre de elemento El prefijo y el nombre estaacuten separados por dos puntos () ltcldcategoriacuteagt3 estrellasltcategoriacuteagt El prefijo identifica uniacutevocamente el tipo de categoriacutea en este documento No obstante tales prefijos por siacute solos no resuelven nada dado que cualquier persona puede generarlos Asiacute pues distintas personas podriacutean generar prefijos incompatibles y volvemos al primer paso Para evitar tales conflictos los prefijos deben estar declarados ltreferencias xmlnscld=httpjokerplayfieldcomstar-categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt La declaracioacuten asocia a un URI con un prefijo Este es el punto crucial de la propuesta de los espacios de nombre dado que los URIs a diferencia de los nombres son uacutenicos Los espacios de nombre se fundamentan en los mecanismos de registro establecidos para los URIs Por tanto se garantiza que los URLs son uacutenicos dado que estaacuten basados en nombres de dominio registrados para garantizar la unicidad

El nombre del espacio de nombre

El nombre del espacio de nombre es el URI no el prefijo Cuando una aplicacioacuten compara a dos elementos utiliza el URI no el prefijo para reconocer sus espacios de nombre

Asiacute en el listado siguiente rffnombre y refnombre se consideran ideacutenticos a pesar de tener un prefijo distinto Ambos estaacuten en el espacio de nombre httpcatwomanpineapplesoftcomref15

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 175012 CEST 2010 --gt ltreferenciasgt ltrffnombre xmlnsrff=httpcatwomanpineapplesoftcomref15gt Pearson Educational ltrffnombregt ltlink href=httpwwwpearsoncommx gt ltrefnombre xmlnsref=httpcatwomanpineapplesoftcomref15gt Pineapplesoft ltrefnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

20

Espacio de nombre predeterminado

Todos los elementos sin prefijo nombre y link en los ejemplos anteriores y todos sus elementos descendientes pertenecen a un espacio de nombres predeterminado antildeadiendo un atributo xmlns sin prefijo en el elemento de la parte superior En nuestro caso

xmlns=httpcatwomanpineapplesoftcomref15

Los atributos son diferentes Los espacios de nombre predeterminados solo se aplican a los elementos no a los atributos Por lo tanto en el espacio anterior el atributo sin prefijo href no estaacute en ninguacuten espacio de nombre

Realiza la Actividad 7

Los URIs Un URI (Uniform Resource Identifier) es una cadena corta de caracteres que identifica inequiacutevocamente un recurso (servicio paacutegina documento direccioacuten de correo electroacutenico enciclopedia etc) Normalmente estos recursos son accesibles en una red o sistema

En el caso que nos ocupa el URI solo se utiliza para asegurar la unicidad de los nombres Podriacutea (aunque no necesariamente) apuntar a una descripcioacuten del nombre Por ejemplo podriacutea haber un documento en httppenguinxmlicomreview10 que describa la categoriacutea o podriacutea no haber nada

No obstante lo importante es que los URIs son uacutenicos y deberiacuteamos generarlos de acuerdo con nuestros nombres de dominio Los nombres de dominio Los URLs (Uniform Resource Locator) son direcciones para localizar recursos en Internet y actualmente han sido englobados por el concepto maacutes general de URI

Tienen el siguiente formato

httpwwwpearsoncommx httpwwwpineapplesoftcomnewsletter ftpftpmcpcom newsnewspsolcomcompxml mailtobmarchalpineapplesoftcom El nombre del dominio es solo una parte del URL ldquopearsoncommxrdquo y ldquopineapplesoftcomrdquo son dos de ellos

Semana 1 Caracteriacutesticas de los lenguajes de marcas

21

El nombre del dominio estaacute registrado por una autoridad global para asegurar que no haya duplicados Dada la globalidad del registro uno no puede hacer lo que quiera con los nombres de dominio Por ejemplo no es posible registrar nombres que ya esteacuten en uso La parte final del nombre de dominio (ldquocomrdquo por ejemplo) se conoce como Dominio de nivel superior (TLD Top Level Domain) identifica a la autoridad que asignoacute el nombre de dominio InterNIC (wwwinternicnet) es la autoridad para la mayor parte de los llamados TLD geneacutericos ldquocomrdquo (comercial) ldquonetrdquo (proveedores de servicios de Internet) ldquoorgrdquo (instituciones sin aacutenimo de lucro) Son geneacutericas puesto que estaacuten abiertas a empresas u organizaciones con un aacutembito mundial Tambieacuten hay TLDs especiacuteficos de un paiacutes ldquoesrdquo en Espantildea ldquoukrdquo en el Reino Unido ldquousrdquo en Estados Unidos etc Los nombres de dominio no son muy costosos (actualmente unos 15 euro anuales) por lo que es muy recomendable contratar uno

  • Introduccioacuten
    • Elementos XML
    • Atributos
      • Caracteriacutesticas de los documentos XML bien formados
Page 6: lenguaje de marcas

Semana 1 Caracteriacutesticas de los lenguajes de marcas

6

Para preparar el manual hemos usado EditiX 2010 Tiene una versioacuten free que puedes bajar desde httpfreeeditixcomdownloadhtml

Evolucioacuten de XML XML es un descendiente de SGML el Lenguaje estaacutendar de marcas generalizadas (Standard Generalized Markup Language)El lenguaje que finalmente se convertiriacutea en SGML fue creado por un equipo de IBM dirigido por Charles F Goldfarb a finales de 1970 y fue desarrollado por cientos de personas hasta su adopcioacuten final como estaacutendar ISO en 1986 Es un lenguaje de marcas estructurado para documentos de texto Es muy eficaz y cosechoacute gran eacutexito en los sectores militares y gubernamentales de USA y en otros sectores que necesitaban formas de administrar documentos teacutecnicos con miles de paacuteginas de contenido

Un documento SGML se compone de tres partes o archivos

bull Declaracioacuten SGML

bull Declaracioacuten de tipo de documento (DTD)

bull Instancia de Documento

La declaracioacuten SGML caracteriza la DTD y por tanto las instancias de documento (que incluyen el contenido propiamente dicho) que se generen a partir de ella en teacuterminos de conjunto de caracteres usados y otros puntos opcionales de SGML Esta declaracioacuten puede ser omitida en cuyo caso se asumen unos grupos de caracteres por defecto y ninguna caracteriacutestica opcional

ltDOCTYPE HTML PUBLIC -W3CDTD HTML 32ENgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

7

Esta cabecera indica que el DTD desarrollada por W3C es la versioacuten 32 para HTML y estaacute escrito en ingleacutes

Una clase de documentos tiene en comuacuten una gramaacutetica que define el marcado permitido en esa clase el marcado requerido y coacutemo debe ser utilizado dicho marcado en la instancia de documento El estaacutendar define esta gramaacutetica mediante la DTD SGML no especifica ninguacuten conjunto particular de elementos el conjunto de elementos que pueden utilizarse se define en la DTD

ltELEMENT DOCUMENTO - - (titulo contenido autor) gt ltELEMENT CONTENIDO - - (capitulo+) gt ltELEMENT CAPITULO - (subtitulo parrafo) gt

La instancia de documento lleva pues el contenido estructurado seguacuten el marco definido en la DTD y con las caracteriacutesticas fijadas por la declaracioacuten SGML

ltdocumentogt lttitulogtHIPERTEXTOlttitulogt ltautorgt MARIA JESUS LAMARCA ltautorgt ltcontenidogt

ltcapitulogt ltsubtitulogtEL NUEVO CONCEPTO DE DOCUMENTO EN LA CULTURA DE LA IMAGEN ltsubtitulogt ltparrafogt Doctorado Fundamentos Metodologiacutea y Aplicaciones de las Tecnologiacuteas Documentales y Procesamiento de la Informacioacuten ltparrafogt ltcapitulogt

ltcontenidogt ltdocumentogt El mayor eacutexito de SGML fue HTML que es una aplicacioacuten SGML Sin embargo HTML no permite su uso maacutes allaacute de la propia aplicacioacuten de disentildeo de paacuteginas web No podemos utilizar HTML para intercambiar datos entre bases de datos incompatibles ni para enviar cataacutelogos de productos actualizados a los sitios de venta HTML crea paacuteginas web y lo hace muy bien pero solo crea paacuteginas web

SGML fue la opcioacuten evidente para otras aplicaciones que aprovechaban Internet El problema residiacutea en que SGML era complicado (muy muy complicado) La especificacioacuten oficial SGML tiene aproximadamente 150 paacuteginas muy teacutecnicas y analiza muchos casos especiales y escenarios poco probables Es tan complejo que ninguacuten software lo ha implementado completamente

En 1996 Jon Bosak Tim Bray y otros empezaron a trabajar en una versioacuten ldquolivianardquo de SGML que conservaba la mayor parte de la eficacia de SGML a la vez que recortaba muchas opciones que habiacutean demostrado ser redundantes demasiado complicadas para su implementacioacuten confusas para los usuarios finales o simplemente inuacutetiles a lo largo de los 20 antildeos de experiencia con SGML El resultado en febrero de 1998 fue XML y obtuvo un eacutexito inmediato Muchos desarrolladores que sabiacutean que necesitaban

Semana 1 Caracteriacutesticas de los lenguajes de marcas

8

un lenguaje de marcas estructural pero que no podiacutean aceptar la complejidad de SGML adoptaron XML con confianza Se comenzoacute a usar en sectores tan variados como los tribunales o los criaderos de cerdos

Sin embargo XML 10 fue tan solo el principio El siguiente estaacutendar fueron los espacios de nombres (Namespaces) un esfuerzo para permitir que marcas de distintas aplicaciones con el mismo nombre se pudieran usar en el mismo documento sin conflicto Asiacute un documento sobre libros podiacutea tener un elemento titulo que haciacutea referencia al tiacutetulo del libro y elementos titulo para los tiacutetulos de los capiacutetulos y ambos sin presentar conflicto alguno

A continuacioacuten aparecioacute el Lenguaje de hojas de estilo extensible (XSL Extensible Stylesheet Language) una aplicacioacuten para transformar documentos XML en un formulario que podiacutea visualizarse en una paacutegina web Pronto aparecieron las transformaciones XSL (XSLT Transformations XSL)y los objetos de formato XSL (XSL‐FO XSL Formatting Objects) XSLT se ha convertido en un lenguaje de propoacutesito general para transformar un documento XML en otro ya sea para una presentacioacuten web o para cualquier otro propoacutesito y XSL‐FO sirve para dar formato PostScript a un documento XML

Para el direccionamiento de partes individuales del documento surge XPath y otra pieza del rompecabezas fue una interfaz para el direccionamiento desde un programa java javascript o C++ La API maacutes simple solamente trataba el documento como un objeto que conteniacutea a otros objetos Se inicioacute una labor dentro y fuera del W3C para definirlo como modelo de objeto de documento (DOM Document Object Model) para HTML Ampliar este esfuerzo a XML no resultoacute difiacutecil

Esta rica coleccioacuten de especificaciones solo dirige tecnologiacuteas que son principales para XML Se han desarrollado muchas maacutes y continuacutean hacieacutendolo a un ritmo acelerado Aplicaciones XML como SOAP utilizado en el intercambio de datos en los servicios web SVG para describir graacuteficos vectoriales MathML para el uso en matemaacuteticas Atom para la sindicacioacuten XForms para definir interfaces de usuario a base de formularios web WordprocessingML para el trabajo con procesadores de texto y miles de ellas maacutes XML ha demostrado por siacute mismo ser una base soacutelida para muchas y variadas tecnologiacuteas

Componentes de XML

Elementos XML Un elemento XML es cualquier cosa que incluya una marca de inicio una marca de fin y la informacioacuten o no que se encuentra entre ambas marcas ltpeliculagtLa Red Socialltpeliculagt

Atributos Modificador de una etiqueta XML Da una caracteriacutestica ampliada de la etiqueta definida Pueden utilizarse comillas dobles y simples indistintamente pero se debe abrir y cerrar con el mismo siacutembolo

Semana 1 Caracteriacutesticas de los lenguajes de marcas

9

ltpelicula categoria=DramagtLa Red Socialltpeliculagt ltpelicula categoria=Comediagt 2 tontos muy tontosltpeliculagt

Sintaxis XML bull Todas las marcas utilizadas en XML deben tener un inicio y un final no como

sucede en HTML bull Las marcas de XML tienen en cuenta que sean mayuacutesculas y minuacutesculas (las

marcas deben colocarse de forma exacta) bull Las marcas se deben cerrar en el mismo orden en que se abrieron bull Un documento XML debe tener un elemento raiacutez de partida bull Todos los atributos de XML deben colocarse entre comillas dobles bull Para colocar determinados caracteres reservados en XML se deben utilizar

cadenas de identificacioacuten bull Se pueden colocar comentarios en XML

Documento XML Aunque a primera vista un documento XML puede parecer similar a HTML hay una diferencia principal Un documento XML contiene datos que se autodefinen exclusivamente Un documento HTML contiene datos mal definidos mezclados con elementos de formato En XML se separa el contenido de la presentacioacuten de forma total Una forma de entender raacutepidamente la estructura de un documento XML es viendo un pequentildeo ejemplo

ltxml version=10gt ltDOCTYPE MENSAJE SYSTEM mensajedtdgt ltmensajegt

ltremitegt ltnombregtAlfredo Reinoltnombregt ltemailgtalfibiumcomltemailgt

ltremitegt ltdestinatariogt

ltnombregtBill Clintonltnombregt ltemailgtpresidentwhitehousegovltemailgt

ltdestinatariogt ltasuntogtHola Billltasuntogt lttextogt

ltparrafogtiquestHola queacute tal Hace ltenfasisgtmucholtenfasisgt que no escribes A ver si llamas y quedamos para tomar algoltparrafogt lttextogt

ltmensajegt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

10

Este mismo documento puede ser visto de forma graacutefica para comprender mejor la estructura de un documento XML

Realiza las Actividades 1 y 2

Estructura de un documento XML

Un documento XML tiene dos estructuras una loacutegica y otra fiacutesica

Fiacutesicamente el documento estaacute compuesto por unidades llamadas entidades Una entidad puede hacer referencia a otra entidad causando que esta se incluya en el documento Cada documento comienza con una entidad documento tambieacuten llamada raiacutez

Loacutegicamente el documento estaacute compuesto de declaraciones elementos comentarios referencias a caracteres e instrucciones de procesamiento todos los cuales estaacuten indicados por una marca expliacutecita Las estructuras loacutegica y fiacutesica deben encajar de manera adecuada

Los documentos XML se dividen en dos grupos documentos bien formados y documentos vaacutelidos

bull Bien formados Son todos los que cumplen las especificaciones del lenguaje respecto a las reglas sintaacutecticas sin estar sujetos a unos elementos fijados en un DTD De hecho los documentos XML deben tener una estructura jeraacuterquica muy estricta y los documentos bien formados deben cumplirla El documento debe de contener una soacutela raiacutez y todas las etiquetas estar correctamente anidadas

Semana 1 Caracteriacutesticas de los lenguajes de marcas

11

bull Vaacutelidos Ademaacutes de estar bien formados siguen una estructura y una semaacutentica determinada por un DTD sus elementos y sobre todo la estructura jeraacuterquica que define el DTD ademaacutes de los atributos deben ajustarse a lo que el DTD dicte Veremos maacutes adelante maacutes detalladamente lo que es un DTD pero podemos ir adelantando que un DTD permite especificar la estructura del documento y que el DTD puede estar separado del documento

Un fichero puede estar bien escrito seguacuten las reglas de XML (bien formado) pero no ldquotener ni pies ni cabezardquo ( no vaacutelido)

Aquiacute podemos ver otro ejemplo muy sencillo de documento XML

ltxml version= 10 encoding= UTF-8 standalone= yes gt ltfichagt

ltnombregt Angel ltnombregt ltapellidogt Barbero ltapellidogt ltdirecciongt cUlises 36 ltdirecciongt

ltfichagt La estructura baacutesica de un bloque XML se muestra en la siguiente figura

Semana 1 Caracteriacutesticas de los lenguajes de marcas

12

Lo primero que tenemos que observar es la primera liacutenea Con ella deben empezar todos los documentos XML ya que en ella se indica que el documento es XML Aunque es opcional es recomendable incluirla Puede tener varios atributos algunos obligatorios y otros no

bull version Indica la versioacuten de XML usada en el documento Es obligatorio ponerlo a no ser que sea un documento externo a otro que ya lo incluiacutea

bull encoding La forma en que se ha codificado el documento Se puede poner cualquiera y depende del parser el poder entender o no la codificacioacuten Por defecto es UTF‐8 aunque podriacutean ponerse otras como UTF‐16 US‐ASCII ISO‐8859‐1 etc No es obligatorio salvo que sea un documento externo a otro principal

bull standalone Indica si el documento va acompantildeado de un DTD (no) o no lo necesita (yes) en principio no hay porqueacute ponerlo porque luego se indica el DTD si se necesita Veremos los DTD maacutes adelante

Realiza la Actividad 3

Caracteriacutesticas de los documentos XML bien formados

Un documento XML se dice que estaacute bien formado si encaja con las especificaciones XML de produccioacuten lo que implica

Estructura jeraacuterquica de elementos

Los documentos XML deben seguir una estructura estrictamente jeraacuterquica con lo que respecta a las etiquetas que delimitan sus elementos Una etiqueta debe estar correctamente incluiacuteda en otra Asiacutemismo los elementos con contenido deben estar correctamente cerrados A continuacioacuten se muestra un ejemplo incorrecto y posteriormente otro ejemplo escrito correctamente

ltligtHTML ltbgt permite ltigt esto ltbgt ltigt Ejemplo incorrecto ltligtEn XML la ltbgt estructura ltigt es ltigt jeraacuterquica ltbgtltligt Ejemplo correcto

Realiza la Actividad 4

Semana 1 Caracteriacutesticas de los lenguajes de marcas

13

Etiquetas vaciacuteas

HTML permite elementos sin contenido XML tambieacuten pero la etiqueta debe ser de la siguiente forma ltelemento sin contenido gt A continuacioacuten se muestra un ejemplo incorrecto y posteriormente otro correcto

ltligtEsto es HTML ltbrgt en el que casi todo estaacute permitido ltligt

Hay que tener en cuenta que el siacutembolo lt siempre se interpreta como inicio de una etiqueta XML Si no es el caso el documento no estaraacute bien formado Para usar ciertos siacutembolos se usan las entidades predefinidas que se explican maacutes adelante

Un elemento vaciacuteo es el que no tiene contenido Por ejemplo

ltidentificador DNI=23123244 gt

ltlinea-horizontal gt

Al no tener una etiqueta de cierre que delimite un contenido se utiliza la forma ltetiqueta gt que puede contener atributos o no La sintaxis de HTML permite etiquetas vaciacuteas tipo lthrgt o ltimg src=gt En HTML reformulado para que sea un documento XML bien formado se deberiacutea usar lthr gt o ltimg src=

Atributos

Como se ha mencionado antes los elementos pueden tener atributos que son una manera de incorporar caracteriacutesticas o propiedades a los elementos de un documento

Por ejemplo un elemento chiste puede tener un atributo tipo y un atributo calidad con valores vascos y bueno respectivamente

ltchiste tipo=vascos calidad=buenogt Esto es un diacutea que Patxi y Josu van paseando ltchistegt

En una Definicioacuten de Tipo de Documento (DTD) se especifican los atributos que pueden tener cada tipo de elemento asiacute como sus valores y tipos de valor posible

Al igual que en otras cadenas literales de XML los atributos pueden estar marcados entre comillas simples () o doble () Cuando se usa uno para delimitar el valor del atributo el otro tipo se puede usar dentro

ltverdura clase=zanahoria longitud=15 y mediagt

ltcita texto=Hola buenos dias dijo eacutelgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

14

A veces un elemento con contenido puede modelarse como un elemento vaciacuteo con atributos Un concepto se puede representar de muy diversas formas pero una vez elegida una es aconsejable fijarla en el DTD y usar siempre la misma consistentemente dentro de un documento XML

Entidades Predefinidas

En XML 10 se definen cinco entidades para representar caracteres especiales y que no se interpreten como marcado en el procesador XML Es decir que asiacute podemos usar el caraacutecter lt sin que se interprete como el comienzo de una etiqueta XML por ejemplo Entidad Caraacutecter

ampamp amp amplt lt ampgt gt ampapos lsquo ampquot ldquo

ltgatogt ltnombregtMicifuacuteltnombregt ltrazagtPersaltrazagt

ltgatogt ltgato raza=Persagt

Micifuacute ltgatogt

ltgato raza=Persa nombre=Micifuacutegt

Secciones CDATA

Existe otra construccioacuten en XML que permite especificar datos utilizando cualquier caraacutecter especial o no sin que se interprete como marcado XML La razoacuten de esta construccioacuten llamada CDATA (Character DATA) es que a veces es necesario para los autores de documentos XML poder leerlo faacutecilmente sin tener que descifrar los coacutedigos de entidades Especialmente cuando son muchos

Como ejemplo el siguiente (primero usando entidades predefinidas y luego con un bloque CDATA) Podemos comprobar su uso en el siguiente ejemplo

ltejemplogt amplthtmlampgt ampltheadampgtamplttitlegtRock ampamp Rollamplttitleampgtampltheadampgt

ltejemplogt

ltejemplogt lt[CDATA[

lthtmlgt ltheadgtlttitlegtRock amp Rolllttitlegtltheadgt

]]gt ltejemplogt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

15

Como hemos visto dentro de una seccioacuten CDATA podemos poner cualquier cosa que no seraacute interpretada como algo que no es asiacute Existe una excepcioacuten y es la cadena ]]gt con el que termina el bloque CDATA Esta cadena no puede utilizarse dentro de una seccioacuten CDATA

Comentarios

A veces es conveniente insertar comentarios en el documento XML que son ignorados por el procesado de la informacioacuten y las reproducciones del documento Los comentarios tienen el mismo formato que los comentarios de HTML Es decir comienza por la cadena lt‐‐ y termina con ‐‐gt

lt‐‐ Esto es un comentario ‐‐gt

Se pueden introducir comentarios en cualquier parte del documento salvo dentro de las declaraciones etiquetas u otros comentarios

Realiza la actividad 5 y 6

Espacios de nombre (NameSpaces)

En XML los espacios de nombre (namespace) tienen dos propoacutesitos

1 Distinguir entre elementos y atributos de distintos vocabularios con distintos significados que puedan compartir el mismo nombre

2 Agrupar todos los elementos y atributos relacionados de una sola aplicacioacuten

XML para que el software pueda reconocerlos con facilidad El primer propoacutesito es maacutes faacutecil de explicar y entender pero el segundo es maacutes importante en la praacutectica La extensibilidad es una facultad que no es gratuita En un entorno distribuido esta facultad deberaacute ser administrada para evitar conflictos Los espacios de nombre son una solucioacuten para ayudar a administrar la extensibilidad de XML Un espacio de nombres puede ser definido como un mecanismo para identificar elementos XML Establece los nombres de los elementos en un contexto global Supongamos que decide publicar sus marcadores como muestra el siguiente documento

Semana 1 Caracteriacutesticas de los lenguajes de marcas

16

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

Con frecuencia es necesario extender un documento existente para transmitirle nueva informacioacuten No obstante hay problemas si la extensioacuten no se administra Suponga que alguien maacutes decide clasificar la lista anterior con asesoriacutea para padres El listado siguiente muestra el resultado (Noticias ABC y Coacutemics podriacutean contener violencia o escenas de sexo por esto tienen un nivel de Guiacutea paterna)

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

17

Esto es algo problemaacutetico Supongamos que la extensioacuten contempla ambos tipos de categoriacuteas

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

El problema con el anterior listado es que un software disentildeado para funcionar con el anterior listado con el objetivo de listar viacutenculos ofensivos no sabriacutea queacute hacer con la categoriacutea 5 estrellas El software tan soacutelo tiene que pasar por alto las etiquetas de categoriacutea de calidad pero iquestcoacutemo podriacutea hacerlo si no puede distinguir entre ambas etiquetas de categoriacutea La solucioacuten es obvia utilizar distintos nombres para ambas categoriacuteas por ejemplo Para el control de calidad ltcld‐categoriacuteagt3 estrellasltcategoriacuteagt Y para el control parental

Semana 1 Caracteriacutesticas de los lenguajes de marcas

18

ltpdr‐categoriacuteagtGuiacutea paternaltcategoriacuteagt El problema del ejemplo anterior es hellip el caraacutecter de extensibilidad de XML Dado que cualquiera puede generar etiquetas hay un enorme riesgo de conflictos Una solucioacuten para evitarlo es establecer un registro global de etiquetas aceptadas y su definicioacuten asociada No obstante podriacutea limitar severamente la flexibilidad de XML Nadie desea hacer esto La flexibilidad fue una meta primordial en el disentildeo de XML La propuesta de los espacios de nombre corrige este problema con un meacutetodo elegante no limita la extensibilidad sino que presenta mecanismos para administrarla El listado siguiente es similar al uacuteltimo pero utiliza espacios de nombre para evitar los conflictos Xmlns Xml Name Schema

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferencias xmlnscld=httpjokerplayfieldcomstar‐categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

19

A primera vista todo parece similar pero la diferencia estaacute en el formato de los nombres Ahora se agrega un prefijo a cada nombre de elemento El prefijo y el nombre estaacuten separados por dos puntos () ltcldcategoriacuteagt3 estrellasltcategoriacuteagt El prefijo identifica uniacutevocamente el tipo de categoriacutea en este documento No obstante tales prefijos por siacute solos no resuelven nada dado que cualquier persona puede generarlos Asiacute pues distintas personas podriacutean generar prefijos incompatibles y volvemos al primer paso Para evitar tales conflictos los prefijos deben estar declarados ltreferencias xmlnscld=httpjokerplayfieldcomstar-categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt La declaracioacuten asocia a un URI con un prefijo Este es el punto crucial de la propuesta de los espacios de nombre dado que los URIs a diferencia de los nombres son uacutenicos Los espacios de nombre se fundamentan en los mecanismos de registro establecidos para los URIs Por tanto se garantiza que los URLs son uacutenicos dado que estaacuten basados en nombres de dominio registrados para garantizar la unicidad

El nombre del espacio de nombre

El nombre del espacio de nombre es el URI no el prefijo Cuando una aplicacioacuten compara a dos elementos utiliza el URI no el prefijo para reconocer sus espacios de nombre

Asiacute en el listado siguiente rffnombre y refnombre se consideran ideacutenticos a pesar de tener un prefijo distinto Ambos estaacuten en el espacio de nombre httpcatwomanpineapplesoftcomref15

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 175012 CEST 2010 --gt ltreferenciasgt ltrffnombre xmlnsrff=httpcatwomanpineapplesoftcomref15gt Pearson Educational ltrffnombregt ltlink href=httpwwwpearsoncommx gt ltrefnombre xmlnsref=httpcatwomanpineapplesoftcomref15gt Pineapplesoft ltrefnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

20

Espacio de nombre predeterminado

Todos los elementos sin prefijo nombre y link en los ejemplos anteriores y todos sus elementos descendientes pertenecen a un espacio de nombres predeterminado antildeadiendo un atributo xmlns sin prefijo en el elemento de la parte superior En nuestro caso

xmlns=httpcatwomanpineapplesoftcomref15

Los atributos son diferentes Los espacios de nombre predeterminados solo se aplican a los elementos no a los atributos Por lo tanto en el espacio anterior el atributo sin prefijo href no estaacute en ninguacuten espacio de nombre

Realiza la Actividad 7

Los URIs Un URI (Uniform Resource Identifier) es una cadena corta de caracteres que identifica inequiacutevocamente un recurso (servicio paacutegina documento direccioacuten de correo electroacutenico enciclopedia etc) Normalmente estos recursos son accesibles en una red o sistema

En el caso que nos ocupa el URI solo se utiliza para asegurar la unicidad de los nombres Podriacutea (aunque no necesariamente) apuntar a una descripcioacuten del nombre Por ejemplo podriacutea haber un documento en httppenguinxmlicomreview10 que describa la categoriacutea o podriacutea no haber nada

No obstante lo importante es que los URIs son uacutenicos y deberiacuteamos generarlos de acuerdo con nuestros nombres de dominio Los nombres de dominio Los URLs (Uniform Resource Locator) son direcciones para localizar recursos en Internet y actualmente han sido englobados por el concepto maacutes general de URI

Tienen el siguiente formato

httpwwwpearsoncommx httpwwwpineapplesoftcomnewsletter ftpftpmcpcom newsnewspsolcomcompxml mailtobmarchalpineapplesoftcom El nombre del dominio es solo una parte del URL ldquopearsoncommxrdquo y ldquopineapplesoftcomrdquo son dos de ellos

Semana 1 Caracteriacutesticas de los lenguajes de marcas

21

El nombre del dominio estaacute registrado por una autoridad global para asegurar que no haya duplicados Dada la globalidad del registro uno no puede hacer lo que quiera con los nombres de dominio Por ejemplo no es posible registrar nombres que ya esteacuten en uso La parte final del nombre de dominio (ldquocomrdquo por ejemplo) se conoce como Dominio de nivel superior (TLD Top Level Domain) identifica a la autoridad que asignoacute el nombre de dominio InterNIC (wwwinternicnet) es la autoridad para la mayor parte de los llamados TLD geneacutericos ldquocomrdquo (comercial) ldquonetrdquo (proveedores de servicios de Internet) ldquoorgrdquo (instituciones sin aacutenimo de lucro) Son geneacutericas puesto que estaacuten abiertas a empresas u organizaciones con un aacutembito mundial Tambieacuten hay TLDs especiacuteficos de un paiacutes ldquoesrdquo en Espantildea ldquoukrdquo en el Reino Unido ldquousrdquo en Estados Unidos etc Los nombres de dominio no son muy costosos (actualmente unos 15 euro anuales) por lo que es muy recomendable contratar uno

  • Introduccioacuten
    • Elementos XML
    • Atributos
      • Caracteriacutesticas de los documentos XML bien formados
Page 7: lenguaje de marcas

Semana 1 Caracteriacutesticas de los lenguajes de marcas

7

Esta cabecera indica que el DTD desarrollada por W3C es la versioacuten 32 para HTML y estaacute escrito en ingleacutes

Una clase de documentos tiene en comuacuten una gramaacutetica que define el marcado permitido en esa clase el marcado requerido y coacutemo debe ser utilizado dicho marcado en la instancia de documento El estaacutendar define esta gramaacutetica mediante la DTD SGML no especifica ninguacuten conjunto particular de elementos el conjunto de elementos que pueden utilizarse se define en la DTD

ltELEMENT DOCUMENTO - - (titulo contenido autor) gt ltELEMENT CONTENIDO - - (capitulo+) gt ltELEMENT CAPITULO - (subtitulo parrafo) gt

La instancia de documento lleva pues el contenido estructurado seguacuten el marco definido en la DTD y con las caracteriacutesticas fijadas por la declaracioacuten SGML

ltdocumentogt lttitulogtHIPERTEXTOlttitulogt ltautorgt MARIA JESUS LAMARCA ltautorgt ltcontenidogt

ltcapitulogt ltsubtitulogtEL NUEVO CONCEPTO DE DOCUMENTO EN LA CULTURA DE LA IMAGEN ltsubtitulogt ltparrafogt Doctorado Fundamentos Metodologiacutea y Aplicaciones de las Tecnologiacuteas Documentales y Procesamiento de la Informacioacuten ltparrafogt ltcapitulogt

ltcontenidogt ltdocumentogt El mayor eacutexito de SGML fue HTML que es una aplicacioacuten SGML Sin embargo HTML no permite su uso maacutes allaacute de la propia aplicacioacuten de disentildeo de paacuteginas web No podemos utilizar HTML para intercambiar datos entre bases de datos incompatibles ni para enviar cataacutelogos de productos actualizados a los sitios de venta HTML crea paacuteginas web y lo hace muy bien pero solo crea paacuteginas web

SGML fue la opcioacuten evidente para otras aplicaciones que aprovechaban Internet El problema residiacutea en que SGML era complicado (muy muy complicado) La especificacioacuten oficial SGML tiene aproximadamente 150 paacuteginas muy teacutecnicas y analiza muchos casos especiales y escenarios poco probables Es tan complejo que ninguacuten software lo ha implementado completamente

En 1996 Jon Bosak Tim Bray y otros empezaron a trabajar en una versioacuten ldquolivianardquo de SGML que conservaba la mayor parte de la eficacia de SGML a la vez que recortaba muchas opciones que habiacutean demostrado ser redundantes demasiado complicadas para su implementacioacuten confusas para los usuarios finales o simplemente inuacutetiles a lo largo de los 20 antildeos de experiencia con SGML El resultado en febrero de 1998 fue XML y obtuvo un eacutexito inmediato Muchos desarrolladores que sabiacutean que necesitaban

Semana 1 Caracteriacutesticas de los lenguajes de marcas

8

un lenguaje de marcas estructural pero que no podiacutean aceptar la complejidad de SGML adoptaron XML con confianza Se comenzoacute a usar en sectores tan variados como los tribunales o los criaderos de cerdos

Sin embargo XML 10 fue tan solo el principio El siguiente estaacutendar fueron los espacios de nombres (Namespaces) un esfuerzo para permitir que marcas de distintas aplicaciones con el mismo nombre se pudieran usar en el mismo documento sin conflicto Asiacute un documento sobre libros podiacutea tener un elemento titulo que haciacutea referencia al tiacutetulo del libro y elementos titulo para los tiacutetulos de los capiacutetulos y ambos sin presentar conflicto alguno

A continuacioacuten aparecioacute el Lenguaje de hojas de estilo extensible (XSL Extensible Stylesheet Language) una aplicacioacuten para transformar documentos XML en un formulario que podiacutea visualizarse en una paacutegina web Pronto aparecieron las transformaciones XSL (XSLT Transformations XSL)y los objetos de formato XSL (XSL‐FO XSL Formatting Objects) XSLT se ha convertido en un lenguaje de propoacutesito general para transformar un documento XML en otro ya sea para una presentacioacuten web o para cualquier otro propoacutesito y XSL‐FO sirve para dar formato PostScript a un documento XML

Para el direccionamiento de partes individuales del documento surge XPath y otra pieza del rompecabezas fue una interfaz para el direccionamiento desde un programa java javascript o C++ La API maacutes simple solamente trataba el documento como un objeto que conteniacutea a otros objetos Se inicioacute una labor dentro y fuera del W3C para definirlo como modelo de objeto de documento (DOM Document Object Model) para HTML Ampliar este esfuerzo a XML no resultoacute difiacutecil

Esta rica coleccioacuten de especificaciones solo dirige tecnologiacuteas que son principales para XML Se han desarrollado muchas maacutes y continuacutean hacieacutendolo a un ritmo acelerado Aplicaciones XML como SOAP utilizado en el intercambio de datos en los servicios web SVG para describir graacuteficos vectoriales MathML para el uso en matemaacuteticas Atom para la sindicacioacuten XForms para definir interfaces de usuario a base de formularios web WordprocessingML para el trabajo con procesadores de texto y miles de ellas maacutes XML ha demostrado por siacute mismo ser una base soacutelida para muchas y variadas tecnologiacuteas

Componentes de XML

Elementos XML Un elemento XML es cualquier cosa que incluya una marca de inicio una marca de fin y la informacioacuten o no que se encuentra entre ambas marcas ltpeliculagtLa Red Socialltpeliculagt

Atributos Modificador de una etiqueta XML Da una caracteriacutestica ampliada de la etiqueta definida Pueden utilizarse comillas dobles y simples indistintamente pero se debe abrir y cerrar con el mismo siacutembolo

Semana 1 Caracteriacutesticas de los lenguajes de marcas

9

ltpelicula categoria=DramagtLa Red Socialltpeliculagt ltpelicula categoria=Comediagt 2 tontos muy tontosltpeliculagt

Sintaxis XML bull Todas las marcas utilizadas en XML deben tener un inicio y un final no como

sucede en HTML bull Las marcas de XML tienen en cuenta que sean mayuacutesculas y minuacutesculas (las

marcas deben colocarse de forma exacta) bull Las marcas se deben cerrar en el mismo orden en que se abrieron bull Un documento XML debe tener un elemento raiacutez de partida bull Todos los atributos de XML deben colocarse entre comillas dobles bull Para colocar determinados caracteres reservados en XML se deben utilizar

cadenas de identificacioacuten bull Se pueden colocar comentarios en XML

Documento XML Aunque a primera vista un documento XML puede parecer similar a HTML hay una diferencia principal Un documento XML contiene datos que se autodefinen exclusivamente Un documento HTML contiene datos mal definidos mezclados con elementos de formato En XML se separa el contenido de la presentacioacuten de forma total Una forma de entender raacutepidamente la estructura de un documento XML es viendo un pequentildeo ejemplo

ltxml version=10gt ltDOCTYPE MENSAJE SYSTEM mensajedtdgt ltmensajegt

ltremitegt ltnombregtAlfredo Reinoltnombregt ltemailgtalfibiumcomltemailgt

ltremitegt ltdestinatariogt

ltnombregtBill Clintonltnombregt ltemailgtpresidentwhitehousegovltemailgt

ltdestinatariogt ltasuntogtHola Billltasuntogt lttextogt

ltparrafogtiquestHola queacute tal Hace ltenfasisgtmucholtenfasisgt que no escribes A ver si llamas y quedamos para tomar algoltparrafogt lttextogt

ltmensajegt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

10

Este mismo documento puede ser visto de forma graacutefica para comprender mejor la estructura de un documento XML

Realiza las Actividades 1 y 2

Estructura de un documento XML

Un documento XML tiene dos estructuras una loacutegica y otra fiacutesica

Fiacutesicamente el documento estaacute compuesto por unidades llamadas entidades Una entidad puede hacer referencia a otra entidad causando que esta se incluya en el documento Cada documento comienza con una entidad documento tambieacuten llamada raiacutez

Loacutegicamente el documento estaacute compuesto de declaraciones elementos comentarios referencias a caracteres e instrucciones de procesamiento todos los cuales estaacuten indicados por una marca expliacutecita Las estructuras loacutegica y fiacutesica deben encajar de manera adecuada

Los documentos XML se dividen en dos grupos documentos bien formados y documentos vaacutelidos

bull Bien formados Son todos los que cumplen las especificaciones del lenguaje respecto a las reglas sintaacutecticas sin estar sujetos a unos elementos fijados en un DTD De hecho los documentos XML deben tener una estructura jeraacuterquica muy estricta y los documentos bien formados deben cumplirla El documento debe de contener una soacutela raiacutez y todas las etiquetas estar correctamente anidadas

Semana 1 Caracteriacutesticas de los lenguajes de marcas

11

bull Vaacutelidos Ademaacutes de estar bien formados siguen una estructura y una semaacutentica determinada por un DTD sus elementos y sobre todo la estructura jeraacuterquica que define el DTD ademaacutes de los atributos deben ajustarse a lo que el DTD dicte Veremos maacutes adelante maacutes detalladamente lo que es un DTD pero podemos ir adelantando que un DTD permite especificar la estructura del documento y que el DTD puede estar separado del documento

Un fichero puede estar bien escrito seguacuten las reglas de XML (bien formado) pero no ldquotener ni pies ni cabezardquo ( no vaacutelido)

Aquiacute podemos ver otro ejemplo muy sencillo de documento XML

ltxml version= 10 encoding= UTF-8 standalone= yes gt ltfichagt

ltnombregt Angel ltnombregt ltapellidogt Barbero ltapellidogt ltdirecciongt cUlises 36 ltdirecciongt

ltfichagt La estructura baacutesica de un bloque XML se muestra en la siguiente figura

Semana 1 Caracteriacutesticas de los lenguajes de marcas

12

Lo primero que tenemos que observar es la primera liacutenea Con ella deben empezar todos los documentos XML ya que en ella se indica que el documento es XML Aunque es opcional es recomendable incluirla Puede tener varios atributos algunos obligatorios y otros no

bull version Indica la versioacuten de XML usada en el documento Es obligatorio ponerlo a no ser que sea un documento externo a otro que ya lo incluiacutea

bull encoding La forma en que se ha codificado el documento Se puede poner cualquiera y depende del parser el poder entender o no la codificacioacuten Por defecto es UTF‐8 aunque podriacutean ponerse otras como UTF‐16 US‐ASCII ISO‐8859‐1 etc No es obligatorio salvo que sea un documento externo a otro principal

bull standalone Indica si el documento va acompantildeado de un DTD (no) o no lo necesita (yes) en principio no hay porqueacute ponerlo porque luego se indica el DTD si se necesita Veremos los DTD maacutes adelante

Realiza la Actividad 3

Caracteriacutesticas de los documentos XML bien formados

Un documento XML se dice que estaacute bien formado si encaja con las especificaciones XML de produccioacuten lo que implica

Estructura jeraacuterquica de elementos

Los documentos XML deben seguir una estructura estrictamente jeraacuterquica con lo que respecta a las etiquetas que delimitan sus elementos Una etiqueta debe estar correctamente incluiacuteda en otra Asiacutemismo los elementos con contenido deben estar correctamente cerrados A continuacioacuten se muestra un ejemplo incorrecto y posteriormente otro ejemplo escrito correctamente

ltligtHTML ltbgt permite ltigt esto ltbgt ltigt Ejemplo incorrecto ltligtEn XML la ltbgt estructura ltigt es ltigt jeraacuterquica ltbgtltligt Ejemplo correcto

Realiza la Actividad 4

Semana 1 Caracteriacutesticas de los lenguajes de marcas

13

Etiquetas vaciacuteas

HTML permite elementos sin contenido XML tambieacuten pero la etiqueta debe ser de la siguiente forma ltelemento sin contenido gt A continuacioacuten se muestra un ejemplo incorrecto y posteriormente otro correcto

ltligtEsto es HTML ltbrgt en el que casi todo estaacute permitido ltligt

Hay que tener en cuenta que el siacutembolo lt siempre se interpreta como inicio de una etiqueta XML Si no es el caso el documento no estaraacute bien formado Para usar ciertos siacutembolos se usan las entidades predefinidas que se explican maacutes adelante

Un elemento vaciacuteo es el que no tiene contenido Por ejemplo

ltidentificador DNI=23123244 gt

ltlinea-horizontal gt

Al no tener una etiqueta de cierre que delimite un contenido se utiliza la forma ltetiqueta gt que puede contener atributos o no La sintaxis de HTML permite etiquetas vaciacuteas tipo lthrgt o ltimg src=gt En HTML reformulado para que sea un documento XML bien formado se deberiacutea usar lthr gt o ltimg src=

Atributos

Como se ha mencionado antes los elementos pueden tener atributos que son una manera de incorporar caracteriacutesticas o propiedades a los elementos de un documento

Por ejemplo un elemento chiste puede tener un atributo tipo y un atributo calidad con valores vascos y bueno respectivamente

ltchiste tipo=vascos calidad=buenogt Esto es un diacutea que Patxi y Josu van paseando ltchistegt

En una Definicioacuten de Tipo de Documento (DTD) se especifican los atributos que pueden tener cada tipo de elemento asiacute como sus valores y tipos de valor posible

Al igual que en otras cadenas literales de XML los atributos pueden estar marcados entre comillas simples () o doble () Cuando se usa uno para delimitar el valor del atributo el otro tipo se puede usar dentro

ltverdura clase=zanahoria longitud=15 y mediagt

ltcita texto=Hola buenos dias dijo eacutelgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

14

A veces un elemento con contenido puede modelarse como un elemento vaciacuteo con atributos Un concepto se puede representar de muy diversas formas pero una vez elegida una es aconsejable fijarla en el DTD y usar siempre la misma consistentemente dentro de un documento XML

Entidades Predefinidas

En XML 10 se definen cinco entidades para representar caracteres especiales y que no se interpreten como marcado en el procesador XML Es decir que asiacute podemos usar el caraacutecter lt sin que se interprete como el comienzo de una etiqueta XML por ejemplo Entidad Caraacutecter

ampamp amp amplt lt ampgt gt ampapos lsquo ampquot ldquo

ltgatogt ltnombregtMicifuacuteltnombregt ltrazagtPersaltrazagt

ltgatogt ltgato raza=Persagt

Micifuacute ltgatogt

ltgato raza=Persa nombre=Micifuacutegt

Secciones CDATA

Existe otra construccioacuten en XML que permite especificar datos utilizando cualquier caraacutecter especial o no sin que se interprete como marcado XML La razoacuten de esta construccioacuten llamada CDATA (Character DATA) es que a veces es necesario para los autores de documentos XML poder leerlo faacutecilmente sin tener que descifrar los coacutedigos de entidades Especialmente cuando son muchos

Como ejemplo el siguiente (primero usando entidades predefinidas y luego con un bloque CDATA) Podemos comprobar su uso en el siguiente ejemplo

ltejemplogt amplthtmlampgt ampltheadampgtamplttitlegtRock ampamp Rollamplttitleampgtampltheadampgt

ltejemplogt

ltejemplogt lt[CDATA[

lthtmlgt ltheadgtlttitlegtRock amp Rolllttitlegtltheadgt

]]gt ltejemplogt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

15

Como hemos visto dentro de una seccioacuten CDATA podemos poner cualquier cosa que no seraacute interpretada como algo que no es asiacute Existe una excepcioacuten y es la cadena ]]gt con el que termina el bloque CDATA Esta cadena no puede utilizarse dentro de una seccioacuten CDATA

Comentarios

A veces es conveniente insertar comentarios en el documento XML que son ignorados por el procesado de la informacioacuten y las reproducciones del documento Los comentarios tienen el mismo formato que los comentarios de HTML Es decir comienza por la cadena lt‐‐ y termina con ‐‐gt

lt‐‐ Esto es un comentario ‐‐gt

Se pueden introducir comentarios en cualquier parte del documento salvo dentro de las declaraciones etiquetas u otros comentarios

Realiza la actividad 5 y 6

Espacios de nombre (NameSpaces)

En XML los espacios de nombre (namespace) tienen dos propoacutesitos

1 Distinguir entre elementos y atributos de distintos vocabularios con distintos significados que puedan compartir el mismo nombre

2 Agrupar todos los elementos y atributos relacionados de una sola aplicacioacuten

XML para que el software pueda reconocerlos con facilidad El primer propoacutesito es maacutes faacutecil de explicar y entender pero el segundo es maacutes importante en la praacutectica La extensibilidad es una facultad que no es gratuita En un entorno distribuido esta facultad deberaacute ser administrada para evitar conflictos Los espacios de nombre son una solucioacuten para ayudar a administrar la extensibilidad de XML Un espacio de nombres puede ser definido como un mecanismo para identificar elementos XML Establece los nombres de los elementos en un contexto global Supongamos que decide publicar sus marcadores como muestra el siguiente documento

Semana 1 Caracteriacutesticas de los lenguajes de marcas

16

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

Con frecuencia es necesario extender un documento existente para transmitirle nueva informacioacuten No obstante hay problemas si la extensioacuten no se administra Suponga que alguien maacutes decide clasificar la lista anterior con asesoriacutea para padres El listado siguiente muestra el resultado (Noticias ABC y Coacutemics podriacutean contener violencia o escenas de sexo por esto tienen un nivel de Guiacutea paterna)

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

17

Esto es algo problemaacutetico Supongamos que la extensioacuten contempla ambos tipos de categoriacuteas

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

El problema con el anterior listado es que un software disentildeado para funcionar con el anterior listado con el objetivo de listar viacutenculos ofensivos no sabriacutea queacute hacer con la categoriacutea 5 estrellas El software tan soacutelo tiene que pasar por alto las etiquetas de categoriacutea de calidad pero iquestcoacutemo podriacutea hacerlo si no puede distinguir entre ambas etiquetas de categoriacutea La solucioacuten es obvia utilizar distintos nombres para ambas categoriacuteas por ejemplo Para el control de calidad ltcld‐categoriacuteagt3 estrellasltcategoriacuteagt Y para el control parental

Semana 1 Caracteriacutesticas de los lenguajes de marcas

18

ltpdr‐categoriacuteagtGuiacutea paternaltcategoriacuteagt El problema del ejemplo anterior es hellip el caraacutecter de extensibilidad de XML Dado que cualquiera puede generar etiquetas hay un enorme riesgo de conflictos Una solucioacuten para evitarlo es establecer un registro global de etiquetas aceptadas y su definicioacuten asociada No obstante podriacutea limitar severamente la flexibilidad de XML Nadie desea hacer esto La flexibilidad fue una meta primordial en el disentildeo de XML La propuesta de los espacios de nombre corrige este problema con un meacutetodo elegante no limita la extensibilidad sino que presenta mecanismos para administrarla El listado siguiente es similar al uacuteltimo pero utiliza espacios de nombre para evitar los conflictos Xmlns Xml Name Schema

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferencias xmlnscld=httpjokerplayfieldcomstar‐categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

19

A primera vista todo parece similar pero la diferencia estaacute en el formato de los nombres Ahora se agrega un prefijo a cada nombre de elemento El prefijo y el nombre estaacuten separados por dos puntos () ltcldcategoriacuteagt3 estrellasltcategoriacuteagt El prefijo identifica uniacutevocamente el tipo de categoriacutea en este documento No obstante tales prefijos por siacute solos no resuelven nada dado que cualquier persona puede generarlos Asiacute pues distintas personas podriacutean generar prefijos incompatibles y volvemos al primer paso Para evitar tales conflictos los prefijos deben estar declarados ltreferencias xmlnscld=httpjokerplayfieldcomstar-categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt La declaracioacuten asocia a un URI con un prefijo Este es el punto crucial de la propuesta de los espacios de nombre dado que los URIs a diferencia de los nombres son uacutenicos Los espacios de nombre se fundamentan en los mecanismos de registro establecidos para los URIs Por tanto se garantiza que los URLs son uacutenicos dado que estaacuten basados en nombres de dominio registrados para garantizar la unicidad

El nombre del espacio de nombre

El nombre del espacio de nombre es el URI no el prefijo Cuando una aplicacioacuten compara a dos elementos utiliza el URI no el prefijo para reconocer sus espacios de nombre

Asiacute en el listado siguiente rffnombre y refnombre se consideran ideacutenticos a pesar de tener un prefijo distinto Ambos estaacuten en el espacio de nombre httpcatwomanpineapplesoftcomref15

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 175012 CEST 2010 --gt ltreferenciasgt ltrffnombre xmlnsrff=httpcatwomanpineapplesoftcomref15gt Pearson Educational ltrffnombregt ltlink href=httpwwwpearsoncommx gt ltrefnombre xmlnsref=httpcatwomanpineapplesoftcomref15gt Pineapplesoft ltrefnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

20

Espacio de nombre predeterminado

Todos los elementos sin prefijo nombre y link en los ejemplos anteriores y todos sus elementos descendientes pertenecen a un espacio de nombres predeterminado antildeadiendo un atributo xmlns sin prefijo en el elemento de la parte superior En nuestro caso

xmlns=httpcatwomanpineapplesoftcomref15

Los atributos son diferentes Los espacios de nombre predeterminados solo se aplican a los elementos no a los atributos Por lo tanto en el espacio anterior el atributo sin prefijo href no estaacute en ninguacuten espacio de nombre

Realiza la Actividad 7

Los URIs Un URI (Uniform Resource Identifier) es una cadena corta de caracteres que identifica inequiacutevocamente un recurso (servicio paacutegina documento direccioacuten de correo electroacutenico enciclopedia etc) Normalmente estos recursos son accesibles en una red o sistema

En el caso que nos ocupa el URI solo se utiliza para asegurar la unicidad de los nombres Podriacutea (aunque no necesariamente) apuntar a una descripcioacuten del nombre Por ejemplo podriacutea haber un documento en httppenguinxmlicomreview10 que describa la categoriacutea o podriacutea no haber nada

No obstante lo importante es que los URIs son uacutenicos y deberiacuteamos generarlos de acuerdo con nuestros nombres de dominio Los nombres de dominio Los URLs (Uniform Resource Locator) son direcciones para localizar recursos en Internet y actualmente han sido englobados por el concepto maacutes general de URI

Tienen el siguiente formato

httpwwwpearsoncommx httpwwwpineapplesoftcomnewsletter ftpftpmcpcom newsnewspsolcomcompxml mailtobmarchalpineapplesoftcom El nombre del dominio es solo una parte del URL ldquopearsoncommxrdquo y ldquopineapplesoftcomrdquo son dos de ellos

Semana 1 Caracteriacutesticas de los lenguajes de marcas

21

El nombre del dominio estaacute registrado por una autoridad global para asegurar que no haya duplicados Dada la globalidad del registro uno no puede hacer lo que quiera con los nombres de dominio Por ejemplo no es posible registrar nombres que ya esteacuten en uso La parte final del nombre de dominio (ldquocomrdquo por ejemplo) se conoce como Dominio de nivel superior (TLD Top Level Domain) identifica a la autoridad que asignoacute el nombre de dominio InterNIC (wwwinternicnet) es la autoridad para la mayor parte de los llamados TLD geneacutericos ldquocomrdquo (comercial) ldquonetrdquo (proveedores de servicios de Internet) ldquoorgrdquo (instituciones sin aacutenimo de lucro) Son geneacutericas puesto que estaacuten abiertas a empresas u organizaciones con un aacutembito mundial Tambieacuten hay TLDs especiacuteficos de un paiacutes ldquoesrdquo en Espantildea ldquoukrdquo en el Reino Unido ldquousrdquo en Estados Unidos etc Los nombres de dominio no son muy costosos (actualmente unos 15 euro anuales) por lo que es muy recomendable contratar uno

  • Introduccioacuten
    • Elementos XML
    • Atributos
      • Caracteriacutesticas de los documentos XML bien formados
Page 8: lenguaje de marcas

Semana 1 Caracteriacutesticas de los lenguajes de marcas

8

un lenguaje de marcas estructural pero que no podiacutean aceptar la complejidad de SGML adoptaron XML con confianza Se comenzoacute a usar en sectores tan variados como los tribunales o los criaderos de cerdos

Sin embargo XML 10 fue tan solo el principio El siguiente estaacutendar fueron los espacios de nombres (Namespaces) un esfuerzo para permitir que marcas de distintas aplicaciones con el mismo nombre se pudieran usar en el mismo documento sin conflicto Asiacute un documento sobre libros podiacutea tener un elemento titulo que haciacutea referencia al tiacutetulo del libro y elementos titulo para los tiacutetulos de los capiacutetulos y ambos sin presentar conflicto alguno

A continuacioacuten aparecioacute el Lenguaje de hojas de estilo extensible (XSL Extensible Stylesheet Language) una aplicacioacuten para transformar documentos XML en un formulario que podiacutea visualizarse en una paacutegina web Pronto aparecieron las transformaciones XSL (XSLT Transformations XSL)y los objetos de formato XSL (XSL‐FO XSL Formatting Objects) XSLT se ha convertido en un lenguaje de propoacutesito general para transformar un documento XML en otro ya sea para una presentacioacuten web o para cualquier otro propoacutesito y XSL‐FO sirve para dar formato PostScript a un documento XML

Para el direccionamiento de partes individuales del documento surge XPath y otra pieza del rompecabezas fue una interfaz para el direccionamiento desde un programa java javascript o C++ La API maacutes simple solamente trataba el documento como un objeto que conteniacutea a otros objetos Se inicioacute una labor dentro y fuera del W3C para definirlo como modelo de objeto de documento (DOM Document Object Model) para HTML Ampliar este esfuerzo a XML no resultoacute difiacutecil

Esta rica coleccioacuten de especificaciones solo dirige tecnologiacuteas que son principales para XML Se han desarrollado muchas maacutes y continuacutean hacieacutendolo a un ritmo acelerado Aplicaciones XML como SOAP utilizado en el intercambio de datos en los servicios web SVG para describir graacuteficos vectoriales MathML para el uso en matemaacuteticas Atom para la sindicacioacuten XForms para definir interfaces de usuario a base de formularios web WordprocessingML para el trabajo con procesadores de texto y miles de ellas maacutes XML ha demostrado por siacute mismo ser una base soacutelida para muchas y variadas tecnologiacuteas

Componentes de XML

Elementos XML Un elemento XML es cualquier cosa que incluya una marca de inicio una marca de fin y la informacioacuten o no que se encuentra entre ambas marcas ltpeliculagtLa Red Socialltpeliculagt

Atributos Modificador de una etiqueta XML Da una caracteriacutestica ampliada de la etiqueta definida Pueden utilizarse comillas dobles y simples indistintamente pero se debe abrir y cerrar con el mismo siacutembolo

Semana 1 Caracteriacutesticas de los lenguajes de marcas

9

ltpelicula categoria=DramagtLa Red Socialltpeliculagt ltpelicula categoria=Comediagt 2 tontos muy tontosltpeliculagt

Sintaxis XML bull Todas las marcas utilizadas en XML deben tener un inicio y un final no como

sucede en HTML bull Las marcas de XML tienen en cuenta que sean mayuacutesculas y minuacutesculas (las

marcas deben colocarse de forma exacta) bull Las marcas se deben cerrar en el mismo orden en que se abrieron bull Un documento XML debe tener un elemento raiacutez de partida bull Todos los atributos de XML deben colocarse entre comillas dobles bull Para colocar determinados caracteres reservados en XML se deben utilizar

cadenas de identificacioacuten bull Se pueden colocar comentarios en XML

Documento XML Aunque a primera vista un documento XML puede parecer similar a HTML hay una diferencia principal Un documento XML contiene datos que se autodefinen exclusivamente Un documento HTML contiene datos mal definidos mezclados con elementos de formato En XML se separa el contenido de la presentacioacuten de forma total Una forma de entender raacutepidamente la estructura de un documento XML es viendo un pequentildeo ejemplo

ltxml version=10gt ltDOCTYPE MENSAJE SYSTEM mensajedtdgt ltmensajegt

ltremitegt ltnombregtAlfredo Reinoltnombregt ltemailgtalfibiumcomltemailgt

ltremitegt ltdestinatariogt

ltnombregtBill Clintonltnombregt ltemailgtpresidentwhitehousegovltemailgt

ltdestinatariogt ltasuntogtHola Billltasuntogt lttextogt

ltparrafogtiquestHola queacute tal Hace ltenfasisgtmucholtenfasisgt que no escribes A ver si llamas y quedamos para tomar algoltparrafogt lttextogt

ltmensajegt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

10

Este mismo documento puede ser visto de forma graacutefica para comprender mejor la estructura de un documento XML

Realiza las Actividades 1 y 2

Estructura de un documento XML

Un documento XML tiene dos estructuras una loacutegica y otra fiacutesica

Fiacutesicamente el documento estaacute compuesto por unidades llamadas entidades Una entidad puede hacer referencia a otra entidad causando que esta se incluya en el documento Cada documento comienza con una entidad documento tambieacuten llamada raiacutez

Loacutegicamente el documento estaacute compuesto de declaraciones elementos comentarios referencias a caracteres e instrucciones de procesamiento todos los cuales estaacuten indicados por una marca expliacutecita Las estructuras loacutegica y fiacutesica deben encajar de manera adecuada

Los documentos XML se dividen en dos grupos documentos bien formados y documentos vaacutelidos

bull Bien formados Son todos los que cumplen las especificaciones del lenguaje respecto a las reglas sintaacutecticas sin estar sujetos a unos elementos fijados en un DTD De hecho los documentos XML deben tener una estructura jeraacuterquica muy estricta y los documentos bien formados deben cumplirla El documento debe de contener una soacutela raiacutez y todas las etiquetas estar correctamente anidadas

Semana 1 Caracteriacutesticas de los lenguajes de marcas

11

bull Vaacutelidos Ademaacutes de estar bien formados siguen una estructura y una semaacutentica determinada por un DTD sus elementos y sobre todo la estructura jeraacuterquica que define el DTD ademaacutes de los atributos deben ajustarse a lo que el DTD dicte Veremos maacutes adelante maacutes detalladamente lo que es un DTD pero podemos ir adelantando que un DTD permite especificar la estructura del documento y que el DTD puede estar separado del documento

Un fichero puede estar bien escrito seguacuten las reglas de XML (bien formado) pero no ldquotener ni pies ni cabezardquo ( no vaacutelido)

Aquiacute podemos ver otro ejemplo muy sencillo de documento XML

ltxml version= 10 encoding= UTF-8 standalone= yes gt ltfichagt

ltnombregt Angel ltnombregt ltapellidogt Barbero ltapellidogt ltdirecciongt cUlises 36 ltdirecciongt

ltfichagt La estructura baacutesica de un bloque XML se muestra en la siguiente figura

Semana 1 Caracteriacutesticas de los lenguajes de marcas

12

Lo primero que tenemos que observar es la primera liacutenea Con ella deben empezar todos los documentos XML ya que en ella se indica que el documento es XML Aunque es opcional es recomendable incluirla Puede tener varios atributos algunos obligatorios y otros no

bull version Indica la versioacuten de XML usada en el documento Es obligatorio ponerlo a no ser que sea un documento externo a otro que ya lo incluiacutea

bull encoding La forma en que se ha codificado el documento Se puede poner cualquiera y depende del parser el poder entender o no la codificacioacuten Por defecto es UTF‐8 aunque podriacutean ponerse otras como UTF‐16 US‐ASCII ISO‐8859‐1 etc No es obligatorio salvo que sea un documento externo a otro principal

bull standalone Indica si el documento va acompantildeado de un DTD (no) o no lo necesita (yes) en principio no hay porqueacute ponerlo porque luego se indica el DTD si se necesita Veremos los DTD maacutes adelante

Realiza la Actividad 3

Caracteriacutesticas de los documentos XML bien formados

Un documento XML se dice que estaacute bien formado si encaja con las especificaciones XML de produccioacuten lo que implica

Estructura jeraacuterquica de elementos

Los documentos XML deben seguir una estructura estrictamente jeraacuterquica con lo que respecta a las etiquetas que delimitan sus elementos Una etiqueta debe estar correctamente incluiacuteda en otra Asiacutemismo los elementos con contenido deben estar correctamente cerrados A continuacioacuten se muestra un ejemplo incorrecto y posteriormente otro ejemplo escrito correctamente

ltligtHTML ltbgt permite ltigt esto ltbgt ltigt Ejemplo incorrecto ltligtEn XML la ltbgt estructura ltigt es ltigt jeraacuterquica ltbgtltligt Ejemplo correcto

Realiza la Actividad 4

Semana 1 Caracteriacutesticas de los lenguajes de marcas

13

Etiquetas vaciacuteas

HTML permite elementos sin contenido XML tambieacuten pero la etiqueta debe ser de la siguiente forma ltelemento sin contenido gt A continuacioacuten se muestra un ejemplo incorrecto y posteriormente otro correcto

ltligtEsto es HTML ltbrgt en el que casi todo estaacute permitido ltligt

Hay que tener en cuenta que el siacutembolo lt siempre se interpreta como inicio de una etiqueta XML Si no es el caso el documento no estaraacute bien formado Para usar ciertos siacutembolos se usan las entidades predefinidas que se explican maacutes adelante

Un elemento vaciacuteo es el que no tiene contenido Por ejemplo

ltidentificador DNI=23123244 gt

ltlinea-horizontal gt

Al no tener una etiqueta de cierre que delimite un contenido se utiliza la forma ltetiqueta gt que puede contener atributos o no La sintaxis de HTML permite etiquetas vaciacuteas tipo lthrgt o ltimg src=gt En HTML reformulado para que sea un documento XML bien formado se deberiacutea usar lthr gt o ltimg src=

Atributos

Como se ha mencionado antes los elementos pueden tener atributos que son una manera de incorporar caracteriacutesticas o propiedades a los elementos de un documento

Por ejemplo un elemento chiste puede tener un atributo tipo y un atributo calidad con valores vascos y bueno respectivamente

ltchiste tipo=vascos calidad=buenogt Esto es un diacutea que Patxi y Josu van paseando ltchistegt

En una Definicioacuten de Tipo de Documento (DTD) se especifican los atributos que pueden tener cada tipo de elemento asiacute como sus valores y tipos de valor posible

Al igual que en otras cadenas literales de XML los atributos pueden estar marcados entre comillas simples () o doble () Cuando se usa uno para delimitar el valor del atributo el otro tipo se puede usar dentro

ltverdura clase=zanahoria longitud=15 y mediagt

ltcita texto=Hola buenos dias dijo eacutelgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

14

A veces un elemento con contenido puede modelarse como un elemento vaciacuteo con atributos Un concepto se puede representar de muy diversas formas pero una vez elegida una es aconsejable fijarla en el DTD y usar siempre la misma consistentemente dentro de un documento XML

Entidades Predefinidas

En XML 10 se definen cinco entidades para representar caracteres especiales y que no se interpreten como marcado en el procesador XML Es decir que asiacute podemos usar el caraacutecter lt sin que se interprete como el comienzo de una etiqueta XML por ejemplo Entidad Caraacutecter

ampamp amp amplt lt ampgt gt ampapos lsquo ampquot ldquo

ltgatogt ltnombregtMicifuacuteltnombregt ltrazagtPersaltrazagt

ltgatogt ltgato raza=Persagt

Micifuacute ltgatogt

ltgato raza=Persa nombre=Micifuacutegt

Secciones CDATA

Existe otra construccioacuten en XML que permite especificar datos utilizando cualquier caraacutecter especial o no sin que se interprete como marcado XML La razoacuten de esta construccioacuten llamada CDATA (Character DATA) es que a veces es necesario para los autores de documentos XML poder leerlo faacutecilmente sin tener que descifrar los coacutedigos de entidades Especialmente cuando son muchos

Como ejemplo el siguiente (primero usando entidades predefinidas y luego con un bloque CDATA) Podemos comprobar su uso en el siguiente ejemplo

ltejemplogt amplthtmlampgt ampltheadampgtamplttitlegtRock ampamp Rollamplttitleampgtampltheadampgt

ltejemplogt

ltejemplogt lt[CDATA[

lthtmlgt ltheadgtlttitlegtRock amp Rolllttitlegtltheadgt

]]gt ltejemplogt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

15

Como hemos visto dentro de una seccioacuten CDATA podemos poner cualquier cosa que no seraacute interpretada como algo que no es asiacute Existe una excepcioacuten y es la cadena ]]gt con el que termina el bloque CDATA Esta cadena no puede utilizarse dentro de una seccioacuten CDATA

Comentarios

A veces es conveniente insertar comentarios en el documento XML que son ignorados por el procesado de la informacioacuten y las reproducciones del documento Los comentarios tienen el mismo formato que los comentarios de HTML Es decir comienza por la cadena lt‐‐ y termina con ‐‐gt

lt‐‐ Esto es un comentario ‐‐gt

Se pueden introducir comentarios en cualquier parte del documento salvo dentro de las declaraciones etiquetas u otros comentarios

Realiza la actividad 5 y 6

Espacios de nombre (NameSpaces)

En XML los espacios de nombre (namespace) tienen dos propoacutesitos

1 Distinguir entre elementos y atributos de distintos vocabularios con distintos significados que puedan compartir el mismo nombre

2 Agrupar todos los elementos y atributos relacionados de una sola aplicacioacuten

XML para que el software pueda reconocerlos con facilidad El primer propoacutesito es maacutes faacutecil de explicar y entender pero el segundo es maacutes importante en la praacutectica La extensibilidad es una facultad que no es gratuita En un entorno distribuido esta facultad deberaacute ser administrada para evitar conflictos Los espacios de nombre son una solucioacuten para ayudar a administrar la extensibilidad de XML Un espacio de nombres puede ser definido como un mecanismo para identificar elementos XML Establece los nombres de los elementos en un contexto global Supongamos que decide publicar sus marcadores como muestra el siguiente documento

Semana 1 Caracteriacutesticas de los lenguajes de marcas

16

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

Con frecuencia es necesario extender un documento existente para transmitirle nueva informacioacuten No obstante hay problemas si la extensioacuten no se administra Suponga que alguien maacutes decide clasificar la lista anterior con asesoriacutea para padres El listado siguiente muestra el resultado (Noticias ABC y Coacutemics podriacutean contener violencia o escenas de sexo por esto tienen un nivel de Guiacutea paterna)

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

17

Esto es algo problemaacutetico Supongamos que la extensioacuten contempla ambos tipos de categoriacuteas

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

El problema con el anterior listado es que un software disentildeado para funcionar con el anterior listado con el objetivo de listar viacutenculos ofensivos no sabriacutea queacute hacer con la categoriacutea 5 estrellas El software tan soacutelo tiene que pasar por alto las etiquetas de categoriacutea de calidad pero iquestcoacutemo podriacutea hacerlo si no puede distinguir entre ambas etiquetas de categoriacutea La solucioacuten es obvia utilizar distintos nombres para ambas categoriacuteas por ejemplo Para el control de calidad ltcld‐categoriacuteagt3 estrellasltcategoriacuteagt Y para el control parental

Semana 1 Caracteriacutesticas de los lenguajes de marcas

18

ltpdr‐categoriacuteagtGuiacutea paternaltcategoriacuteagt El problema del ejemplo anterior es hellip el caraacutecter de extensibilidad de XML Dado que cualquiera puede generar etiquetas hay un enorme riesgo de conflictos Una solucioacuten para evitarlo es establecer un registro global de etiquetas aceptadas y su definicioacuten asociada No obstante podriacutea limitar severamente la flexibilidad de XML Nadie desea hacer esto La flexibilidad fue una meta primordial en el disentildeo de XML La propuesta de los espacios de nombre corrige este problema con un meacutetodo elegante no limita la extensibilidad sino que presenta mecanismos para administrarla El listado siguiente es similar al uacuteltimo pero utiliza espacios de nombre para evitar los conflictos Xmlns Xml Name Schema

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferencias xmlnscld=httpjokerplayfieldcomstar‐categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

19

A primera vista todo parece similar pero la diferencia estaacute en el formato de los nombres Ahora se agrega un prefijo a cada nombre de elemento El prefijo y el nombre estaacuten separados por dos puntos () ltcldcategoriacuteagt3 estrellasltcategoriacuteagt El prefijo identifica uniacutevocamente el tipo de categoriacutea en este documento No obstante tales prefijos por siacute solos no resuelven nada dado que cualquier persona puede generarlos Asiacute pues distintas personas podriacutean generar prefijos incompatibles y volvemos al primer paso Para evitar tales conflictos los prefijos deben estar declarados ltreferencias xmlnscld=httpjokerplayfieldcomstar-categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt La declaracioacuten asocia a un URI con un prefijo Este es el punto crucial de la propuesta de los espacios de nombre dado que los URIs a diferencia de los nombres son uacutenicos Los espacios de nombre se fundamentan en los mecanismos de registro establecidos para los URIs Por tanto se garantiza que los URLs son uacutenicos dado que estaacuten basados en nombres de dominio registrados para garantizar la unicidad

El nombre del espacio de nombre

El nombre del espacio de nombre es el URI no el prefijo Cuando una aplicacioacuten compara a dos elementos utiliza el URI no el prefijo para reconocer sus espacios de nombre

Asiacute en el listado siguiente rffnombre y refnombre se consideran ideacutenticos a pesar de tener un prefijo distinto Ambos estaacuten en el espacio de nombre httpcatwomanpineapplesoftcomref15

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 175012 CEST 2010 --gt ltreferenciasgt ltrffnombre xmlnsrff=httpcatwomanpineapplesoftcomref15gt Pearson Educational ltrffnombregt ltlink href=httpwwwpearsoncommx gt ltrefnombre xmlnsref=httpcatwomanpineapplesoftcomref15gt Pineapplesoft ltrefnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

20

Espacio de nombre predeterminado

Todos los elementos sin prefijo nombre y link en los ejemplos anteriores y todos sus elementos descendientes pertenecen a un espacio de nombres predeterminado antildeadiendo un atributo xmlns sin prefijo en el elemento de la parte superior En nuestro caso

xmlns=httpcatwomanpineapplesoftcomref15

Los atributos son diferentes Los espacios de nombre predeterminados solo se aplican a los elementos no a los atributos Por lo tanto en el espacio anterior el atributo sin prefijo href no estaacute en ninguacuten espacio de nombre

Realiza la Actividad 7

Los URIs Un URI (Uniform Resource Identifier) es una cadena corta de caracteres que identifica inequiacutevocamente un recurso (servicio paacutegina documento direccioacuten de correo electroacutenico enciclopedia etc) Normalmente estos recursos son accesibles en una red o sistema

En el caso que nos ocupa el URI solo se utiliza para asegurar la unicidad de los nombres Podriacutea (aunque no necesariamente) apuntar a una descripcioacuten del nombre Por ejemplo podriacutea haber un documento en httppenguinxmlicomreview10 que describa la categoriacutea o podriacutea no haber nada

No obstante lo importante es que los URIs son uacutenicos y deberiacuteamos generarlos de acuerdo con nuestros nombres de dominio Los nombres de dominio Los URLs (Uniform Resource Locator) son direcciones para localizar recursos en Internet y actualmente han sido englobados por el concepto maacutes general de URI

Tienen el siguiente formato

httpwwwpearsoncommx httpwwwpineapplesoftcomnewsletter ftpftpmcpcom newsnewspsolcomcompxml mailtobmarchalpineapplesoftcom El nombre del dominio es solo una parte del URL ldquopearsoncommxrdquo y ldquopineapplesoftcomrdquo son dos de ellos

Semana 1 Caracteriacutesticas de los lenguajes de marcas

21

El nombre del dominio estaacute registrado por una autoridad global para asegurar que no haya duplicados Dada la globalidad del registro uno no puede hacer lo que quiera con los nombres de dominio Por ejemplo no es posible registrar nombres que ya esteacuten en uso La parte final del nombre de dominio (ldquocomrdquo por ejemplo) se conoce como Dominio de nivel superior (TLD Top Level Domain) identifica a la autoridad que asignoacute el nombre de dominio InterNIC (wwwinternicnet) es la autoridad para la mayor parte de los llamados TLD geneacutericos ldquocomrdquo (comercial) ldquonetrdquo (proveedores de servicios de Internet) ldquoorgrdquo (instituciones sin aacutenimo de lucro) Son geneacutericas puesto que estaacuten abiertas a empresas u organizaciones con un aacutembito mundial Tambieacuten hay TLDs especiacuteficos de un paiacutes ldquoesrdquo en Espantildea ldquoukrdquo en el Reino Unido ldquousrdquo en Estados Unidos etc Los nombres de dominio no son muy costosos (actualmente unos 15 euro anuales) por lo que es muy recomendable contratar uno

  • Introduccioacuten
    • Elementos XML
    • Atributos
      • Caracteriacutesticas de los documentos XML bien formados
Page 9: lenguaje de marcas

Semana 1 Caracteriacutesticas de los lenguajes de marcas

9

ltpelicula categoria=DramagtLa Red Socialltpeliculagt ltpelicula categoria=Comediagt 2 tontos muy tontosltpeliculagt

Sintaxis XML bull Todas las marcas utilizadas en XML deben tener un inicio y un final no como

sucede en HTML bull Las marcas de XML tienen en cuenta que sean mayuacutesculas y minuacutesculas (las

marcas deben colocarse de forma exacta) bull Las marcas se deben cerrar en el mismo orden en que se abrieron bull Un documento XML debe tener un elemento raiacutez de partida bull Todos los atributos de XML deben colocarse entre comillas dobles bull Para colocar determinados caracteres reservados en XML se deben utilizar

cadenas de identificacioacuten bull Se pueden colocar comentarios en XML

Documento XML Aunque a primera vista un documento XML puede parecer similar a HTML hay una diferencia principal Un documento XML contiene datos que se autodefinen exclusivamente Un documento HTML contiene datos mal definidos mezclados con elementos de formato En XML se separa el contenido de la presentacioacuten de forma total Una forma de entender raacutepidamente la estructura de un documento XML es viendo un pequentildeo ejemplo

ltxml version=10gt ltDOCTYPE MENSAJE SYSTEM mensajedtdgt ltmensajegt

ltremitegt ltnombregtAlfredo Reinoltnombregt ltemailgtalfibiumcomltemailgt

ltremitegt ltdestinatariogt

ltnombregtBill Clintonltnombregt ltemailgtpresidentwhitehousegovltemailgt

ltdestinatariogt ltasuntogtHola Billltasuntogt lttextogt

ltparrafogtiquestHola queacute tal Hace ltenfasisgtmucholtenfasisgt que no escribes A ver si llamas y quedamos para tomar algoltparrafogt lttextogt

ltmensajegt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

10

Este mismo documento puede ser visto de forma graacutefica para comprender mejor la estructura de un documento XML

Realiza las Actividades 1 y 2

Estructura de un documento XML

Un documento XML tiene dos estructuras una loacutegica y otra fiacutesica

Fiacutesicamente el documento estaacute compuesto por unidades llamadas entidades Una entidad puede hacer referencia a otra entidad causando que esta se incluya en el documento Cada documento comienza con una entidad documento tambieacuten llamada raiacutez

Loacutegicamente el documento estaacute compuesto de declaraciones elementos comentarios referencias a caracteres e instrucciones de procesamiento todos los cuales estaacuten indicados por una marca expliacutecita Las estructuras loacutegica y fiacutesica deben encajar de manera adecuada

Los documentos XML se dividen en dos grupos documentos bien formados y documentos vaacutelidos

bull Bien formados Son todos los que cumplen las especificaciones del lenguaje respecto a las reglas sintaacutecticas sin estar sujetos a unos elementos fijados en un DTD De hecho los documentos XML deben tener una estructura jeraacuterquica muy estricta y los documentos bien formados deben cumplirla El documento debe de contener una soacutela raiacutez y todas las etiquetas estar correctamente anidadas

Semana 1 Caracteriacutesticas de los lenguajes de marcas

11

bull Vaacutelidos Ademaacutes de estar bien formados siguen una estructura y una semaacutentica determinada por un DTD sus elementos y sobre todo la estructura jeraacuterquica que define el DTD ademaacutes de los atributos deben ajustarse a lo que el DTD dicte Veremos maacutes adelante maacutes detalladamente lo que es un DTD pero podemos ir adelantando que un DTD permite especificar la estructura del documento y que el DTD puede estar separado del documento

Un fichero puede estar bien escrito seguacuten las reglas de XML (bien formado) pero no ldquotener ni pies ni cabezardquo ( no vaacutelido)

Aquiacute podemos ver otro ejemplo muy sencillo de documento XML

ltxml version= 10 encoding= UTF-8 standalone= yes gt ltfichagt

ltnombregt Angel ltnombregt ltapellidogt Barbero ltapellidogt ltdirecciongt cUlises 36 ltdirecciongt

ltfichagt La estructura baacutesica de un bloque XML se muestra en la siguiente figura

Semana 1 Caracteriacutesticas de los lenguajes de marcas

12

Lo primero que tenemos que observar es la primera liacutenea Con ella deben empezar todos los documentos XML ya que en ella se indica que el documento es XML Aunque es opcional es recomendable incluirla Puede tener varios atributos algunos obligatorios y otros no

bull version Indica la versioacuten de XML usada en el documento Es obligatorio ponerlo a no ser que sea un documento externo a otro que ya lo incluiacutea

bull encoding La forma en que se ha codificado el documento Se puede poner cualquiera y depende del parser el poder entender o no la codificacioacuten Por defecto es UTF‐8 aunque podriacutean ponerse otras como UTF‐16 US‐ASCII ISO‐8859‐1 etc No es obligatorio salvo que sea un documento externo a otro principal

bull standalone Indica si el documento va acompantildeado de un DTD (no) o no lo necesita (yes) en principio no hay porqueacute ponerlo porque luego se indica el DTD si se necesita Veremos los DTD maacutes adelante

Realiza la Actividad 3

Caracteriacutesticas de los documentos XML bien formados

Un documento XML se dice que estaacute bien formado si encaja con las especificaciones XML de produccioacuten lo que implica

Estructura jeraacuterquica de elementos

Los documentos XML deben seguir una estructura estrictamente jeraacuterquica con lo que respecta a las etiquetas que delimitan sus elementos Una etiqueta debe estar correctamente incluiacuteda en otra Asiacutemismo los elementos con contenido deben estar correctamente cerrados A continuacioacuten se muestra un ejemplo incorrecto y posteriormente otro ejemplo escrito correctamente

ltligtHTML ltbgt permite ltigt esto ltbgt ltigt Ejemplo incorrecto ltligtEn XML la ltbgt estructura ltigt es ltigt jeraacuterquica ltbgtltligt Ejemplo correcto

Realiza la Actividad 4

Semana 1 Caracteriacutesticas de los lenguajes de marcas

13

Etiquetas vaciacuteas

HTML permite elementos sin contenido XML tambieacuten pero la etiqueta debe ser de la siguiente forma ltelemento sin contenido gt A continuacioacuten se muestra un ejemplo incorrecto y posteriormente otro correcto

ltligtEsto es HTML ltbrgt en el que casi todo estaacute permitido ltligt

Hay que tener en cuenta que el siacutembolo lt siempre se interpreta como inicio de una etiqueta XML Si no es el caso el documento no estaraacute bien formado Para usar ciertos siacutembolos se usan las entidades predefinidas que se explican maacutes adelante

Un elemento vaciacuteo es el que no tiene contenido Por ejemplo

ltidentificador DNI=23123244 gt

ltlinea-horizontal gt

Al no tener una etiqueta de cierre que delimite un contenido se utiliza la forma ltetiqueta gt que puede contener atributos o no La sintaxis de HTML permite etiquetas vaciacuteas tipo lthrgt o ltimg src=gt En HTML reformulado para que sea un documento XML bien formado se deberiacutea usar lthr gt o ltimg src=

Atributos

Como se ha mencionado antes los elementos pueden tener atributos que son una manera de incorporar caracteriacutesticas o propiedades a los elementos de un documento

Por ejemplo un elemento chiste puede tener un atributo tipo y un atributo calidad con valores vascos y bueno respectivamente

ltchiste tipo=vascos calidad=buenogt Esto es un diacutea que Patxi y Josu van paseando ltchistegt

En una Definicioacuten de Tipo de Documento (DTD) se especifican los atributos que pueden tener cada tipo de elemento asiacute como sus valores y tipos de valor posible

Al igual que en otras cadenas literales de XML los atributos pueden estar marcados entre comillas simples () o doble () Cuando se usa uno para delimitar el valor del atributo el otro tipo se puede usar dentro

ltverdura clase=zanahoria longitud=15 y mediagt

ltcita texto=Hola buenos dias dijo eacutelgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

14

A veces un elemento con contenido puede modelarse como un elemento vaciacuteo con atributos Un concepto se puede representar de muy diversas formas pero una vez elegida una es aconsejable fijarla en el DTD y usar siempre la misma consistentemente dentro de un documento XML

Entidades Predefinidas

En XML 10 se definen cinco entidades para representar caracteres especiales y que no se interpreten como marcado en el procesador XML Es decir que asiacute podemos usar el caraacutecter lt sin que se interprete como el comienzo de una etiqueta XML por ejemplo Entidad Caraacutecter

ampamp amp amplt lt ampgt gt ampapos lsquo ampquot ldquo

ltgatogt ltnombregtMicifuacuteltnombregt ltrazagtPersaltrazagt

ltgatogt ltgato raza=Persagt

Micifuacute ltgatogt

ltgato raza=Persa nombre=Micifuacutegt

Secciones CDATA

Existe otra construccioacuten en XML que permite especificar datos utilizando cualquier caraacutecter especial o no sin que se interprete como marcado XML La razoacuten de esta construccioacuten llamada CDATA (Character DATA) es que a veces es necesario para los autores de documentos XML poder leerlo faacutecilmente sin tener que descifrar los coacutedigos de entidades Especialmente cuando son muchos

Como ejemplo el siguiente (primero usando entidades predefinidas y luego con un bloque CDATA) Podemos comprobar su uso en el siguiente ejemplo

ltejemplogt amplthtmlampgt ampltheadampgtamplttitlegtRock ampamp Rollamplttitleampgtampltheadampgt

ltejemplogt

ltejemplogt lt[CDATA[

lthtmlgt ltheadgtlttitlegtRock amp Rolllttitlegtltheadgt

]]gt ltejemplogt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

15

Como hemos visto dentro de una seccioacuten CDATA podemos poner cualquier cosa que no seraacute interpretada como algo que no es asiacute Existe una excepcioacuten y es la cadena ]]gt con el que termina el bloque CDATA Esta cadena no puede utilizarse dentro de una seccioacuten CDATA

Comentarios

A veces es conveniente insertar comentarios en el documento XML que son ignorados por el procesado de la informacioacuten y las reproducciones del documento Los comentarios tienen el mismo formato que los comentarios de HTML Es decir comienza por la cadena lt‐‐ y termina con ‐‐gt

lt‐‐ Esto es un comentario ‐‐gt

Se pueden introducir comentarios en cualquier parte del documento salvo dentro de las declaraciones etiquetas u otros comentarios

Realiza la actividad 5 y 6

Espacios de nombre (NameSpaces)

En XML los espacios de nombre (namespace) tienen dos propoacutesitos

1 Distinguir entre elementos y atributos de distintos vocabularios con distintos significados que puedan compartir el mismo nombre

2 Agrupar todos los elementos y atributos relacionados de una sola aplicacioacuten

XML para que el software pueda reconocerlos con facilidad El primer propoacutesito es maacutes faacutecil de explicar y entender pero el segundo es maacutes importante en la praacutectica La extensibilidad es una facultad que no es gratuita En un entorno distribuido esta facultad deberaacute ser administrada para evitar conflictos Los espacios de nombre son una solucioacuten para ayudar a administrar la extensibilidad de XML Un espacio de nombres puede ser definido como un mecanismo para identificar elementos XML Establece los nombres de los elementos en un contexto global Supongamos que decide publicar sus marcadores como muestra el siguiente documento

Semana 1 Caracteriacutesticas de los lenguajes de marcas

16

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

Con frecuencia es necesario extender un documento existente para transmitirle nueva informacioacuten No obstante hay problemas si la extensioacuten no se administra Suponga que alguien maacutes decide clasificar la lista anterior con asesoriacutea para padres El listado siguiente muestra el resultado (Noticias ABC y Coacutemics podriacutean contener violencia o escenas de sexo por esto tienen un nivel de Guiacutea paterna)

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

17

Esto es algo problemaacutetico Supongamos que la extensioacuten contempla ambos tipos de categoriacuteas

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

El problema con el anterior listado es que un software disentildeado para funcionar con el anterior listado con el objetivo de listar viacutenculos ofensivos no sabriacutea queacute hacer con la categoriacutea 5 estrellas El software tan soacutelo tiene que pasar por alto las etiquetas de categoriacutea de calidad pero iquestcoacutemo podriacutea hacerlo si no puede distinguir entre ambas etiquetas de categoriacutea La solucioacuten es obvia utilizar distintos nombres para ambas categoriacuteas por ejemplo Para el control de calidad ltcld‐categoriacuteagt3 estrellasltcategoriacuteagt Y para el control parental

Semana 1 Caracteriacutesticas de los lenguajes de marcas

18

ltpdr‐categoriacuteagtGuiacutea paternaltcategoriacuteagt El problema del ejemplo anterior es hellip el caraacutecter de extensibilidad de XML Dado que cualquiera puede generar etiquetas hay un enorme riesgo de conflictos Una solucioacuten para evitarlo es establecer un registro global de etiquetas aceptadas y su definicioacuten asociada No obstante podriacutea limitar severamente la flexibilidad de XML Nadie desea hacer esto La flexibilidad fue una meta primordial en el disentildeo de XML La propuesta de los espacios de nombre corrige este problema con un meacutetodo elegante no limita la extensibilidad sino que presenta mecanismos para administrarla El listado siguiente es similar al uacuteltimo pero utiliza espacios de nombre para evitar los conflictos Xmlns Xml Name Schema

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferencias xmlnscld=httpjokerplayfieldcomstar‐categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

19

A primera vista todo parece similar pero la diferencia estaacute en el formato de los nombres Ahora se agrega un prefijo a cada nombre de elemento El prefijo y el nombre estaacuten separados por dos puntos () ltcldcategoriacuteagt3 estrellasltcategoriacuteagt El prefijo identifica uniacutevocamente el tipo de categoriacutea en este documento No obstante tales prefijos por siacute solos no resuelven nada dado que cualquier persona puede generarlos Asiacute pues distintas personas podriacutean generar prefijos incompatibles y volvemos al primer paso Para evitar tales conflictos los prefijos deben estar declarados ltreferencias xmlnscld=httpjokerplayfieldcomstar-categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt La declaracioacuten asocia a un URI con un prefijo Este es el punto crucial de la propuesta de los espacios de nombre dado que los URIs a diferencia de los nombres son uacutenicos Los espacios de nombre se fundamentan en los mecanismos de registro establecidos para los URIs Por tanto se garantiza que los URLs son uacutenicos dado que estaacuten basados en nombres de dominio registrados para garantizar la unicidad

El nombre del espacio de nombre

El nombre del espacio de nombre es el URI no el prefijo Cuando una aplicacioacuten compara a dos elementos utiliza el URI no el prefijo para reconocer sus espacios de nombre

Asiacute en el listado siguiente rffnombre y refnombre se consideran ideacutenticos a pesar de tener un prefijo distinto Ambos estaacuten en el espacio de nombre httpcatwomanpineapplesoftcomref15

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 175012 CEST 2010 --gt ltreferenciasgt ltrffnombre xmlnsrff=httpcatwomanpineapplesoftcomref15gt Pearson Educational ltrffnombregt ltlink href=httpwwwpearsoncommx gt ltrefnombre xmlnsref=httpcatwomanpineapplesoftcomref15gt Pineapplesoft ltrefnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

20

Espacio de nombre predeterminado

Todos los elementos sin prefijo nombre y link en los ejemplos anteriores y todos sus elementos descendientes pertenecen a un espacio de nombres predeterminado antildeadiendo un atributo xmlns sin prefijo en el elemento de la parte superior En nuestro caso

xmlns=httpcatwomanpineapplesoftcomref15

Los atributos son diferentes Los espacios de nombre predeterminados solo se aplican a los elementos no a los atributos Por lo tanto en el espacio anterior el atributo sin prefijo href no estaacute en ninguacuten espacio de nombre

Realiza la Actividad 7

Los URIs Un URI (Uniform Resource Identifier) es una cadena corta de caracteres que identifica inequiacutevocamente un recurso (servicio paacutegina documento direccioacuten de correo electroacutenico enciclopedia etc) Normalmente estos recursos son accesibles en una red o sistema

En el caso que nos ocupa el URI solo se utiliza para asegurar la unicidad de los nombres Podriacutea (aunque no necesariamente) apuntar a una descripcioacuten del nombre Por ejemplo podriacutea haber un documento en httppenguinxmlicomreview10 que describa la categoriacutea o podriacutea no haber nada

No obstante lo importante es que los URIs son uacutenicos y deberiacuteamos generarlos de acuerdo con nuestros nombres de dominio Los nombres de dominio Los URLs (Uniform Resource Locator) son direcciones para localizar recursos en Internet y actualmente han sido englobados por el concepto maacutes general de URI

Tienen el siguiente formato

httpwwwpearsoncommx httpwwwpineapplesoftcomnewsletter ftpftpmcpcom newsnewspsolcomcompxml mailtobmarchalpineapplesoftcom El nombre del dominio es solo una parte del URL ldquopearsoncommxrdquo y ldquopineapplesoftcomrdquo son dos de ellos

Semana 1 Caracteriacutesticas de los lenguajes de marcas

21

El nombre del dominio estaacute registrado por una autoridad global para asegurar que no haya duplicados Dada la globalidad del registro uno no puede hacer lo que quiera con los nombres de dominio Por ejemplo no es posible registrar nombres que ya esteacuten en uso La parte final del nombre de dominio (ldquocomrdquo por ejemplo) se conoce como Dominio de nivel superior (TLD Top Level Domain) identifica a la autoridad que asignoacute el nombre de dominio InterNIC (wwwinternicnet) es la autoridad para la mayor parte de los llamados TLD geneacutericos ldquocomrdquo (comercial) ldquonetrdquo (proveedores de servicios de Internet) ldquoorgrdquo (instituciones sin aacutenimo de lucro) Son geneacutericas puesto que estaacuten abiertas a empresas u organizaciones con un aacutembito mundial Tambieacuten hay TLDs especiacuteficos de un paiacutes ldquoesrdquo en Espantildea ldquoukrdquo en el Reino Unido ldquousrdquo en Estados Unidos etc Los nombres de dominio no son muy costosos (actualmente unos 15 euro anuales) por lo que es muy recomendable contratar uno

  • Introduccioacuten
    • Elementos XML
    • Atributos
      • Caracteriacutesticas de los documentos XML bien formados
Page 10: lenguaje de marcas

Semana 1 Caracteriacutesticas de los lenguajes de marcas

10

Este mismo documento puede ser visto de forma graacutefica para comprender mejor la estructura de un documento XML

Realiza las Actividades 1 y 2

Estructura de un documento XML

Un documento XML tiene dos estructuras una loacutegica y otra fiacutesica

Fiacutesicamente el documento estaacute compuesto por unidades llamadas entidades Una entidad puede hacer referencia a otra entidad causando que esta se incluya en el documento Cada documento comienza con una entidad documento tambieacuten llamada raiacutez

Loacutegicamente el documento estaacute compuesto de declaraciones elementos comentarios referencias a caracteres e instrucciones de procesamiento todos los cuales estaacuten indicados por una marca expliacutecita Las estructuras loacutegica y fiacutesica deben encajar de manera adecuada

Los documentos XML se dividen en dos grupos documentos bien formados y documentos vaacutelidos

bull Bien formados Son todos los que cumplen las especificaciones del lenguaje respecto a las reglas sintaacutecticas sin estar sujetos a unos elementos fijados en un DTD De hecho los documentos XML deben tener una estructura jeraacuterquica muy estricta y los documentos bien formados deben cumplirla El documento debe de contener una soacutela raiacutez y todas las etiquetas estar correctamente anidadas

Semana 1 Caracteriacutesticas de los lenguajes de marcas

11

bull Vaacutelidos Ademaacutes de estar bien formados siguen una estructura y una semaacutentica determinada por un DTD sus elementos y sobre todo la estructura jeraacuterquica que define el DTD ademaacutes de los atributos deben ajustarse a lo que el DTD dicte Veremos maacutes adelante maacutes detalladamente lo que es un DTD pero podemos ir adelantando que un DTD permite especificar la estructura del documento y que el DTD puede estar separado del documento

Un fichero puede estar bien escrito seguacuten las reglas de XML (bien formado) pero no ldquotener ni pies ni cabezardquo ( no vaacutelido)

Aquiacute podemos ver otro ejemplo muy sencillo de documento XML

ltxml version= 10 encoding= UTF-8 standalone= yes gt ltfichagt

ltnombregt Angel ltnombregt ltapellidogt Barbero ltapellidogt ltdirecciongt cUlises 36 ltdirecciongt

ltfichagt La estructura baacutesica de un bloque XML se muestra en la siguiente figura

Semana 1 Caracteriacutesticas de los lenguajes de marcas

12

Lo primero que tenemos que observar es la primera liacutenea Con ella deben empezar todos los documentos XML ya que en ella se indica que el documento es XML Aunque es opcional es recomendable incluirla Puede tener varios atributos algunos obligatorios y otros no

bull version Indica la versioacuten de XML usada en el documento Es obligatorio ponerlo a no ser que sea un documento externo a otro que ya lo incluiacutea

bull encoding La forma en que se ha codificado el documento Se puede poner cualquiera y depende del parser el poder entender o no la codificacioacuten Por defecto es UTF‐8 aunque podriacutean ponerse otras como UTF‐16 US‐ASCII ISO‐8859‐1 etc No es obligatorio salvo que sea un documento externo a otro principal

bull standalone Indica si el documento va acompantildeado de un DTD (no) o no lo necesita (yes) en principio no hay porqueacute ponerlo porque luego se indica el DTD si se necesita Veremos los DTD maacutes adelante

Realiza la Actividad 3

Caracteriacutesticas de los documentos XML bien formados

Un documento XML se dice que estaacute bien formado si encaja con las especificaciones XML de produccioacuten lo que implica

Estructura jeraacuterquica de elementos

Los documentos XML deben seguir una estructura estrictamente jeraacuterquica con lo que respecta a las etiquetas que delimitan sus elementos Una etiqueta debe estar correctamente incluiacuteda en otra Asiacutemismo los elementos con contenido deben estar correctamente cerrados A continuacioacuten se muestra un ejemplo incorrecto y posteriormente otro ejemplo escrito correctamente

ltligtHTML ltbgt permite ltigt esto ltbgt ltigt Ejemplo incorrecto ltligtEn XML la ltbgt estructura ltigt es ltigt jeraacuterquica ltbgtltligt Ejemplo correcto

Realiza la Actividad 4

Semana 1 Caracteriacutesticas de los lenguajes de marcas

13

Etiquetas vaciacuteas

HTML permite elementos sin contenido XML tambieacuten pero la etiqueta debe ser de la siguiente forma ltelemento sin contenido gt A continuacioacuten se muestra un ejemplo incorrecto y posteriormente otro correcto

ltligtEsto es HTML ltbrgt en el que casi todo estaacute permitido ltligt

Hay que tener en cuenta que el siacutembolo lt siempre se interpreta como inicio de una etiqueta XML Si no es el caso el documento no estaraacute bien formado Para usar ciertos siacutembolos se usan las entidades predefinidas que se explican maacutes adelante

Un elemento vaciacuteo es el que no tiene contenido Por ejemplo

ltidentificador DNI=23123244 gt

ltlinea-horizontal gt

Al no tener una etiqueta de cierre que delimite un contenido se utiliza la forma ltetiqueta gt que puede contener atributos o no La sintaxis de HTML permite etiquetas vaciacuteas tipo lthrgt o ltimg src=gt En HTML reformulado para que sea un documento XML bien formado se deberiacutea usar lthr gt o ltimg src=

Atributos

Como se ha mencionado antes los elementos pueden tener atributos que son una manera de incorporar caracteriacutesticas o propiedades a los elementos de un documento

Por ejemplo un elemento chiste puede tener un atributo tipo y un atributo calidad con valores vascos y bueno respectivamente

ltchiste tipo=vascos calidad=buenogt Esto es un diacutea que Patxi y Josu van paseando ltchistegt

En una Definicioacuten de Tipo de Documento (DTD) se especifican los atributos que pueden tener cada tipo de elemento asiacute como sus valores y tipos de valor posible

Al igual que en otras cadenas literales de XML los atributos pueden estar marcados entre comillas simples () o doble () Cuando se usa uno para delimitar el valor del atributo el otro tipo se puede usar dentro

ltverdura clase=zanahoria longitud=15 y mediagt

ltcita texto=Hola buenos dias dijo eacutelgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

14

A veces un elemento con contenido puede modelarse como un elemento vaciacuteo con atributos Un concepto se puede representar de muy diversas formas pero una vez elegida una es aconsejable fijarla en el DTD y usar siempre la misma consistentemente dentro de un documento XML

Entidades Predefinidas

En XML 10 se definen cinco entidades para representar caracteres especiales y que no se interpreten como marcado en el procesador XML Es decir que asiacute podemos usar el caraacutecter lt sin que se interprete como el comienzo de una etiqueta XML por ejemplo Entidad Caraacutecter

ampamp amp amplt lt ampgt gt ampapos lsquo ampquot ldquo

ltgatogt ltnombregtMicifuacuteltnombregt ltrazagtPersaltrazagt

ltgatogt ltgato raza=Persagt

Micifuacute ltgatogt

ltgato raza=Persa nombre=Micifuacutegt

Secciones CDATA

Existe otra construccioacuten en XML que permite especificar datos utilizando cualquier caraacutecter especial o no sin que se interprete como marcado XML La razoacuten de esta construccioacuten llamada CDATA (Character DATA) es que a veces es necesario para los autores de documentos XML poder leerlo faacutecilmente sin tener que descifrar los coacutedigos de entidades Especialmente cuando son muchos

Como ejemplo el siguiente (primero usando entidades predefinidas y luego con un bloque CDATA) Podemos comprobar su uso en el siguiente ejemplo

ltejemplogt amplthtmlampgt ampltheadampgtamplttitlegtRock ampamp Rollamplttitleampgtampltheadampgt

ltejemplogt

ltejemplogt lt[CDATA[

lthtmlgt ltheadgtlttitlegtRock amp Rolllttitlegtltheadgt

]]gt ltejemplogt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

15

Como hemos visto dentro de una seccioacuten CDATA podemos poner cualquier cosa que no seraacute interpretada como algo que no es asiacute Existe una excepcioacuten y es la cadena ]]gt con el que termina el bloque CDATA Esta cadena no puede utilizarse dentro de una seccioacuten CDATA

Comentarios

A veces es conveniente insertar comentarios en el documento XML que son ignorados por el procesado de la informacioacuten y las reproducciones del documento Los comentarios tienen el mismo formato que los comentarios de HTML Es decir comienza por la cadena lt‐‐ y termina con ‐‐gt

lt‐‐ Esto es un comentario ‐‐gt

Se pueden introducir comentarios en cualquier parte del documento salvo dentro de las declaraciones etiquetas u otros comentarios

Realiza la actividad 5 y 6

Espacios de nombre (NameSpaces)

En XML los espacios de nombre (namespace) tienen dos propoacutesitos

1 Distinguir entre elementos y atributos de distintos vocabularios con distintos significados que puedan compartir el mismo nombre

2 Agrupar todos los elementos y atributos relacionados de una sola aplicacioacuten

XML para que el software pueda reconocerlos con facilidad El primer propoacutesito es maacutes faacutecil de explicar y entender pero el segundo es maacutes importante en la praacutectica La extensibilidad es una facultad que no es gratuita En un entorno distribuido esta facultad deberaacute ser administrada para evitar conflictos Los espacios de nombre son una solucioacuten para ayudar a administrar la extensibilidad de XML Un espacio de nombres puede ser definido como un mecanismo para identificar elementos XML Establece los nombres de los elementos en un contexto global Supongamos que decide publicar sus marcadores como muestra el siguiente documento

Semana 1 Caracteriacutesticas de los lenguajes de marcas

16

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

Con frecuencia es necesario extender un documento existente para transmitirle nueva informacioacuten No obstante hay problemas si la extensioacuten no se administra Suponga que alguien maacutes decide clasificar la lista anterior con asesoriacutea para padres El listado siguiente muestra el resultado (Noticias ABC y Coacutemics podriacutean contener violencia o escenas de sexo por esto tienen un nivel de Guiacutea paterna)

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

17

Esto es algo problemaacutetico Supongamos que la extensioacuten contempla ambos tipos de categoriacuteas

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

El problema con el anterior listado es que un software disentildeado para funcionar con el anterior listado con el objetivo de listar viacutenculos ofensivos no sabriacutea queacute hacer con la categoriacutea 5 estrellas El software tan soacutelo tiene que pasar por alto las etiquetas de categoriacutea de calidad pero iquestcoacutemo podriacutea hacerlo si no puede distinguir entre ambas etiquetas de categoriacutea La solucioacuten es obvia utilizar distintos nombres para ambas categoriacuteas por ejemplo Para el control de calidad ltcld‐categoriacuteagt3 estrellasltcategoriacuteagt Y para el control parental

Semana 1 Caracteriacutesticas de los lenguajes de marcas

18

ltpdr‐categoriacuteagtGuiacutea paternaltcategoriacuteagt El problema del ejemplo anterior es hellip el caraacutecter de extensibilidad de XML Dado que cualquiera puede generar etiquetas hay un enorme riesgo de conflictos Una solucioacuten para evitarlo es establecer un registro global de etiquetas aceptadas y su definicioacuten asociada No obstante podriacutea limitar severamente la flexibilidad de XML Nadie desea hacer esto La flexibilidad fue una meta primordial en el disentildeo de XML La propuesta de los espacios de nombre corrige este problema con un meacutetodo elegante no limita la extensibilidad sino que presenta mecanismos para administrarla El listado siguiente es similar al uacuteltimo pero utiliza espacios de nombre para evitar los conflictos Xmlns Xml Name Schema

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferencias xmlnscld=httpjokerplayfieldcomstar‐categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

19

A primera vista todo parece similar pero la diferencia estaacute en el formato de los nombres Ahora se agrega un prefijo a cada nombre de elemento El prefijo y el nombre estaacuten separados por dos puntos () ltcldcategoriacuteagt3 estrellasltcategoriacuteagt El prefijo identifica uniacutevocamente el tipo de categoriacutea en este documento No obstante tales prefijos por siacute solos no resuelven nada dado que cualquier persona puede generarlos Asiacute pues distintas personas podriacutean generar prefijos incompatibles y volvemos al primer paso Para evitar tales conflictos los prefijos deben estar declarados ltreferencias xmlnscld=httpjokerplayfieldcomstar-categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt La declaracioacuten asocia a un URI con un prefijo Este es el punto crucial de la propuesta de los espacios de nombre dado que los URIs a diferencia de los nombres son uacutenicos Los espacios de nombre se fundamentan en los mecanismos de registro establecidos para los URIs Por tanto se garantiza que los URLs son uacutenicos dado que estaacuten basados en nombres de dominio registrados para garantizar la unicidad

El nombre del espacio de nombre

El nombre del espacio de nombre es el URI no el prefijo Cuando una aplicacioacuten compara a dos elementos utiliza el URI no el prefijo para reconocer sus espacios de nombre

Asiacute en el listado siguiente rffnombre y refnombre se consideran ideacutenticos a pesar de tener un prefijo distinto Ambos estaacuten en el espacio de nombre httpcatwomanpineapplesoftcomref15

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 175012 CEST 2010 --gt ltreferenciasgt ltrffnombre xmlnsrff=httpcatwomanpineapplesoftcomref15gt Pearson Educational ltrffnombregt ltlink href=httpwwwpearsoncommx gt ltrefnombre xmlnsref=httpcatwomanpineapplesoftcomref15gt Pineapplesoft ltrefnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

20

Espacio de nombre predeterminado

Todos los elementos sin prefijo nombre y link en los ejemplos anteriores y todos sus elementos descendientes pertenecen a un espacio de nombres predeterminado antildeadiendo un atributo xmlns sin prefijo en el elemento de la parte superior En nuestro caso

xmlns=httpcatwomanpineapplesoftcomref15

Los atributos son diferentes Los espacios de nombre predeterminados solo se aplican a los elementos no a los atributos Por lo tanto en el espacio anterior el atributo sin prefijo href no estaacute en ninguacuten espacio de nombre

Realiza la Actividad 7

Los URIs Un URI (Uniform Resource Identifier) es una cadena corta de caracteres que identifica inequiacutevocamente un recurso (servicio paacutegina documento direccioacuten de correo electroacutenico enciclopedia etc) Normalmente estos recursos son accesibles en una red o sistema

En el caso que nos ocupa el URI solo se utiliza para asegurar la unicidad de los nombres Podriacutea (aunque no necesariamente) apuntar a una descripcioacuten del nombre Por ejemplo podriacutea haber un documento en httppenguinxmlicomreview10 que describa la categoriacutea o podriacutea no haber nada

No obstante lo importante es que los URIs son uacutenicos y deberiacuteamos generarlos de acuerdo con nuestros nombres de dominio Los nombres de dominio Los URLs (Uniform Resource Locator) son direcciones para localizar recursos en Internet y actualmente han sido englobados por el concepto maacutes general de URI

Tienen el siguiente formato

httpwwwpearsoncommx httpwwwpineapplesoftcomnewsletter ftpftpmcpcom newsnewspsolcomcompxml mailtobmarchalpineapplesoftcom El nombre del dominio es solo una parte del URL ldquopearsoncommxrdquo y ldquopineapplesoftcomrdquo son dos de ellos

Semana 1 Caracteriacutesticas de los lenguajes de marcas

21

El nombre del dominio estaacute registrado por una autoridad global para asegurar que no haya duplicados Dada la globalidad del registro uno no puede hacer lo que quiera con los nombres de dominio Por ejemplo no es posible registrar nombres que ya esteacuten en uso La parte final del nombre de dominio (ldquocomrdquo por ejemplo) se conoce como Dominio de nivel superior (TLD Top Level Domain) identifica a la autoridad que asignoacute el nombre de dominio InterNIC (wwwinternicnet) es la autoridad para la mayor parte de los llamados TLD geneacutericos ldquocomrdquo (comercial) ldquonetrdquo (proveedores de servicios de Internet) ldquoorgrdquo (instituciones sin aacutenimo de lucro) Son geneacutericas puesto que estaacuten abiertas a empresas u organizaciones con un aacutembito mundial Tambieacuten hay TLDs especiacuteficos de un paiacutes ldquoesrdquo en Espantildea ldquoukrdquo en el Reino Unido ldquousrdquo en Estados Unidos etc Los nombres de dominio no son muy costosos (actualmente unos 15 euro anuales) por lo que es muy recomendable contratar uno

  • Introduccioacuten
    • Elementos XML
    • Atributos
      • Caracteriacutesticas de los documentos XML bien formados
Page 11: lenguaje de marcas

Semana 1 Caracteriacutesticas de los lenguajes de marcas

11

bull Vaacutelidos Ademaacutes de estar bien formados siguen una estructura y una semaacutentica determinada por un DTD sus elementos y sobre todo la estructura jeraacuterquica que define el DTD ademaacutes de los atributos deben ajustarse a lo que el DTD dicte Veremos maacutes adelante maacutes detalladamente lo que es un DTD pero podemos ir adelantando que un DTD permite especificar la estructura del documento y que el DTD puede estar separado del documento

Un fichero puede estar bien escrito seguacuten las reglas de XML (bien formado) pero no ldquotener ni pies ni cabezardquo ( no vaacutelido)

Aquiacute podemos ver otro ejemplo muy sencillo de documento XML

ltxml version= 10 encoding= UTF-8 standalone= yes gt ltfichagt

ltnombregt Angel ltnombregt ltapellidogt Barbero ltapellidogt ltdirecciongt cUlises 36 ltdirecciongt

ltfichagt La estructura baacutesica de un bloque XML se muestra en la siguiente figura

Semana 1 Caracteriacutesticas de los lenguajes de marcas

12

Lo primero que tenemos que observar es la primera liacutenea Con ella deben empezar todos los documentos XML ya que en ella se indica que el documento es XML Aunque es opcional es recomendable incluirla Puede tener varios atributos algunos obligatorios y otros no

bull version Indica la versioacuten de XML usada en el documento Es obligatorio ponerlo a no ser que sea un documento externo a otro que ya lo incluiacutea

bull encoding La forma en que se ha codificado el documento Se puede poner cualquiera y depende del parser el poder entender o no la codificacioacuten Por defecto es UTF‐8 aunque podriacutean ponerse otras como UTF‐16 US‐ASCII ISO‐8859‐1 etc No es obligatorio salvo que sea un documento externo a otro principal

bull standalone Indica si el documento va acompantildeado de un DTD (no) o no lo necesita (yes) en principio no hay porqueacute ponerlo porque luego se indica el DTD si se necesita Veremos los DTD maacutes adelante

Realiza la Actividad 3

Caracteriacutesticas de los documentos XML bien formados

Un documento XML se dice que estaacute bien formado si encaja con las especificaciones XML de produccioacuten lo que implica

Estructura jeraacuterquica de elementos

Los documentos XML deben seguir una estructura estrictamente jeraacuterquica con lo que respecta a las etiquetas que delimitan sus elementos Una etiqueta debe estar correctamente incluiacuteda en otra Asiacutemismo los elementos con contenido deben estar correctamente cerrados A continuacioacuten se muestra un ejemplo incorrecto y posteriormente otro ejemplo escrito correctamente

ltligtHTML ltbgt permite ltigt esto ltbgt ltigt Ejemplo incorrecto ltligtEn XML la ltbgt estructura ltigt es ltigt jeraacuterquica ltbgtltligt Ejemplo correcto

Realiza la Actividad 4

Semana 1 Caracteriacutesticas de los lenguajes de marcas

13

Etiquetas vaciacuteas

HTML permite elementos sin contenido XML tambieacuten pero la etiqueta debe ser de la siguiente forma ltelemento sin contenido gt A continuacioacuten se muestra un ejemplo incorrecto y posteriormente otro correcto

ltligtEsto es HTML ltbrgt en el que casi todo estaacute permitido ltligt

Hay que tener en cuenta que el siacutembolo lt siempre se interpreta como inicio de una etiqueta XML Si no es el caso el documento no estaraacute bien formado Para usar ciertos siacutembolos se usan las entidades predefinidas que se explican maacutes adelante

Un elemento vaciacuteo es el que no tiene contenido Por ejemplo

ltidentificador DNI=23123244 gt

ltlinea-horizontal gt

Al no tener una etiqueta de cierre que delimite un contenido se utiliza la forma ltetiqueta gt que puede contener atributos o no La sintaxis de HTML permite etiquetas vaciacuteas tipo lthrgt o ltimg src=gt En HTML reformulado para que sea un documento XML bien formado se deberiacutea usar lthr gt o ltimg src=

Atributos

Como se ha mencionado antes los elementos pueden tener atributos que son una manera de incorporar caracteriacutesticas o propiedades a los elementos de un documento

Por ejemplo un elemento chiste puede tener un atributo tipo y un atributo calidad con valores vascos y bueno respectivamente

ltchiste tipo=vascos calidad=buenogt Esto es un diacutea que Patxi y Josu van paseando ltchistegt

En una Definicioacuten de Tipo de Documento (DTD) se especifican los atributos que pueden tener cada tipo de elemento asiacute como sus valores y tipos de valor posible

Al igual que en otras cadenas literales de XML los atributos pueden estar marcados entre comillas simples () o doble () Cuando se usa uno para delimitar el valor del atributo el otro tipo se puede usar dentro

ltverdura clase=zanahoria longitud=15 y mediagt

ltcita texto=Hola buenos dias dijo eacutelgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

14

A veces un elemento con contenido puede modelarse como un elemento vaciacuteo con atributos Un concepto se puede representar de muy diversas formas pero una vez elegida una es aconsejable fijarla en el DTD y usar siempre la misma consistentemente dentro de un documento XML

Entidades Predefinidas

En XML 10 se definen cinco entidades para representar caracteres especiales y que no se interpreten como marcado en el procesador XML Es decir que asiacute podemos usar el caraacutecter lt sin que se interprete como el comienzo de una etiqueta XML por ejemplo Entidad Caraacutecter

ampamp amp amplt lt ampgt gt ampapos lsquo ampquot ldquo

ltgatogt ltnombregtMicifuacuteltnombregt ltrazagtPersaltrazagt

ltgatogt ltgato raza=Persagt

Micifuacute ltgatogt

ltgato raza=Persa nombre=Micifuacutegt

Secciones CDATA

Existe otra construccioacuten en XML que permite especificar datos utilizando cualquier caraacutecter especial o no sin que se interprete como marcado XML La razoacuten de esta construccioacuten llamada CDATA (Character DATA) es que a veces es necesario para los autores de documentos XML poder leerlo faacutecilmente sin tener que descifrar los coacutedigos de entidades Especialmente cuando son muchos

Como ejemplo el siguiente (primero usando entidades predefinidas y luego con un bloque CDATA) Podemos comprobar su uso en el siguiente ejemplo

ltejemplogt amplthtmlampgt ampltheadampgtamplttitlegtRock ampamp Rollamplttitleampgtampltheadampgt

ltejemplogt

ltejemplogt lt[CDATA[

lthtmlgt ltheadgtlttitlegtRock amp Rolllttitlegtltheadgt

]]gt ltejemplogt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

15

Como hemos visto dentro de una seccioacuten CDATA podemos poner cualquier cosa que no seraacute interpretada como algo que no es asiacute Existe una excepcioacuten y es la cadena ]]gt con el que termina el bloque CDATA Esta cadena no puede utilizarse dentro de una seccioacuten CDATA

Comentarios

A veces es conveniente insertar comentarios en el documento XML que son ignorados por el procesado de la informacioacuten y las reproducciones del documento Los comentarios tienen el mismo formato que los comentarios de HTML Es decir comienza por la cadena lt‐‐ y termina con ‐‐gt

lt‐‐ Esto es un comentario ‐‐gt

Se pueden introducir comentarios en cualquier parte del documento salvo dentro de las declaraciones etiquetas u otros comentarios

Realiza la actividad 5 y 6

Espacios de nombre (NameSpaces)

En XML los espacios de nombre (namespace) tienen dos propoacutesitos

1 Distinguir entre elementos y atributos de distintos vocabularios con distintos significados que puedan compartir el mismo nombre

2 Agrupar todos los elementos y atributos relacionados de una sola aplicacioacuten

XML para que el software pueda reconocerlos con facilidad El primer propoacutesito es maacutes faacutecil de explicar y entender pero el segundo es maacutes importante en la praacutectica La extensibilidad es una facultad que no es gratuita En un entorno distribuido esta facultad deberaacute ser administrada para evitar conflictos Los espacios de nombre son una solucioacuten para ayudar a administrar la extensibilidad de XML Un espacio de nombres puede ser definido como un mecanismo para identificar elementos XML Establece los nombres de los elementos en un contexto global Supongamos que decide publicar sus marcadores como muestra el siguiente documento

Semana 1 Caracteriacutesticas de los lenguajes de marcas

16

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

Con frecuencia es necesario extender un documento existente para transmitirle nueva informacioacuten No obstante hay problemas si la extensioacuten no se administra Suponga que alguien maacutes decide clasificar la lista anterior con asesoriacutea para padres El listado siguiente muestra el resultado (Noticias ABC y Coacutemics podriacutean contener violencia o escenas de sexo por esto tienen un nivel de Guiacutea paterna)

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

17

Esto es algo problemaacutetico Supongamos que la extensioacuten contempla ambos tipos de categoriacuteas

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

El problema con el anterior listado es que un software disentildeado para funcionar con el anterior listado con el objetivo de listar viacutenculos ofensivos no sabriacutea queacute hacer con la categoriacutea 5 estrellas El software tan soacutelo tiene que pasar por alto las etiquetas de categoriacutea de calidad pero iquestcoacutemo podriacutea hacerlo si no puede distinguir entre ambas etiquetas de categoriacutea La solucioacuten es obvia utilizar distintos nombres para ambas categoriacuteas por ejemplo Para el control de calidad ltcld‐categoriacuteagt3 estrellasltcategoriacuteagt Y para el control parental

Semana 1 Caracteriacutesticas de los lenguajes de marcas

18

ltpdr‐categoriacuteagtGuiacutea paternaltcategoriacuteagt El problema del ejemplo anterior es hellip el caraacutecter de extensibilidad de XML Dado que cualquiera puede generar etiquetas hay un enorme riesgo de conflictos Una solucioacuten para evitarlo es establecer un registro global de etiquetas aceptadas y su definicioacuten asociada No obstante podriacutea limitar severamente la flexibilidad de XML Nadie desea hacer esto La flexibilidad fue una meta primordial en el disentildeo de XML La propuesta de los espacios de nombre corrige este problema con un meacutetodo elegante no limita la extensibilidad sino que presenta mecanismos para administrarla El listado siguiente es similar al uacuteltimo pero utiliza espacios de nombre para evitar los conflictos Xmlns Xml Name Schema

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferencias xmlnscld=httpjokerplayfieldcomstar‐categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

19

A primera vista todo parece similar pero la diferencia estaacute en el formato de los nombres Ahora se agrega un prefijo a cada nombre de elemento El prefijo y el nombre estaacuten separados por dos puntos () ltcldcategoriacuteagt3 estrellasltcategoriacuteagt El prefijo identifica uniacutevocamente el tipo de categoriacutea en este documento No obstante tales prefijos por siacute solos no resuelven nada dado que cualquier persona puede generarlos Asiacute pues distintas personas podriacutean generar prefijos incompatibles y volvemos al primer paso Para evitar tales conflictos los prefijos deben estar declarados ltreferencias xmlnscld=httpjokerplayfieldcomstar-categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt La declaracioacuten asocia a un URI con un prefijo Este es el punto crucial de la propuesta de los espacios de nombre dado que los URIs a diferencia de los nombres son uacutenicos Los espacios de nombre se fundamentan en los mecanismos de registro establecidos para los URIs Por tanto se garantiza que los URLs son uacutenicos dado que estaacuten basados en nombres de dominio registrados para garantizar la unicidad

El nombre del espacio de nombre

El nombre del espacio de nombre es el URI no el prefijo Cuando una aplicacioacuten compara a dos elementos utiliza el URI no el prefijo para reconocer sus espacios de nombre

Asiacute en el listado siguiente rffnombre y refnombre se consideran ideacutenticos a pesar de tener un prefijo distinto Ambos estaacuten en el espacio de nombre httpcatwomanpineapplesoftcomref15

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 175012 CEST 2010 --gt ltreferenciasgt ltrffnombre xmlnsrff=httpcatwomanpineapplesoftcomref15gt Pearson Educational ltrffnombregt ltlink href=httpwwwpearsoncommx gt ltrefnombre xmlnsref=httpcatwomanpineapplesoftcomref15gt Pineapplesoft ltrefnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

20

Espacio de nombre predeterminado

Todos los elementos sin prefijo nombre y link en los ejemplos anteriores y todos sus elementos descendientes pertenecen a un espacio de nombres predeterminado antildeadiendo un atributo xmlns sin prefijo en el elemento de la parte superior En nuestro caso

xmlns=httpcatwomanpineapplesoftcomref15

Los atributos son diferentes Los espacios de nombre predeterminados solo se aplican a los elementos no a los atributos Por lo tanto en el espacio anterior el atributo sin prefijo href no estaacute en ninguacuten espacio de nombre

Realiza la Actividad 7

Los URIs Un URI (Uniform Resource Identifier) es una cadena corta de caracteres que identifica inequiacutevocamente un recurso (servicio paacutegina documento direccioacuten de correo electroacutenico enciclopedia etc) Normalmente estos recursos son accesibles en una red o sistema

En el caso que nos ocupa el URI solo se utiliza para asegurar la unicidad de los nombres Podriacutea (aunque no necesariamente) apuntar a una descripcioacuten del nombre Por ejemplo podriacutea haber un documento en httppenguinxmlicomreview10 que describa la categoriacutea o podriacutea no haber nada

No obstante lo importante es que los URIs son uacutenicos y deberiacuteamos generarlos de acuerdo con nuestros nombres de dominio Los nombres de dominio Los URLs (Uniform Resource Locator) son direcciones para localizar recursos en Internet y actualmente han sido englobados por el concepto maacutes general de URI

Tienen el siguiente formato

httpwwwpearsoncommx httpwwwpineapplesoftcomnewsletter ftpftpmcpcom newsnewspsolcomcompxml mailtobmarchalpineapplesoftcom El nombre del dominio es solo una parte del URL ldquopearsoncommxrdquo y ldquopineapplesoftcomrdquo son dos de ellos

Semana 1 Caracteriacutesticas de los lenguajes de marcas

21

El nombre del dominio estaacute registrado por una autoridad global para asegurar que no haya duplicados Dada la globalidad del registro uno no puede hacer lo que quiera con los nombres de dominio Por ejemplo no es posible registrar nombres que ya esteacuten en uso La parte final del nombre de dominio (ldquocomrdquo por ejemplo) se conoce como Dominio de nivel superior (TLD Top Level Domain) identifica a la autoridad que asignoacute el nombre de dominio InterNIC (wwwinternicnet) es la autoridad para la mayor parte de los llamados TLD geneacutericos ldquocomrdquo (comercial) ldquonetrdquo (proveedores de servicios de Internet) ldquoorgrdquo (instituciones sin aacutenimo de lucro) Son geneacutericas puesto que estaacuten abiertas a empresas u organizaciones con un aacutembito mundial Tambieacuten hay TLDs especiacuteficos de un paiacutes ldquoesrdquo en Espantildea ldquoukrdquo en el Reino Unido ldquousrdquo en Estados Unidos etc Los nombres de dominio no son muy costosos (actualmente unos 15 euro anuales) por lo que es muy recomendable contratar uno

  • Introduccioacuten
    • Elementos XML
    • Atributos
      • Caracteriacutesticas de los documentos XML bien formados
Page 12: lenguaje de marcas

Semana 1 Caracteriacutesticas de los lenguajes de marcas

12

Lo primero que tenemos que observar es la primera liacutenea Con ella deben empezar todos los documentos XML ya que en ella se indica que el documento es XML Aunque es opcional es recomendable incluirla Puede tener varios atributos algunos obligatorios y otros no

bull version Indica la versioacuten de XML usada en el documento Es obligatorio ponerlo a no ser que sea un documento externo a otro que ya lo incluiacutea

bull encoding La forma en que se ha codificado el documento Se puede poner cualquiera y depende del parser el poder entender o no la codificacioacuten Por defecto es UTF‐8 aunque podriacutean ponerse otras como UTF‐16 US‐ASCII ISO‐8859‐1 etc No es obligatorio salvo que sea un documento externo a otro principal

bull standalone Indica si el documento va acompantildeado de un DTD (no) o no lo necesita (yes) en principio no hay porqueacute ponerlo porque luego se indica el DTD si se necesita Veremos los DTD maacutes adelante

Realiza la Actividad 3

Caracteriacutesticas de los documentos XML bien formados

Un documento XML se dice que estaacute bien formado si encaja con las especificaciones XML de produccioacuten lo que implica

Estructura jeraacuterquica de elementos

Los documentos XML deben seguir una estructura estrictamente jeraacuterquica con lo que respecta a las etiquetas que delimitan sus elementos Una etiqueta debe estar correctamente incluiacuteda en otra Asiacutemismo los elementos con contenido deben estar correctamente cerrados A continuacioacuten se muestra un ejemplo incorrecto y posteriormente otro ejemplo escrito correctamente

ltligtHTML ltbgt permite ltigt esto ltbgt ltigt Ejemplo incorrecto ltligtEn XML la ltbgt estructura ltigt es ltigt jeraacuterquica ltbgtltligt Ejemplo correcto

Realiza la Actividad 4

Semana 1 Caracteriacutesticas de los lenguajes de marcas

13

Etiquetas vaciacuteas

HTML permite elementos sin contenido XML tambieacuten pero la etiqueta debe ser de la siguiente forma ltelemento sin contenido gt A continuacioacuten se muestra un ejemplo incorrecto y posteriormente otro correcto

ltligtEsto es HTML ltbrgt en el que casi todo estaacute permitido ltligt

Hay que tener en cuenta que el siacutembolo lt siempre se interpreta como inicio de una etiqueta XML Si no es el caso el documento no estaraacute bien formado Para usar ciertos siacutembolos se usan las entidades predefinidas que se explican maacutes adelante

Un elemento vaciacuteo es el que no tiene contenido Por ejemplo

ltidentificador DNI=23123244 gt

ltlinea-horizontal gt

Al no tener una etiqueta de cierre que delimite un contenido se utiliza la forma ltetiqueta gt que puede contener atributos o no La sintaxis de HTML permite etiquetas vaciacuteas tipo lthrgt o ltimg src=gt En HTML reformulado para que sea un documento XML bien formado se deberiacutea usar lthr gt o ltimg src=

Atributos

Como se ha mencionado antes los elementos pueden tener atributos que son una manera de incorporar caracteriacutesticas o propiedades a los elementos de un documento

Por ejemplo un elemento chiste puede tener un atributo tipo y un atributo calidad con valores vascos y bueno respectivamente

ltchiste tipo=vascos calidad=buenogt Esto es un diacutea que Patxi y Josu van paseando ltchistegt

En una Definicioacuten de Tipo de Documento (DTD) se especifican los atributos que pueden tener cada tipo de elemento asiacute como sus valores y tipos de valor posible

Al igual que en otras cadenas literales de XML los atributos pueden estar marcados entre comillas simples () o doble () Cuando se usa uno para delimitar el valor del atributo el otro tipo se puede usar dentro

ltverdura clase=zanahoria longitud=15 y mediagt

ltcita texto=Hola buenos dias dijo eacutelgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

14

A veces un elemento con contenido puede modelarse como un elemento vaciacuteo con atributos Un concepto se puede representar de muy diversas formas pero una vez elegida una es aconsejable fijarla en el DTD y usar siempre la misma consistentemente dentro de un documento XML

Entidades Predefinidas

En XML 10 se definen cinco entidades para representar caracteres especiales y que no se interpreten como marcado en el procesador XML Es decir que asiacute podemos usar el caraacutecter lt sin que se interprete como el comienzo de una etiqueta XML por ejemplo Entidad Caraacutecter

ampamp amp amplt lt ampgt gt ampapos lsquo ampquot ldquo

ltgatogt ltnombregtMicifuacuteltnombregt ltrazagtPersaltrazagt

ltgatogt ltgato raza=Persagt

Micifuacute ltgatogt

ltgato raza=Persa nombre=Micifuacutegt

Secciones CDATA

Existe otra construccioacuten en XML que permite especificar datos utilizando cualquier caraacutecter especial o no sin que se interprete como marcado XML La razoacuten de esta construccioacuten llamada CDATA (Character DATA) es que a veces es necesario para los autores de documentos XML poder leerlo faacutecilmente sin tener que descifrar los coacutedigos de entidades Especialmente cuando son muchos

Como ejemplo el siguiente (primero usando entidades predefinidas y luego con un bloque CDATA) Podemos comprobar su uso en el siguiente ejemplo

ltejemplogt amplthtmlampgt ampltheadampgtamplttitlegtRock ampamp Rollamplttitleampgtampltheadampgt

ltejemplogt

ltejemplogt lt[CDATA[

lthtmlgt ltheadgtlttitlegtRock amp Rolllttitlegtltheadgt

]]gt ltejemplogt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

15

Como hemos visto dentro de una seccioacuten CDATA podemos poner cualquier cosa que no seraacute interpretada como algo que no es asiacute Existe una excepcioacuten y es la cadena ]]gt con el que termina el bloque CDATA Esta cadena no puede utilizarse dentro de una seccioacuten CDATA

Comentarios

A veces es conveniente insertar comentarios en el documento XML que son ignorados por el procesado de la informacioacuten y las reproducciones del documento Los comentarios tienen el mismo formato que los comentarios de HTML Es decir comienza por la cadena lt‐‐ y termina con ‐‐gt

lt‐‐ Esto es un comentario ‐‐gt

Se pueden introducir comentarios en cualquier parte del documento salvo dentro de las declaraciones etiquetas u otros comentarios

Realiza la actividad 5 y 6

Espacios de nombre (NameSpaces)

En XML los espacios de nombre (namespace) tienen dos propoacutesitos

1 Distinguir entre elementos y atributos de distintos vocabularios con distintos significados que puedan compartir el mismo nombre

2 Agrupar todos los elementos y atributos relacionados de una sola aplicacioacuten

XML para que el software pueda reconocerlos con facilidad El primer propoacutesito es maacutes faacutecil de explicar y entender pero el segundo es maacutes importante en la praacutectica La extensibilidad es una facultad que no es gratuita En un entorno distribuido esta facultad deberaacute ser administrada para evitar conflictos Los espacios de nombre son una solucioacuten para ayudar a administrar la extensibilidad de XML Un espacio de nombres puede ser definido como un mecanismo para identificar elementos XML Establece los nombres de los elementos en un contexto global Supongamos que decide publicar sus marcadores como muestra el siguiente documento

Semana 1 Caracteriacutesticas de los lenguajes de marcas

16

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

Con frecuencia es necesario extender un documento existente para transmitirle nueva informacioacuten No obstante hay problemas si la extensioacuten no se administra Suponga que alguien maacutes decide clasificar la lista anterior con asesoriacutea para padres El listado siguiente muestra el resultado (Noticias ABC y Coacutemics podriacutean contener violencia o escenas de sexo por esto tienen un nivel de Guiacutea paterna)

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

17

Esto es algo problemaacutetico Supongamos que la extensioacuten contempla ambos tipos de categoriacuteas

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

El problema con el anterior listado es que un software disentildeado para funcionar con el anterior listado con el objetivo de listar viacutenculos ofensivos no sabriacutea queacute hacer con la categoriacutea 5 estrellas El software tan soacutelo tiene que pasar por alto las etiquetas de categoriacutea de calidad pero iquestcoacutemo podriacutea hacerlo si no puede distinguir entre ambas etiquetas de categoriacutea La solucioacuten es obvia utilizar distintos nombres para ambas categoriacuteas por ejemplo Para el control de calidad ltcld‐categoriacuteagt3 estrellasltcategoriacuteagt Y para el control parental

Semana 1 Caracteriacutesticas de los lenguajes de marcas

18

ltpdr‐categoriacuteagtGuiacutea paternaltcategoriacuteagt El problema del ejemplo anterior es hellip el caraacutecter de extensibilidad de XML Dado que cualquiera puede generar etiquetas hay un enorme riesgo de conflictos Una solucioacuten para evitarlo es establecer un registro global de etiquetas aceptadas y su definicioacuten asociada No obstante podriacutea limitar severamente la flexibilidad de XML Nadie desea hacer esto La flexibilidad fue una meta primordial en el disentildeo de XML La propuesta de los espacios de nombre corrige este problema con un meacutetodo elegante no limita la extensibilidad sino que presenta mecanismos para administrarla El listado siguiente es similar al uacuteltimo pero utiliza espacios de nombre para evitar los conflictos Xmlns Xml Name Schema

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferencias xmlnscld=httpjokerplayfieldcomstar‐categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

19

A primera vista todo parece similar pero la diferencia estaacute en el formato de los nombres Ahora se agrega un prefijo a cada nombre de elemento El prefijo y el nombre estaacuten separados por dos puntos () ltcldcategoriacuteagt3 estrellasltcategoriacuteagt El prefijo identifica uniacutevocamente el tipo de categoriacutea en este documento No obstante tales prefijos por siacute solos no resuelven nada dado que cualquier persona puede generarlos Asiacute pues distintas personas podriacutean generar prefijos incompatibles y volvemos al primer paso Para evitar tales conflictos los prefijos deben estar declarados ltreferencias xmlnscld=httpjokerplayfieldcomstar-categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt La declaracioacuten asocia a un URI con un prefijo Este es el punto crucial de la propuesta de los espacios de nombre dado que los URIs a diferencia de los nombres son uacutenicos Los espacios de nombre se fundamentan en los mecanismos de registro establecidos para los URIs Por tanto se garantiza que los URLs son uacutenicos dado que estaacuten basados en nombres de dominio registrados para garantizar la unicidad

El nombre del espacio de nombre

El nombre del espacio de nombre es el URI no el prefijo Cuando una aplicacioacuten compara a dos elementos utiliza el URI no el prefijo para reconocer sus espacios de nombre

Asiacute en el listado siguiente rffnombre y refnombre se consideran ideacutenticos a pesar de tener un prefijo distinto Ambos estaacuten en el espacio de nombre httpcatwomanpineapplesoftcomref15

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 175012 CEST 2010 --gt ltreferenciasgt ltrffnombre xmlnsrff=httpcatwomanpineapplesoftcomref15gt Pearson Educational ltrffnombregt ltlink href=httpwwwpearsoncommx gt ltrefnombre xmlnsref=httpcatwomanpineapplesoftcomref15gt Pineapplesoft ltrefnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

20

Espacio de nombre predeterminado

Todos los elementos sin prefijo nombre y link en los ejemplos anteriores y todos sus elementos descendientes pertenecen a un espacio de nombres predeterminado antildeadiendo un atributo xmlns sin prefijo en el elemento de la parte superior En nuestro caso

xmlns=httpcatwomanpineapplesoftcomref15

Los atributos son diferentes Los espacios de nombre predeterminados solo se aplican a los elementos no a los atributos Por lo tanto en el espacio anterior el atributo sin prefijo href no estaacute en ninguacuten espacio de nombre

Realiza la Actividad 7

Los URIs Un URI (Uniform Resource Identifier) es una cadena corta de caracteres que identifica inequiacutevocamente un recurso (servicio paacutegina documento direccioacuten de correo electroacutenico enciclopedia etc) Normalmente estos recursos son accesibles en una red o sistema

En el caso que nos ocupa el URI solo se utiliza para asegurar la unicidad de los nombres Podriacutea (aunque no necesariamente) apuntar a una descripcioacuten del nombre Por ejemplo podriacutea haber un documento en httppenguinxmlicomreview10 que describa la categoriacutea o podriacutea no haber nada

No obstante lo importante es que los URIs son uacutenicos y deberiacuteamos generarlos de acuerdo con nuestros nombres de dominio Los nombres de dominio Los URLs (Uniform Resource Locator) son direcciones para localizar recursos en Internet y actualmente han sido englobados por el concepto maacutes general de URI

Tienen el siguiente formato

httpwwwpearsoncommx httpwwwpineapplesoftcomnewsletter ftpftpmcpcom newsnewspsolcomcompxml mailtobmarchalpineapplesoftcom El nombre del dominio es solo una parte del URL ldquopearsoncommxrdquo y ldquopineapplesoftcomrdquo son dos de ellos

Semana 1 Caracteriacutesticas de los lenguajes de marcas

21

El nombre del dominio estaacute registrado por una autoridad global para asegurar que no haya duplicados Dada la globalidad del registro uno no puede hacer lo que quiera con los nombres de dominio Por ejemplo no es posible registrar nombres que ya esteacuten en uso La parte final del nombre de dominio (ldquocomrdquo por ejemplo) se conoce como Dominio de nivel superior (TLD Top Level Domain) identifica a la autoridad que asignoacute el nombre de dominio InterNIC (wwwinternicnet) es la autoridad para la mayor parte de los llamados TLD geneacutericos ldquocomrdquo (comercial) ldquonetrdquo (proveedores de servicios de Internet) ldquoorgrdquo (instituciones sin aacutenimo de lucro) Son geneacutericas puesto que estaacuten abiertas a empresas u organizaciones con un aacutembito mundial Tambieacuten hay TLDs especiacuteficos de un paiacutes ldquoesrdquo en Espantildea ldquoukrdquo en el Reino Unido ldquousrdquo en Estados Unidos etc Los nombres de dominio no son muy costosos (actualmente unos 15 euro anuales) por lo que es muy recomendable contratar uno

  • Introduccioacuten
    • Elementos XML
    • Atributos
      • Caracteriacutesticas de los documentos XML bien formados
Page 13: lenguaje de marcas

Semana 1 Caracteriacutesticas de los lenguajes de marcas

13

Etiquetas vaciacuteas

HTML permite elementos sin contenido XML tambieacuten pero la etiqueta debe ser de la siguiente forma ltelemento sin contenido gt A continuacioacuten se muestra un ejemplo incorrecto y posteriormente otro correcto

ltligtEsto es HTML ltbrgt en el que casi todo estaacute permitido ltligt

Hay que tener en cuenta que el siacutembolo lt siempre se interpreta como inicio de una etiqueta XML Si no es el caso el documento no estaraacute bien formado Para usar ciertos siacutembolos se usan las entidades predefinidas que se explican maacutes adelante

Un elemento vaciacuteo es el que no tiene contenido Por ejemplo

ltidentificador DNI=23123244 gt

ltlinea-horizontal gt

Al no tener una etiqueta de cierre que delimite un contenido se utiliza la forma ltetiqueta gt que puede contener atributos o no La sintaxis de HTML permite etiquetas vaciacuteas tipo lthrgt o ltimg src=gt En HTML reformulado para que sea un documento XML bien formado se deberiacutea usar lthr gt o ltimg src=

Atributos

Como se ha mencionado antes los elementos pueden tener atributos que son una manera de incorporar caracteriacutesticas o propiedades a los elementos de un documento

Por ejemplo un elemento chiste puede tener un atributo tipo y un atributo calidad con valores vascos y bueno respectivamente

ltchiste tipo=vascos calidad=buenogt Esto es un diacutea que Patxi y Josu van paseando ltchistegt

En una Definicioacuten de Tipo de Documento (DTD) se especifican los atributos que pueden tener cada tipo de elemento asiacute como sus valores y tipos de valor posible

Al igual que en otras cadenas literales de XML los atributos pueden estar marcados entre comillas simples () o doble () Cuando se usa uno para delimitar el valor del atributo el otro tipo se puede usar dentro

ltverdura clase=zanahoria longitud=15 y mediagt

ltcita texto=Hola buenos dias dijo eacutelgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

14

A veces un elemento con contenido puede modelarse como un elemento vaciacuteo con atributos Un concepto se puede representar de muy diversas formas pero una vez elegida una es aconsejable fijarla en el DTD y usar siempre la misma consistentemente dentro de un documento XML

Entidades Predefinidas

En XML 10 se definen cinco entidades para representar caracteres especiales y que no se interpreten como marcado en el procesador XML Es decir que asiacute podemos usar el caraacutecter lt sin que se interprete como el comienzo de una etiqueta XML por ejemplo Entidad Caraacutecter

ampamp amp amplt lt ampgt gt ampapos lsquo ampquot ldquo

ltgatogt ltnombregtMicifuacuteltnombregt ltrazagtPersaltrazagt

ltgatogt ltgato raza=Persagt

Micifuacute ltgatogt

ltgato raza=Persa nombre=Micifuacutegt

Secciones CDATA

Existe otra construccioacuten en XML que permite especificar datos utilizando cualquier caraacutecter especial o no sin que se interprete como marcado XML La razoacuten de esta construccioacuten llamada CDATA (Character DATA) es que a veces es necesario para los autores de documentos XML poder leerlo faacutecilmente sin tener que descifrar los coacutedigos de entidades Especialmente cuando son muchos

Como ejemplo el siguiente (primero usando entidades predefinidas y luego con un bloque CDATA) Podemos comprobar su uso en el siguiente ejemplo

ltejemplogt amplthtmlampgt ampltheadampgtamplttitlegtRock ampamp Rollamplttitleampgtampltheadampgt

ltejemplogt

ltejemplogt lt[CDATA[

lthtmlgt ltheadgtlttitlegtRock amp Rolllttitlegtltheadgt

]]gt ltejemplogt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

15

Como hemos visto dentro de una seccioacuten CDATA podemos poner cualquier cosa que no seraacute interpretada como algo que no es asiacute Existe una excepcioacuten y es la cadena ]]gt con el que termina el bloque CDATA Esta cadena no puede utilizarse dentro de una seccioacuten CDATA

Comentarios

A veces es conveniente insertar comentarios en el documento XML que son ignorados por el procesado de la informacioacuten y las reproducciones del documento Los comentarios tienen el mismo formato que los comentarios de HTML Es decir comienza por la cadena lt‐‐ y termina con ‐‐gt

lt‐‐ Esto es un comentario ‐‐gt

Se pueden introducir comentarios en cualquier parte del documento salvo dentro de las declaraciones etiquetas u otros comentarios

Realiza la actividad 5 y 6

Espacios de nombre (NameSpaces)

En XML los espacios de nombre (namespace) tienen dos propoacutesitos

1 Distinguir entre elementos y atributos de distintos vocabularios con distintos significados que puedan compartir el mismo nombre

2 Agrupar todos los elementos y atributos relacionados de una sola aplicacioacuten

XML para que el software pueda reconocerlos con facilidad El primer propoacutesito es maacutes faacutecil de explicar y entender pero el segundo es maacutes importante en la praacutectica La extensibilidad es una facultad que no es gratuita En un entorno distribuido esta facultad deberaacute ser administrada para evitar conflictos Los espacios de nombre son una solucioacuten para ayudar a administrar la extensibilidad de XML Un espacio de nombres puede ser definido como un mecanismo para identificar elementos XML Establece los nombres de los elementos en un contexto global Supongamos que decide publicar sus marcadores como muestra el siguiente documento

Semana 1 Caracteriacutesticas de los lenguajes de marcas

16

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

Con frecuencia es necesario extender un documento existente para transmitirle nueva informacioacuten No obstante hay problemas si la extensioacuten no se administra Suponga que alguien maacutes decide clasificar la lista anterior con asesoriacutea para padres El listado siguiente muestra el resultado (Noticias ABC y Coacutemics podriacutean contener violencia o escenas de sexo por esto tienen un nivel de Guiacutea paterna)

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

17

Esto es algo problemaacutetico Supongamos que la extensioacuten contempla ambos tipos de categoriacuteas

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

El problema con el anterior listado es que un software disentildeado para funcionar con el anterior listado con el objetivo de listar viacutenculos ofensivos no sabriacutea queacute hacer con la categoriacutea 5 estrellas El software tan soacutelo tiene que pasar por alto las etiquetas de categoriacutea de calidad pero iquestcoacutemo podriacutea hacerlo si no puede distinguir entre ambas etiquetas de categoriacutea La solucioacuten es obvia utilizar distintos nombres para ambas categoriacuteas por ejemplo Para el control de calidad ltcld‐categoriacuteagt3 estrellasltcategoriacuteagt Y para el control parental

Semana 1 Caracteriacutesticas de los lenguajes de marcas

18

ltpdr‐categoriacuteagtGuiacutea paternaltcategoriacuteagt El problema del ejemplo anterior es hellip el caraacutecter de extensibilidad de XML Dado que cualquiera puede generar etiquetas hay un enorme riesgo de conflictos Una solucioacuten para evitarlo es establecer un registro global de etiquetas aceptadas y su definicioacuten asociada No obstante podriacutea limitar severamente la flexibilidad de XML Nadie desea hacer esto La flexibilidad fue una meta primordial en el disentildeo de XML La propuesta de los espacios de nombre corrige este problema con un meacutetodo elegante no limita la extensibilidad sino que presenta mecanismos para administrarla El listado siguiente es similar al uacuteltimo pero utiliza espacios de nombre para evitar los conflictos Xmlns Xml Name Schema

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferencias xmlnscld=httpjokerplayfieldcomstar‐categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

19

A primera vista todo parece similar pero la diferencia estaacute en el formato de los nombres Ahora se agrega un prefijo a cada nombre de elemento El prefijo y el nombre estaacuten separados por dos puntos () ltcldcategoriacuteagt3 estrellasltcategoriacuteagt El prefijo identifica uniacutevocamente el tipo de categoriacutea en este documento No obstante tales prefijos por siacute solos no resuelven nada dado que cualquier persona puede generarlos Asiacute pues distintas personas podriacutean generar prefijos incompatibles y volvemos al primer paso Para evitar tales conflictos los prefijos deben estar declarados ltreferencias xmlnscld=httpjokerplayfieldcomstar-categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt La declaracioacuten asocia a un URI con un prefijo Este es el punto crucial de la propuesta de los espacios de nombre dado que los URIs a diferencia de los nombres son uacutenicos Los espacios de nombre se fundamentan en los mecanismos de registro establecidos para los URIs Por tanto se garantiza que los URLs son uacutenicos dado que estaacuten basados en nombres de dominio registrados para garantizar la unicidad

El nombre del espacio de nombre

El nombre del espacio de nombre es el URI no el prefijo Cuando una aplicacioacuten compara a dos elementos utiliza el URI no el prefijo para reconocer sus espacios de nombre

Asiacute en el listado siguiente rffnombre y refnombre se consideran ideacutenticos a pesar de tener un prefijo distinto Ambos estaacuten en el espacio de nombre httpcatwomanpineapplesoftcomref15

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 175012 CEST 2010 --gt ltreferenciasgt ltrffnombre xmlnsrff=httpcatwomanpineapplesoftcomref15gt Pearson Educational ltrffnombregt ltlink href=httpwwwpearsoncommx gt ltrefnombre xmlnsref=httpcatwomanpineapplesoftcomref15gt Pineapplesoft ltrefnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

20

Espacio de nombre predeterminado

Todos los elementos sin prefijo nombre y link en los ejemplos anteriores y todos sus elementos descendientes pertenecen a un espacio de nombres predeterminado antildeadiendo un atributo xmlns sin prefijo en el elemento de la parte superior En nuestro caso

xmlns=httpcatwomanpineapplesoftcomref15

Los atributos son diferentes Los espacios de nombre predeterminados solo se aplican a los elementos no a los atributos Por lo tanto en el espacio anterior el atributo sin prefijo href no estaacute en ninguacuten espacio de nombre

Realiza la Actividad 7

Los URIs Un URI (Uniform Resource Identifier) es una cadena corta de caracteres que identifica inequiacutevocamente un recurso (servicio paacutegina documento direccioacuten de correo electroacutenico enciclopedia etc) Normalmente estos recursos son accesibles en una red o sistema

En el caso que nos ocupa el URI solo se utiliza para asegurar la unicidad de los nombres Podriacutea (aunque no necesariamente) apuntar a una descripcioacuten del nombre Por ejemplo podriacutea haber un documento en httppenguinxmlicomreview10 que describa la categoriacutea o podriacutea no haber nada

No obstante lo importante es que los URIs son uacutenicos y deberiacuteamos generarlos de acuerdo con nuestros nombres de dominio Los nombres de dominio Los URLs (Uniform Resource Locator) son direcciones para localizar recursos en Internet y actualmente han sido englobados por el concepto maacutes general de URI

Tienen el siguiente formato

httpwwwpearsoncommx httpwwwpineapplesoftcomnewsletter ftpftpmcpcom newsnewspsolcomcompxml mailtobmarchalpineapplesoftcom El nombre del dominio es solo una parte del URL ldquopearsoncommxrdquo y ldquopineapplesoftcomrdquo son dos de ellos

Semana 1 Caracteriacutesticas de los lenguajes de marcas

21

El nombre del dominio estaacute registrado por una autoridad global para asegurar que no haya duplicados Dada la globalidad del registro uno no puede hacer lo que quiera con los nombres de dominio Por ejemplo no es posible registrar nombres que ya esteacuten en uso La parte final del nombre de dominio (ldquocomrdquo por ejemplo) se conoce como Dominio de nivel superior (TLD Top Level Domain) identifica a la autoridad que asignoacute el nombre de dominio InterNIC (wwwinternicnet) es la autoridad para la mayor parte de los llamados TLD geneacutericos ldquocomrdquo (comercial) ldquonetrdquo (proveedores de servicios de Internet) ldquoorgrdquo (instituciones sin aacutenimo de lucro) Son geneacutericas puesto que estaacuten abiertas a empresas u organizaciones con un aacutembito mundial Tambieacuten hay TLDs especiacuteficos de un paiacutes ldquoesrdquo en Espantildea ldquoukrdquo en el Reino Unido ldquousrdquo en Estados Unidos etc Los nombres de dominio no son muy costosos (actualmente unos 15 euro anuales) por lo que es muy recomendable contratar uno

  • Introduccioacuten
    • Elementos XML
    • Atributos
      • Caracteriacutesticas de los documentos XML bien formados
Page 14: lenguaje de marcas

Semana 1 Caracteriacutesticas de los lenguajes de marcas

14

A veces un elemento con contenido puede modelarse como un elemento vaciacuteo con atributos Un concepto se puede representar de muy diversas formas pero una vez elegida una es aconsejable fijarla en el DTD y usar siempre la misma consistentemente dentro de un documento XML

Entidades Predefinidas

En XML 10 se definen cinco entidades para representar caracteres especiales y que no se interpreten como marcado en el procesador XML Es decir que asiacute podemos usar el caraacutecter lt sin que se interprete como el comienzo de una etiqueta XML por ejemplo Entidad Caraacutecter

ampamp amp amplt lt ampgt gt ampapos lsquo ampquot ldquo

ltgatogt ltnombregtMicifuacuteltnombregt ltrazagtPersaltrazagt

ltgatogt ltgato raza=Persagt

Micifuacute ltgatogt

ltgato raza=Persa nombre=Micifuacutegt

Secciones CDATA

Existe otra construccioacuten en XML que permite especificar datos utilizando cualquier caraacutecter especial o no sin que se interprete como marcado XML La razoacuten de esta construccioacuten llamada CDATA (Character DATA) es que a veces es necesario para los autores de documentos XML poder leerlo faacutecilmente sin tener que descifrar los coacutedigos de entidades Especialmente cuando son muchos

Como ejemplo el siguiente (primero usando entidades predefinidas y luego con un bloque CDATA) Podemos comprobar su uso en el siguiente ejemplo

ltejemplogt amplthtmlampgt ampltheadampgtamplttitlegtRock ampamp Rollamplttitleampgtampltheadampgt

ltejemplogt

ltejemplogt lt[CDATA[

lthtmlgt ltheadgtlttitlegtRock amp Rolllttitlegtltheadgt

]]gt ltejemplogt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

15

Como hemos visto dentro de una seccioacuten CDATA podemos poner cualquier cosa que no seraacute interpretada como algo que no es asiacute Existe una excepcioacuten y es la cadena ]]gt con el que termina el bloque CDATA Esta cadena no puede utilizarse dentro de una seccioacuten CDATA

Comentarios

A veces es conveniente insertar comentarios en el documento XML que son ignorados por el procesado de la informacioacuten y las reproducciones del documento Los comentarios tienen el mismo formato que los comentarios de HTML Es decir comienza por la cadena lt‐‐ y termina con ‐‐gt

lt‐‐ Esto es un comentario ‐‐gt

Se pueden introducir comentarios en cualquier parte del documento salvo dentro de las declaraciones etiquetas u otros comentarios

Realiza la actividad 5 y 6

Espacios de nombre (NameSpaces)

En XML los espacios de nombre (namespace) tienen dos propoacutesitos

1 Distinguir entre elementos y atributos de distintos vocabularios con distintos significados que puedan compartir el mismo nombre

2 Agrupar todos los elementos y atributos relacionados de una sola aplicacioacuten

XML para que el software pueda reconocerlos con facilidad El primer propoacutesito es maacutes faacutecil de explicar y entender pero el segundo es maacutes importante en la praacutectica La extensibilidad es una facultad que no es gratuita En un entorno distribuido esta facultad deberaacute ser administrada para evitar conflictos Los espacios de nombre son una solucioacuten para ayudar a administrar la extensibilidad de XML Un espacio de nombres puede ser definido como un mecanismo para identificar elementos XML Establece los nombres de los elementos en un contexto global Supongamos que decide publicar sus marcadores como muestra el siguiente documento

Semana 1 Caracteriacutesticas de los lenguajes de marcas

16

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

Con frecuencia es necesario extender un documento existente para transmitirle nueva informacioacuten No obstante hay problemas si la extensioacuten no se administra Suponga que alguien maacutes decide clasificar la lista anterior con asesoriacutea para padres El listado siguiente muestra el resultado (Noticias ABC y Coacutemics podriacutean contener violencia o escenas de sexo por esto tienen un nivel de Guiacutea paterna)

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

17

Esto es algo problemaacutetico Supongamos que la extensioacuten contempla ambos tipos de categoriacuteas

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

El problema con el anterior listado es que un software disentildeado para funcionar con el anterior listado con el objetivo de listar viacutenculos ofensivos no sabriacutea queacute hacer con la categoriacutea 5 estrellas El software tan soacutelo tiene que pasar por alto las etiquetas de categoriacutea de calidad pero iquestcoacutemo podriacutea hacerlo si no puede distinguir entre ambas etiquetas de categoriacutea La solucioacuten es obvia utilizar distintos nombres para ambas categoriacuteas por ejemplo Para el control de calidad ltcld‐categoriacuteagt3 estrellasltcategoriacuteagt Y para el control parental

Semana 1 Caracteriacutesticas de los lenguajes de marcas

18

ltpdr‐categoriacuteagtGuiacutea paternaltcategoriacuteagt El problema del ejemplo anterior es hellip el caraacutecter de extensibilidad de XML Dado que cualquiera puede generar etiquetas hay un enorme riesgo de conflictos Una solucioacuten para evitarlo es establecer un registro global de etiquetas aceptadas y su definicioacuten asociada No obstante podriacutea limitar severamente la flexibilidad de XML Nadie desea hacer esto La flexibilidad fue una meta primordial en el disentildeo de XML La propuesta de los espacios de nombre corrige este problema con un meacutetodo elegante no limita la extensibilidad sino que presenta mecanismos para administrarla El listado siguiente es similar al uacuteltimo pero utiliza espacios de nombre para evitar los conflictos Xmlns Xml Name Schema

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferencias xmlnscld=httpjokerplayfieldcomstar‐categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

19

A primera vista todo parece similar pero la diferencia estaacute en el formato de los nombres Ahora se agrega un prefijo a cada nombre de elemento El prefijo y el nombre estaacuten separados por dos puntos () ltcldcategoriacuteagt3 estrellasltcategoriacuteagt El prefijo identifica uniacutevocamente el tipo de categoriacutea en este documento No obstante tales prefijos por siacute solos no resuelven nada dado que cualquier persona puede generarlos Asiacute pues distintas personas podriacutean generar prefijos incompatibles y volvemos al primer paso Para evitar tales conflictos los prefijos deben estar declarados ltreferencias xmlnscld=httpjokerplayfieldcomstar-categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt La declaracioacuten asocia a un URI con un prefijo Este es el punto crucial de la propuesta de los espacios de nombre dado que los URIs a diferencia de los nombres son uacutenicos Los espacios de nombre se fundamentan en los mecanismos de registro establecidos para los URIs Por tanto se garantiza que los URLs son uacutenicos dado que estaacuten basados en nombres de dominio registrados para garantizar la unicidad

El nombre del espacio de nombre

El nombre del espacio de nombre es el URI no el prefijo Cuando una aplicacioacuten compara a dos elementos utiliza el URI no el prefijo para reconocer sus espacios de nombre

Asiacute en el listado siguiente rffnombre y refnombre se consideran ideacutenticos a pesar de tener un prefijo distinto Ambos estaacuten en el espacio de nombre httpcatwomanpineapplesoftcomref15

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 175012 CEST 2010 --gt ltreferenciasgt ltrffnombre xmlnsrff=httpcatwomanpineapplesoftcomref15gt Pearson Educational ltrffnombregt ltlink href=httpwwwpearsoncommx gt ltrefnombre xmlnsref=httpcatwomanpineapplesoftcomref15gt Pineapplesoft ltrefnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

20

Espacio de nombre predeterminado

Todos los elementos sin prefijo nombre y link en los ejemplos anteriores y todos sus elementos descendientes pertenecen a un espacio de nombres predeterminado antildeadiendo un atributo xmlns sin prefijo en el elemento de la parte superior En nuestro caso

xmlns=httpcatwomanpineapplesoftcomref15

Los atributos son diferentes Los espacios de nombre predeterminados solo se aplican a los elementos no a los atributos Por lo tanto en el espacio anterior el atributo sin prefijo href no estaacute en ninguacuten espacio de nombre

Realiza la Actividad 7

Los URIs Un URI (Uniform Resource Identifier) es una cadena corta de caracteres que identifica inequiacutevocamente un recurso (servicio paacutegina documento direccioacuten de correo electroacutenico enciclopedia etc) Normalmente estos recursos son accesibles en una red o sistema

En el caso que nos ocupa el URI solo se utiliza para asegurar la unicidad de los nombres Podriacutea (aunque no necesariamente) apuntar a una descripcioacuten del nombre Por ejemplo podriacutea haber un documento en httppenguinxmlicomreview10 que describa la categoriacutea o podriacutea no haber nada

No obstante lo importante es que los URIs son uacutenicos y deberiacuteamos generarlos de acuerdo con nuestros nombres de dominio Los nombres de dominio Los URLs (Uniform Resource Locator) son direcciones para localizar recursos en Internet y actualmente han sido englobados por el concepto maacutes general de URI

Tienen el siguiente formato

httpwwwpearsoncommx httpwwwpineapplesoftcomnewsletter ftpftpmcpcom newsnewspsolcomcompxml mailtobmarchalpineapplesoftcom El nombre del dominio es solo una parte del URL ldquopearsoncommxrdquo y ldquopineapplesoftcomrdquo son dos de ellos

Semana 1 Caracteriacutesticas de los lenguajes de marcas

21

El nombre del dominio estaacute registrado por una autoridad global para asegurar que no haya duplicados Dada la globalidad del registro uno no puede hacer lo que quiera con los nombres de dominio Por ejemplo no es posible registrar nombres que ya esteacuten en uso La parte final del nombre de dominio (ldquocomrdquo por ejemplo) se conoce como Dominio de nivel superior (TLD Top Level Domain) identifica a la autoridad que asignoacute el nombre de dominio InterNIC (wwwinternicnet) es la autoridad para la mayor parte de los llamados TLD geneacutericos ldquocomrdquo (comercial) ldquonetrdquo (proveedores de servicios de Internet) ldquoorgrdquo (instituciones sin aacutenimo de lucro) Son geneacutericas puesto que estaacuten abiertas a empresas u organizaciones con un aacutembito mundial Tambieacuten hay TLDs especiacuteficos de un paiacutes ldquoesrdquo en Espantildea ldquoukrdquo en el Reino Unido ldquousrdquo en Estados Unidos etc Los nombres de dominio no son muy costosos (actualmente unos 15 euro anuales) por lo que es muy recomendable contratar uno

  • Introduccioacuten
    • Elementos XML
    • Atributos
      • Caracteriacutesticas de los documentos XML bien formados
Page 15: lenguaje de marcas

Semana 1 Caracteriacutesticas de los lenguajes de marcas

15

Como hemos visto dentro de una seccioacuten CDATA podemos poner cualquier cosa que no seraacute interpretada como algo que no es asiacute Existe una excepcioacuten y es la cadena ]]gt con el que termina el bloque CDATA Esta cadena no puede utilizarse dentro de una seccioacuten CDATA

Comentarios

A veces es conveniente insertar comentarios en el documento XML que son ignorados por el procesado de la informacioacuten y las reproducciones del documento Los comentarios tienen el mismo formato que los comentarios de HTML Es decir comienza por la cadena lt‐‐ y termina con ‐‐gt

lt‐‐ Esto es un comentario ‐‐gt

Se pueden introducir comentarios en cualquier parte del documento salvo dentro de las declaraciones etiquetas u otros comentarios

Realiza la actividad 5 y 6

Espacios de nombre (NameSpaces)

En XML los espacios de nombre (namespace) tienen dos propoacutesitos

1 Distinguir entre elementos y atributos de distintos vocabularios con distintos significados que puedan compartir el mismo nombre

2 Agrupar todos los elementos y atributos relacionados de una sola aplicacioacuten

XML para que el software pueda reconocerlos con facilidad El primer propoacutesito es maacutes faacutecil de explicar y entender pero el segundo es maacutes importante en la praacutectica La extensibilidad es una facultad que no es gratuita En un entorno distribuido esta facultad deberaacute ser administrada para evitar conflictos Los espacios de nombre son una solucioacuten para ayudar a administrar la extensibilidad de XML Un espacio de nombres puede ser definido como un mecanismo para identificar elementos XML Establece los nombres de los elementos en un contexto global Supongamos que decide publicar sus marcadores como muestra el siguiente documento

Semana 1 Caracteriacutesticas de los lenguajes de marcas

16

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

Con frecuencia es necesario extender un documento existente para transmitirle nueva informacioacuten No obstante hay problemas si la extensioacuten no se administra Suponga que alguien maacutes decide clasificar la lista anterior con asesoriacutea para padres El listado siguiente muestra el resultado (Noticias ABC y Coacutemics podriacutean contener violencia o escenas de sexo por esto tienen un nivel de Guiacutea paterna)

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

17

Esto es algo problemaacutetico Supongamos que la extensioacuten contempla ambos tipos de categoriacuteas

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

El problema con el anterior listado es que un software disentildeado para funcionar con el anterior listado con el objetivo de listar viacutenculos ofensivos no sabriacutea queacute hacer con la categoriacutea 5 estrellas El software tan soacutelo tiene que pasar por alto las etiquetas de categoriacutea de calidad pero iquestcoacutemo podriacutea hacerlo si no puede distinguir entre ambas etiquetas de categoriacutea La solucioacuten es obvia utilizar distintos nombres para ambas categoriacuteas por ejemplo Para el control de calidad ltcld‐categoriacuteagt3 estrellasltcategoriacuteagt Y para el control parental

Semana 1 Caracteriacutesticas de los lenguajes de marcas

18

ltpdr‐categoriacuteagtGuiacutea paternaltcategoriacuteagt El problema del ejemplo anterior es hellip el caraacutecter de extensibilidad de XML Dado que cualquiera puede generar etiquetas hay un enorme riesgo de conflictos Una solucioacuten para evitarlo es establecer un registro global de etiquetas aceptadas y su definicioacuten asociada No obstante podriacutea limitar severamente la flexibilidad de XML Nadie desea hacer esto La flexibilidad fue una meta primordial en el disentildeo de XML La propuesta de los espacios de nombre corrige este problema con un meacutetodo elegante no limita la extensibilidad sino que presenta mecanismos para administrarla El listado siguiente es similar al uacuteltimo pero utiliza espacios de nombre para evitar los conflictos Xmlns Xml Name Schema

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferencias xmlnscld=httpjokerplayfieldcomstar‐categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

19

A primera vista todo parece similar pero la diferencia estaacute en el formato de los nombres Ahora se agrega un prefijo a cada nombre de elemento El prefijo y el nombre estaacuten separados por dos puntos () ltcldcategoriacuteagt3 estrellasltcategoriacuteagt El prefijo identifica uniacutevocamente el tipo de categoriacutea en este documento No obstante tales prefijos por siacute solos no resuelven nada dado que cualquier persona puede generarlos Asiacute pues distintas personas podriacutean generar prefijos incompatibles y volvemos al primer paso Para evitar tales conflictos los prefijos deben estar declarados ltreferencias xmlnscld=httpjokerplayfieldcomstar-categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt La declaracioacuten asocia a un URI con un prefijo Este es el punto crucial de la propuesta de los espacios de nombre dado que los URIs a diferencia de los nombres son uacutenicos Los espacios de nombre se fundamentan en los mecanismos de registro establecidos para los URIs Por tanto se garantiza que los URLs son uacutenicos dado que estaacuten basados en nombres de dominio registrados para garantizar la unicidad

El nombre del espacio de nombre

El nombre del espacio de nombre es el URI no el prefijo Cuando una aplicacioacuten compara a dos elementos utiliza el URI no el prefijo para reconocer sus espacios de nombre

Asiacute en el listado siguiente rffnombre y refnombre se consideran ideacutenticos a pesar de tener un prefijo distinto Ambos estaacuten en el espacio de nombre httpcatwomanpineapplesoftcomref15

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 175012 CEST 2010 --gt ltreferenciasgt ltrffnombre xmlnsrff=httpcatwomanpineapplesoftcomref15gt Pearson Educational ltrffnombregt ltlink href=httpwwwpearsoncommx gt ltrefnombre xmlnsref=httpcatwomanpineapplesoftcomref15gt Pineapplesoft ltrefnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

20

Espacio de nombre predeterminado

Todos los elementos sin prefijo nombre y link en los ejemplos anteriores y todos sus elementos descendientes pertenecen a un espacio de nombres predeterminado antildeadiendo un atributo xmlns sin prefijo en el elemento de la parte superior En nuestro caso

xmlns=httpcatwomanpineapplesoftcomref15

Los atributos son diferentes Los espacios de nombre predeterminados solo se aplican a los elementos no a los atributos Por lo tanto en el espacio anterior el atributo sin prefijo href no estaacute en ninguacuten espacio de nombre

Realiza la Actividad 7

Los URIs Un URI (Uniform Resource Identifier) es una cadena corta de caracteres que identifica inequiacutevocamente un recurso (servicio paacutegina documento direccioacuten de correo electroacutenico enciclopedia etc) Normalmente estos recursos son accesibles en una red o sistema

En el caso que nos ocupa el URI solo se utiliza para asegurar la unicidad de los nombres Podriacutea (aunque no necesariamente) apuntar a una descripcioacuten del nombre Por ejemplo podriacutea haber un documento en httppenguinxmlicomreview10 que describa la categoriacutea o podriacutea no haber nada

No obstante lo importante es que los URIs son uacutenicos y deberiacuteamos generarlos de acuerdo con nuestros nombres de dominio Los nombres de dominio Los URLs (Uniform Resource Locator) son direcciones para localizar recursos en Internet y actualmente han sido englobados por el concepto maacutes general de URI

Tienen el siguiente formato

httpwwwpearsoncommx httpwwwpineapplesoftcomnewsletter ftpftpmcpcom newsnewspsolcomcompxml mailtobmarchalpineapplesoftcom El nombre del dominio es solo una parte del URL ldquopearsoncommxrdquo y ldquopineapplesoftcomrdquo son dos de ellos

Semana 1 Caracteriacutesticas de los lenguajes de marcas

21

El nombre del dominio estaacute registrado por una autoridad global para asegurar que no haya duplicados Dada la globalidad del registro uno no puede hacer lo que quiera con los nombres de dominio Por ejemplo no es posible registrar nombres que ya esteacuten en uso La parte final del nombre de dominio (ldquocomrdquo por ejemplo) se conoce como Dominio de nivel superior (TLD Top Level Domain) identifica a la autoridad que asignoacute el nombre de dominio InterNIC (wwwinternicnet) es la autoridad para la mayor parte de los llamados TLD geneacutericos ldquocomrdquo (comercial) ldquonetrdquo (proveedores de servicios de Internet) ldquoorgrdquo (instituciones sin aacutenimo de lucro) Son geneacutericas puesto que estaacuten abiertas a empresas u organizaciones con un aacutembito mundial Tambieacuten hay TLDs especiacuteficos de un paiacutes ldquoesrdquo en Espantildea ldquoukrdquo en el Reino Unido ldquousrdquo en Estados Unidos etc Los nombres de dominio no son muy costosos (actualmente unos 15 euro anuales) por lo que es muy recomendable contratar uno

  • Introduccioacuten
    • Elementos XML
    • Atributos
      • Caracteriacutesticas de los documentos XML bien formados
Page 16: lenguaje de marcas

Semana 1 Caracteriacutesticas de los lenguajes de marcas

16

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

Con frecuencia es necesario extender un documento existente para transmitirle nueva informacioacuten No obstante hay problemas si la extensioacuten no se administra Suponga que alguien maacutes decide clasificar la lista anterior con asesoriacutea para padres El listado siguiente muestra el resultado (Noticias ABC y Coacutemics podriacutean contener violencia o escenas de sexo por esto tienen un nivel de Guiacutea paterna)

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 165514 CEST 2010 --gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

17

Esto es algo problemaacutetico Supongamos que la extensioacuten contempla ambos tipos de categoriacuteas

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

El problema con el anterior listado es que un software disentildeado para funcionar con el anterior listado con el objetivo de listar viacutenculos ofensivos no sabriacutea queacute hacer con la categoriacutea 5 estrellas El software tan soacutelo tiene que pasar por alto las etiquetas de categoriacutea de calidad pero iquestcoacutemo podriacutea hacerlo si no puede distinguir entre ambas etiquetas de categoriacutea La solucioacuten es obvia utilizar distintos nombres para ambas categoriacuteas por ejemplo Para el control de calidad ltcld‐categoriacuteagt3 estrellasltcategoriacuteagt Y para el control parental

Semana 1 Caracteriacutesticas de los lenguajes de marcas

18

ltpdr‐categoriacuteagtGuiacutea paternaltcategoriacuteagt El problema del ejemplo anterior es hellip el caraacutecter de extensibilidad de XML Dado que cualquiera puede generar etiquetas hay un enorme riesgo de conflictos Una solucioacuten para evitarlo es establecer un registro global de etiquetas aceptadas y su definicioacuten asociada No obstante podriacutea limitar severamente la flexibilidad de XML Nadie desea hacer esto La flexibilidad fue una meta primordial en el disentildeo de XML La propuesta de los espacios de nombre corrige este problema con un meacutetodo elegante no limita la extensibilidad sino que presenta mecanismos para administrarla El listado siguiente es similar al uacuteltimo pero utiliza espacios de nombre para evitar los conflictos Xmlns Xml Name Schema

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferencias xmlnscld=httpjokerplayfieldcomstar‐categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

19

A primera vista todo parece similar pero la diferencia estaacute en el formato de los nombres Ahora se agrega un prefijo a cada nombre de elemento El prefijo y el nombre estaacuten separados por dos puntos () ltcldcategoriacuteagt3 estrellasltcategoriacuteagt El prefijo identifica uniacutevocamente el tipo de categoriacutea en este documento No obstante tales prefijos por siacute solos no resuelven nada dado que cualquier persona puede generarlos Asiacute pues distintas personas podriacutean generar prefijos incompatibles y volvemos al primer paso Para evitar tales conflictos los prefijos deben estar declarados ltreferencias xmlnscld=httpjokerplayfieldcomstar-categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt La declaracioacuten asocia a un URI con un prefijo Este es el punto crucial de la propuesta de los espacios de nombre dado que los URIs a diferencia de los nombres son uacutenicos Los espacios de nombre se fundamentan en los mecanismos de registro establecidos para los URIs Por tanto se garantiza que los URLs son uacutenicos dado que estaacuten basados en nombres de dominio registrados para garantizar la unicidad

El nombre del espacio de nombre

El nombre del espacio de nombre es el URI no el prefijo Cuando una aplicacioacuten compara a dos elementos utiliza el URI no el prefijo para reconocer sus espacios de nombre

Asiacute en el listado siguiente rffnombre y refnombre se consideran ideacutenticos a pesar de tener un prefijo distinto Ambos estaacuten en el espacio de nombre httpcatwomanpineapplesoftcomref15

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 175012 CEST 2010 --gt ltreferenciasgt ltrffnombre xmlnsrff=httpcatwomanpineapplesoftcomref15gt Pearson Educational ltrffnombregt ltlink href=httpwwwpearsoncommx gt ltrefnombre xmlnsref=httpcatwomanpineapplesoftcomref15gt Pineapplesoft ltrefnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

20

Espacio de nombre predeterminado

Todos los elementos sin prefijo nombre y link en los ejemplos anteriores y todos sus elementos descendientes pertenecen a un espacio de nombres predeterminado antildeadiendo un atributo xmlns sin prefijo en el elemento de la parte superior En nuestro caso

xmlns=httpcatwomanpineapplesoftcomref15

Los atributos son diferentes Los espacios de nombre predeterminados solo se aplican a los elementos no a los atributos Por lo tanto en el espacio anterior el atributo sin prefijo href no estaacute en ninguacuten espacio de nombre

Realiza la Actividad 7

Los URIs Un URI (Uniform Resource Identifier) es una cadena corta de caracteres que identifica inequiacutevocamente un recurso (servicio paacutegina documento direccioacuten de correo electroacutenico enciclopedia etc) Normalmente estos recursos son accesibles en una red o sistema

En el caso que nos ocupa el URI solo se utiliza para asegurar la unicidad de los nombres Podriacutea (aunque no necesariamente) apuntar a una descripcioacuten del nombre Por ejemplo podriacutea haber un documento en httppenguinxmlicomreview10 que describa la categoriacutea o podriacutea no haber nada

No obstante lo importante es que los URIs son uacutenicos y deberiacuteamos generarlos de acuerdo con nuestros nombres de dominio Los nombres de dominio Los URLs (Uniform Resource Locator) son direcciones para localizar recursos en Internet y actualmente han sido englobados por el concepto maacutes general de URI

Tienen el siguiente formato

httpwwwpearsoncommx httpwwwpineapplesoftcomnewsletter ftpftpmcpcom newsnewspsolcomcompxml mailtobmarchalpineapplesoftcom El nombre del dominio es solo una parte del URL ldquopearsoncommxrdquo y ldquopineapplesoftcomrdquo son dos de ellos

Semana 1 Caracteriacutesticas de los lenguajes de marcas

21

El nombre del dominio estaacute registrado por una autoridad global para asegurar que no haya duplicados Dada la globalidad del registro uno no puede hacer lo que quiera con los nombres de dominio Por ejemplo no es posible registrar nombres que ya esteacuten en uso La parte final del nombre de dominio (ldquocomrdquo por ejemplo) se conoce como Dominio de nivel superior (TLD Top Level Domain) identifica a la autoridad que asignoacute el nombre de dominio InterNIC (wwwinternicnet) es la autoridad para la mayor parte de los llamados TLD geneacutericos ldquocomrdquo (comercial) ldquonetrdquo (proveedores de servicios de Internet) ldquoorgrdquo (instituciones sin aacutenimo de lucro) Son geneacutericas puesto que estaacuten abiertas a empresas u organizaciones con un aacutembito mundial Tambieacuten hay TLDs especiacuteficos de un paiacutes ldquoesrdquo en Espantildea ldquoukrdquo en el Reino Unido ldquousrdquo en Estados Unidos etc Los nombres de dominio no son muy costosos (actualmente unos 15 euro anuales) por lo que es muy recomendable contratar uno

  • Introduccioacuten
    • Elementos XML
    • Atributos
      • Caracteriacutesticas de los documentos XML bien formados
Page 17: lenguaje de marcas

Semana 1 Caracteriacutesticas de los lenguajes de marcas

17

Esto es algo problemaacutetico Supongamos que la extensioacuten contempla ambos tipos de categoriacuteas

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferenciasgt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltcategoriacuteagtGltcategoriacuteagt ltcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

El problema con el anterior listado es que un software disentildeado para funcionar con el anterior listado con el objetivo de listar viacutenculos ofensivos no sabriacutea queacute hacer con la categoriacutea 5 estrellas El software tan soacutelo tiene que pasar por alto las etiquetas de categoriacutea de calidad pero iquestcoacutemo podriacutea hacerlo si no puede distinguir entre ambas etiquetas de categoriacutea La solucioacuten es obvia utilizar distintos nombres para ambas categoriacuteas por ejemplo Para el control de calidad ltcld‐categoriacuteagt3 estrellasltcategoriacuteagt Y para el control parental

Semana 1 Caracteriacutesticas de los lenguajes de marcas

18

ltpdr‐categoriacuteagtGuiacutea paternaltcategoriacuteagt El problema del ejemplo anterior es hellip el caraacutecter de extensibilidad de XML Dado que cualquiera puede generar etiquetas hay un enorme riesgo de conflictos Una solucioacuten para evitarlo es establecer un registro global de etiquetas aceptadas y su definicioacuten asociada No obstante podriacutea limitar severamente la flexibilidad de XML Nadie desea hacer esto La flexibilidad fue una meta primordial en el disentildeo de XML La propuesta de los espacios de nombre corrige este problema con un meacutetodo elegante no limita la extensibilidad sino que presenta mecanismos para administrarla El listado siguiente es similar al uacuteltimo pero utiliza espacios de nombre para evitar los conflictos Xmlns Xml Name Schema

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferencias xmlnscld=httpjokerplayfieldcomstar‐categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

19

A primera vista todo parece similar pero la diferencia estaacute en el formato de los nombres Ahora se agrega un prefijo a cada nombre de elemento El prefijo y el nombre estaacuten separados por dos puntos () ltcldcategoriacuteagt3 estrellasltcategoriacuteagt El prefijo identifica uniacutevocamente el tipo de categoriacutea en este documento No obstante tales prefijos por siacute solos no resuelven nada dado que cualquier persona puede generarlos Asiacute pues distintas personas podriacutean generar prefijos incompatibles y volvemos al primer paso Para evitar tales conflictos los prefijos deben estar declarados ltreferencias xmlnscld=httpjokerplayfieldcomstar-categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt La declaracioacuten asocia a un URI con un prefijo Este es el punto crucial de la propuesta de los espacios de nombre dado que los URIs a diferencia de los nombres son uacutenicos Los espacios de nombre se fundamentan en los mecanismos de registro establecidos para los URIs Por tanto se garantiza que los URLs son uacutenicos dado que estaacuten basados en nombres de dominio registrados para garantizar la unicidad

El nombre del espacio de nombre

El nombre del espacio de nombre es el URI no el prefijo Cuando una aplicacioacuten compara a dos elementos utiliza el URI no el prefijo para reconocer sus espacios de nombre

Asiacute en el listado siguiente rffnombre y refnombre se consideran ideacutenticos a pesar de tener un prefijo distinto Ambos estaacuten en el espacio de nombre httpcatwomanpineapplesoftcomref15

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 175012 CEST 2010 --gt ltreferenciasgt ltrffnombre xmlnsrff=httpcatwomanpineapplesoftcomref15gt Pearson Educational ltrffnombregt ltlink href=httpwwwpearsoncommx gt ltrefnombre xmlnsref=httpcatwomanpineapplesoftcomref15gt Pineapplesoft ltrefnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

20

Espacio de nombre predeterminado

Todos los elementos sin prefijo nombre y link en los ejemplos anteriores y todos sus elementos descendientes pertenecen a un espacio de nombres predeterminado antildeadiendo un atributo xmlns sin prefijo en el elemento de la parte superior En nuestro caso

xmlns=httpcatwomanpineapplesoftcomref15

Los atributos son diferentes Los espacios de nombre predeterminados solo se aplican a los elementos no a los atributos Por lo tanto en el espacio anterior el atributo sin prefijo href no estaacute en ninguacuten espacio de nombre

Realiza la Actividad 7

Los URIs Un URI (Uniform Resource Identifier) es una cadena corta de caracteres que identifica inequiacutevocamente un recurso (servicio paacutegina documento direccioacuten de correo electroacutenico enciclopedia etc) Normalmente estos recursos son accesibles en una red o sistema

En el caso que nos ocupa el URI solo se utiliza para asegurar la unicidad de los nombres Podriacutea (aunque no necesariamente) apuntar a una descripcioacuten del nombre Por ejemplo podriacutea haber un documento en httppenguinxmlicomreview10 que describa la categoriacutea o podriacutea no haber nada

No obstante lo importante es que los URIs son uacutenicos y deberiacuteamos generarlos de acuerdo con nuestros nombres de dominio Los nombres de dominio Los URLs (Uniform Resource Locator) son direcciones para localizar recursos en Internet y actualmente han sido englobados por el concepto maacutes general de URI

Tienen el siguiente formato

httpwwwpearsoncommx httpwwwpineapplesoftcomnewsletter ftpftpmcpcom newsnewspsolcomcompxml mailtobmarchalpineapplesoftcom El nombre del dominio es solo una parte del URL ldquopearsoncommxrdquo y ldquopineapplesoftcomrdquo son dos de ellos

Semana 1 Caracteriacutesticas de los lenguajes de marcas

21

El nombre del dominio estaacute registrado por una autoridad global para asegurar que no haya duplicados Dada la globalidad del registro uno no puede hacer lo que quiera con los nombres de dominio Por ejemplo no es posible registrar nombres que ya esteacuten en uso La parte final del nombre de dominio (ldquocomrdquo por ejemplo) se conoce como Dominio de nivel superior (TLD Top Level Domain) identifica a la autoridad que asignoacute el nombre de dominio InterNIC (wwwinternicnet) es la autoridad para la mayor parte de los llamados TLD geneacutericos ldquocomrdquo (comercial) ldquonetrdquo (proveedores de servicios de Internet) ldquoorgrdquo (instituciones sin aacutenimo de lucro) Son geneacutericas puesto que estaacuten abiertas a empresas u organizaciones con un aacutembito mundial Tambieacuten hay TLDs especiacuteficos de un paiacutes ldquoesrdquo en Espantildea ldquoukrdquo en el Reino Unido ldquousrdquo en Estados Unidos etc Los nombres de dominio no son muy costosos (actualmente unos 15 euro anuales) por lo que es muy recomendable contratar uno

  • Introduccioacuten
    • Elementos XML
    • Atributos
      • Caracteriacutesticas de los documentos XML bien formados
Page 18: lenguaje de marcas

Semana 1 Caracteriacutesticas de los lenguajes de marcas

18

ltpdr‐categoriacuteagtGuiacutea paternaltcategoriacuteagt El problema del ejemplo anterior es hellip el caraacutecter de extensibilidad de XML Dado que cualquiera puede generar etiquetas hay un enorme riesgo de conflictos Una solucioacuten para evitarlo es establecer un registro global de etiquetas aceptadas y su definicioacuten asociada No obstante podriacutea limitar severamente la flexibilidad de XML Nadie desea hacer esto La flexibilidad fue una meta primordial en el disentildeo de XML La propuesta de los espacios de nombre corrige este problema con un meacutetodo elegante no limita la extensibilidad sino que presenta mecanismos para administrarla El listado siguiente es similar al uacuteltimo pero utiliza espacios de nombre para evitar los conflictos Xmlns Xml Name Schema

lt‐‐ New document created with EditiX at Sat Sep 18 165514 CEST 2010 ‐‐gt ltreferencias xmlnscld=httpjokerplayfieldcomstar‐categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt ltnombregtPearson Educationltnombregt ltlink href=httpwwwpearsoncommx gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtPineapplesoftltnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtXMLltnombregt ltlink href=httpwwwxmlcom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtCoacutemicsltnombregt ltlink href=httpwwwcomicscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt5 estrellasltcategoriacuteagt ltnombregtFatbrainltnombregt ltlink href=httpwwwfatbraincom gt ltpdrcategoriacuteagtGltcategoriacuteagt ltcldcategoriacuteagt4 estrellasltcategoriacuteagt ltnombregtNoticias ABCltnombregt ltlink href=httpwwwabcnewscom gt ltpdrcategoriacuteagtGuiacutea paternaltcategoriacuteagt ltcldcategoriacuteagt3 estrellasltcategoriacuteagt ltreferenciasgt

ltxml version=10 encoding=UTF‐8gt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

19

A primera vista todo parece similar pero la diferencia estaacute en el formato de los nombres Ahora se agrega un prefijo a cada nombre de elemento El prefijo y el nombre estaacuten separados por dos puntos () ltcldcategoriacuteagt3 estrellasltcategoriacuteagt El prefijo identifica uniacutevocamente el tipo de categoriacutea en este documento No obstante tales prefijos por siacute solos no resuelven nada dado que cualquier persona puede generarlos Asiacute pues distintas personas podriacutean generar prefijos incompatibles y volvemos al primer paso Para evitar tales conflictos los prefijos deben estar declarados ltreferencias xmlnscld=httpjokerplayfieldcomstar-categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt La declaracioacuten asocia a un URI con un prefijo Este es el punto crucial de la propuesta de los espacios de nombre dado que los URIs a diferencia de los nombres son uacutenicos Los espacios de nombre se fundamentan en los mecanismos de registro establecidos para los URIs Por tanto se garantiza que los URLs son uacutenicos dado que estaacuten basados en nombres de dominio registrados para garantizar la unicidad

El nombre del espacio de nombre

El nombre del espacio de nombre es el URI no el prefijo Cuando una aplicacioacuten compara a dos elementos utiliza el URI no el prefijo para reconocer sus espacios de nombre

Asiacute en el listado siguiente rffnombre y refnombre se consideran ideacutenticos a pesar de tener un prefijo distinto Ambos estaacuten en el espacio de nombre httpcatwomanpineapplesoftcomref15

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 175012 CEST 2010 --gt ltreferenciasgt ltrffnombre xmlnsrff=httpcatwomanpineapplesoftcomref15gt Pearson Educational ltrffnombregt ltlink href=httpwwwpearsoncommx gt ltrefnombre xmlnsref=httpcatwomanpineapplesoftcomref15gt Pineapplesoft ltrefnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

20

Espacio de nombre predeterminado

Todos los elementos sin prefijo nombre y link en los ejemplos anteriores y todos sus elementos descendientes pertenecen a un espacio de nombres predeterminado antildeadiendo un atributo xmlns sin prefijo en el elemento de la parte superior En nuestro caso

xmlns=httpcatwomanpineapplesoftcomref15

Los atributos son diferentes Los espacios de nombre predeterminados solo se aplican a los elementos no a los atributos Por lo tanto en el espacio anterior el atributo sin prefijo href no estaacute en ninguacuten espacio de nombre

Realiza la Actividad 7

Los URIs Un URI (Uniform Resource Identifier) es una cadena corta de caracteres que identifica inequiacutevocamente un recurso (servicio paacutegina documento direccioacuten de correo electroacutenico enciclopedia etc) Normalmente estos recursos son accesibles en una red o sistema

En el caso que nos ocupa el URI solo se utiliza para asegurar la unicidad de los nombres Podriacutea (aunque no necesariamente) apuntar a una descripcioacuten del nombre Por ejemplo podriacutea haber un documento en httppenguinxmlicomreview10 que describa la categoriacutea o podriacutea no haber nada

No obstante lo importante es que los URIs son uacutenicos y deberiacuteamos generarlos de acuerdo con nuestros nombres de dominio Los nombres de dominio Los URLs (Uniform Resource Locator) son direcciones para localizar recursos en Internet y actualmente han sido englobados por el concepto maacutes general de URI

Tienen el siguiente formato

httpwwwpearsoncommx httpwwwpineapplesoftcomnewsletter ftpftpmcpcom newsnewspsolcomcompxml mailtobmarchalpineapplesoftcom El nombre del dominio es solo una parte del URL ldquopearsoncommxrdquo y ldquopineapplesoftcomrdquo son dos de ellos

Semana 1 Caracteriacutesticas de los lenguajes de marcas

21

El nombre del dominio estaacute registrado por una autoridad global para asegurar que no haya duplicados Dada la globalidad del registro uno no puede hacer lo que quiera con los nombres de dominio Por ejemplo no es posible registrar nombres que ya esteacuten en uso La parte final del nombre de dominio (ldquocomrdquo por ejemplo) se conoce como Dominio de nivel superior (TLD Top Level Domain) identifica a la autoridad que asignoacute el nombre de dominio InterNIC (wwwinternicnet) es la autoridad para la mayor parte de los llamados TLD geneacutericos ldquocomrdquo (comercial) ldquonetrdquo (proveedores de servicios de Internet) ldquoorgrdquo (instituciones sin aacutenimo de lucro) Son geneacutericas puesto que estaacuten abiertas a empresas u organizaciones con un aacutembito mundial Tambieacuten hay TLDs especiacuteficos de un paiacutes ldquoesrdquo en Espantildea ldquoukrdquo en el Reino Unido ldquousrdquo en Estados Unidos etc Los nombres de dominio no son muy costosos (actualmente unos 15 euro anuales) por lo que es muy recomendable contratar uno

  • Introduccioacuten
    • Elementos XML
    • Atributos
      • Caracteriacutesticas de los documentos XML bien formados
Page 19: lenguaje de marcas

Semana 1 Caracteriacutesticas de los lenguajes de marcas

19

A primera vista todo parece similar pero la diferencia estaacute en el formato de los nombres Ahora se agrega un prefijo a cada nombre de elemento El prefijo y el nombre estaacuten separados por dos puntos () ltcldcategoriacuteagt3 estrellasltcategoriacuteagt El prefijo identifica uniacutevocamente el tipo de categoriacutea en este documento No obstante tales prefijos por siacute solos no resuelven nada dado que cualquier persona puede generarlos Asiacute pues distintas personas podriacutean generar prefijos incompatibles y volvemos al primer paso Para evitar tales conflictos los prefijos deben estar declarados ltreferencias xmlnscld=httpjokerplayfieldcomstar-categoria10 xmlnspdr=httppenguinxmlicomreview10 xmlns=httpcatwomanpineapplesoftcomref15gt La declaracioacuten asocia a un URI con un prefijo Este es el punto crucial de la propuesta de los espacios de nombre dado que los URIs a diferencia de los nombres son uacutenicos Los espacios de nombre se fundamentan en los mecanismos de registro establecidos para los URIs Por tanto se garantiza que los URLs son uacutenicos dado que estaacuten basados en nombres de dominio registrados para garantizar la unicidad

El nombre del espacio de nombre

El nombre del espacio de nombre es el URI no el prefijo Cuando una aplicacioacuten compara a dos elementos utiliza el URI no el prefijo para reconocer sus espacios de nombre

Asiacute en el listado siguiente rffnombre y refnombre se consideran ideacutenticos a pesar de tener un prefijo distinto Ambos estaacuten en el espacio de nombre httpcatwomanpineapplesoftcomref15

ltxml version=10 encoding=UTF-8gt lt-- New document created with EditiX at Sat Sep 18 175012 CEST 2010 --gt ltreferenciasgt ltrffnombre xmlnsrff=httpcatwomanpineapplesoftcomref15gt Pearson Educational ltrffnombregt ltlink href=httpwwwpearsoncommx gt ltrefnombre xmlnsref=httpcatwomanpineapplesoftcomref15gt Pineapplesoft ltrefnombregt ltlink href=httpwwwpineapplesoftcomnewsletter gt ltreferenciasgt

Semana 1 Caracteriacutesticas de los lenguajes de marcas

20

Espacio de nombre predeterminado

Todos los elementos sin prefijo nombre y link en los ejemplos anteriores y todos sus elementos descendientes pertenecen a un espacio de nombres predeterminado antildeadiendo un atributo xmlns sin prefijo en el elemento de la parte superior En nuestro caso

xmlns=httpcatwomanpineapplesoftcomref15

Los atributos son diferentes Los espacios de nombre predeterminados solo se aplican a los elementos no a los atributos Por lo tanto en el espacio anterior el atributo sin prefijo href no estaacute en ninguacuten espacio de nombre

Realiza la Actividad 7

Los URIs Un URI (Uniform Resource Identifier) es una cadena corta de caracteres que identifica inequiacutevocamente un recurso (servicio paacutegina documento direccioacuten de correo electroacutenico enciclopedia etc) Normalmente estos recursos son accesibles en una red o sistema

En el caso que nos ocupa el URI solo se utiliza para asegurar la unicidad de los nombres Podriacutea (aunque no necesariamente) apuntar a una descripcioacuten del nombre Por ejemplo podriacutea haber un documento en httppenguinxmlicomreview10 que describa la categoriacutea o podriacutea no haber nada

No obstante lo importante es que los URIs son uacutenicos y deberiacuteamos generarlos de acuerdo con nuestros nombres de dominio Los nombres de dominio Los URLs (Uniform Resource Locator) son direcciones para localizar recursos en Internet y actualmente han sido englobados por el concepto maacutes general de URI

Tienen el siguiente formato

httpwwwpearsoncommx httpwwwpineapplesoftcomnewsletter ftpftpmcpcom newsnewspsolcomcompxml mailtobmarchalpineapplesoftcom El nombre del dominio es solo una parte del URL ldquopearsoncommxrdquo y ldquopineapplesoftcomrdquo son dos de ellos

Semana 1 Caracteriacutesticas de los lenguajes de marcas

21

El nombre del dominio estaacute registrado por una autoridad global para asegurar que no haya duplicados Dada la globalidad del registro uno no puede hacer lo que quiera con los nombres de dominio Por ejemplo no es posible registrar nombres que ya esteacuten en uso La parte final del nombre de dominio (ldquocomrdquo por ejemplo) se conoce como Dominio de nivel superior (TLD Top Level Domain) identifica a la autoridad que asignoacute el nombre de dominio InterNIC (wwwinternicnet) es la autoridad para la mayor parte de los llamados TLD geneacutericos ldquocomrdquo (comercial) ldquonetrdquo (proveedores de servicios de Internet) ldquoorgrdquo (instituciones sin aacutenimo de lucro) Son geneacutericas puesto que estaacuten abiertas a empresas u organizaciones con un aacutembito mundial Tambieacuten hay TLDs especiacuteficos de un paiacutes ldquoesrdquo en Espantildea ldquoukrdquo en el Reino Unido ldquousrdquo en Estados Unidos etc Los nombres de dominio no son muy costosos (actualmente unos 15 euro anuales) por lo que es muy recomendable contratar uno

  • Introduccioacuten
    • Elementos XML
    • Atributos
      • Caracteriacutesticas de los documentos XML bien formados
Page 20: lenguaje de marcas

Semana 1 Caracteriacutesticas de los lenguajes de marcas

20

Espacio de nombre predeterminado

Todos los elementos sin prefijo nombre y link en los ejemplos anteriores y todos sus elementos descendientes pertenecen a un espacio de nombres predeterminado antildeadiendo un atributo xmlns sin prefijo en el elemento de la parte superior En nuestro caso

xmlns=httpcatwomanpineapplesoftcomref15

Los atributos son diferentes Los espacios de nombre predeterminados solo se aplican a los elementos no a los atributos Por lo tanto en el espacio anterior el atributo sin prefijo href no estaacute en ninguacuten espacio de nombre

Realiza la Actividad 7

Los URIs Un URI (Uniform Resource Identifier) es una cadena corta de caracteres que identifica inequiacutevocamente un recurso (servicio paacutegina documento direccioacuten de correo electroacutenico enciclopedia etc) Normalmente estos recursos son accesibles en una red o sistema

En el caso que nos ocupa el URI solo se utiliza para asegurar la unicidad de los nombres Podriacutea (aunque no necesariamente) apuntar a una descripcioacuten del nombre Por ejemplo podriacutea haber un documento en httppenguinxmlicomreview10 que describa la categoriacutea o podriacutea no haber nada

No obstante lo importante es que los URIs son uacutenicos y deberiacuteamos generarlos de acuerdo con nuestros nombres de dominio Los nombres de dominio Los URLs (Uniform Resource Locator) son direcciones para localizar recursos en Internet y actualmente han sido englobados por el concepto maacutes general de URI

Tienen el siguiente formato

httpwwwpearsoncommx httpwwwpineapplesoftcomnewsletter ftpftpmcpcom newsnewspsolcomcompxml mailtobmarchalpineapplesoftcom El nombre del dominio es solo una parte del URL ldquopearsoncommxrdquo y ldquopineapplesoftcomrdquo son dos de ellos

Semana 1 Caracteriacutesticas de los lenguajes de marcas

21

El nombre del dominio estaacute registrado por una autoridad global para asegurar que no haya duplicados Dada la globalidad del registro uno no puede hacer lo que quiera con los nombres de dominio Por ejemplo no es posible registrar nombres que ya esteacuten en uso La parte final del nombre de dominio (ldquocomrdquo por ejemplo) se conoce como Dominio de nivel superior (TLD Top Level Domain) identifica a la autoridad que asignoacute el nombre de dominio InterNIC (wwwinternicnet) es la autoridad para la mayor parte de los llamados TLD geneacutericos ldquocomrdquo (comercial) ldquonetrdquo (proveedores de servicios de Internet) ldquoorgrdquo (instituciones sin aacutenimo de lucro) Son geneacutericas puesto que estaacuten abiertas a empresas u organizaciones con un aacutembito mundial Tambieacuten hay TLDs especiacuteficos de un paiacutes ldquoesrdquo en Espantildea ldquoukrdquo en el Reino Unido ldquousrdquo en Estados Unidos etc Los nombres de dominio no son muy costosos (actualmente unos 15 euro anuales) por lo que es muy recomendable contratar uno

  • Introduccioacuten
    • Elementos XML
    • Atributos
      • Caracteriacutesticas de los documentos XML bien formados
Page 21: lenguaje de marcas

Semana 1 Caracteriacutesticas de los lenguajes de marcas

21

El nombre del dominio estaacute registrado por una autoridad global para asegurar que no haya duplicados Dada la globalidad del registro uno no puede hacer lo que quiera con los nombres de dominio Por ejemplo no es posible registrar nombres que ya esteacuten en uso La parte final del nombre de dominio (ldquocomrdquo por ejemplo) se conoce como Dominio de nivel superior (TLD Top Level Domain) identifica a la autoridad que asignoacute el nombre de dominio InterNIC (wwwinternicnet) es la autoridad para la mayor parte de los llamados TLD geneacutericos ldquocomrdquo (comercial) ldquonetrdquo (proveedores de servicios de Internet) ldquoorgrdquo (instituciones sin aacutenimo de lucro) Son geneacutericas puesto que estaacuten abiertas a empresas u organizaciones con un aacutembito mundial Tambieacuten hay TLDs especiacuteficos de un paiacutes ldquoesrdquo en Espantildea ldquoukrdquo en el Reino Unido ldquousrdquo en Estados Unidos etc Los nombres de dominio no son muy costosos (actualmente unos 15 euro anuales) por lo que es muy recomendable contratar uno

  • Introduccioacuten
    • Elementos XML
    • Atributos
      • Caracteriacutesticas de los documentos XML bien formados