Introducción sgml

Post on 14-Dec-2014

1.151 views 1 download

description

Introducción a SGML

Transcript of Introducción sgml

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

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>

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

<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

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)

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

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

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

USO DE PARÉNTESIS EN LOS MODELOS 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) >

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

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

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

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

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

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

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

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

SGML

HTML EAD

CDF MathML

SGML

HTML

EADCDF

MathML

SGML

HTML

XML

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

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>

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

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

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)

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>

referencia de entidades

Carácter Referencia textualReferencia numérica

< &lt; &#60;

> &gt; &#62;

& &amp; &#38;

‘ &apos; &#39;

“ &quot; &#34;

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