Ejercicio 406
Elabora un documento DTD que permita validar la estructura del siguiente documento XML:
<libreria>
<libro categoria="cocina">
<titulo idioma="inglés">Everyday Italian</titulo>
<autor>Giada De Laurentiis</autor>
<ano>2005</ano>
<precio>30.00</precio>
</libro>
<libro categoria="ficción">
<titulo idioma="castellano">Harry Potter</titulo>
<autor>J.K. Rowling</autor>
<ano>2005</ano>
<precio>29.99</precio>
</libro>
<libro categoria="informática">
<titulo idioma="inglés">XQuery Kick Start</titulo>
<autor>James McGovern</autor>
<autor>Per Bothner</autor>
<autor>Kurt Cagle</autor>
<autor>James Linn</autor>
<autor>Vaidyanathan Nagarajan</autor>
<ano>2003</ano>
<precio>49.99</precio>
</libro>
<libro categoria="informática" tipo="de bolsillo">
<titulo idioma="inglés">Learning XML</titulo>
<autor>Erik T. Ray</autor>
<ano>2003</ano>
<precio>39.95</precio>
</libro>
</libreria>
Solución
XML
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE libreria SYSTEM "406.dtd">
<libreria>
<libro categoria="cocina">
<titulo idioma="inglés">Everyday Italian</titulo>
<autor>Giada De Laurentiis</autor>
<ano>2005</ano>
<precio>30.00</precio>
</libro>
<libro categoria="ficción">
<titulo idioma="castellano">Harry Potter</titulo>
<autor>J.K. Rowling</autor>
<ano>2005</ano>
<precio>29.99</precio>
</libro>
<libro categoria="informática">
<titulo idioma="inglés">XQuery Kick Start</titulo>
<autor>James McGovern</autor>
<autor>Per Bothner</autor>
<autor>Kurt Cagle</autor>
<autor>James Linn</autor>
<autor>Vaidyanathan Nagarajan</autor>
<ano>2003</ano>
<precio>49.99</precio>
</libro>
<libro categoria="informática" tipo="de bolsillo">
<titulo idioma="inglés">Learning XML</titulo>
<autor>Erik T. Ray</autor>
<ano>2003</ano>
<precio>39.95</precio>
</libro>
</libreria>
406.dtd
<!ELEMENT libreria (libro+)>
<!ELEMENT libro (titulo, autor+, ano, precio)>
<!ATTLIST libro categoria CDATA #REQUIRED>
<!ATTLIST libro tipo CDATA #IMPLIED>
<!ELEMENT titulo (#PCDATA)>
<!ATTLIST titulo idioma CDATA #REQUIRED>
<!ELEMENT autor (#PCDATA)>
<!ELEMENT ano (#PCDATA)>
<!ELEMENT precio (#PCDATA)>