1 00:00:04,589 --> 00:00:12,490 Y luego, como código postal y ciudad puede aparecer cero o más veces, estaría bien aunque no aparezca, ¿vale? 2 00:00:13,130 --> 00:00:24,309 Y por último tenemos la barra, la barra, pues, vertical, en el que, pues, es como una enumeración y entonces nos permite dentro de todos los elementos que aparezcan, pues, elegir uno de ellos. 3 00:00:24,989 --> 00:00:32,649 Por ejemplo, aquí he puesto que provincia tiene un sub-elemento nombre y que luego dentro, pues, tendrá un sub-elemento o bien código postal o bien ciudad. 4 00:00:34,590 --> 00:00:54,689 Entonces veis que aquí ha añadido código postal y no ciudad. Ha elegido entre uno de los dos. Este es un ejemplo básico de DTD, que tiene tres elementos, alumno, nombre y dirección, y que el alumno tiene dos superelementos, nombre y dirección. 5 00:00:55,270 --> 00:01:01,869 ¿Veis? Este fichero XML es correcto y cumple este DTD. ¿Por qué? Porque tiene un elemento raíz alumno, tiene dos sub-elementos nombre y dirección, 6 00:01:01,869 --> 00:01:11,349 y además, como lo ha puesto que tiene que tener en su contenido cadenas de texto, las tiene. Entonces, estaría correcto. No lo daría como válido. 7 00:01:11,709 --> 00:01:16,750 Aquí tenemos uno más avanzado en el que ya tenemos el que, en el que le metí cardinalidad. Si veis, ahora tenemos. 8 00:01:17,069 --> 00:01:21,629 Primero, el primer elemento, veis que los elementos siempre van de arriba a abajo en el árbol. 9 00:01:21,629 --> 00:01:40,409 Con lo cual, el primer elemento que aparezca va a ser siempre el raíz. Entonces, biblioteca va a ser elemento raíz. ¿Veis? Biblioteca, elemento raíz. Luego dice que tiene un supelemento biblioteca que es libro. Y además, libro, según la cardinalidad, hemos visto que podía aparecer una o más veces. 10 00:01:41,109 --> 00:01:46,030 Entonces, a continuación, el libro tiene tres sub-elementos, que son título, autor y género, 11 00:01:46,510 --> 00:01:50,390 y nos dice que autor también tiene dos sub-elementos, que son nombre y apellido, 12 00:01:50,709 --> 00:01:55,310 y que todos son de tipo, van a tener un contenido de tipo cadena de carácteres. 13 00:01:55,810 --> 00:01:58,650 Entonces, vamos a repasar este XML a ver si cumple este DTD. 14 00:01:58,829 --> 00:02:05,250 Vemos que la raíz es biblioteca. A continuación, puede tener uno o más libros. 15 00:02:05,670 --> 00:02:09,949 Tiene un libro y tiene dos libros, con lo cual lo cumple. Hay uno o más libros. 16 00:02:10,409 --> 00:02:26,330 Dentro del libro tiene que haber un título en ese orden, luego un autor y luego un género. Y los hay. Y además esos tres tienen contenido de texto. Y lo tienen. No, es contenido de texto tanto título como género. 17 00:02:26,330 --> 00:02:41,090 Y luego nos dice que dentro de autor hay dos sub-elementos, nombre y apellido, y que tienen que tener texto. Y los dos tienen. Repasamos el otro y también. Con lo cual, este fichero XML cumple con este DTD y sería válido. 18 00:02:41,090 --> 00:03:01,300 Hemos visto hasta ahora elementos, pero ¿qué sucede con los atributos? Vamos a definir los atributos que pueden aparecer perfectamente en un fichero XML. Para definir los atributos se hace a través de este enunciado que aparece aquí, que sería una exclamación y luego adlis. 19 00:03:01,300 --> 00:03:14,919 El at least estaría formado por nombre de elemento primero, que va a tener ese atributo, después el nombre del atributo en sí, luego el tipo de atributo y por último un modificador que veremos qué es. 20 00:03:14,919 --> 00:03:31,659 Tenemos aquí el ejemplo. Antes de nada, decir que como tipo de atributos en DTD vamos a tener enumeración de tipo CDATA, de tipo ID y de tipo IDREF y también NMTOKEN. 21 00:03:31,659 --> 00:03:34,400 Empezamos con la enumeración 22 00:03:34,400 --> 00:03:37,000 Nosotros podemos generar un atributo 23 00:03:37,000 --> 00:03:38,180 Veis aquí, at least 24 00:03:38,180 --> 00:03:41,139 Y le llama fecha, día, semana 25 00:03:41,139 --> 00:03:42,860 Y le pone entre paréntesis 26 00:03:42,860 --> 00:03:45,599 Todos los posibles valores que puede tener el atributo 27 00:03:45,599 --> 00:03:47,280 Eso es como si fuera una enumeración 28 00:03:47,280 --> 00:03:48,620 Pero en cualquier lenguaje de programación 29 00:03:48,620 --> 00:03:51,159 A continuación aquí le he puesto require 30 00:03:51,159 --> 00:03:53,500 Que veremos que significa esto 31 00:03:53,500 --> 00:03:54,780 Require es que 32 00:03:54,780 --> 00:03:57,180 Este atributo va a ser 33 00:03:57,180 --> 00:03:59,379 Requerido, o sea, es estrictamente necesario 34 00:03:59,379 --> 00:04:01,379 Que cuando tú definas el elemento 35 00:04:01,379 --> 00:04:05,520 del que tiene este atributo, siempre aparezca el atributo. 36 00:04:06,719 --> 00:04:11,400 Implied significa que no es necesario, puede aparecer el atributo o no puede aparecer. 37 00:04:11,639 --> 00:04:15,099 Y eso es lo que se aparecería en el llamado modificador que aparece aquí al final. 38 00:04:16,100 --> 00:04:17,860 Aquí era el tipo y aquí el modificador. 39 00:04:17,860 --> 00:04:21,879 ¿Veis? Entonces, si repasamos, aquí tenemos elemento, el ejemplo, 40 00:04:22,100 --> 00:04:26,100 elemento, tenemos evento con un título y ponente. 41 00:04:26,620 --> 00:04:30,620 Y luego, un atributo que pertenece al elemento evento. 42 00:04:30,620 --> 00:04:34,339 y que define dos atributos en el elemento evento. 43 00:04:34,540 --> 00:04:39,399 Uno es tipo, que es como una enumeración y tendrá uno de estos tres valores 44 00:04:39,399 --> 00:04:42,540 y el otro es día de la semana y tendrá uno de estos valores también. 45 00:04:42,899 --> 00:04:44,639 Y nos dice que los dos tienen que ser requeridos. 46 00:04:44,639 --> 00:04:50,040 O sea, que es indispensable que cuando yo genero un elemento evento en el XML 47 00:04:50,040 --> 00:04:54,339 siempre tiene que tener el atributo tipo y el atributo día de semana. 48 00:04:54,620 --> 00:04:55,620 Vamos a verlo si lo cumplen. 49 00:04:55,720 --> 00:04:59,600 Bueno, termino diciendo que Twitter y Ponente, que eran los dos sub-elementos de evento, 50 00:04:59,600 --> 00:05:02,899 son de tipo de cadena de caracteres. 51 00:05:03,279 --> 00:05:05,279 Vamos al ejemplo a ver si lo cumple o no. 52 00:05:05,779 --> 00:05:08,879 El evento raíz es evento y evento tiene que tener dentro un título imponente. 53 00:05:09,000 --> 00:05:09,959 Lo tiene, título imponente. 54 00:05:10,360 --> 00:05:13,279 Los títulos imponentes, los dos son de cadena de caracteres, las tiene. 55 00:05:13,600 --> 00:05:18,980 Y luego nos dice que evento sí o sí tiene que tener estos dos tipos de atributos, 56 00:05:19,160 --> 00:05:20,120 tipo y día de semana. 57 00:05:20,560 --> 00:05:21,259 Y tienen que aparecer. 58 00:05:21,620 --> 00:05:22,819 Entonces, ¿qué tipo? 59 00:05:22,980 --> 00:05:25,759 Puede tener tres valores, conferencia, seminario o taller. 60 00:05:25,759 --> 00:05:28,199 Puedes poner cualquiera de los tres, pero tiene que ser uno de ellos. 61 00:05:28,600 --> 00:05:29,519 Y le ha puesto conferencia. 62 00:05:29,600 --> 00:05:54,980 Y que el otro tipo de atributo, día-semana, puede tener cualquiera de estos siete, que son los siete días de la semana. Y le pone martes. ¿Correcto? En cuanto a CDATA, ya lo hemos visto anteriormente, es el tipo de dato, en vez de una numeración, pues el CDATA ahora la pone sin el... lo veis aquí, lo pone a TTList, el tipo de elemento, el nombre del atributo y luego el tipo de dato, que es CDATA. 63 00:05:54,980 --> 00:06:16,240 Y Cdata nos está indicando que va a ser cualquier tipo de texto, un atributo que es una cadena de texto. Si veis aquí el otro ejemplo, lo veis, ha definido aquí elemento alumno y dentro del elemento alumno tiene un atributo llamado nombre que admite cualquier cadena de texto dentro de él. 64 00:06:16,240 --> 00:06:34,759 Y además, esta, al poner inplay, está diciendo que puede estar o no. No es necesario, no es requerido ese atributo, pero si lo pone, pues tiene que ser una cadena de texto. Si veis aquí, en el puesto alumno, le ha puesto el atributo, nombre, podría no haberlo puesto porque no es requerido y le pone una cadena de texto Juan Pérez. 65 00:06:34,759 --> 00:06:51,769 En cuanto a los atributos ID y IDREF, ID es, no sé, ¿acordáis? En HTML un ID era para dar un identificador a una etiqueta. Entonces, aquí exactamente igual. Vamos a darle un identificador a un elemento y eso se hace a través del ID. 66 00:06:52,629 --> 00:07:04,329 ¿Cómo lo creamos? A través de ATT-List, luego el elemento, luego el nombre del atributo y luego qué tipo de atributo es, ID, en mayúscula. 67 00:07:04,750 --> 00:07:06,589 Y aquí nos dice, pues, que es requerido. 68 00:07:07,050 --> 00:07:14,269 Entonces, tenemos aquí el ejemplo de aquí que nos aparece en el que tenemos un curso con dos sub-elementos que son título y profesor. 69 00:07:14,910 --> 00:07:20,889 ¿Qué curso va a tener un atributo, ATT-List, que va a ser de tipo ID y que va a ser requerido? 70 00:07:20,889 --> 00:07:34,410 Si nos fijamos arriba, vemos que en curso ha puesto el ID. Además, se cumple que siempre en el tipo de atributo ID no admite valores numéricos. Entonces, siempre hay que ponerle un prefijo. 71 00:07:34,410 --> 00:08:00,449 Entonces, aquí he puesto el prefijo de texto para el número para que no sea un número, ¿vale? En cuanto a IDREF, el IDREF se define como aparece. Primero, pues, el ateteriz, el elemento, luego, después del elemento, el propio nombre del atributo y luego el tipo de atributo, que es IDREF. 72 00:08:00,449 --> 00:08:16,149 A continuación nos dice que tiene que ser requerido. ¿Este IDRED para qué sirve? Sirve para hacer referencias internas en el propio documento. Aquí tenemos un ejemplo y cuando se hace una referencia interna la hace a otro elemento que tenga el ID. 73 00:08:16,149 --> 00:08:34,070 Si veis aquí, está generando el elemento primero root, que sería el elemento raíz, le está generado dentro el elemento persona, que va a ser de tipo texto, lo que contiene datos de tipo texto. 74 00:08:34,070 --> 00:08:57,950 A continuación, dice que dentro de persona va a haber un atributo de tipo ID y que va a ser requerido. A continuación, tenemos un elemento referencia que va a ser de tipo texto y él tiene referencia también un tipo de, va a tener un tipo de atributo que va a ser de tipo ID ref. 75 00:08:58,909 --> 00:09:17,330 Si veis aquí, en el root ha generado una persona primero con un ID igual a P1, ¿vale? Correcto. Y una persona con un ID igual a P2. Si veis referencia que tiene un ID ref, tiene que referenciarse a uno de los IDs que tenga del documento de manera interna. Tenemos que referenciar pues a P1. 76 00:09:17,330 --> 00:09:30,149 Otro tipo de atributos son los NM token, que es para indicar o asegurar que los valores de los atributos sean simples y cumplan siempre con las reglas de los nombres válidos en XML. 77 00:09:30,389 --> 00:09:33,090 Acordaos, los nombres válidos de XML que dimos en el primer capítulo. 78 00:09:33,549 --> 00:09:42,830 Cuando ponemos NM token, estamos indicando que el propio atributo, fijaos, aquí tenemos elemento producto que tiene dos sus elementos que son nombre y precio. 79 00:09:42,830 --> 00:10:06,509 Y luego el atributo, o sea, el elemento producto, quiero que tenga un atributo que se llama categoría y que además sea de tipo NM token. O sea, que puedes meterle ahí cualquier cosa que cumpla con las reglas de los nombres válidos de XML. Y además nos está diciendo que puede aparecer o no. Luego nos dice que nombre y precio son de tipo texto. ¿Veis? ¿Lo cumple o no lo cumple? Pues lo cumple. 80 00:10:06,509 --> 00:10:22,750 Tenemos el elemento producto con su atributo categoría y ha puesto electrónica y eso está dentro de cualquier regla de nombre válido en XML y por tanto es correcto. Dentro tendrá los dos sub-elementos nombre y precio. 81 00:10:22,750 --> 00:10:45,649 En cuanto a modificadores de atributos, ya los hemos visto. Modificador de atributos, Implied y Required, este es opcional, este es obligatorio. Si lo pones aquí, el atributo edad del elemento alumno, está diciendo que puede ser opcional. 82 00:10:45,649 --> 00:11:10,769 Entonces, cuando genera el alumno, veis, no ha utilizado el atributo edad. O tal vez lo pueda utilizar. Puede utilizar, puede hacer las dos versiones. En cambio, en el caso de poner require, el elemento alumno tendrá, aquí tenemos un ejemplo require en cuanto a edad y alumno, pues siempre, veis, solo funciona esta, puesto que es obligatorio que pongas el atributo edad. 83 00:11:10,769 --> 00:11:26,029 Otros modificadores de atributos son fixed y literal. Fixed es como generar una constante o un valor fijo que no puede cambiar. 84 00:11:26,029 --> 00:11:47,750 ¿Vale? Este sería, pues, cuando pones fix, pues, por ejemplo, estudiante. ¿Vale? Aquí estás indicando, pues, que el elemento nombre, o sea, alumno que tiene un sub-elemento nombre, tiene un atributo y se llama tipo, que es de tipo texto y que además es fix, que es fijado, pues, con este valor constante que sería estudiante. ¿Vale? 85 00:11:47,750 --> 00:12:07,750 En cuanto al literal, así no un valor literal, atributo dentro de comillas. Es como un valor por defecto que le ponemos. Si tú pones aquí, lo puedes poner directamente. Entonces, pones ejemplo, atributo, cdata, un valor predeterminado y ese es el valor que siempre va a tener predeterminado. 86 00:12:07,750 --> 00:12:20,289 determinado. Toma por defecto siempre ese valor. Si no se especifica en el XML, lo va a tomar como valores. Si unimos varios de ellos en un ejemplo, lo tenemos aquí. 87 00:12:20,929 --> 00:12:35,009 Vamos a definir todo el texto. Tendríamos un elemento curso. A su vez, el curso tiene cuatro sub-elementos, que son nombre, profesor, fecha y contenido. Después, curso va a tener un atributo, 88 00:12:35,009 --> 00:12:40,909 que va a ser id, en minúsculas, y que es de tipo id, y que además es requerido. 89 00:12:41,029 --> 00:12:46,909 Y también tiene un atributo tipo, de tipo texto, y que está fijado al valor teórico. 90 00:12:47,889 --> 00:12:52,149 En cambio, pues como curso, habíamos dicho que tenía cuatro sub-elementos, 91 00:12:52,230 --> 00:12:55,909 uno de ellos era nombre, que va a ser de tipo texto, otro era profesor, que también va a ser de tipo texto, 92 00:12:56,070 --> 00:13:02,809 pero profesor también va a tener dos atributos, con la t de list, que son id, igual que teníamos en el caso anterior, 93 00:13:02,809 --> 00:13:11,629 e IDREF, que son de tipo ID e IDREF cada uno de ellos. El primero es requerido, es indispensable que aparezca el ID, pero el IDREF no es necesario. 94 00:13:12,509 --> 00:13:25,710 Después tenemos el elemento fecha, que será de tipo texto también y tiene un atributo que va a ser fecha, o sea, del elemento fecha va a ser día-semana, 95 00:13:25,710 --> 00:13:51,870 con cómo se llama y que tiene una enumeración de valores y que requerido uno de estos va a ser los que va a poder añadir. Por último, tenemos el elemento contenido, que era un sub-elemento de curso y que tiene el atributo categoría y nos indica que además le pone un valor por defecto literal y además nos indica que si no pones ese valor por defecto y pones otro, pues que se cumplan las reglas de XML en cuanto a literales. 96 00:13:51,870 --> 00:14:08,049 Entonces, aquí tendríamos el ejemplo y vamos a ver si cumple todo este DTD. En principio, curso tiene dos atributos tipo e id y además los dos eran dos atributos de curso, está bien, uno era requerido y el otro no. 97 00:14:08,049 --> 00:14:29,070 En cuanto a sub-elementos de curso, era nombre, profesor, fecha y contenido. Contenido tenía un atributo que era categoría y, si fijáis, no ha utilizado el valor por defecto, pero ha utilizado avanzado y avanzado como cumple las normas de XML en cuanto a definición de nombres, pues lo daría por bueno. 98 00:14:29,070 --> 00:14:51,289 Y luego tendríamos el caso de fecha, que teníamos un atributo que era día de semana y le ha añadido uno de los valores de la numeración, como el lunes, y el profesor que tenía dos atributos, que era id e idref, en el que a cada uno de ellos le ha metido un valor, siempre haciendo referencia a otro id del propio archivo xml. 99 00:14:51,289 --> 00:15:04,779 Si veis, casi todo es lo mismo dentro de los DTDs. Luego tenemos también declaraciones de entidades. Las declaraciones de entidades van a permitir definir valores constantes dentro del documento de XML. 100 00:15:05,120 --> 00:15:19,779 Si veis, el formato va a ser este, el ampersand y luego el nombre de la entidad. Aquí, mejor verlo con un ejemplo, se va como su entidad, pues exclamación y entity. Así se va a definir el nombre de la entidad y luego el valor que va a tener esa entidad. 101 00:15:19,779 --> 00:15:35,539 De tal manera que nosotros, una vez definidas las entidades, fijaos aquí, ha generado un DTD interno llamado mensaje, que es el elemento raíz, y dentro no ha metido nada más que dos entidades, una entidad llamada saludo y una entidad llamada autor. 102 00:15:35,539 --> 00:15:54,200 Esto lo podríamos equiparar, por ejemplo, al hashtag define de C, donde teníamos que se creaba un valor constante y que luego en el propio programa cuando compilaba lo que hacía es que sustituía directamente el valor de la constante en cada una de las apariciones de la misma en el programa. 103 00:15:54,200 --> 00:16:09,440 Pues esto es lo mismo. En todos los lugares del propio fichero XML donde pongas el ampersand y saludo o autor, pues va a sustituir ese valor por el valor que tenga definido. 104 00:16:09,440 --> 00:16:24,039 Entonces, fijaos, aquí ha puesto mensaje y al poner el ampersand saludo y ampersand autor, lo que va a tener es que nos va a aparecer, pues, hola, bienvenido, este mensaje fue escrito por Juan Pérez. 105 00:16:24,200 --> 00:16:48,179 Por tanto, entidades constantes dentro de documentos XML. Tipos de entidades ya predefinidas, pues tendríamos estas que serían la de signo menor, mayor, etc. Y luego la definición personalizada, la que hemos visto actualmente. Aquí nos viene otro ejemplo exactamente igual que el que hemos visto anteriormente. 106 00:16:48,179 --> 00:17:12,009 También podemos tener entidades externas que vinculan el documento de XML con otro archivo mediante su URL y se denota así, el entity, el nombre de la entidad, pero ahora ya, si os fijáis, sería el nombre de la entidad, system y luego ya la URL. 107 00:17:12,009 --> 00:17:19,470 imaginaos aquí tenemos el que tenemos el documento de td interno de este xml en el 108 00:17:19,470 --> 00:17:23,569 que fichero xml en el que tiene dentro una entidad pero de tipo externo donde él ha 109 00:17:23,569 --> 00:17:30,710 llamado contenido externo para resisten nos va a hacer referencia a esta url esta url es 110 00:17:30,710 --> 00:17:37,250 una url de un fichero xml ese fichero xml es este de aquí contenido para el contenido de 111 00:17:37,250 --> 00:17:41,970 manera que cuando después tiene que llamar a esa entidad, ¿cómo? A través de ampersand 112 00:17:41,970 --> 00:17:48,210 contenido externo. ¿Y qué está haciendo? Está metiendo dentro de aquí todo este fichero 113 00:17:48,210 --> 00:17:57,890 XML, que es este de aquí, y nos daría como resultado este otro. Y también tenemos las 114 00:17:57,890 --> 00:18:02,670 entidades de parámetro en el que, bueno, pues es cuando queremos, permite en gran parte 115 00:18:02,670 --> 00:18:11,670 de referenciarlas. Es cuando queremos utilizar, imaginaos, una entidad en el que tiene varios 116 00:18:11,670 --> 00:18:16,549 sub-elementos y utilizarlo en varios de los elementos posteriores. Entonces, aquí tenemos 117 00:18:16,549 --> 00:18:20,890 que la definición es ahora, se denota con el símbolo de porcentaje y el nombre de la 118 00:18:20,890 --> 00:18:24,789 entidad. Aquí tenemos un ejemplo en el que nos está diciendo entidad, porcentaje, dirección. 119 00:18:24,789 --> 00:18:33,369 dice que está formado por tanto calle, por número o cero o una vez, por ciudad y por código postal, ¿vale? 120 00:18:33,410 --> 00:18:38,750 Luego define aquí abajo calle, número, ciudad y código postal, ¿vale? 121 00:18:38,869 --> 00:18:45,210 Y nos indica que alumno también va a tener dirección y luego porcentaje dirección. 122 00:18:45,549 --> 00:18:49,650 O sea que si nos vemos aquí, cuando nosotros definimos el fichero XML, 123 00:18:49,650 --> 00:19:12,390 Vemos que ahora dirección va a tener tanto calle, número ciudad y código postal. Y si lo veis, lo tiene aquí. Como alumno estaba compuesto de qué? De DNI y de dirección. Es como si fuera una plantilla en el que puedes utilizar. También aquí esta plantilla la puedes utilizar en diferentes elementos solo llamando a porcentaje y el nombre de la plantilla. 124 00:19:12,390 --> 00:19:26,630 Y si veis aquí, alumno va a tener DNI más la plantilla que le ha añadido. Y profesor, ¿qué tiene? Profesor tiene nombre más la plantilla. ¿Veis? Y se puede utilizar en distintos elementos. Eso sirve para generar este tipo de entidades. 125 00:19:29,630 --> 00:19:34,650 También entidades de parámetros externos en el que, bueno, puedes llamar a otros DTDs. 126 00:19:34,650 --> 00:19:45,490 Veis aquí, lo hace igual, un sistema, pero ahora llama a persona DTD, de tal manera que puedes configurar un DTD más completo a través de otros DTDs. 127 00:19:45,589 --> 00:19:53,750 Veis aquí que ha utilizado dos entidades de parámetros externos para llamar aquí a dos DTDs, al DTD dirección y al DTD persona. 128 00:19:53,750 --> 00:20:08,430 Estos dos DTDs, dirección y persona, van a ir insertados dentro de este DTD. Si veis aquí, al final, se va a transformar en este DotoDTD. ¿Por qué? Porque estamos definiendo estas dos entidades que van a ir dentro del DTD padre. 129 00:20:08,430 --> 00:20:37,849 ¿Vale? Declaraciones de notación. También tenemos las notaciones. Es cuando queremos incluir ficheros binarios en un fichero. ¿Vale? Entonces, ¿cómo se lo vamos a decir a la aplicación? Pues, lo va a hacer a través ahora, pues, de esta sintaxis, donde se declara a través del símbolo de exclamación y notation. Luego el nombre, system y la aplicación. 130 00:20:37,849 --> 00:20:55,109 Aquí tenemos un ejemplo bastante claro en el que nos indica una anotación en la que nos va a decir que una anotación llamada GIF, este sería el nombre, System, y luego indica que se hace referencia a un editor de formatos GIF, que es ese .exe. 131 00:20:55,109 --> 00:21:07,990 Entonces, después, cuando generamos una entidad, imagen, y llamamos a esta imagen .gif, pues la asociará a esa entidad externa y podrá ejecutarlo. 132 00:21:14,039 --> 00:21:26,180 Secciones condicionales. Esta sección, ¿para qué se va a utilizar? Se define a través de esta frase que aparece aquí. 133 00:21:26,180 --> 00:21:40,819 Van a permitir incluir o ignorar partes de la declaración de un DTD. Aquí tenemos tanto «Include» como «Ignore». Entonces, «Include» va a permitir que se vea esa parte de la declaración del DTD.