Computing">
Nothing Special   »   [go: up one dir, main page]

Ejercicio 1: Qué Es XML

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 18

Marco Martínez Roque

Ejercicio 1

Qué es XML

XML (eXtensible Markup Language, Lenguaje de Marcado eXtensible) es un


lenguaje desarrollado por W3C (World Wide Web Consortium) que está basado
en SGML (Standard Generalized Markup Language, Lenguaje de Marcado
Generalizado Estándar).

XML es un lenguaje utilizado para el almacenamiento e intercambio de datos


estructurados entre distintas plataformas.

XML es un metalenguaje, es decir, puede ser empleado para definir otros


lenguajes, llamados dialectos XML. Por ejemplo, algunos lenguajes basados en
XML son:

● GML (Geography Markup Language, Lenguaje de Marcado


Geográfico).
● MathML (Mathematical Markup Language, Lenguaje de Marcado
Matemático).
● RSS (Really Simple Syndication, Sindicación Realmente Simple).
● SVG (Scalable Vector Graphics, Gráficos Vectoriales Escalables).
● XHTML (eXtensible HyperText Markup Language, Lenguaje de
Marcado de Hipertexto eXtensible).

Por lo que se puede comprobar hay varios lenguajes con los que se puede utilizar
el XML, además de los que hay aquí, hay más lenguajes.

1
Marco Martínez Roque

ELEMENTOS

Los documentos XML están formados por texto plano (sin formato) y contienen
marcas (etiquetas) definidas por el desarrollador. Dichas marcas, es
recomendable que sean lo más descriptivas posible y, para escribirlas, se utilizan
los caracteres menor que "<", mayor que ">" y barra inclinada "/".

Si en un documento XML se quiere guardar el nombre Marco, se puede


escribir:

<nombre>Marco</nombre>

Por lo tanto para guardar un dato, solo hay que darle un valor más sus respectivas
etiquetas.

● Elementos vacíos

Para escribir el elemento "nombre" vacío, se puede escribir:

<nombre></nombre>

● Relaciones padre-hijo entre elementos

Por otra parte, un elemento (padre) puede contener a otro u otros elementos
(hijos):

<alumno>

<nombre>Marco</nombre>

<hombre/>

<fecha-de-nacimiento>

2
Marco Martínez Roque

<día>6</día>

<mes>7</mes>

<año>2003</año>

</fecha-de-nacimiento>

<ciudad>Sevilla</ciudad>

</alumno>

En este ejemplo he decidido poner los datos de un alumno, los mios.

● Elemento raíz de un documento XML


Todo documento XML tiene que tener un único elemento raíz (padre) del
que descienden todos los demás.

En mi caso el elemento raíz es alumno:

De alumno saldrían: nombre, hombre, fecha de nacimiento, ciudad.

De fecha de nacimiento saldría: día, mes, año.

● Elementos con contenido mixto

Un elemento puede contener contenido mixto, es decir, texto y otros elementos:

<persona>
<nombre>Marco</nombre> vive en <ciudad>Sevilla</ciudad>.
</persona>

Por lo tanto se puede mezclar los elementos para que sean más profesionales y
prácticos.

3
Marco Martínez Roque

Normas de sintaxis básicas en XML

En un documento XML, todos los nombres de los elementos son case


sensitive, es decir, sensibles a letras minúsculas y mayúsculas, teniendo que
cumplir las siguientes normas:

● Pueden contener letras minúsculas, letras mayúsculas, números,


puntos ".", guiones medios "-" y guiones bajos "_".
● Asimismo, pueden contener el carácter dos puntos ":". No obstante, su
uso se reserva para cuando se definan espacios de nombres.
● El primer carácter tiene que ser una letra o un guión bajo "_".

Por otra parte, hay que tener en cuenta que, detrás del nombre de una
etiqueta se permite escribir un espacio en blanco o un salto de línea. Por
ejemplo, sintácticamente es correcto escribir:

<ciudad >Sevilla</ciudad

>

Ahora bien, no puede haber un salto de línea o un espacio en blanco antes


del nombre de una etiqueta:

<

ciudad>Sevilla</ ciudad>

Por lo tanto como se puede comprobar, a la hora de escribir la estructura de las etiquetas,
xml tiene mucha flexibilidad, aunque obviamente hay ciertas restricciones que impiden que
se pueda escribir un espacio o un salto de línea antes del nombre de la etiqueta.

4
Marco Martínez Roque

Aparte de eso hay una serie de consejos que nos da el tutorial, estos caracteres si
se pueden usar, pero nos recomiendan no hacerlo pues puede ser confuso.

Las letras no inglesas (á, Á, ñ, Ñ...) están permitidas. Sin embargo, es


recomendable no utilizarlas para reducir posibles incompatibilidades con programas
que puedan no reconocerlas.

En cuanto al carácter guion medio "-" y al punto ".", aunque también están
permitidos para nombrar etiquetas, igualmente se aconseja evitar su uso; el guion
medio porque podría confundirse con el signo menos, y el punto porque, por
ejemplo al escribir color.favorito, podría interpretarse que favorito es una propiedad
del objeto color.

Atributos en XML

Los elementos de un documento XML pueden tener atributos definidos en la


etiqueta de inicio. Un atributo sirve para proporcionar información extra sobre
el elemento que lo contiene.

EJEMPLO Dados los siguientes datos de un producto:

● Código: A32
● Nombre: Guantes
● Color: rojo
● Precio: 14

Y su representación sería:

5
Marco Martínez Roque

<producto código="A32">

<nombre color="rojo" precio="14">Guante</nombre>

</producto>

Es bastante sencillo de escribir e intuitivo por lo que no hay ningún problema para
añadir los atributos.

● Normas de sintaxis

EJEMPLO Los nombres de los atributos deben cumplir las mismas normas de
sintaxis que los nombres de los elementos. Además, todos los atributos de un
elemento tienen que ser únicos. Por ejemplo, es incorrecto escribir:

<datos x="3" x="4" y="5"/>

Debería ser así:

<datos x="3" X="4" y="5"/>

Y esto porque al ser la x escrita dos veces se rompe la regla de que los atributos
deben ser únicos, por lo tanto se escribe en mayúscula.

Declaración XML

La declaración XML que se puede escribir al principio de un documento XML,


empieza con los caracteres "<?" y termina con "?>" al igual que las instrucciones de
procesamiento. Sin embargo, la declaración XML no es una instrucción de
procesamiento (o proceso).

● Atributos version y encoding

6
Marco Martínez Roque

EJEMPLO Un documento XML podría contener la siguiente declaración XML:

<?xml version="1.0" encoding="UTF-8"?>

En un documento XML no es obligatorio que aparezca la declaración XML.


Ahora bien, si se incluye, tiene que aparecer en la primera línea del documento, y
el carácter "<" debe ser el primero de dicha línea, es decir, antes no pueden
aparecer espacios en blanco.

● Cómo crear un documento XML


Según el tutorial debemos crear un archivo con visual code, pluma etc… y de
nombre ponerle al final .xml.

● Atributo standalone

En una declaración XML, además de los atributos version y encoding, también se


puede escribir el atributo standalone, que puede tomar dos valores ("yes" o "no"):

Como por ejemplo:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

Al escribir standalone="no" se está indicando que el documento no es independiente


de otros, como por ejemplo de una DTD (Document Type Definition, Definición de
Tipo de Documento) externa. En caso contrario, significa que el documento es
independiente.

Según el tutorial, la declaración xml es opcional, pero si se escribe, el atributo


version se vuelve necesario, no como standalone y encoding que son opcionales.

Por otra parte, cuando se escriba el atributo encoding, siempre deberá aparecer
después de version. Y, respecto al atributo standalone, siempre que se escriba,
deberá ser en último lugar.

7
Marco Martínez Roque

Instrucciones de procesamiento en XML

En un documento XML, una instrucción de procesamiento (processing instruction)


sirve para indicar cierta información al programa que procese dicho documento.
Las instrucciones de proceso se escriben empezando con la pareja de caracteres
"<?" y finalizando con "?>".

● Cómo asociar un archivo CSS a un documento XML

Ejemplo:

<?xml-stylesheet type="text/css" href="estilo-coches.css"?>

Esta instrucción sirve para asociar el archivo CSS (Cascading Style Sheets, Hojas de Estilo
en Cascada) "estilo-coches.css" al documento XML. Dicho archivo podría contener, por
ejemplo, el siguiente código:

nombre{color:blue;font-size:40px}
ruedas{color:red;font-size:22px}

De forma que, dado por ejemplo el archivo "coches.xml":

?xml version="1.0" encoding="UTF-8"?>


<?xml-stylesheet type="text/css" href="estilo-coches.css"?>
<coches>
<coche>
<nombre>mercedes</nombre>
<ruedas>grandes</ruedas>
</coche>
<coche>
<nombre>audi</nombre>
<ruedas>medianas</ruedas>
</coche>
<coche>
<nombre>abarth</nombre>
<ruedas>pequeñas</ruedas>
</coche>
</coches>

8
Marco Martínez Roque

Referencias a entidades en XML

En XML existen algunos caracteres que son especiales por su significado y,


para escribirlos en un documento XML, se pueden utilizar las referencias a
entidades mostradas en la siguiente tabla:

Caracter Entidad Referencia a entidad

< lt &lt;

> gt &gt;

“ quot &quot;

' apos &apos;

& amp &amp;

Ejemplo:

<?xml version="1.0" encoding="UTF-8"?>


<entidades>
<menor_que>&lt;</menor_que>
<mayor_que>&gt;</mayor_que>
<comilla_doble>&quot;</comilla_doble>
<comilla_simple>&apos;</comilla_simple>
<ampersand>&amp;</ampersand>
</entidades>

Se vería así al abrirlo:

9
Marco Martínez Roque

● Caracteres problemáticos en XML: menor que (<) y


ampersand (&)

EJEMPLO En un documento XML, el carácter "<" es problemático porque indica el


comienzo de una etiqueta. Por tanto, en vez de escribir, por ejemplo:

<condicion>x<y</condicion>

Habría que utilizar la referencia a entidad &lt; escribiendo:

<condicion>x&lt;y</condicion>

En un documento XML, el carácter ampersand "&" también es problemático,


ya que se utiliza para indicar el comienzo de una referencia a entidad. Por
ejemplo, no es correcto escribir:

<condicion>x==1 && y==2</condicion>

En su lugar se debe escribir lo siguiente:

<condicion>x==1 &amp;&amp; y==2</condicion>

10
Marco Martínez Roque

● Uso de la comilla doble (") y de la comilla simple (') en


atributos

Si el valor de un atributo se escribe entre comillas dobles ("), dicho valor no podrá
contener dicho carácter. Por ejemplo, no es correcto escribir:

<dato caracter="comilla doble(")"/>

Para ello, hay que utilizar la referencia a entidad &quot; como se muestra a
continuación:

<dato caracter="comilla doble(&quot;)"/>

De igual modo ocurre con la comilla simple ('), siendo incorrecto escribir, por
ejemplo:

<dato caracter='comilla simple(')'/>

Por lo que, en este caso, habría que usar &apos; como se muestra seguidamente:

<dato caracter='comilla simple(&apos;)'/>

Por otro lado, los valores de atributos escritos entre comillas dobles (") sí
pueden contener al carácter comilla simple (') y a la inversa. Por ejemplo, es
correcto escribir:

<dato caracter="comilla simple(')"/>

<dato caracter='comilla doble(")'/>

En estos casos, no es obligatorio usar las referencias a entidades, pero sí


recomendable.

Aquí nos explica cómo usar las comillas adecuadamente ya que la forma normal
puede llevar a la confusión por la forma en la que se escribe.

11
Marco Martínez Roque

Referencias de caracteres en XML

En un documento XML se pueden escribir referencias de caracteres Unicode con los


símbolos &#, seguidos del valor decimal o hexadecimal del carácter Unicode que se
quiera representar y, finalmente, añadiendo el carácter punto y coma ";".

Esto sirve para por ejemplo poner el valor euro, se puede usar tanto el valor decimal
como el valor hexadecimal:

valor decimal: &#8364;


valor hexadecimal: &#x20AC;

Comentarios en XML

Para escribir comentarios en un documento XML, estos deben escribirse entre los
caracteres "<!--" y "-->". Por ejemplo:

<!-- Así se hace un comentario -->

Esta opción puede estar bien para ciertas ocasiones donde quieras explicar que
es lo que has hecho o si quieres añadir información fuera de lo importante.

<animal <!-- no se puede hacer → />

En principio no se puede escribir un comentario dentro de las etiquetas y tampoco


se pueden escribir dos guiones seguidos.

<!-- tampoco se pueden dos – guiones →

12
Marco Martínez Roque

Secciones CDATA en XML

Un documento XML puede contener secciones CDATA (Character DATA) para


escribir texto que no se desea que sea analizado. Por ejemplo, esto puede ser útil
cuando se quiere escribir texto que contenga alguno de los caracteres
problemáticos: menor que "<" o ampersand "&".

En un documento XML, para incluir una sección CDATA, esta se escribe


comenzando con la cadena de caracteres "<![CDATA[" y terminando con los
caracteres "]]>".

Es otro caso de posible confusión esta vez usando <, así que para eso está CDATA.

Una sección CDATA puede contener, por ejemplo, el código fuente de un programa
escrito en lenguaje C.

También nos comenta que no podemos usar la cadena ]]> y que no está permitido
escribir espacios en blanco o saltos de línea en las cadenas de inicio "<![CDATA[" o
fin "]]>" de una sección CDATA.

Espacios de nombres en XML

Varios documentos XML se pueden combinar entre sí, pudiendo en estos casos
coincidir el nombre de algunos elementos.

Es decir que un elemento de dos documentos xml pueden tener el mismo nombre
pero pueden tener un significado distinto.

● Uso de espacios de nombres

De forma que, si se incluyen ambos elementos <carta> en un documento XML, se


origina un conflicto de nombres. Para resolverlo, se pueden utilizar espacios de
nombres (XML Namespaces). Por ejemplo, escribiendo:

13
Marco Martínez Roque

<?xml version="1.0" encoding="UTF-8"?>


<e1:ejemplo xmlns:e1="http://www.abrirllave.com/ejemplo1"
xmlns:e2="http://www.abrirllave.com/ejemplo2">

<e1:carta>
<e1:palo>Corazones</e1:palo>
<e1:numero>7</e1:numero>
</e1:carta>

<e2:carta>
<e2:carnes>
<e2:filete_de_ternera precio="12.95"/>
<e2:solomillo_a_la_pimienta precio="13.60"/>
</e2:carnes>
<e2:pescados>
<e2:lenguado_al_horno precio="16.20"/>
<e2:merluza_en_salsa_verde precio="15.85"/>
</e2:pescados>
</e2:carta>
</e1:ejemplo>

● Sintaxis para definir un espacio de nombres

xmlns:prefijo="URI"

Esa es la sintaxis que se utiliza para definir un espacio de nombres.


En este caso, se han definido dos espacios de nombres que hacen referencia a los
siguientes URI .

● Definición de espacios de nombres en elementos


distintos al raíz

Los espacios de nombres pueden definirse en el elemento raíz o, directamente, en los


elementos que los vayan a utilizar.
En un documento XML es posible definir todos los espacios de nombres que se
necesiten.

<?xml version="1.0" encoding="UTF-8"?>


<e1:ejemplo xmlns:e1="http://www.abrirllave.com/ejemplo1">

<e1:carta>
<e1:palo>Treboles</e1:palo>

14
Marco Martínez Roque

<e1:numero>5</e1:numero>
</e1:carta>

<e2:carta xmlns:e2="http://www.abrirllave.com/ejemplo2">
<e2:carnes>
<e2:filete_de_ternera precio="12.95"/>
<e2:solomillo_a_la_pimienta precio="13.60"/>
</e2:carnes>
<e2:pescados>
<e2:lenguado_al_horno precio="16.20"/>
<e2:merluza_en_salsa_verde precio="15.85"/>
</e2:pescados>
</e2:carta>

</e1:ejemplo>

● Definición de un espacio de nombres por defecto

Se puede definir un espacio de nombres por defecto: xmlns="URI"

Tanto el elemento donde se ha definido el espacio de nombres, como todos sus


sucesores, pertenecerán a dicho espacio de nombres.

<?xml version="1.0" encoding="UTF-8"?>


<ejemplo xmlns="http://www.abrirllave.com/ejemplo1">

<carta>
<palo>Treboles</palo>
<numero>5</numero>
</carta>

</ejemplo>

● Cómo indicar que un elemento no pertenece a ningún


espacio de nombres

Para indicar que determinados elementos –o todos– no pertenecen a ningún


espacio de nombres, se escribe el atributo xmlns vacío, es decir, xmlns="".

15
Marco Martínez Roque

<pescados xmlns="">
<lenguado_al_horno precio="16.20"/>
<merluza_en_salsa_verde precio="15.85"/>
</pescados>

Espacios en blanco en XML

Los espacios en blanco, las tabulaciones y los retornos de carro pueden ser tratados de un
modo especial.

● Espacios en blanco en el contenido (texto) de un


elemento

<pelicula>No tengo cuchara</pelicula>


<pelicula>Un
diamante en
bruto</pelicula>

Pero esto al visualizarlo en google, se verá completamente normal y sin esos


espacios.

● Espacios en blanco en atributos

Lo mismo ocurre en los atributos

<?xml version="1.0" encoding="UTF-8"?>


<series>
<serie numeros="2 4 6 8"/>
<serie numeros="3
6

16
Marco Martínez Roque

9
12 15"/>
</series>

Pero en google de nuevo se vería completamente normal.

● Espacios en blanco entre elementos

En este caso se pueden escribir de muchas maneras pero todas las maneras
significan lo mismo.

?xml version="1.0" encoding="UTF-8"?>


<datos>
<dato>1</dato>
<dato>2</dato>
<dato>3</dato>
</datos>

<?xml version="1.0" encoding="UTF-8"?>


<datos><dato>1</dato><dato>2</dato><dato>3</dato></datos>

<?xml version="1.0" encoding="UTF-8"?>


<datos><dato>1</dato> <dato>2</dato>

<dato>3</dato></datos>

17
Marco Martínez Roque

● Uso del atributo xml:space

Los elementos de un documento XML pueden contener el atributo predefinido xml:space


con el valor "preserve" para indicar que los espacios que aparecen en el contenido (texto)
de dicho elemento, y sus sucesores, deben ser preservados.

<ranking xml:space="preserve">
1 Lionel Messi 700
2 Cristiano Ronaldo 670
3 Iago Aspas 220
</ranking>

Los únicos valores que admite el atributo xml:space son "preserve" y "default"

Documentos XML bien formados y válidos

Un documento XML está bien formado cuando no tiene errores de sintaxis.


Esto incluye los siguientes aspectos:

● Los nombres de los elementos y sus atributos deben estar escritos


correctamente.
● Los valores de los atributos deben estar escritos entre comillas dobles o
simples.
● Los atributos de un elemento deben separarse con espacios en blanco.
● Se tienen que utilizar referencias a entidades donde sea necesario.
● Tiene que existir un único elemento raíz.
● Todo elemento debe tener un elemento padre, excepto el elemento raíz.
● Todos los elementos deben tener una etiqueta de apertura y otra de cierre.
● Las etiquetas deben estar correctamente anidadas.
● Las instrucciones de proceso deben estar escritas de forma correcta.
● La declaración XML debe estar en la primera línea escrita correctamente.
● Las secciones CDATA y los comentarios deben estar correctamente escritos.

Un documento XML es válido cuando, además de no tener errores de sintaxis,


no incumple ninguna de las normas establecidas en su estructura. Dicha
estructura se puede definir utilizando distintos métodos, tales como:

● DTD (Document Type Definition, Definición de Tipo de Documento).


● XML Schema.
● RELAX NG (REgular LAnguage for XML Next Generation).

18

También podría gustarte