1 00:00:02,029 --> 00:00:17,390 Un documento bien formado, que realmente, aunque se dice así, quiere decir un documento XML, porque si no está bien formado no es un documento XML, solamente puede contener caracteres unicode válidos, que son los habituales que utilizamos. 2 00:00:17,750 --> 00:00:29,230 Tiene que tener un elemento raíz que contenga el resto de elementos. Los nombres de los elementos y sus atributos, es decir, de las etiquetas y de los atributos, no pueden contener espacios. 3 00:00:29,230 --> 00:00:39,090 El primer carácter de un nombre de elemento de atributo puede ser una letra, el carácter de dos puntos o el carácter de subrayado 4 00:00:39,090 --> 00:00:46,409 El resto de caracteres pueden ser también, además de todos los anteriores, números, guiones o puntos 5 00:00:46,409 --> 00:00:54,929 Los caracteres menor y ampersand solo se utilizan como comienzo de las marcas 6 00:00:54,929 --> 00:01:05,989 Las etiquetas de apertura, de cierre y vacías tienen que estar anidadas, no pueden empezar y finalizar dentro de otra que se haya empezado. 7 00:01:07,069 --> 00:01:11,409 Y además no pueden ni faltar ni sobrar ninguna etiqueta de apertura o cierre. 8 00:01:12,129 --> 00:01:19,849 Deben coincidir exactamente la de apertura y la de finalización, incluyendo el uso de minúsculas y mayúsculas. 9 00:01:19,849 --> 00:01:25,170 Las etiquetas de cierre no pueden contener en ningún caso atributos 10 00:01:25,170 --> 00:01:28,870 Solamente los atributos pueden aparecer en las etiquetas de apertura 11 00:01:28,870 --> 00:01:33,409 Ninguna etiqueta puede tener dos atributos con el mismo nombre 12 00:01:33,409 --> 00:01:35,469 Esto es una cosa muy curiosa que ahora veremos 13 00:01:35,469 --> 00:01:39,310 Todos los atributos tienen que tener algún valor 14 00:01:39,310 --> 00:01:43,090 Y los valores de los atributos tienen que estar entre comillas 15 00:01:43,090 --> 00:01:45,209 Que pueden ser o simples o dobles 16 00:01:45,209 --> 00:01:50,569 Y no pueden existir referencias en los valores de los atributos. 17 00:01:51,290 --> 00:01:57,650 Es curioso porque los navegadores suelen procesar perfectamente un fichero XML. 18 00:01:57,989 --> 00:02:01,709 Vamos a verlo. Vamos a abrir una nueva página. 19 00:02:03,109 --> 00:02:08,990 Vamos a cargar un ejemplo que tenemos de antes. 20 00:02:09,210 --> 00:02:11,490 Voy a ampliar un poco esto para que lo veamos mejor. 21 00:02:11,490 --> 00:02:25,729 Y vemos que al abrir este fichero que era ejemplo1.xml, perfectamente ha reconocido párrafo y párrafo, texto, con y ha abierto perfectamente toda su información. 22 00:02:26,189 --> 00:02:29,710 ¿Qué ocurriría si modifico yo esto para hacerlo mal? 23 00:02:30,009 --> 00:02:39,930 Vamos a, por ejemplo, poner que esta etiqueta importante, o una etiqueta nueva, una etiqueta, voy a poner especial, voy a escribirla aquí. 24 00:02:39,930 --> 00:02:42,009 y ahora voy a poner que especial 25 00:02:42,009 --> 00:02:44,469 finalice después de párrafo 26 00:02:44,469 --> 00:02:47,710 si yo esto lo guardo 27 00:02:47,710 --> 00:02:49,110 y ahora intento 28 00:02:49,110 --> 00:02:50,449 recargar esto 29 00:02:50,449 --> 00:02:52,830 pues efectivamente este navegador 30 00:02:52,830 --> 00:02:54,370 que en este caso es un Google Chrome 31 00:02:54,370 --> 00:02:57,210 pues nos dice que efectivamente hay errores 32 00:02:57,210 --> 00:02:59,090 y que no sabe 33 00:02:59,090 --> 00:03:01,669 procesar esta información 34 00:03:01,669 --> 00:03:02,409 ¿de acuerdo? 35 00:03:02,930 --> 00:03:04,650 muchos de los errores que hemos visto antes 36 00:03:04,650 --> 00:03:06,069 podríamos comprobarlos 37 00:03:06,069 --> 00:03:08,270 vamos a poner este especial en un sitio 38 00:03:08,270 --> 00:03:10,009 que pueda ser válido 39 00:03:10,009 --> 00:03:11,210 vamos a ponerlo aquí 40 00:03:11,210 --> 00:03:13,969 y muchos errores que hemos visto 41 00:03:13,969 --> 00:03:15,909 podríamos, por ejemplo, ponerle aquí 42 00:03:15,909 --> 00:03:17,750 a importante un atributo 43 00:03:17,750 --> 00:03:22,229 número igual 44 00:03:22,229 --> 00:03:23,849 a 24 45 00:03:23,849 --> 00:03:24,650 por ejemplo 46 00:03:24,650 --> 00:03:27,789 si le ponemos en la finalización de importante 47 00:03:27,789 --> 00:03:28,669 este atributo 48 00:03:28,669 --> 00:03:32,090 pues ahora cuando vayamos a recargar 49 00:03:32,090 --> 00:03:33,930 esta página, efectivamente dice 50 00:03:33,930 --> 00:03:35,569 que eso no lo entiende tampoco 51 00:03:35,569 --> 00:03:37,789 si lo pusiéramos 52 00:03:37,789 --> 00:03:40,449 este mismo atributo 53 00:03:40,449 --> 00:03:42,530 lo pusiéramos en la etiqueta 54 00:03:42,530 --> 00:03:44,449 de inicio 55 00:03:44,449 --> 00:03:46,689 si lo pusiéramos aquí 56 00:03:46,689 --> 00:03:48,389 pues ahora 57 00:03:48,389 --> 00:03:49,990 perfectamente 58 00:03:49,990 --> 00:03:52,509 lo procesa nuestro navegador 59 00:03:52,509 --> 00:03:54,349 con lo cual ya vemos que un elemento 60 00:03:54,349 --> 00:03:56,189 que nos va a ayudar bastante va a ser cualquier 61 00:03:56,189 --> 00:03:58,490 navegador Firefox, Google Chrome 62 00:03:58,490 --> 00:03:59,969 cualquiera de ellos nos va a ayudar 63 00:03:59,969 --> 00:04:02,349 a ver si un 64 00:04:02,349 --> 00:04:04,569 fichero realmente es XML 65 00:04:04,569 --> 00:04:06,250 o dicho con redundancia 66 00:04:06,250 --> 00:04:08,689 si está bien formado 67 00:04:08,689 --> 00:04:13,789 sabiendo lo que es un documento bien formado 68 00:04:13,789 --> 00:04:15,909 o simplemente lo que es un documento XML 69 00:04:15,909 --> 00:04:19,589 vamos a ver cuál es un documento XML válido 70 00:04:19,589 --> 00:04:22,110 y es aquel que tiene como referencia 71 00:04:22,110 --> 00:04:24,529 una gramática, una sintaxis 72 00:04:24,529 --> 00:04:27,750 y se corresponde a ella 73 00:04:27,750 --> 00:04:31,449 ¿y cómo definimos gramáticas para documentos XML? 74 00:04:32,069 --> 00:04:34,509 pues a través de lo que ya hemos enunciado antes 75 00:04:34,509 --> 00:04:37,569 los DTDs o Document Type Definition 76 00:04:37,569 --> 00:04:40,449 que es el modelo más antiguo y que ya veremos 77 00:04:40,449 --> 00:04:43,410 que tiene algunas carencias pero que es muy fácil de manejar 78 00:04:43,410 --> 00:04:45,750 los XML Schema 79 00:04:45,750 --> 00:04:49,350 que no tienen todas esas carencias que tiene DTD 80 00:04:49,350 --> 00:04:51,350 pero son muy complejos 81 00:04:51,350 --> 00:04:53,589 y los RelaxNG 82 00:04:53,589 --> 00:04:58,449 que es un modelo intermedio más sencillo que es XML Schema 83 00:04:58,449 --> 00:05:00,870 que no vamos a ver a lo largo del curso