1 00:00:05,230 --> 00:00:11,210 Si tú pones el hashtag Include y todas las declaraciones serán visibles. 2 00:00:11,750 --> 00:00:15,949 Ignore nos va a decir que esas partes o declaraciones serán ocultas. 3 00:00:16,350 --> 00:00:18,269 Aquí tenemos un ejemplo de Include y de Ignore. 4 00:00:19,109 --> 00:00:22,269 Tenemos el Octave con el elemento RAID que sea documento. 5 00:00:22,429 --> 00:00:26,530 Luego tenemos el Include, que veis que lo genera con corchetes. 6 00:00:26,530 --> 00:00:30,710 Y el Include nos está diciendo que incluya estas dos. 7 00:00:30,710 --> 00:00:44,909 ¿Esto para qué es? Cuando tú estás haciendo el DTD para probar, tú puedes poner ignore o include para ver cómo funciona ignorando determinadas partes del DTD o incluyendo las partes del DTD para jugar con ello. 8 00:00:44,909 --> 00:00:54,990 Para eso se utilizaron estos dos tipos de secciones condicionales para poder jugar con el DTD y ver cómo funciona en función con unas partes u otras que se incluyan o no. 9 00:00:54,990 --> 00:01:10,230 Aquí, si veis, de corchetes ha incluido de estas dos, tanto el elemento saludo, que es de tipo texto, y la entidad mensaje, y el ignore, pues, tenemos que se ignore tanto despedida como mensaje, y no tiene mucho más. 10 00:01:10,370 --> 00:01:24,569 Entonces, al dar al ampersand, pues, mensaje, como veis, como es la misma, mensaje, en vez de salir, pues, el adiós mundo, que está ignorado, pues, saldrá el hola mundo. 11 00:01:27,900 --> 00:01:46,719 Y pasamos ya a los XML Exchema, en el que hasta ahora todo lo que hemos visto es reglas, restricciones y en un documento, que se llama documento.dtd o fichero.dtd, que nos va a decir cómo escribir de manera correcta un documento XML. 12 00:01:46,719 --> 00:02:00,640 Hemos tenido varios problemas con respecto a que los tipos de datos no están definidos o hay pocos tipos de datos y esos tipos de datos además sus dominios o intervalos pues no se pueden utilizar. 13 00:02:00,640 --> 00:02:22,139 Entonces, otro inconveniente que hemos visto era el que el vocabulario o la sintaxis en la que se escribía un DTD no era con una sintaxis XML. Esa sintaxis XML la vamos a tener ahora en el nuevo modo de generar todo esto, que serían los llamados XML Schemas. 14 00:02:22,139 --> 00:02:36,539 Si veis, esto es un fichero XML normal y este sería el XML schema. No va a permitir diseñar un vocabulario, pero ahora como un fichero XML. ¿Veis? Esto sí tiene una estructura de fichero XML. Ya no tiene la limitación del ETD. 15 00:02:36,539 --> 00:02:55,379 Entonces, definen tipos de datos y restricciones para elementos de atributos. Cada elemento, ahora lo veremos, pero si veis cada uno de los elementos, tanto elemento como schema, como complex type, como sequence, tiene delante el prefijo xs con dos puntos, xs dos puntos. 16 00:02:55,379 --> 00:03:09,300 ¿Dónde se almacenan los XML Schemas? Pues se almacenan en ficheros planos con una extensión que va a ser la .xsd. También se denominan documentos xsd por este motivo, son documentos XML válidos. 17 00:03:09,300 --> 00:03:27,740 El espacio de nombres para XML Schema, para hacer referencia, sería esta línea que aparece aquí. Y en cuanto a los elementos clave en el XML Schema, vamos a tener tanto el XS dos puntos Schema y el XS dos puntos Element. 18 00:03:27,740 --> 00:03:49,000 El xs dos puntos de Chema es el elemento raíz de un documento xml Chema. Siempre va a estar flanqueado por esta con la línea que aparece aquí, que el espacio de nombres que siempre hay que poner. Este sería el raíz y luego dentro tendrá una serie de, aquí hay un comentario, y luego tenemos una serie de elementos. 19 00:03:49,000 --> 00:04:00,000 Veis que cada elemento, ahora antes era la exclamación element, pues ahora se pone como xs dos puntos element. Esto va a permitir generar cada uno de los elementos. 20 00:04:01,360 --> 00:04:13,080 Si veis aquí, y ya lo adelanto, cuando ponemos el complex type es para cuando queremos definir dentro un tipo de dato complejo. Y sequence es cuando queremos indicar una serie de elementos que van a ir en un orden prefijado. 21 00:04:13,080 --> 00:04:27,439 Aquí, cuando ponemos varios elementos, no van en orden prefijado, pero si lo flanqueamos con la etiqueta Sequence, le estaremos diciendo que esos elementos sí van a tener que seguir este orden que aparece aquí. 22 00:04:27,439 --> 00:04:49,439 Ventaja de los XML Chemas frente a ETDs, pues que son soporte para tipos de datos, va a tener soporte para tipos de datos, mejor integración con herramientas XML modernas, capacidad para definir restricciones más avanzadas y documentos XSD, lógicamente, son XML válidos. 23 00:04:51,870 --> 00:05:00,250 Aquí tenemos un ejemplo, ¿veis el ejemplo? Un ejemplo sencillito en el que tenemos el XMLHM que primero pone el elemento raíz, 24 00:05:00,250 --> 00:05:06,110 que siempre es el mismo, y dentro ha metido nada más que un elemento. ¿Cómo llamamos al elemento? 25 00:05:06,250 --> 00:05:15,569 Ahora, tanto para el nombre, para el tipo, etc., ya no era una sentencia propiamente dicha, una etiqueta, como era en los DTD, 26 00:05:15,569 --> 00:05:18,029 sino que ahora son atributos del propio elemento. 27 00:05:19,069 --> 00:05:23,370 Entonces, para tener un nombre, el elemento le pone el nombre name. 28 00:05:24,629 --> 00:05:26,689 Y entre comillas dobles indica el nombre del elemento. 29 00:05:26,930 --> 00:05:29,269 Y para el tipo le pone type. 30 00:05:29,470 --> 00:05:31,230 Y le pone entre comillas dobles también el tipo. 31 00:05:32,029 --> 00:05:35,569 Es decir, que el tipo va con el prefijo xs. 32 00:05:36,689 --> 00:05:38,730 Como estamos diciendo que hemos creado un elemento, 33 00:05:38,850 --> 00:05:41,509 en este xmlchema hemos creado un elemento llamado alumno 34 00:05:41,509 --> 00:05:43,949 y que es de tipo extreme. 35 00:05:43,949 --> 00:05:58,470 Bien, vamos al ejemplo, vemos alumno y vemos que es de tipo stream, va a llevar un contenido de stream y, bueno, aquí le ha definido un atributo, veremos luego cómo se definen los atributos. 36 00:05:58,470 --> 00:06:22,600 Tipos de datos en XMLChema, bueno, pues va a haber muchos tipos de datos, si veis aquí tenemos tipo de datos de stream, tenemos integer, tenemos de tipo fecha, aquí tenemos muchos más, veis, fijaos, todo lo que en DTD no se cumplía, puesto que no tenía tipos de datos, pues en el caso de los XMLChema va a tener un montón de tipos de datos. 37 00:06:22,600 --> 00:06:34,300 Pues veis aquí, es de cadena de texto, entero, decimal, booleano, fecha, time, un entero positivo, entero negativo, bueno, ahí tiene muchísimos tipos de datos. 38 00:06:35,199 --> 00:06:51,160 Más tipos de datos de fechas, como pueden ser fecha y horas absolutas, la fecha en formato, como aparece aquí, el tiempo en hora con ese formato, duración, que es duración de tiempo en formato, como el que aparece aquí. 39 00:06:52,600 --> 00:07:00,720 más componentes de fechas como puede ser el año gregoriano, mes de un año, día de un mes, bueno, infinidad. 40 00:07:00,879 --> 00:07:04,959 Otros tipos comunes serían el representar una urni o identificadores de lenguaje. 41 00:07:07,009 --> 00:07:12,230 Aquí tenemos, por ejemplo, veis un ejemplo que aparece aquí, sería este que está flanqueado con el Chema 42 00:07:12,230 --> 00:07:20,870 y tenemos dentro un elemento, el elemento le ha llamado, le llama evento y nos indica que dentro del elemento evento 43 00:07:20,870 --> 00:07:28,009 va a tener todos estos elementos, como son mes-año, año, día-mes, día-mes, enlace y idioma. 44 00:07:28,569 --> 00:07:33,449 Y además, a cada uno de ellos le pone el correspondiente tipo en función de lo que es cada cosa. 45 00:07:33,449 --> 00:07:37,209 El año, mes del año, el año, día del mes, etc. 46 00:07:38,029 --> 00:07:45,449 Si veis, todo esto lo ha englobado dentro de Complex Type, que es una etiqueta que nos va a indicar un tipo complejo. 47 00:07:46,410 --> 00:07:49,829 ¿Por qué? Porque esto es un tipo complejo, es como si fuera una estructura en C. 48 00:07:49,829 --> 00:08:10,149 Una estructura en C en el que está formado por una serie de distintos tipos. Es una estructura agregada de elementos de distintos tipos. A continuación también le he añadido el sequence y el sequence nos va a indicar que todos estos elementos tienen que ir, cuando haga el fichero XML, tiene que ir en el riguroso orden como aparece aquí. 49 00:08:10,149 --> 00:08:30,069 Si no hubiéramos puesto Sequence, nosotros podemos intercambiar y poner el orden como quisiéramos. Esto también diferencia a DTDs. Los DTDs, si os acordáis, siempre se definían los sub-elementos que iban en orden. En las ramas siempre se requería que fueran en ese mismo orden. Aquí no es necesario. Si lo queremos con Sequence, estupendo. Si no lo queremos, no es necesario. 50 00:08:30,069 --> 00:08:39,330 Si veis aquí, se ha generado el tipo de datos, el elemento evento, y dentro del elemento evento está formado por todos los sub-elementos que aparecen aquí. 51 00:08:39,750 --> 00:08:45,850 ¿Veis? Todos los elementos van en el riguroso orden que aparecen aquí debido a que tiene la sentencia sequence. 52 00:08:48,409 --> 00:08:57,690 En cuanto a qué pasa con, ¿os acordáis de los tipos de datos ID, IDREF, entity notación y NM token de los DTDs? 53 00:08:57,690 --> 00:09:00,549 ¿Cómo se simulan en un fichero XSD? 54 00:09:01,409 --> 00:09:05,710 En un fichero XSD, que sería el XMLHema, 55 00:09:06,230 --> 00:09:09,210 va a tener que el ID se va a referenciar, 56 00:09:09,330 --> 00:09:12,769 fijaos, como en un tipo XS, dos puntos, ID. 57 00:09:13,929 --> 00:09:17,169 En cuanto al uso, veis aquí que hay otro atributo, 58 00:09:17,169 --> 00:09:19,450 en cuanto a, bueno, no he indicado antes 59 00:09:19,450 --> 00:09:24,129 cómo generar un atributo dentro de un elemento en XMLHema. 60 00:09:24,610 --> 00:09:26,730 Entonces, un atributo se genera, pues, muy fácil, 61 00:09:26,730 --> 00:09:51,830 A través del xs2.atribute. Entonces, ¿qué estamos haciendo aquí? Estamos indicando que queremos un elemento llamado usuario que sea un tipo de datos complejo y que dentro tenga un atributo. El nombre del atributo es id y el tipo que es. Es el id que veíamos en el ddtd. El views que lo pone dentro es para indicar que este atributo va a ser requerido cuando se escriba el fichero xml. 62 00:09:51,830 --> 00:09:54,909 fijaos ha puesto useRequired 63 00:09:54,909 --> 00:09:56,710 fijaos el ejemplo 64 00:09:56,710 --> 00:09:59,049 la otra forma ha puesto pues el usuario 65 00:09:59,049 --> 00:10:00,529 que era el nombre del elemento 66 00:10:00,529 --> 00:10:02,950 tiene requerido pues el 67 00:10:02,950 --> 00:10:04,610 propio atributo y es de tipo id 68 00:10:04,610 --> 00:10:06,590 y le pone u que no sea numérico 69 00:10:06,590 --> 00:10:07,690 como pasaba la otra vez 70 00:10:07,690 --> 00:10:10,830 el id ref pues exactamente 71 00:10:10,830 --> 00:10:12,549 lo mismo lo que pasa es que ahora el tipo es 72 00:10:12,549 --> 00:10:14,129 xs dos puntos id ref 73 00:10:14,129 --> 00:10:16,309 en cuanto a entity 74 00:10:16,309 --> 00:10:18,389 pues tendríamos que llamar 75 00:10:18,389 --> 00:10:20,769 xs dos puntos entity 76 00:10:20,769 --> 00:10:30,090 en cuanto a una entidad dentro del propio fichero DTD 77 00:10:30,090 --> 00:10:32,990 y luego notación, pues como si fuera notación 78 00:10:32,990 --> 00:10:35,909 pues también como XS2.notation 79 00:10:35,909 --> 00:10:37,610 y luego en cuanto a NM token 80 00:10:37,610 --> 00:10:41,230 pues también tendríamos que es de tipo XS NM token 81 00:10:41,230 --> 00:10:44,950 va a hacer lo mismo que hacían 82 00:10:44,950 --> 00:10:49,309 tanto entidad, notación y NM token en un DTD 83 00:10:51,429 --> 00:10:53,269 Tipos de datos predefinidos en XSD. 84 00:10:54,610 --> 00:10:59,429 Los tipos de datos predefinidos en XSD, bueno, aquí se ve el ejemplo. 85 00:10:59,889 --> 00:11:02,169 Tenemos un elemento que se llama persona. 86 00:11:02,629 --> 00:11:09,750 Después, ese elemento tiene un, le hemos generado un tipo complejo que sería formado por varios elementos y los ha puesto en secuencia. 87 00:11:10,110 --> 00:11:11,190 ¿Vale? Pues vaya en ese orden. 88 00:11:11,629 --> 00:11:14,409 Cada uno de los elementos son nombre, edad, fecha de nacimiento y edad de registro. 89 00:11:14,490 --> 00:11:16,009 Y cada uno de ellos tiene un tipo distinto. 90 00:11:17,210 --> 00:11:17,730 No tiene más. 91 00:11:17,730 --> 00:11:29,470 Si vamos aquí, vemos que este fichero XML cumple con este XML-Chema, puesto que están en el mismo orden y tienen los tipos de datos que se le ha requerido en el formato que son. 92 00:11:31,669 --> 00:11:38,970 Aquí tenemos otro ejemplo un poquito más complejo, pero vamos, no voy a repetir todo, pero vamos, es muy parecido a lo que hemos visto anteriormente. 93 00:11:38,970 --> 00:12:00,009 Entonces, ventajas de usar tipo de datos en XML-Chema. Pues en XML-Chema tenemos que un mayor control sobre los valores de los elementos y atributos en cuanto a facilidad para la validación de los documentos XML y que permite definir estructuras más robustas y claras. 94 00:12:00,009 --> 00:12:20,340 Bien, a continuación nos quedarían las facetas sobre los tipos de datos. ¿Qué son las facetas? Hemos visto que si nosotros hemos hablado antes, XML de Chema tenía muchos tipos de datos y además que podemos lograr que sus dominios pudieran ser restringidos a unos determinados intervalos. 95 00:12:20,340 --> 00:12:22,740 esto se hace a través de estas de las facetas 96 00:12:22,740 --> 00:12:24,600 o a través de lo que se llama el XS 97 00:12:24,600 --> 00:12:26,259 dos puntos restricción, veis 98 00:12:26,259 --> 00:12:27,399 aquí tenemos dentro el simple 99 00:12:27,399 --> 00:12:30,100 decir que, no lo he dicho antes, pero hay 100 00:12:30,100 --> 00:12:32,379 simple type, simple type y 101 00:12:32,379 --> 00:12:34,659 complex type 102 00:12:34,659 --> 00:12:36,600 y dentro de él podemos añadir 103 00:12:36,600 --> 00:12:38,580 una restricción, mira cómo puedo añadir 104 00:12:38,580 --> 00:12:40,080 la restricción, la restricción la he añadido 105 00:12:40,080 --> 00:12:42,580 a través de esta etiqueta 106 00:12:42,580 --> 00:12:44,480 que sería XS dos puntos restricción 107 00:12:44,480 --> 00:12:46,460 una vez que ha generado 108 00:12:46,460 --> 00:12:47,860 las dos etiquetas de restricción 109 00:12:47,860 --> 00:12:52,100 indicando sobre qué tipo va a actuar, que es de tipo entero, 110 00:12:52,620 --> 00:12:57,799 pues dice cuál es la restricción en MinInclusive y ManInclusive, 111 00:12:58,500 --> 00:13:01,740 que nos está diciendo que el valor vaya entre 18 y 65 112 00:13:01,740 --> 00:13:06,980 y solo cumplirán aquellos que estén dentro de esos dos valores. 113 00:13:07,820 --> 00:13:09,799 Si veis, en cuanto a esas facetas, 114 00:13:10,679 --> 00:13:13,519 pues podemos utilizar tanto Length, MinLength, MaxLength, 115 00:13:13,519 --> 00:13:18,299 poner una enumeración o incluso pues espacios en blanco 116 00:13:18,299 --> 00:13:22,559 como preserve, replace 117 00:13:22,559 --> 00:13:26,820 hay muchas posibilidades. También hablar de los elementos 118 00:13:26,820 --> 00:13:30,679 para hacer patrones. Un elemento para hacer patrones son esa tabla que aparece aquí 119 00:13:30,679 --> 00:13:34,259 en el que, bueno, lo habréis visto a lo mejor en otros lenguajes de programación 120 00:13:34,259 --> 00:13:38,559 en el que, bueno, pues está hacer patrones para indicar 121 00:13:38,559 --> 00:13:41,000 por ejemplo qué tipo de cadenas de texto 122 00:13:41,000 --> 00:13:47,940 puede poner en función de un patrón que nosotros pongamos en el propio XML de Chema. 123 00:13:48,399 --> 00:13:51,200 Esto le indicaría que sea una letra mayúscula, que sea una letra minúscula, 124 00:13:51,299 --> 00:13:54,659 que sean dígitos decimales, que sea un carácter decimal, etc. 125 00:13:55,620 --> 00:14:00,539 Y ahora veremos aquí muchas más facetas para tipos de datos, 126 00:14:00,539 --> 00:14:03,580 como Mixman, Total Digits, Fracción Digits, 127 00:14:03,679 --> 00:14:06,799 nos está diciendo el número total de dígitos que va a tener, 128 00:14:06,799 --> 00:14:12,840 el número máximo de fin de males, patrones, etc. 129 00:14:13,679 --> 00:14:16,980 Aquí tenemos un ejemplo para que veamos todo esto que he comentado 130 00:14:16,980 --> 00:14:18,360 un poco deprisa. 131 00:14:18,720 --> 00:14:20,820 Si veis aquí ha generado una restricción, ¿lo veis? 132 00:14:20,860 --> 00:14:23,799 Una faceta, la restricción de tipo string, ¿la ves? 133 00:14:24,259 --> 00:14:26,039 Y dentro, ¿qué le ha añadido? 134 00:14:26,259 --> 00:14:33,019 La restricción es que la longitud del valor dentro del elemento código 135 00:14:33,019 --> 00:14:35,980 de esa cadena tiene que ser máximo de 6, ¿lo veis? 136 00:14:35,980 --> 00:14:44,299 longitud, value 6, y que el patrón, y que le aplique este patrón que es a la Z, esto que cómo se traduce. 137 00:14:45,019 --> 00:14:52,399 Si nos vamos a la Z nos está diciendo que tiene que haber letra mayúscula, y al poner entre llaves un 3 nos indica que tiene que haber en ese patrón de letras, 138 00:14:52,500 --> 00:15:03,039 tiene que haber tres mayúsculas seguidas. A continuación, el barra D nos indica que tiene que haber un dígito, y que al entregar entre llaves el número 3 nos está indicando que tiene que haber tres dígitos. 139 00:15:03,039 --> 00:15:15,740 Por lo tanto, el patrón tiene que ser que tenga una longitud máxima de 6 letras y que las 6 letras, perdón, letras, los 6 caracteres sean 3 letras mayúsculas seguidas de 3 números. 140 00:15:17,039 --> 00:15:26,320 Y fijaos, un ejemplo sería pues esta, abc123, esto se cumpliría. Si dentro del elemento name, código, le pone ese valor, se cumpliría. 141 00:15:26,320 --> 00:15:42,620 Pero si yo pongo uno de 7 dígitos o pongo un 1 con 6 caracteres pero ABC en minúscula, pues no lo daría como inválido. Aquí hay otra restricción, lo veis, de base decimal, en el que incluye que el mínimo de ese valor decimal tiene que ser 0,01, ¿lo veis? 142 00:15:42,620 --> 00:15:47,639 que el total de dígitos de todo el número tiene que ser 6. Por ejemplo, este lo cumpliría. 143 00:15:48,179 --> 00:15:54,059 Si pusiéramos 0,012345, ya tendría 7 dígitos y, por tanto, no valdría. 144 00:15:54,059 --> 00:15:59,279 Y que la fracción de dígitos, la fracción decimal, ¿veis? Tiene 2, pues que se cumpla que sean 2. 145 00:16:02,370 --> 00:16:08,750 Por tanto, elementos de lenguaje en XMLChema, pues tenemos que tenemos en la raíz, que era el XChema, 146 00:16:09,269 --> 00:16:13,769 luego los tipos de datos complejos y simples, con el complex type, con el simple type, 147 00:16:13,769 --> 00:16:16,269 restricción o facetas para indicar 148 00:16:16,269 --> 00:16:18,129 pues que sobre un 149 00:16:18,129 --> 00:16:19,990 elemento base pues indicar 150 00:16:19,990 --> 00:16:21,730 qué tipo de restricción va a tener 151 00:16:21,730 --> 00:16:24,250 el group que permite nombrar agrupaciones 152 00:16:24,250 --> 00:16:26,269 de elementos, no lo hemos visto pero también se puede utilizar 153 00:16:26,269 --> 00:16:28,470 para agruparlos, sequence que va a construir 154 00:16:28,470 --> 00:16:30,169 elementos complejos mediante una 155 00:16:30,169 --> 00:16:32,289 enumeración en el que van en un estricto 156 00:16:32,289 --> 00:16:34,509 orden, choice que representa alternativas 157 00:16:34,509 --> 00:16:35,950 tampoco lo hemos visto pero 158 00:16:35,950 --> 00:16:38,389 nos hace cuenta pues como si fuera una alternativa 159 00:16:38,389 --> 00:16:40,370 de un sort o una 160 00:16:40,370 --> 00:16:41,289 o exclusiva 161 00:16:41,289 --> 00:16:44,129 contenido mixto 162 00:16:44,129 --> 00:16:46,190 que permite mezclar texto con elementos 163 00:16:46,190 --> 00:16:47,789 el load que representa 164 00:16:47,789 --> 00:16:49,210 todos los elementos en cualquier orden 165 00:16:49,210 --> 00:16:52,049 todas esas no las hemos visto pero bueno, más que hacer referencia 166 00:16:52,049 --> 00:16:54,289 a ellas que deciros que existen 167 00:16:54,289 --> 00:16:55,889 en cuanto al tipo de datos 168 00:16:55,889 --> 00:16:57,929 simple, ya lo hemos dicho anteriormente, también se pueden 169 00:16:57,929 --> 00:16:59,990 crear tipos de datos simple basados en listas de valores 170 00:16:59,990 --> 00:17:01,870 utilizando el atributo simple type 171 00:17:01,870 --> 00:17:03,889 o el complex type que indicaría 172 00:17:03,889 --> 00:17:06,150 una agrupación o como si fuera una estructura de datos 173 00:17:06,150 --> 00:17:06,349 ¿vale? 174 00:17:06,349 --> 00:17:20,809 Otro ejemplo en el que nos indica un elemento llamado edad, que dentro tiene una restricción para los enteros positivos. 175 00:17:20,809 --> 00:17:27,089 ¿Cuál es la restricción? Que el mínimo, el mínimo inclusive, tiene que ser el mínimo 12 y el máximo 18. 176 00:17:27,089 --> 00:17:40,269 Con lo cual, si yo pongo dentro de edad de este elemento, pongo un valor de 19, no lo da como erróneo, porque no está dentro definido en esta restricción. Como veis, esto con DTD no se podría realizar. 177 00:17:40,269 --> 00:18:00,650 Otro ejemplo, bueno, pues cómo se llama, no hemos indicado hasta ahora, cómo llamar a ese fichero XSD en él, cómo llamar al DTD en el fichero XML. Para llamarlo, pues se realiza a través de aquí, ¿veis? A través del XSI, Chema Location, nos indica, pues, dónde está ese fichero XSD. 178 00:18:00,650 --> 00:18:03,250 recordar, en los otros fichajes 179 00:18:03,250 --> 00:18:05,849 la extensión era DTD y esta es la extensión 180 00:18:05,849 --> 00:18:07,529 de XMLHema 181 00:18:07,529 --> 00:18:09,609 son extensión .XSD 182 00:18:09,609 --> 00:18:11,930 nos queda 183 00:18:11,930 --> 00:18:13,049 la documentación del esquema 184 00:18:13,049 --> 00:18:16,029 voy un poquito más rápido, se me va yendo la hora 185 00:18:16,029 --> 00:18:17,950 en cuanto a la documentación del esquema 186 00:18:17,950 --> 00:18:18,950 decir que 187 00:18:18,950 --> 00:18:21,910 cuando queremos poner 188 00:18:21,910 --> 00:18:23,369 comentarios no son persistentes 189 00:18:23,369 --> 00:18:25,930 entonces para generar persistencia en los comentarios 190 00:18:25,930 --> 00:18:27,650 se crearon una serie de puertas de etiquetas 191 00:18:27,650 --> 00:18:29,430 como son anotación y documentario 192 00:18:29,430 --> 00:18:46,809 ¿Veis? Y AppInfo. Luego, es como un ejemplo, ¿veis? Aquí ha metido anotación para indicar, pues, luego ya dentro, pues, tanto el módulo, la fecha de creación, autor, ¿veis? No deja de ser nada más que una anotación de documentación. O incluso AppInfo con un texto de ayuda, ¿vale? 193 00:18:46,809 --> 00:19:13,539 Por último, las herramientas de creación y validación, pues las tenéis aquí, aparecen también en el aula virtual. Esto sería todo en cuanto a la presentación. Decir que en esta presentación está todo lo que aparece en el aula virtual en el tema 4 sería lo correspondiente a esta presentación.