Post on 14-Dec-2014
description
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 "." >
… No era posible que a.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
< < <
> > >
& & &
‘ ' '
“ " "
referencia de entidades
<COMENTARIO> El siguiente código es legal: <Película> Tom & Jerry </Película></COMENTARIO>
Comentarios<!-- Este texto es un comentario -- >
<!-- Esto es un–comentario–permitido -- >
<!-- Esto es un --comentario--no permitido -- >