Saltar navegación

Activa JavaScript para disfrutar de los vídeos de la Mediateca.

Definición de esquemas y vocabularios en XML. Parte3 - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 30 de enero de 2025 por Francisco J. G.

70 visualizaciones

Definición de esquemas y vocabularios en XML. Parte3

Descargar la transcripción

Si tú pones el hashtag Include y todas las declaraciones serán visibles. 00:00:05
Ignore nos va a decir que esas partes o declaraciones serán ocultas. 00:00:11
Aquí tenemos un ejemplo de Include y de Ignore. 00:00:16
Tenemos el Octave con el elemento RAID que sea documento. 00:00:19
Luego tenemos el Include, que veis que lo genera con corchetes. 00:00:22
Y el Include nos está diciendo que incluya estas dos. 00:00:26
¿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. 00:00:30
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. 00:00:44
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. 00:00:54
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. 00:01:10
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. 00:01:27
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. 00:01:46
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. 00:02:00
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. 00:02:22
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. 00:02:36
¿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. 00:02:55
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. 00:03:09
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. 00:03:27
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. 00:03:49
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. 00:04:01
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í. 00:04:13
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. 00:04:27
Aquí tenemos un ejemplo, ¿veis el ejemplo? Un ejemplo sencillito en el que tenemos el XMLHM que primero pone el elemento raíz, 00:04:51
que siempre es el mismo, y dentro ha metido nada más que un elemento. ¿Cómo llamamos al elemento? 00:05:00
Ahora, tanto para el nombre, para el tipo, etc., ya no era una sentencia propiamente dicha, una etiqueta, como era en los DTD, 00:05:06
sino que ahora son atributos del propio elemento. 00:05:15
Entonces, para tener un nombre, el elemento le pone el nombre name. 00:05:19
Y entre comillas dobles indica el nombre del elemento. 00:05:24
Y para el tipo le pone type. 00:05:26
Y le pone entre comillas dobles también el tipo. 00:05:29
Es decir, que el tipo va con el prefijo xs. 00:05:32
Como estamos diciendo que hemos creado un elemento, 00:05:36
en este xmlchema hemos creado un elemento llamado alumno 00:05:38
y que es de tipo extreme. 00:05:41
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. 00:05:43
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. 00:05:58
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. 00:06:22
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í. 00:06:35
más componentes de fechas como puede ser el año gregoriano, mes de un año, día de un mes, bueno, infinidad. 00:06:52
Otros tipos comunes serían el representar una urni o identificadores de lenguaje. 00:07:00
Aquí tenemos, por ejemplo, veis un ejemplo que aparece aquí, sería este que está flanqueado con el Chema 00:07:07
y tenemos dentro un elemento, el elemento le ha llamado, le llama evento y nos indica que dentro del elemento evento 00:07:12
va a tener todos estos elementos, como son mes-año, año, día-mes, día-mes, enlace y idioma. 00:07:20
Y además, a cada uno de ellos le pone el correspondiente tipo en función de lo que es cada cosa. 00:07:28
El año, mes del año, el año, día del mes, etc. 00:07:33
Si veis, todo esto lo ha englobado dentro de Complex Type, que es una etiqueta que nos va a indicar un tipo complejo. 00:07:38
¿Por qué? Porque esto es un tipo complejo, es como si fuera una estructura en C. 00:07:46
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í. 00:07:49
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. 00:08:10
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í. 00:08:30
¿Veis? Todos los elementos van en el riguroso orden que aparecen aquí debido a que tiene la sentencia sequence. 00:08:39
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? 00:08:48
¿Cómo se simulan en un fichero XSD? 00:08:57
En un fichero XSD, que sería el XMLHema, 00:09:01
va a tener que el ID se va a referenciar, 00:09:06
fijaos, como en un tipo XS, dos puntos, ID. 00:09:09
En cuanto al uso, veis aquí que hay otro atributo, 00:09:13
en cuanto a, bueno, no he indicado antes 00:09:17
cómo generar un atributo dentro de un elemento en XMLHema. 00:09:19
Entonces, un atributo se genera, pues, muy fácil, 00:09:24
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. 00:09:26
fijaos ha puesto useRequired 00:09:51
fijaos el ejemplo 00:09:54
la otra forma ha puesto pues el usuario 00:09:56
que era el nombre del elemento 00:09:59
tiene requerido pues el 00:10:00
propio atributo y es de tipo id 00:10:02
y le pone u que no sea numérico 00:10:04
como pasaba la otra vez 00:10:06
el id ref pues exactamente 00:10:07
lo mismo lo que pasa es que ahora el tipo es 00:10:10
xs dos puntos id ref 00:10:12
en cuanto a entity 00:10:14
pues tendríamos que llamar 00:10:16
xs dos puntos entity 00:10:18
en cuanto a una entidad dentro del propio fichero DTD 00:10:20
y luego notación, pues como si fuera notación 00:10:30
pues también como XS2.notation 00:10:32
y luego en cuanto a NM token 00:10:35
pues también tendríamos que es de tipo XS NM token 00:10:37
va a hacer lo mismo que hacían 00:10:41
tanto entidad, notación y NM token en un DTD 00:10:44
Tipos de datos predefinidos en XSD. 00:10:51
Los tipos de datos predefinidos en XSD, bueno, aquí se ve el ejemplo. 00:10:54
Tenemos un elemento que se llama persona. 00:10:59
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. 00:11:02
¿Vale? Pues vaya en ese orden. 00:11:10
Cada uno de los elementos son nombre, edad, fecha de nacimiento y edad de registro. 00:11:11
Y cada uno de ellos tiene un tipo distinto. 00:11:14
No tiene más. 00:11:17
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. 00:11:17
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. 00:11:31
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. 00:11:38
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. 00:12:00
esto se hace a través de estas de las facetas 00:12:20
o a través de lo que se llama el XS 00:12:22
dos puntos restricción, veis 00:12:24
aquí tenemos dentro el simple 00:12:26
decir que, no lo he dicho antes, pero hay 00:12:27
simple type, simple type y 00:12:30
complex type 00:12:32
y dentro de él podemos añadir 00:12:34
una restricción, mira cómo puedo añadir 00:12:36
la restricción, la restricción la he añadido 00:12:38
a través de esta etiqueta 00:12:40
que sería XS dos puntos restricción 00:12:42
una vez que ha generado 00:12:44
las dos etiquetas de restricción 00:12:46
indicando sobre qué tipo va a actuar, que es de tipo entero, 00:12:47
pues dice cuál es la restricción en MinInclusive y ManInclusive, 00:12:52
que nos está diciendo que el valor vaya entre 18 y 65 00:12:58
y solo cumplirán aquellos que estén dentro de esos dos valores. 00:13:01
Si veis, en cuanto a esas facetas, 00:13:07
pues podemos utilizar tanto Length, MinLength, MaxLength, 00:13:10
poner una enumeración o incluso pues espacios en blanco 00:13:13
como preserve, replace 00:13:18
hay muchas posibilidades. También hablar de los elementos 00:13:22
para hacer patrones. Un elemento para hacer patrones son esa tabla que aparece aquí 00:13:26
en el que, bueno, lo habréis visto a lo mejor en otros lenguajes de programación 00:13:30
en el que, bueno, pues está hacer patrones para indicar 00:13:34
por ejemplo qué tipo de cadenas de texto 00:13:38
puede poner en función de un patrón que nosotros pongamos en el propio XML de Chema. 00:13:41
Esto le indicaría que sea una letra mayúscula, que sea una letra minúscula, 00:13:48
que sean dígitos decimales, que sea un carácter decimal, etc. 00:13:51
Y ahora veremos aquí muchas más facetas para tipos de datos, 00:13:55
como Mixman, Total Digits, Fracción Digits, 00:14:00
nos está diciendo el número total de dígitos que va a tener, 00:14:03
el número máximo de fin de males, patrones, etc. 00:14:06
Aquí tenemos un ejemplo para que veamos todo esto que he comentado 00:14:13
un poco deprisa. 00:14:16
Si veis aquí ha generado una restricción, ¿lo veis? 00:14:18
Una faceta, la restricción de tipo string, ¿la ves? 00:14:20
Y dentro, ¿qué le ha añadido? 00:14:24
La restricción es que la longitud del valor dentro del elemento código 00:14:26
de esa cadena tiene que ser máximo de 6, ¿lo veis? 00:14:33
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. 00:14:35
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, 00:14:45
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. 00:14:52
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. 00:15:03
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. 00:15:17
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? 00:15:26
que el total de dígitos de todo el número tiene que ser 6. Por ejemplo, este lo cumpliría. 00:15:42
Si pusiéramos 0,012345, ya tendría 7 dígitos y, por tanto, no valdría. 00:15:48
Y que la fracción de dígitos, la fracción decimal, ¿veis? Tiene 2, pues que se cumpla que sean 2. 00:15:54
Por tanto, elementos de lenguaje en XMLChema, pues tenemos que tenemos en la raíz, que era el XChema, 00:16:02
luego los tipos de datos complejos y simples, con el complex type, con el simple type, 00:16:09
restricción o facetas para indicar 00:16:13
pues que sobre un 00:16:16
elemento base pues indicar 00:16:18
qué tipo de restricción va a tener 00:16:19
el group que permite nombrar agrupaciones 00:16:21
de elementos, no lo hemos visto pero también se puede utilizar 00:16:24
para agruparlos, sequence que va a construir 00:16:26
elementos complejos mediante una 00:16:28
enumeración en el que van en un estricto 00:16:30
orden, choice que representa alternativas 00:16:32
tampoco lo hemos visto pero 00:16:34
nos hace cuenta pues como si fuera una alternativa 00:16:35
de un sort o una 00:16:38
o exclusiva 00:16:40
contenido mixto 00:16:41
que permite mezclar texto con elementos 00:16:44
el load que representa 00:16:46
todos los elementos en cualquier orden 00:16:47
todas esas no las hemos visto pero bueno, más que hacer referencia 00:16:49
a ellas que deciros que existen 00:16:52
en cuanto al tipo de datos 00:16:54
simple, ya lo hemos dicho anteriormente, también se pueden 00:16:55
crear tipos de datos simple basados en listas de valores 00:16:57
utilizando el atributo simple type 00:16:59
o el complex type que indicaría 00:17:01
una agrupación o como si fuera una estructura de datos 00:17:03
¿vale? 00:17:06
Otro ejemplo en el que nos indica un elemento llamado edad, que dentro tiene una restricción para los enteros positivos. 00:17:06
¿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. 00:17:20
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. 00:17:27
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. 00:17:40
recordar, en los otros fichajes 00:18:00
la extensión era DTD y esta es la extensión 00:18:03
de XMLHema 00:18:05
son extensión .XSD 00:18:07
nos queda 00:18:09
la documentación del esquema 00:18:11
voy un poquito más rápido, se me va yendo la hora 00:18:13
en cuanto a la documentación del esquema 00:18:16
decir que 00:18:17
cuando queremos poner 00:18:18
comentarios no son persistentes 00:18:21
entonces para generar persistencia en los comentarios 00:18:23
se crearon una serie de puertas de etiquetas 00:18:25
como son anotación y documentario 00:18:27
¿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? 00:18:29
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. 00:18:46
Idioma/s:
es
Materias:
Informática
Niveles educativos:
▼ Mostrar / ocultar niveles
  • Formación Profesional
    • Ciclo formativo de grado básico
      • Primer Curso
      • Segundo Curso
    • Ciclo formativo de grado medio
      • Primer Curso
      • Segundo Curso
    • Ciclo formativo de grado superior
      • Primer Curso
      • Segundo Curso
Autor/es:
Francisco J. González Constanza
Subido por:
Francisco J. G.
Licencia:
Todos los derechos reservados
Visualizaciones:
70
Fecha:
30 de enero de 2025 - 12:19
Visibilidad:
Público
Centro:
IES CIFP a Distancia Ignacio Ellacuría
Duración:
19′ 15″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
352.51 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid