Introducción sgml

28
INTRODUCCIÓN A SGML Prof. Dr. Eduardo Peis Redondo UNIVERSIDAD DE GRANADA

description

Introducción a SGML

Transcript of Introducción sgml

Page 1: Introducción sgml

INTRODUCCIÓN A SGML

Prof. Dr. Eduardo Peis Redondo

UNIVERSIDAD DE GRANADA

Page 2: Introducción sgml

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

Page 3: Introducción sgml

SGML

Etiquetado descriptivo

Etiquetado generalizado

Un nuevo concepto de información Contenido

Presentación

Independencia de los datos

Tipos de documentos

Page 4: Introducción sgml

antología

poema poema poema

estrofa estrofa estrofa estrofaestrofatítulo

línea

#PCDATA

línea línea línea línea línea línealínealínea

#PCDATA

#PCDATA#PCDATA

#PCDATA

#PCDATA

#PCDATA #PCDATA #PCDATA #PCDATA #PCDATA

línea

Page 5: Introducción sgml

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>

Page 6: Introducción sgml

<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>

<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>

MODELO DE DOCUMENTO (document instance)

Page 7: Introducción sgml

<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>

MINIMIZACIÓN

Page 8: Introducción sgml

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

DOCUMENT TYPE DEFINITION (DTD)

Page 9: Introducción sgml

<!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)+ ) >

ACLARACIONES (DECLARATION) DE ELEMENTOS

Page 10: Introducción sgml

<!ELEMENT estribillo - - (#PCDATA | linea+)><!ELEMENT poema - O (titulo?,( (linea+) |

(estribillo?, (estrofa, estribillo?)+ ) )) >

USO DE PARÉNTESIS EN LOS MODELOS DE CONTENIDO

Page 11: Introducción sgml

<!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) >

EXCEPCIONES (EXCLUSIÓN E INCLUSIÓN) AL MODELO DE CONTENIDO

Page 12: Introducción sgml

<!ATTLIST poema id ID

#IMPLIED estado (borrador | revisado | publicado) “borrador” >

<!ATTLIST poema id ID

#IMPLIED estado (borrador | revisado | publicado) #CURRENT

>

<poema id="P1" estado="borrador">... </poema>

ATRIBUTOS

DECLARACIONES DE ATRIBUTOS

<!ATTLIST poema

estado (borrador | revisado | publicado) #REQUIRED>

Page 13: Introducción sgml

<!ATTLIST poema id ID

#IMPLIED ><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>

ATRIBUTOS

Page 14: Introducción sgml

<!ELEMENT refpoema - O EMPTY><!ATTLIST refpoematarget IDREF #REQUIRED >

... el poema de Espronceda La canción del pirata <refpoema target="La canción del pirata">...

ATRIBUTO REFERENCIA

Page 15: Introducción sgml

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

<!ENTITY Capítulo Dos SYSTEM "/mis doc~/sgml/cap2.txt">

<!ENTITY arroba “@">

<!ENTITY arroba "&#46;" >

… No era posible que a&#46;uásemos...

<!DOCTYPE texto [<!ENTITY % elemento-epr “<!ELEMENT epr (#PCDATA)>”>%elemento-epr; ]>

ENTIDADES

Page 16: Introducción sgml

<!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>

DECLARACION DE TIPO DE DOCUMENTO

Page 17: Introducción sgml

<!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>

Page 18: Introducción sgml

<!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>

Page 19: Introducció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”>

DECLARACIÓN SGML

Page 20: Introducción sgml

SGML

HTML EAD

CDF MathML

SGML

HTML

EADCDF

MathML

SGML

HTML

XML

Page 21: Introducción sgml

El usurpador: HTMLHTML es, en realidad, un DTD SGMLProblemas:

Define más la presentación que el contenidoEscasas flexibilidad y extensibilidadNo es fácilmente procesable por “máquinas”Problemas de internacionalizaciónEstructura caóticaInterpretación ambigua según el softwareSólo tiene un uso: páginas Web

La convergencia: XHTML

Page 22: Introducción sgml

la adaptaciónHTML --------- XML

<TABLE><TR> <TD>Título</TD> <TD>Autor</TD> <TD>Precio</TD></TR><TR> <TD>Pensar</TD> <TD>Eduardo

Peis</TD> <TD>2.345</TD>

</TR><TR> <TD>La leña</TD> <TD>María

Artés</TD> <TD>4.322</TD></TR>

</TABLE>

<LIBROS><LIBRO> <TITULO>Título</TITULO> <AUTOR>Autor</AUTOR> <PRECIO>Precio</PRECIO></LIBRO><LIBRO>

<TTITULO>Pensar</TITULO>

<AUTOR>Eduardo</AUTOR> <PRECIO>2.345</PRECIO>

</LIBRO><LIBRO> <TITULO>La

leña</TITULO> <AUTOR>María</AUTOR>

<PRECIO>4.322</PRECIO></LIBRO>

</LIBROS>

Page 23: Introducción sgml

PRINCIPALES DIFERENCIAS SGML / XML

Para procesar muchos documentos xml no es necesaria un DTD

Los modelos de documento pueden incluir instrucciones de procesamiento

En los modelos de contenido de las declaraciones de elementos no se puede emplear el conector “&”, no se permite usar las “exception” y no se utilizan los indicadores de minimización.

Se admite el uso generalizado de elementos vacíos Se emplean las denominadas secciones “cdata” y las notation

declarations Los espacios en blanco, cambios de línea o “retornos” son

significativos XML usa el lenguaje EBNF (extended backus-naur form) para

expresar la sintaxis XML

Page 24: Introducción sgml

buena formación(well formed XML document)

un elemento raiz etiquetas de principio y de final etiquetas vacías <nombre /> anidados correctos valores de atributos entre comillas distinción entre mayúsculas o minúsculas (se pueden

usar ambas, pero XML distingue entre ambas) caracteres admisibles (todos los nombres de las

etiquetas y atributos deben empezar siempre con un carácter alfabético no acentuado o con el signo “subrayado” o “guión bajo” y no pueden contener ningún espacio).

Page 25: Introducción sgml

instrucciones de procesamiento

<? Nombre_de_aplicación instrucciones_para_la_aplicación ?>

declaración XML

<?xml version=“1.0” encoding=“ISO-8859-1” ?>

standalone

<?xml version=“1.0” encoding=“ISO-8859-1” standalone=“yes” ?>

• yes (DTD interno)

• no (DTD externo o referencia externa a entidades)

Page 26: Introducción sgml

secciones CDATA

<Pelicula> Tom & Jerry </Pelicula>.....<Elemento_ASP><FORM ACTION=“<% = Request (“SCRIPT_NAME”) %>”METHOD=“POST”></Elemento_ASP>

<Pelicula><! [CDATA[ Tom & Jerry ]]></Pelicula>.....<Elemento_ASP><! [CDATA[<FORM ACTION=“<% = Request (“SCRIPT_NAME”) %>”METHOD=“POST”>]]></Elemento_ASP>

Page 27: Introducción sgml

referencia de entidades

Carácter Referencia textualReferencia numérica

< &lt; &#60;

> &gt; &#62;

& &amp; &#38;

‘ &apos; &#39;

“ &quot; &#34;

Page 28: Introducción sgml

referencia de entidades

<COMENTARIO> El siguiente código es legal: &lt;Película&gt; Tom &amp; Jerry &lt;/Película&gt;</COMENTARIO>

Comentarios<!-- Este texto es un comentario -- >

<!-- Esto es un–comentario–permitido -- >

<!-- Esto es un --comentario--no permitido -- >