Saltar navegación

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

XML DTD - 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 26 de diciembre de 2020 por Amadeo M.

151 visualizaciones

Descargar la transcripción

Vamos a ver ahora los DTDs o la definición de tipo de documento. 00:00:00
Entonces, lo primero es cómo lo referenciamos en un documento XML. 00:00:07
Puede incluirse dentro del documento. 00:00:12
Dentro del documento XML indicamos DOCTYPE, el nombre que le queramos poner al DTD y las declaraciones, y lo cerramos de esta manera. 00:00:14
O podemos referenciarlo de forma externa, es decir, ponemos dentro de nuestros XML quién va a ser el DTD de referencia, ponemos su dirección, su identificador, su URI o cuál es su localizador de recurso y ya está. 00:00:24
¿De acuerdo? Cualquiera de estas dos opciones nos vale. 00:00:42
Si queremos ver un poco el ejemplo en una referencia externa, aquí tenemos un fichero que se llama marcadores.dtd, esta es la definición, el dtd del documento XML, 00:00:46
y dentro del documento XML definimos su etiqueta para indicar que es un documento XML 00:00:58
y después llamamos a doctype, marcadores, con el system y el nombre del fichero donde se almacena ese documento. 00:01:05
Y aquí escribiríamos el documento. Es la manera de poderlo hacer sin ningún problema. 00:01:13
Bueno, en el caso de que esté dentro, simplemente detrás de esto escribiríamos las etiquetas XML. 00:01:20
Vamos a ir viendo qué elementos tenemos. Vamos a ir viendo primero lo que son las declaraciones de entidades, que simplemente podemos definir una entidad con su nombre y su valor. 00:01:28
Pueden ser entidades de sistema, con lo cual iría la palabra System o Públicas, Public, ¿de acuerdo? Y esa es la parte más importante. 00:01:43
Vamos a ir definiendo elementos. 00:01:54
Por ejemplo, tenemos una etiqueta que se llama empty. 00:01:58
En este caso, nuestro documento, que llamamos ejemplo, tiene que tener un elemento ejemplo que no tenga nada, que esté vacío, que sea empty. 00:02:02
Con lo cual nos valdría tanto esta definición como esta de aquí, en el cual se abre y se cierra la etiqueta directamente. 00:02:12
Este nos daría error y este que dentro tiene esta información, que no corresponde, que también es información al fin y al cabo, también daría error. 00:02:20
Vamos a utilizar para comprobarlo nuestro Visual Studio Code y vamos a crear aquí nuestro ficherito. 00:02:31
voy a ponerlo más grande para que lo veamos mejor 00:02:42
y entonces pues nada 00:02:45
hemos definido nuestro DTD 00:02:47
y tenemos aquí nuestro ejemplo 00:02:48
a este Visual Studio Code 00:02:51
le he añadido una extensión 00:02:53
que es la extensión XML 00:02:55
esta de aquí 00:02:57
esta XML, que esta extensión 00:02:58
nos permite 00:03:01
comprobar que un documento 00:03:02
es válido, es decir, se corresponde 00:03:05
a una gramática determinada 00:03:07
bueno, pues 00:03:08
en este caso no da ningún error 00:03:11
imaginemos que ponemos ahora 00:03:13
ejemplo 00:03:15
sabemos que lo cierra automáticamente 00:03:17
y tampoco 00:03:19
aparece ningún error, pero vamos a 00:03:21
incluir algo de información dentro 00:03:23
inform 00:03:25
y vemos como ya automáticamente 00:03:26
nos ha marcado esto 00:03:29
en rojo, y nos dice 00:03:31
que el contenido 00:03:33
de ejemplo 00:03:35
debe ser, debe corresponderse 00:03:37
a empty 00:03:39
¿De acuerdo? Con lo cual, él se enfada inmediatamente y nos dice que esto es erróneo, tal y como habíamos mostrado ya en la página que estábamos viendo. 00:03:40
Bueno, así vamos a seguir con más etiquetas, vamos a por más ejemplos. 00:03:51
PCData, así entre paréntesis, PCData, indica que podemos escribir cualquier información dentro, cualquier texto dentro. 00:03:58
Entonces puede estar vacío, como es este caso, puede tener información, pero lo que no puede tener en ningún caso es dentro otras etiquetas. 00:04:12
¿De acuerdo? 00:04:23
Entonces PCData se dice texto, simplemente texto. 00:04:24
Any, lo que me dice Any es que puedo tener dentro lo que sea, cualquier tipo de información. 00:04:28
Puede estar vacía, puede haber texto o incluso puedo tener dentro etiquetas, ya las vemos aquí. 00:04:35
Etiqueta A, que empieza y finaliza. 00:04:42
La diferencia, por tanto, entre PCData y ENI es que PCData no permite etiquetar dentro y ENI sí. 00:04:47
Cuando tenemos una serie de elementos separados por comas, lo que quieren indicar es que vamos a tener estos elementos y además en el orden indicado. 00:04:55
este documento 00:05:07
vamos a pasarlo aquí arriba 00:05:09
vamos a llevarlo a nuestro fichero 00:05:11
para jugar con él y verlo 00:05:13
lo vamos a llevar aquí 00:05:15
vamos a cambiar esto de aquí 00:05:17
y ejemplo tiene que tener 00:05:19
tanto 00:05:22
el elemento A 00:05:23
como el B 00:05:25
y en ese orden primero el A y el B 00:05:26
y lo que si pueden estar es vacíos 00:05:28
en este momento ya vemos que no está dando errores 00:05:30
porque no hay ni A ni B 00:05:32
voy a cambiar de línea 00:05:34
para que lo veamos y voy a introducir 00:05:37
y como es vacío, pues ya directamente lo incluyo 00:05:39
sigue dándome error 00:05:43
y ahora voy a poner B 00:05:44
y vemos que inmediatamente 00:05:46
ya deja de tener errores porque están 00:05:48
los documentos y vacíos 00:05:50
por supuesto, podría intentar poner 00:05:52
algo en B y tal y daría error, ¿de acuerdo? 00:05:54
pero esto es lo que nos dice 00:05:57
si le cambiara el orden, si yo quitara 00:05:58
y lo pusiera así, también 00:06:01
nos daría problema porque no se mantiene 00:06:04
el orden estricto que nos dice el DTD correspondiente. Podemos indicar la barra O. Y en este caso 00:06:06
lo que dice es que tiene que contener uno de los dos elementos. O contiene A o contiene 00:06:20
B. Pero no puede contener los dos a la vez. O contiene A o contiene B. En este caso que 00:06:26
contiene los dos nos da error. Y en el caso de que no contenga a ninguno, pues también 00:06:32
nos da error 00:06:36
mucho interés tiene 00:06:38
cuando aparece 00:06:40
una interrogación detrás de uno de los elementos 00:06:42
porque indica que ese elemento 00:06:44
puede aparecer o no 00:06:46
pero solo una vez 00:06:49
es decir, en este caso 00:06:50
vamos a ir a nuestro ejemplo anterior 00:06:52
si yo pusiera en la B un interrogante 00:06:54
primero 00:06:56
vamos a ponerlo en el orden para que 00:06:58
esto 00:07:00
funcionaría 00:07:02
Esto, quitado b, funcionaría 00:07:03
Porque permite que no haya b 00:07:07
La interrupción es 0 o 1 00:07:09
Y por supuesto, si pongo dos veces b 00:07:12
Por ejemplo, esto daría error 00:07:17
Igual que si pongo dos veces a 00:07:20
¿De acuerdo? 00:07:21
Entonces, esto indica que hay que poner a 00:07:23
Y b se puede poner o no 00:07:27
Si aparece un asterisco 00:07:30
lo que indica es que puede no aparecer o aparecer tantas veces como se quiera 00:07:35
entonces entre 0 y n veces 00:07:41
aquí en este caso tengo a asterisco b 00:07:44
con lo cual a puede desde no aparecer hasta aparecer multitud de veces 00:07:48
y b tiene que aparecer obligatoriamente después de todas ellas 00:07:52
entonces bueno, pues aquí vemos varios ejemplos donde funciona 00:07:56
y uno que no funciona porque la b está delante de la a 00:07:59
más dice que tiene que aparecer ese elemento al menos una vez 00:08:02
pero puede aparecer muchas más 00:08:09
entonces en este caso A tiene que aparecer obligatoriamente una o varias veces 00:08:11
pero si no aparece, pues de error 00:08:17
por supuesto siempre en ese orden 00:08:19
y con paréntesis podemos hacer agrupaciones de este tipo 00:08:21
en este caso primero tiene que aparecer la A 00:08:25
y después puede aparecer o la A o la B 00:08:27
entonces en este caso 00:08:31
que es el que da error 00:08:34
pues nos está diciendo claramente 00:08:35
que aquí no A está la B 00:08:36
o en este caso 00:08:38
es un caso curioso 00:08:40
para poder poner en cualquier orden las cosas 00:08:41
le decimos 00:08:43
tiene que aparecer la A o la B 00:08:44
y después la B o la A 00:08:45
¿de acuerdo? 00:08:47
pues nos va a permitir 00:08:48
poner o una u otra 00:08:49
en cada caso 00:08:52
entonces 00:08:53
cualquiera de las dos no valdría 00:08:54
bueno 00:08:58
pues después continuamos 00:08:59
bueno, finalmente nos quedan los atributos 00:09:01
y los atributos 00:09:06
pues se definen 00:09:08
con esta sintaxis 00:09:09
en la cual ponemos menor admiración 00:09:11
hacia abajo 00:09:13
add list o lista de atributos 00:09:14
el nombre del elemento 00:09:17
el nombre del atributo 00:09:19
en el que está incluido 00:09:21
lo que vamos a definir 00:09:23
el tipo de atributo 00:09:24
y el valor inicial del atributo 00:09:26
si hubiera 00:09:27
Bueno, vamos a ir viendo ejemplos de las posibilidades que tenemos 00:09:28
¿Qué tipo de atributos tenemos? 00:09:33
Pues la primera de ellas es CDATA 00:09:35
Que en general significa que tiene caracteres, sin ningún tipo de restricción 00:09:37
En este caso tenemos un documento que se llama Ejemplo 00:09:41
Tiene un elemento Ejemplo que es empty, es decir, no tiene información dentro 00:09:44
Y una de esas atributos, el primer elemento de Ejemplo es Color 00:09:48
Que es CDATA y que es obligatorio, requerido 00:09:53
Ceata, por tanto, puede ser color, aunque no tenga información 00:09:57
O color amarillo, o color, en este caso, varios elementos dentro 00:10:03
Lo que no puede ser es ejemplo sin color 00:10:09
O ejemplo sabor dulce, pero sigue estando sin color 00:10:13
Esto daría error 00:10:17
Otra posibilidad que tenemos es NMToken 00:10:19
En el cual pueden ser atributos que solo contienen letras dígitas 00:10:22
y los caracteres, o punto, o guión, o subrayado, o dos puntos. 00:10:27
Entonces es similar al anterior, pero no admite, sobre todo, lo más importante es que no admite espacios. 00:10:33
Por tanto, esta podría ser válida, azul-guión marino podría ser válida, un número puede ser válido, 00:10:38
pero no podemos tener azul-espacio marino, o carácter del tipo de almohadilla. 00:10:45
nmtokens es lo mismo que nmtoken 00:10:52
pero varios de ellos 00:10:55
separados por espacios 00:10:57
por lo cual ahora si azul marino 00:10:58
separado por espacio 00:11:01
podría valer 00:11:03
también podemos tener un conjunto de valores 00:11:04
entonces podemos decir por ejemplo 00:11:06
que en la etiqueta 00:11:09
o en el elemento ejemplo 00:11:12
hay un atributo color 00:11:13
que puede tomar los valores azul 00:11:15
blanco o rojo 00:11:17
y que es obligatorio 00:11:19
Por ejemplo, en este caso, color o nada, o azul, lo que no podemos poner verde, puesto que no está en este grupo que hay aquí. 00:11:21
O puede ser de tipo ID, es decir, de tipo identificador, que debe ser único, es decir, no se puede repetir entre otros elementos o atributos. 00:11:30
Y además de ser único, tiene que empezar al menos con un valor alfabético. 00:11:41
Entonces, por ejemplo, aquí tenemos el libro cuyo código es L1, que es poema de Gil Gámez, o L2, que son los preceptos de TAP-HOP-DEP. 00:11:46
Si pusiéramos código igual a 1, pues esto daría error porque tiene que empezar con un número, no puede empezar con un número, tiene que empezar con una letra, o aquí donde se repite el identificador. 00:11:57
También podemos tener un valor atributo que sea una referencia a un ID ya existente de otro elemento 00:12:10
id ref, referencia a un ID 00:12:16
Por ejemplo, tenemos un libro que tiene códigos y un préstamo de esos libros 00:12:19
Ya tenemos el código L1 que corresponde a este poema 00:12:25
Y el libro L1 que lo ha prestado Numan Nigerio de este libro que existe 00:12:30
Si pusiéramos algo que no estuviera identificado, pues daría error 00:12:38
O referencia de varios ides, entonces L1, L2, o solo L1 00:12:43
Lo que no podemos poner es una referencia, algo que no existe 00:12:50
Además tenemos entity, que es un valor atributo de alguna entidad que ya estuviera definida en el DTD 00:12:54
Entities, de alguna de las entidades 00:13:00
Orientation, de alguna de las notaciones ya definidas 00:13:03
En cuanto a los valores iniciales de los atributos, pues pueden ser los siguientes 00:13:07
Required, que ya lo hemos visto, que simplemente significa que es obligatorio 00:13:12
En este caso la etiqueta color dentro de ejemplo tiene que existir 00:13:15
En este caso daría error 00:13:20
Implied, en el cual el atributo no es obligatorio y no se especifica ningún valor por defecto predeterminado 00:13:23
Con lo cual todos estos casos son válidos 00:13:31
Fix en el cual lo que ponemos es un valor fijo 00:13:34
El color siempre va a tener el color verde 00:13:39
Y entonces este sería válido y el color valdría verde 00:13:42
Y este el color valdría verde 00:13:45
Cualquier otra combinación fallaría 00:13:47
Y valor correspondiente en el cual definimos que color va a tener de momento el color verde 00:13:49
Si no lo ponemos tendrá el color verde 00:13:59
Si lo ponemos podemos cambiarlo por cualquier otro valor 00:14:01
Y con esto hemos visto todas las posibilidades que tenemos en DTD 00:14:05
En cuanto a definición de la estructura de un documento XML 00:14:08
Viendo sus entidades, sus notaciones, sus elementos y sus atributos 00:14:11
Idioma/s:
es
Autor/es:
Amadeo Mora
Subido por:
Amadeo M.
Licencia:
Dominio público
Visualizaciones:
151
Fecha:
26 de diciembre de 2020 - 18:40
Visibilidad:
Público
Centro:
IES CLARA DEL REY
Duración:
14′ 20″
Relación de aspecto:
1.78:1
Resolución:
1364x768 píxeles
Tamaño:
78.27 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid