Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Definición de esquemas y vocabularios en XML. Parte1 - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
Definición de esquemas y vocabularios en XML
Comenzamos con definición de esquemas y vocabularios en XML. ¿Alguien puede decirme de vivo si ve la presentación? Es que ahora mismo no veo la pantalla.
00:00:07
Perfecto, vale, pues empezamos. Definición de esquemas y vocabularios en XML. Hasta los temas anteriores pudimos ver cómo se estructuraba un fichero XML y que estaba formado por un prólogo y el ejemplar.
00:00:24
Pero luego tenía la definición de XML, qué versión, la codificación, con el encoding, con el UTF-8, que es de unicode, de cada carácter con 8 bits, está la non, que nos indicaba si dependía de otro recurso externo, cuando se le ponía yes, lógicamente no dependía, luego veremos que cuando dependa de un DTD, que es lo que vamos a ver, va a haber que ponerle no,
00:00:40
porque, lógicamente, sí va a depender de un documento externo, y luego la declaración del tipo de documento con el dot type.
00:01:09
Vimos también el ejemplar que contenía los datos del documento que se quiere procesar.
00:01:15
¿Qué teníamos? Pues que en un fichero XML, muy importante, que hubiera un elemento de raíz único,
00:01:20
que hubiera una estructura jerárquica donde en esa jerarquía no hubiera elementos entrelazados,
00:01:26
sino que solo unos dentro de otros, como una estructura de árbol.
00:01:33
Y luego, elementos secundarios, como podían ser, pues, atributos y otros elementos. Bien, esto es lo que teníamos o sabíamos de XML. Ahora podemos saber también que estos documentos básicos, pues, estaban incompletos.
00:01:37
podemos nosotros definir una serie de reglas o de restricciones a un documento XML en cuanto a la estructura de cómo se debe configurar o cómo se debe escribir
00:01:50
gracias a usar unos elementos como son los DTDs o los XML Exchemas.
00:01:59
Veremos primero los DTDs y posteriormente hablaré de los XML Exchemas.
00:02:09
En cuanto a cada uno de los dos métodos, tenéis uno de los ejercicios de la práctica es de DTDs y el otro es de XML de chivas.
00:02:15
Bien, partes principales para la declaración de un documento de un DTD para definir esas restricciones o características, pues tenemos que tanto declarar dicho documento de DTD como definirlo.
00:02:26
En cuanto a la declaración, pues, sería, pues, lo primero deciros como principio que un documento de ETD no tiene una estructura tipo XML. Esa es la diferencia, una de las diferencias fundamentales con XML, Chema, en el que el propio documento donde aparecen las reglas tiene una estructura de XML, mientras que en el caso de ETD no lo es.
00:02:40
Entonces, toda esa regla, toda esa estructura, no se pone ni el orden, etc., será la declaración. En cuanto a la definición, ¿qué será la referencia dentro del fichero XML a ese propio documento DTD? ¿Dónde se encuentra ese fichero .dtd?
00:03:05
Bien, aquí tenemos el formato general de una declaración. Bien, aquí tenemos, esto de aquí arriba es un DTD y esto de aquí abajo es el fichero XML. Entonces, este fichero XML tiene que cumplir las reglas que tenga su DTD. ¿Y cómo le llamamos a ese DTD o cómo lo definimos?
00:03:21
a través de, veis aquí, estos serían los dos formatos, .type, nombre del ejemplar,
00:03:39
como se llama, aquí en este caso se llama biblioteca, .logsystem y la URI al DTD.
00:03:46
Lógicamente el DTD es un fichero con extensión .dtd.
00:03:51
La otra opción es .type con nombre del ejemplar, public y un ID público y URI.
00:03:57
Y esto sería para el caso de que la URI no encontrara ahí o hubiera otra opción por encontrar el DTD.
00:04:03
Con respecto a la función y los tipos de DTDs, en cuanto a funciones, un DTD va a definir unas reglas del documento XML.
00:04:14
Esas reglas, ¿cuáles van a ser?
00:04:24
Tipos de elementos que va a tener, tipos de atributos, cuantas veces, restricciones del documento
00:04:25
Y valores por defecto y notaciones. En cambio, los DTDs vamos a tener dos tipos. Los DTDs internos, que irán dentro del fichero XML, pues en la cabecera, o el externo, en el que hará referencia, como hemos visto anteriormente, a un documento que sea externo.
00:04:31
En cuanto al subconjunto interno, si lo veis, aquí lo localiza el propio DTD, veis que esta estructura no tiene una estructura de tipo XML, es otro tipo de estructura diferente, pero veis que está introducido dentro de todo el fichero XML.
00:04:48
¿Y dónde lo introduce? Lo introduce justamente entre estos dos corchetes. ¿Lo veis? Aquí, entre estos dos corchetes, mete el DTD. La ventaja facilita la personalización del documento y el procesamiento se procesa antes que el subconjunto externo.
00:05:04
Entonces, este sería el interno y luego tenemos el externo. Ahora, este DTD está fuera y se llama, pues como hemos visto anteriormente, a través de su URL. Características, pues que las declaraciones no están almacenadas en un fichero con extensión .dtd y que permite compartir reglas entre múltiples documentos XML. ¿Por qué? Porque de este DTD podrían tirar varios documentos XML solo haciendo referencia al mismo.
00:05:19
Requisitos, documento de XML debe declarar que no es autónomo, lo que hemos visto, está en la non, y que la URI es necesaria para localizar el DTD.
00:05:47
Ejemplo de declaraciones, las dos declaraciones, veis con el nombre del ejemplar, el system y luego el propio, la URI al DTD.
00:05:57
Y aquí, en el caso de public y el ID público, esto es para identificar, el ID público es para ayudar al procesador de XML a encontrar una URI alternativa en el caso de que no encuentre esta.
00:06:06
En el marcado de documentos, en el propio DTD, va a describir la estructura del documento, cómo va a ser, qué elementos va a tener, con etiqueta de apertura, de cierre, su contenido y la estructura jerárquica.
00:06:19
Los elementos que forman van a formar un árbol, ya hemos dicho, jerarquizado, en el que sus elementos no pueden estar entrelazados.
00:06:35
Se puede anidar, pero no entrelazar. Vamos a tener tanto elementos que en el DTD se vayan a llamar con este símbolo de exclamación como element y luego veremos también cómo se definen los atributos.
00:06:41
Cuando queremos meter un elemento dentro del DTD, pues lo hacemos a través de Element. Cuidado con la diferencia entre elementos y atributos. Los elementos, el orden es muy importante. Eso quiere decir que el elemento, si tú defines como aparece aquí, primero el elemento título, luego el elemento autor y luego el elemento género, estos tres elementos deben aparecer en ese orden en el XML, si no te lo va a dar mal.
00:07:01
¿Qué quiere decir? Fijaos, este es el mismo DTD, pero aquí interno, aquí externo.
00:07:26
En el interno está diciendo, pues, que el elemento título primero, luego el autor y luego el género, dentro del elemento libro.
00:07:31
Ahora vemos que estos paréntesis indican que estos tres sub-elementos tienen que estar dentro del elemento libro.
00:07:38
Veis que luego el fichero XML, la estructura del mismo tiene un elemento libro, ¿lo veis?
00:07:44
Y luego dentro tiene tres sub-elementos, son título, autor y género.
00:07:50
Si ponemos, por ejemplo, autor, luego título, luego género, eso te lo va a dar mal. ¿Por qué? Porque los elementos cuando se definen el orden es importante y es el orden que tú estableces en el propio DTD. En cambio, los atributos no importa el orden de los mismos. Si tú definas los atributos, bueno, ya veremos que atributos se definen a través de ATT List, con la exclamación y ATT List, y estos son los atributos, ID e idioma. Si veis, estos pueden ir en distinto orden, no pasa nada.
00:07:54
¿Por qué, cómo o cuándo usar un atributo o cuándo usar un elemento? Usar un elemento, pues cuando contiene subestructuras, cuando el tamaño es considerable y cuando el valor cambiante es frecuente. Cuando el valor cambiante no es frecuente y cuando el tamaño es pequeño y cuando los valores son limitados y predefinidos, utilizaríamos un atributo.
00:08:28
En cuanto a los espacios de nombre, ya lo vimos en los capítulos anteriores, que servía para diferenciar elementos y atributos de distintos vocabularios, que compartían el mismo nombre y queríamos que no hubiera ese solapamiento.
00:08:51
¿Cómo se hacía? Se hacía a través del XML NS y se ponía la URI y se podía utilizar un prefijo, como aparece aquí, REV, que es lo que nos indica que todos aquellos que aparezcan con dicho prefijo se van a diferenciar dándole ese espacio de nombres.
00:09:07
Con respecto a qué es el URI en ESPACE, la localización del vocabulario del espacio de nombres al que se hace referencia.
00:09:25
La ventaja de uso de prefijos, como vemos, que indica a qué vocabulario pertenece el elemento o el atributo y facilitan la interoperabilidad entre aplicaciones XML. Podemos mezclar XML que tengan iguales atributos o elementos sin necesidad de que eso vea error.
00:09:33
Entonces, ya vemos la introducción, el meollo de este tema, que sería la introducción a los DTDs, cómo generar un DTD.
00:09:49
En él hay que especificar dónde aparecen los elementos, contenido y atributos permitidos y garantizar que los datos cumplen las restricciones establecidas.
00:09:59
Realmente, no es más que un fichero de restricciones y reglas de cómo escribir código XML.
00:10:06
Ventajas, especificar la estructura del documento, claro, pero está definiendo ya una jerarquía, cómo hacerla, restricciones de integridad referencial, lo veremos, vamos a tener en cuanto a ID y IDREF, lo veremos luego, como referencias internas, abstracción con entidades, que lo veremos también, y la inclusión de documentos externos.
00:10:16
Aquí tenemos los inconvenientes. Primero, que este DTD no tiene una sintaxis XML. Si veis esta sintaxis XML, no se parece en nada a esta otra. La falta de soporte para espacios de nombres. Limita su uso en documentos complejos.
00:10:34
En cuanto a limitaciones en los tipos de datos, veremos cómo XMLX Chema le da 100 vueltas a DTD en cuanto a lo que es los tipos de datos. Tendremos muchos tipos de datos y no solo eso, sino que podremos definir dentro de los dominios de cada tipo de datos, definir cuáles van a ser sus intervalos que estarán permitidos o no.
00:10:54
En cambio, aquí vamos a tener una serie de tipos de datos muy reducida y sus límites de dominio no lo vamos a poder establecer. El orden estricto de elementos, ya lo hemos dicho anteriormente en cuanto a los elementos, si los pones en un sentido, no se pueden alterar.
00:11:14
No admite claves complejas, no pueden formar claves combinando varios atributos o elementos. Y luego la inmotoridad del DTD. ¿Por qué? Porque no se pueden crear nuevos vocabularios después de su definición.
00:11:32
Una ubicación del ETD, pues el ETD va a tener definición interna y definición externa, ya lo hemos visto anteriormente.
00:11:46
¿Cómo se hacía la definición interna? Se introducía dentro del dot type entre corchetes y la externa con una llamada, pues se suburre a través del dot type con el system.
00:11:55
Tipos de elementos terminales. Vamos a empezar con los primeros elementos que podemos introducir en el ETD, las primeras reglas.
00:12:06
Y es en base a los elementos que van a hacer referencia a cada uno de los elementos que va a constar el fichero o estructura XML. Estas se declaraban con esta estructura, con el propio símbolo de exclamación y element, y el contenido que van a tener esos elementos pueden ser de estos tres tipos.
00:12:14
O bien anti, esto que aparece aquí, una A, es el nombre del elemento, ¿vale? Entonces, no está diciendo, tú puedes generar un elemento, le llamamos A, el elemento se va a llamar A, le puedes generar en tus fichas XML y no va a contener nada, anti.
00:12:37
O va a contener cualquier cosa. Fijaos en cuanto a tipo de datos, lo poco específico que es un DTD. Y luego, PCData le indica que son como si fuera un string, una cadena de caracteres.
00:12:54
Fijaos aquí el ejemplo, ha generado en el DTD un elemento llamado alumno y le ha puesto pcdata, le ha puesto entre paréntesis, esto indica que solo puedes contener cadenas de texto.
00:13:11
Cuando genera el archivo xml, utiliza el elemento alumno con un contenido que es una cadena de texto.
00:13:27
Definición de las ramas en DTD.
00:13:38
de la definición de tipos
00:13:39
vuelvo aquí aquí os sigo es que yo por lo menos
00:13:58
dejado escucharte y la pantalla no se mueve. Se ha quedado la cámara ahí al lado también, ¿eh?
00:14:10
¿Y ahora sí me veis? ¿Y se mueve? ¿Se mueve? No. Yo por la mano no. No se ve. No se ve.
00:14:14
Espera. Vamos a ver qué pasa. Pues sí la ve. ¿Eh? Yo sí la estoy viendo. Ahora sí.
00:14:21
Ahora sí. ¿La veis, no? Vale. Pues voy a compartirlo otra vez. ¿Veis la presentación?
00:14:29
¿Sí?
00:14:36
Sí
00:14:38
Vale, decídeme hasta dónde
00:14:39
te has quedado, cuando te has cortado
00:14:41
¿Hasta aquí?
00:14:44
¿Definición de tipo de documento de TV?
00:14:45
No, más para adelante
00:14:48
Dime, ¿para aquí?
00:14:49
Más, más, más
00:14:52
¿En la otra más?
00:14:54
Ahí está
00:14:57
No, en la anterior
00:14:58
Vale, aquí lo único que he dicho es
00:14:59
cómo se genera un elemento terminal
00:15:02
Los elementos terminales son
00:15:03
los elementos que va a tener el fichero xml entonces siempre lo vas a identificar con esta
00:15:05
sintaxis con exclamación element y vas a poner esto a será el nombre que le vas a dar al elemento
00:15:11
y luego si va y luego el tipo de dato del elemento que va a contener va a ser o que esté vacío en
00:15:19
cuyo caso no va a tener nada entre el elemento de la apertura y de cierre o que tenga cualquier
00:15:25
cosa con el eni o que tenga esto que aparece entre paréntesis que es el pcdata que indica que es una
00:15:32
cadena de texto. Aquí lo que ha hecho es que ha definido este elemento llamado alumno y de tipo
00:15:40
de texto, de tal manera que luego cuando hace un xml utiliza ese elemento alumno y le mete texto
00:15:44
dentro y por tanto pues está correcto. Luego elementos formados por otros elementos, esto sería lo que se
00:15:50
llama las ramas en dtd. Las ramas es cuando queremos que un elemento tenga subelementos, entonces aquí
00:15:56
Está diciendo, quiero que el elemento llamado A tenga dentro un elemento B y luego un elemento C y vayan en ese orden, ¿vale? Entonces, aquí si veis que hay un DTD interno, tendrá todos estos elementos, los ha creado, voy a repasarlo.
00:16:03
primero le ha llamado biblioteca el dt primero crea un elemento llamado biblioteca y ese elemento
00:16:19
veis que está utilizando la definición de rama dentro tendrá tener otro elemento el libro y un
00:16:26
elemento revista y van a ir en ese orden a continuación define el elemento libro y dice
00:16:31
que dentro del libro va a tener otros dos elementos que va a ser título seguido de
00:16:38
autor luego a continuación si veis está definiendo todo el árbol define el elemento revista
00:16:42
Y la revista dice que además tiene dos super-elementos dentro, uno título y luego edición.
00:16:49
Y luego ya lo único que le queda es decir que título, autor y edición van a tener como contenido cadenas de texto.
00:16:55
Si veis, vamos a repasar en el fichero XML qué hace para ver si cumple con ese DTD.
00:17:03
El primero dice que el elemento raíz, efectivamente, es biblioteca, que es ese elemento,
00:17:08
y que dentro del elemento raíz tiene que haber un libro y una revista.
00:17:13
¿Y lo hay? Sí. Hay un libro, apertura y cierre, y una revista, apertura y cierre. ¿Lo veis? Luego, dentro del libro tiene que haber un título y un autor. Y además, ese título y ese autor son dos cadenas de texto. Y efectivamente, pueden llevar una cadena de texto dentro. Y van en ese orden, título y luego autor. Si ponemos autor y luego título, nos daría incorrecto.
00:17:16
Y luego en revista nos está diciendo que también tiene un título y una edición, ¿lo veis? Y estarían aquí, con lo cual el fichero XML es correcto en sus ramas, ¿lo veis? Si veis aquí no hay elementos entrelazados, siempre la estructura es una estructura correcta de árbol.
00:17:35
A continuación vemos la cardinalidad de los elementos. Yo, si quiero que aparezcan, por ejemplo, dentro de un elemento sus elementos una o más veces, o cero más veces, o una, o solo una, o cero, pues tenemos lo que se llamaba la cardinalidad de esos elementos.
00:17:54
Entonces, la cardinalidad viene definida por esta interrogación, por este más, por este asterisco y por esta barra vertical. Si tenemos que es una interrogación de cierre, este nos va a decir que o aparece una vez o no aparece. Esas son las dos posibilidades del mismo.
00:18:12
¿Veis aquí? Teléfono, ha creado el elemento teléfono y dentro del elemento teléfono va a tener un elemento trabajo y un elemento casa, en ese orden. Pero además, el elemento trabajo tiene la posibilidad, debido a la cardinalidad que le hemos puesto, de que o aparezca o no aparezca. O sea, que yo podría poner en el archivo XML, por ejemplo, teléfono con solo la casa sin que aparezca trabajo, porque he puesto esta cardinalidad, la posibilidad de que aparezca o no aparezca.
00:18:28
En cambio, el más sería que por lo menos aparezca una vez. O sea, que puede aparecer. Mínimo tiene que aparecer una vez. Si no aparece ninguna, da error. Mínimo aparecer una vez o más veces. Aquí lo que ha hecho es que provincia que tiene un sub-elemento nombre y luego a continuación tiene estos dos sub-elementos que son código postal y ciudad y además le pone la cardenalidad con paréntesis a los dos.
00:18:52
O sea que provincia va a tener siempre un nombre, que va a aparecer siempre, ¿lo veis? Y luego va a tener código postal y ciudad, puede aparecer o una o más veces, ¿vale? Pero si no aparece, sí va a dar error. Si veis, aparece código ciudad y código ciudad dos veces. Podría aparecer 30 veces, si queremos, y la ponemos. ¿Por qué? Porque ha puesto esta cardinalidad en el que tiene la opción de poder aparecer una o más veces.
00:19:16
En cambio, el asterisco nos indica que o cero o más veces. Si veis aquí, en provincia ha puesto dentro, tiene que tener un subelemento a nombre y dentro un subelemento que le ha puesto además entre paréntesis, tanto código postal y ciudad, que aparezcan o cero o más veces.
00:19:40
¿Veis? Esto estaría correcto. ¿Por qué? Porque nombre tiene que aparecer.
00:19:57
- Idioma/s:
- 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
- Ciclo formativo de grado básico
- Autor/es:
- Francisco J. González Constanza
- Subido por:
- Francisco J. G.
- Licencia:
- Todos los derechos reservados
- Visualizaciones:
- 113
- Fecha:
- 30 de enero de 2025 - 12:10
- Visibilidad:
- Público
- Centro:
- IES CIFP a Distancia Ignacio Ellacuría
- Duración:
- 20′ 01″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 369.11 MBytes