Metalenguajes descriptivos Introduccin a SGML Eduardo Peis Universidad

  • Slides: 23
Download presentation
 Metalenguajes descriptivos: Introducción a SGML Eduardo Peis Universidad de Granada 27/11/2020 1

Metalenguajes descriptivos: Introducción a SGML Eduardo Peis Universidad de Granada 27/11/2020 1

SGML (ISO 8879 -1986) – Standard Generalized Markup Language n Punto de partida: la

SGML (ISO 8879 -1986) – Standard Generalized Markup Language n Punto de partida: la edición electrónica • El procesamiento de textos • WYSIWYG n Lenguajes de etiquetado • Procedimentales: Troff / Te. X / La. Te. X… • Descriptivos: SCRIBE / GML n SGML • Etiquetado generalizado n Separa formato de estilo n Independiente de plataformas y sistemas • Etiquetado descriptivo • Tipos de documentos • Independencia de los datos 27/11/2020 2

ELEMENTOS <Generic Identifier>. . . </Generic Identifier> <nombre>. . . . </nombre> <GI>. .

ELEMENTOS <Generic Identifier>. . . </Generic Identifier> <nombre>. . . . </nombre> <GI>. . . TEXTO (#PCDATA). . . </GI> <GI>. . . OTROS ELEMENTOS. . . </GI> <GI><GI 1>. . . TEXTO (#PCDATA). . . </GI 1></GI> <GI>. . . NADA. . . </GI> <mensaje> <autor>Eduardo Peis</autor> <texto>Este es un mensaje de inicio</texto> </mensaje> 27/11/2020 3

MODELO DE DOCUMENTO (document instance) <antologia> <poema><titulo>La canción del pirata</titulo> <estrofa> <linea>Con diez cañones

MODELO DE DOCUMENTO (document instance) <antologia> <poema><titulo>La canción del pirata</titulo> <estrofa> <linea>Con diez cañones por banda</linea> <linea>viento en popa a toda vela</linea> <linea>no corta el mar sino vuela</linea> <linea>un velero bergantín</linea> </estrofa> <linea>Bajel pirata le llaman</linea> <linea>por su bravura el temido</linea> <linea>por todo el mar conocido</linea> <linea>del uno a otro confín</linea> </estrofa> </poema> <!-- más poemas aquí --> </antologia> 27/11/2020 4

MINIMIZACIÓN <antologia> <poema><titulo>La canción del pirata <estrofa> <linea>Con diez cañones por banda <linea>viento en

MINIMIZACIÓN <antologia> <poema><titulo>La canción del pirata <estrofa> <linea>Con diez cañones por banda <linea>viento en popa a toda vela, <linea>no corta el mar sino vuela <linea>un velero bergantín <estrofa> <linea>Bajel pirata le llaman <linea>por su bravura el temido <linea>en todo el mar conocido <linea>del uno al otro confín. <poema><titulo>La esfera rota <!-- más poemas aquí --> </antologia> 27/11/2020 5

DOCUMENT TYPE DEFINITION (DTD) Aquí aparecería el denominado “prólogo” SGML <!DOCTYPE antologia [ <!ELEMENT

DOCUMENT TYPE DEFINITION (DTD) Aquí aparecería el denominado “prólogo” SGML <!DOCTYPE antologia [ <!ELEMENT antologia - - (poema+)> <!ELEMENT poema - O (titulo? , estrofa+)> <!ELEMENT titulo - O (#PCDATA) > <!ELEMENT estrofa - O (linea+) > <!ELEMENT linea - O (#PCDATA) > ]> Aquí vendría un documento etiquetado (document instance) según el anterior DTD 27/11/2020 6

ACLARACIONES (DECLARATION) DE ELEMENTOS <!ELEMENT pareado O O (linea 1, linea 2)> <!ELEMENT (linea

ACLARACIONES (DECLARATION) DE ELEMENTOS <!ELEMENT pareado O O (linea 1, linea 2)> <!ELEMENT (linea | linea 1 | linea 2) O O (#PCDATA) > <!ELEMENT poema - O (titulo? , (estrofa+ | pareado+ | linea+) ) > <!ELEMENT poema - O (titulo? , (estrofa | pareado | linea)+ ) > 27/11/2020 7

USO DE PARÉNTESIS EN LOS MODELOS DE CONTENIDO <!ELEMENT estribillo - - (#PCDATA |

USO DE PARÉNTESIS EN LOS MODELOS DE CONTENIDO <!ELEMENT estribillo - - (#PCDATA | linea+)> <!ELEMENT poema - O (titulo? , ( (linea+) | (estribillo? , (estrofa, estribillo? )+ ) )) > 27/11/2020 8

EXCEPCIONES (EXCLUSIÓN E INCLUSIÓN) AL MODELO DE CONTENIDO <!ELEMENT (nota | variante) - -

EXCEPCIONES (EXCLUSIÓN E INCLUSIÓN) AL MODELO DE CONTENIDO <!ELEMENT (nota | variante) - - (#PCDATA)> <!ELEMENT poema - O (titulo? , (estrofa+ | pareado+ | linea+) ) +(nota | variante) > <!ELEMENT titulo - O (#PCDATA) -(note | variant) > <!ELEMENT (note | variant) - - (#PCDATA) -(note | variant) > 27/11/2020 9

ATRIBUTOS <poema id="P 1" estado="borrador">. . . </poema> DECLARACIONES DE ATRIBUTOS <!ATTLIST poema id

ATRIBUTOS <poema id="P 1" estado="borrador">. . . </poema> DECLARACIONES DE ATRIBUTOS <!ATTLIST poema id ID #IMPLIED estado (borrador | revisado | publicado) “borrador” > <!ATTLIST poema estado (borrador | revisado | publicado) #REQUIRED> <!ATTLIST poema id ID #IMPLIED estado (borrador | revisado | publicado) #CURRENT 27/11/2020 > 10

<!ATTLIST poema id ID #IMPLIED > ATRIBUTOS <POEMA id="La canción del pirata"> Texto del

<!ATTLIST poema id ID #IMPLIED > ATRIBUTOS <POEMA id="La canción del pirata"> Texto del poema con identificador "La canción del pirata" </POEMA> <POEMA id="P 40"> Texto del poema con identificador "P 40" </POEMA> <POEMA> Este poema no tiene identificador </POEMA> 27/11/2020 11

ATRIBUTO REFERENCIA <!ELEMENT refpoema - O EMPTY> <!ATTLIST refpoema target IDREF #REQUIRED > .

ATRIBUTO REFERENCIA <!ELEMENT refpoema - O EMPTY> <!ATTLIST refpoema target IDREF #REQUIRED > . . . el poema de Espronceda La canción del pirata <refpoema target="La canción del pirata">. . . 27/11/2020 12

<!ENTITY lcp "La canción del pirata"> El poema &lcp; es mú gonico ENTIDADES <!ENTITY

<!ENTITY lcp "La canción del pirata"> El poema &lcp; es mú gonico ENTIDADES <!ENTITY Capítulo Dos SYSTEM "/mis doc~/sgml/cap 2. txt"> <!ENTITY arroba “@"> <!ENTITY arroba ". " > … No era posible que a. uásemos. . . <!DOCTYPE texto [ <!ENTITY % elemento-epr “<!ELEMENT epr (#PCDATA)>”> %elemento-epr; ]> 27/11/2020 13

DECLARACION DE TIPO DE DOCUMENTO <!DOCTYPE mi 2 SYSTEM "mi 2. dtd" [ <!ENTITY

DECLARACION DE TIPO DE DOCUMENTO <!DOCTYPE mi 2 SYSTEM "mi 2. dtd" [ <!ENTITY atl "Acrónimos de Tres Letras"> <!ELEMENT mi. tag - - (#PCDATA)> <!-- cualquier otra aclaración o redefinición debe ir aquí --> ] ]> <mi. 2> Este es un ejemplo de un tipo de documento mi. 2 modificado que puede contener <mi. tag>mis etiquetas especiales</mi. tag> y referencias a mis entes normales como &atl; </mi. 2> 27/11/2020 14

<!DOCTYPE mi. dtd [ <!-- aquí van todas las aclaraciones de mi. dtd -->.

<!DOCTYPE mi. dtd [ <!-- aquí van todas las aclaraciones de mi. dtd -->. . . ]> <mi. dtd> Este es un ejemplo de un tipo de documento que responde a mi. dtd </mi. dtd> <!DOCTYPE mi SYSTEM "mi. dtd" > <mi. 2> Este es un ejemplo (mi. 2) de un tipo de documento que se corresponde con el DTD mi. dtd </mi. 2> 27/11/2020 15

<!DOCTYPE mi. 2 system “mi. 2. dtd” [ <!ENTITY cap 1 SYSTEM "cap 1.

<!DOCTYPE mi. 2 system “mi. 2. dtd” [ <!ENTITY cap 1 SYSTEM "cap 1. txt"> <!ENTITY cap 2 SYSTEM "cap 2. txt"> <!ENTITY cap 3 "-- no escritas aún --"> ]> <mi. 2> <mi. Encabezado>. . . </mi. Encabezado> <texto> <preliminar>. . . </preliminar> <cuerpo> &cap 1; &cap 2; &cap 3; . . . </cuerpo> </texto> </mi. 2> 27/11/2020 16

DECLARACIÓN SGML <!sgml “ISO 8879: 1986” charset baseset “ISO 6461983//charset International Reference Version (IRV)//ESC

DECLARACIÓN SGML <!sgml “ISO 8879: 1986” charset baseset “ISO 6461983//charset International Reference Version (IRV)//ESC 2/5 4/0”. . . > <!doctype biblioteca system “c: /sgml/biblioteca. dtd”> 27/11/2020 17

SGML: sintaxis básica (1) modelo de declaración SGML documento <!SGML “ISO 8879: 1986” charset

SGML: sintaxis básica (1) modelo de declaración SGML documento <!SGML “ISO 8879: 1986” charset baseset “ISO 646 -1983//charset International Reference Version (IRV)//ESC 2/5 4/0”> tipo de <!DOCTYPE biblioteca system “c: /sgml/biblioteca. dtd”> documento <biblioteca> entidad de sistema <!-- comienzo del registro de un libro --> contenido (#PCDATA) <libro> comentarios SGML <titulo>Los corsarios vacilantes</titulo> elementos <autor>Pompeyo Mañas <email>pomp. mcu. es</email> referencia de entidad </autor> <editorial>Labor</editorial> atributos <cubierta tipo=”blanda”></cubierta> <categoría clase=”noficción”></categoría> <isbn>84 -045 -87498 -0</isbn> <nota número=” 5”></nota> <comentarios>Libro reservado</comentarios> </libro> <!– más registros aquí --> </biblioteca> 18 27/11/2020

SGML: sintaxis básica (2) DTD –Document Type Definitiondeclaración de tipo de documento <!DOCTYPE biblioteca

SGML: sintaxis básica (2) DTD –Document Type Definitiondeclaración de tipo de documento <!DOCTYPE biblioteca [ declaración de entidad <!ENTITY @ “. ”> <!ELEMENT biblioteca - - (libro+)> <!ELEMENT libro – O (título, autor+, editorial, cubierta, categoría, isbn, nota, comentarios? )> declaraciones de elementos <!ELEMENT título – O (#PCDATA)> <!ELEMENT autor – O (#PCDATA, email)> <!ELEMENT email – O (#PCDATA)> <!ELEMENT editorial – O (#PCDATA)> declaraciones de listas de atributos <!ELEMENT cubierta – O EMPTY> <!ATTLIST cubierta tipo (blanda | dura) “blanda”> <!ELEMENT categoría – O EMPTY> <!ATTLIST categoría clase (ficción | fantasía | cficción | misterio | terror | noficción | histórico | biografía) “ficción” > <!ELEMENT isbn – O (#PCDATA)> <!ELEMENT nota – O EMPTY> <!ATTLIST nota número (1 | 2 | 3 | 4 | 5) #REQUIRED> <!ELEMENT comentarios – O (#PCDATA)> ]> 27/11/2020 19

SGML: sintaxis básica (2. 1) declaración de elementos clave SGML reglas de minimización modelo

SGML: sintaxis básica (2. 1) declaración de elementos clave SGML reglas de minimización modelo de contenido <!ELEMENT libro – O (título, autor+, editorial, cubierta, categoría, isbn, nota, comentarios? )> identificador genérico claves SGML para modelos de contenido conectores EMPTY #PCDATA Indicadores de aparición elemento vacío cualquier cadena de caracteres indicadores de aparición minimización , ambos y en ese orden + necesario y repetible (1 o más veces) - obligatoria etiqueta | o uno o el otro ? opcional (0 o 1 vez) o opcional & en cualquier orden * Opcional y repetible (0 o más veces) 27/11/2020 1ª posición etiqueta inicio 2ª posición etiqueta fin 20

SGML: sintaxis básica (2. 2) declaraciones de lista de atributos nombre de atributo valor

SGML: sintaxis básica (2. 2) declaraciones de lista de atributos nombre de atributo valor de atributo <nombre nacionalidad=“SP” sexo=“V”>Eduardo Peis</nombre> elemento al que cualifican nombre de atributo Attr. Name <!ATTLIST nombre nacionalidad (AU | AS | BG |…| SP | NZ) sexo (V | H) ID identificador único valor por defecto Default posibles valores Attr. Type #REQUIRED “SP” #REQUIRED> obligatorio IDREF puntero a algún otro elemento #IMPLIED opcional CDATA datos de caracteres no analizables #CURRENT último especificado NMTOKEN NUMBER 27/11/2020 cualquier cadena de caracteres default especificado caracteres numéricos 21

SGML: sintaxis básica (2. 3) declaraciones de entidades <!DOCTYPE texto [ entidad general interna

SGML: sintaxis básica (2. 3) declaraciones de entidades <!DOCTYPE texto [ entidad general interna <!ENTITY lfp “liga de fútbol profesional”> ]> <texto>el hecho fue estudiado por la &lfp; en previsión de posibles sanciones</texto> general externa analizada <!ENTITY miscosas SYSTEM “http: //www. ugr. es/~epeis/miscosas. sgm”> <!ENTITY logo SYSTEM “http: //www. ugr. es/~epeis/logo. gif”> <!ENTITY @ “. ”> no analizada de carácter <!DOCTYPE texto [ <!ENTITY % elemento-epr “<!ELEMENT epr (#PCDATA)>”> %elemento-epr; ]> de parámetro entidades predefinidas 27/11/2020 & & < < > > &apos; ‘ " “ 22

SGML: software n n n Parsers analizadores Editores / procesadores Formateadores Conversores Gestión de

SGML: software n n n Parsers analizadores Editores / procesadores Formateadores Conversores Gestión de datos Es tal la potencialidad de SGML que no es posible su explotación con el software de red disponible en la actualidad 27/11/2020 23