You are on page 1of 5

Arquivos XML ben formados

Solución aos exercicios


Os arquivos XML ben formados teñen que cumprir unhas normas que condicionan:

1. Cal ten que ser a primeira liña do arquivo.


2. Características da primeira etiqueta.
3. Características da estrutura das etiquetas.
4. Formación dos literais con que se construen as etiquetas e os atributos.
5. Características sintácticas dos contidos dos atributos.

1. Correxir os seguintes arquivos xml para que quede ben formado.

Arquivo XML mal formado Arquivo XML ben formado


<xml version="1.0" encoding="utf-8"> <?xml version="1.0" encoding="utf-8"?>
<colección musical> <!-- colección_musical.xml -->
<artista nome=Queen> <colección-musical>
<album nome=A Night at the Opera> <artista nome="Queen">
<Bohemian Rhapsody> <album nome="A Night at the Opera">
<'39> <canción>Bohemian Rhapsody</canción>
<album>
<canción>'39</canción>
</artista>
</album>
<artista nome=R.E.M.>
</artista>
<album nome='Life's Rich Pageant'>
<Superman> <artista nome="R.E.M.">
<These days> <album nome="Life's Rich Pageant">
</album> <canción>Superman</canción>
</artista> <canción>These days</canción>
</colección musical> </album>
</artista>
</colección-musical>

Análise
1ª Liña:
A primeira liña ten que ser sempre a que indica a versión de XML (1.0 ou 1.1) e a codificación.
A sintaxe desta liña non é a correcta no exercicio, debería ser:
<?xml version="1.0" encoding="utf-8"?>

Información que pretende almacenar:


Temos que analizar os datos para deducir que tipo de información se pretende almacenar e como tería
que estar organizada.
Polas etiqueta, deducimos que o arquivo é unha colección musical que almacena información de distintos
artistas, e para cada artista almacena un álbum, e para cada álbum almacena varias cancións.
As cancións dos grupos almacenadas, por exemplo,
<Bohemian Rhapsody>
<'39>
Vemos que teñen identidade propia, polo que podemos deducir que deberían ter etiquetas que as
identificasen, por exemplo,
<cancion>Bohemian Rhapsody</cancion>
<cancion>’39</cancion>
Sintaxe das etiquetas e atributos:
O identificativo das etiquetas non pode ter espazos en branco, polo que
<colección musica> non é correcta, tería que ser, por exemplo, <colección-musical>

Atributos
Os atributos teñen que ir sempre entre comiñas simples ou dobres.
<artista nome=Queen> tería que ser <artista nome=”Queen”> ou <artista nome=’Quenn’>

Caracteres permitidos
O contido do atributo nome da etiqueta <album nome='Life's Rich Pageant'> está pechado entre comiñas
simples e dentro contén unha comiña simple, isto non é correcto pois non pode haber dentro de unha
cadea o mesmo símbolo que cerra a cadea. Una solución sinxela sería poñer o contido dos atributos entre
comiñas dobres: <album nome=”Life's Rich Pageant”> ou utilizar os caracteres substitutos
correspondentes a comiña simple que é &apos; <album nome=’Life&apos;s Rich Pageant>

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


<programas>
<2008-2013>
Programas con data > 2008 e < 2013
Arquivo XML mal <programa nome="Notepad++" licenza=GPL licenza=LGPL Windows />
formado </programa>
<programa nome="XML Copy Editor" licenza=GPL Windows Linux />
</programa>
</2008-2013>
</programas>
1ª Liña:
A sintaxe desta liña non é a correcta no exercicio, debería ser:
<?xml version="1.0" encoding="utf-8"?>
Información que pretende almacenar:
Programas para uns períodos de tempo e para cada
programa indicacións de nome, licencia e sistemas
Análise
operativos.
Pódese cambiar algunha etiqueta por atributos.
Caracteres permitidos
Si poñemos no contido dunha etiqueta o símbolo <,
interpreta que empeza unha etiqueta, or iso hai que
substituilo por &lt;
<?xml version="1.0" encoding="utf-8"?>
<programas>
<grupo periodo="2008-2013">
Arquivo XML ben Programas con data > 2008 e &lt; 2013
formado <programa>
<nome>Notepad++</nome>
<licenza>GPL</licenza>
<licenza>LGPL</licenza>
<sistema_operativo>Windows</sistema_operativo>
</programa>
<programa>
<nome> XML Copy Editor </nome>
<licenza> GPL</licenza>
<sistema_operativo>Windows</sistema_operativo>
<sistema_operativo>Linux</sistema_operativo>
</programa>
</grupo>
</programas>

2. Escribir un documento XML que almacene a seguinte información.

Información a codificar en XML Información codificada en XML


<cidades>
<!-- Cidades de Asia -->
<cidade>
<nome>Nova Delhi</nome>
<pais>India</pais>
<continente>Asia</continente>
</cidade>
<!-- Cidades de Europa -->
<cidade>
<nome>Lisboa</nome>
<pais>Portugal</pais>
<continente>Europa</continente
>
</cidade>
<!-- Cidades de África -->
<cidade>
<nome>Rabat</nome>
<pais>Marrocos</pais>
<continente>África</continente
>
</cidade>
</cidades>

3. Crear un documento XML sobre os libros dunha biblioteca cos seguintes datos:

Para cada libro deberá aparecer o ISBN, o título, o ano de publicación e a editorial.

Tamén deberá figurar o nome do autor ou autores (poderán ser máis dun).

Cada libro pode ter unha ou varias descricións (ou ningunha). En caso de telas, deberase
indicar o idioma no que está escrita.
O documento deberá conter información de polo menos 2 libros (emprega información real
sacada de calquera libraría en liña) e deberá comprobarse que está ben formado seguindo a
especificación XML 1.0.

<biblioteca>
<libro isbn="7659876538">
<título>LA GUERRA DE LOS POBRES</título>
<ano_publicación>2020</ano_publicación>
<editorial>Tusquets</editorial>
<autor>ERIC VUILLARD</autor>
<descrición xml:lang="es">
A comienzos del siglo xix, el doctor Vallejo vUna novela trág
ica y combativa. Un episodio brutal entre los alzamientos populares.
</descrición>
</libro>
<libro isbn="8768757890">
<título>LA CIUDAD DE VAPOR</título>
<ano_publicación>2018</ano_publicación>
<editorial>PLANETA</editorial>
<autor>Carlos Ruiz Zafón</autor>
<descrición xml:lang="es">
El eco de los grandes personajes y motivos de las novelas de
El Cementerio de los Libros Olvidados resuena en los cuentos
de Carlos Ruiz Zafón reunidos por primera vez, y algunos de e
llos inéditos— en los que prende la magia del narrador que
nos hizo soñar como nadie.
</descrición>
</libro>
</biblioteca>

4. Escribir un documento XML que almacene a seguinte información.

Información a Información codificada en XML


codificar en XML
<feitos_historicos>
<!-- Opción 1 -->
<historia>
<descrición>IBM da a coñecer o PC.</descrición>
<data día="12" mes="8" ano="1981"/>
</historia>
<!-- Opción 2 -->
<feito data="1981-08-
12">IBM da a coñecer o PC.</feito>
<!-- Opción 3 -->
<feito_histórico>
<descrición>IBM da a coñecer o PC.</descrición>
<data>
<día>12</día>
<mes>8</mes>
<ano>1981</ano>
</data>
</feito_histórico>
</feitos_historicos>

You might also like