INTRODUCCIÓN A SGML Prof. Dr. Eduardo Peis Redondo UNIVERSIDAD DE GRANADA
Edición electrónica Las marcas o etiquetas en el proceso tradicional de edición Definiciones de maquetación o markup Instrucciones para el cajista La maquetación electrónica El procesamiento de textos WYSIWYG Etiquetas procedimentales Troff / TeX / LaTeX / AMS-TeX Etiquetas descriptivas Etiquetado generalizado SCRIBE GML
SGML Etiquetado descriptivo Etiquetado generalizado Un nuevo concepto de información Contenido Presentación Independencia de los datos Tipos de documentos
antología poema estrofa título línea #PCDATA
ELEMENTOS <Generic Identifier>............</Generic Identifier> <nombre>...........................</nombre> <GI>.............TEXTO (#PCDATA)..............</GI> <GI>...........OTROS ELEMENTOS............</GI> <GI><GI1>...TEXTO (#PCDATA)...</GI1></GI> <GI>.........................NADA.......................</GI> <mensaje> <autor>Eduardo Peis</autor> <texto>Este es un mensaje de inicio</texto> </mensaje>
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> </poema> <!-- más poemas aquí --> </antologia>
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 <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>
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
ACLARACIONES (DECLARATION) DE ELEMENTOS <!ELEMENT pareado O O (linea1, linea2)> <!ELEMENT (linea | linea1 | linea2) O O (#PCDATA) > <!ELEMENT poema - O (titulo?, (estrofa+ | pareado+ | linea+) ) > <!ELEMENT poema - O (titulo?, (estrofa | pareado | linea)+ ) >
USO DE PARÉNTESIS EN LOS MODELOS DE CONTENIDO <!ELEMENT estribillo - - (#PCDATA | linea+)> <!ELEMENT poema - O (titulo?,( (linea+) | (estribillo?, (estrofa, estribillo?)+ ) )) >
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) >
DECLARACIONES DE ATRIBUTOS <poema id="P1" 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 >
<!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="P40"> Texto del poema con identificador "P40" </POEMA> <POEMA> Este poema no tiene identificador </POEMA>
<!ELEMENT refpoema - O EMPTY> <!ATTLIST refpoema 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">...
<!ENTITY lcp "La canción del pirata"> ENTIDADES <!ENTITY lcp "La canción del pirata"> <texto>El poema &lcp; es de Espronceda</texto> <!ENTITY Capítulo Dos SYSTEM "/mis doc~/sgml/cap2.txt"> <!ENTITY arroba “@"> <!ENTITY arroba "." > … No era posible que a.uásemos... <!DOCTYPE texto [ <!ENTITY % elemento-epr “<!ELEMENT epr (#PCDATA)>”> %elemento-epr; ]>
DECLARACION DE TIPO DE DOCUMENTO <!DOCTYPE mi2 SYSTEM "mi2.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>
<!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>
<!DOCTYPE mi.2 system “mi.2.dtd” [ <!ENTITY cap1 SYSTEM "cap1.txt"> <!ENTITY cap2 SYSTEM "cap2.txt"> <!ENTITY cap3 "-- no escritas aún --"> ]> <mi.2> <miEncabezado> ... </miEncabezado> <texto> <preliminar> ... </preliminar> <cuerpo> &cap1; &cap2; &cap3; ... </cuerpo> </texto> </mi.2>
DECLARACIÓN SGML <!sgml “ISO 8879:1986” charset baseset “ISO 646-1983//charset International Reference Version (IRV)//ESC 2/5 4/0”...> <!doctype biblioteca system “c:/sgml/biblioteca.dtd”>