Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Contenido
1.1 Concepto y ventajas. ........................................................................................................... 2
1.2 SGML, el origen ................................................................................................................... 3
1.3 Caractersticas de los lenguajes de marcas. ......................................................................... 4
1.4 Clasificacin de los lenguajes de marcas. ............................................................................. 5
1.5 Organizaciones y estndares. .............................................................................................. 6
1.6 Introduccin a los principales lenguajes de marcas.............................................................. 7
2.1 Que es XML ......................................................................................................................... 9
2.2 Documentos XML ................................................................................................................ 9
2.3 Estructura jerrquica de un documento XML. .................................................................... 10
2.4 Modelo de datos de un documento XML. Nodos. .............................................................. 11
2.5 Correccin sintctica ......................................................................................................... 17
2.6 Documentos validos. ......................................................................................................... 18
2.7 Validacin de documentos XML con DTD. .......................................................................... 18
7.3 Validacin de documentos XML con esquemas XML .......................................................... 29
CFGS ASIX
CFGS ASIX
CFGS ASIX
1.3.2 Compacidad
Las instrucciones de marcado se mezclan con el propio contenido, por ejemplo, <h2>Hola
Mundo</h2>
El cdigo entre corchetes como <h2>, son instrucciones de marcado, tambin llamado
etiquetas. Esta etiqueta hace referencia al tamao del texto que est ente su etiqueta de inicio
y la de fin. El texto entre las marcas es el contenido del documento.
CFGS ASIX
1.3.4 Especializacin
Inicialmente los lenguajes de marcas se idearon para visualizar documentos de texto, pero
progresivamente se han empezado a utilizar en ms reas, como grficos vectoriales, notacin
cientfica, interfaces de usuarios, sntesis de voz, etc.
1.3.5 Flexibilidad.
Los lenguajes de marcas se pueden combinar en el mismo archivo con otros lenguajes, como
HTML con PHP o con JavaScrip existiendo etiquetas especificas para marcar cuando empiezan
y terminan las instrucciones del lenguaje de programacin.
XML ha permitido que se puedan combinar varios lenguajes de marcas diferentes en un mismo
archivo, como en el caso de XHTML con MathML y SVG.
De presentacin:
Indican el formato del texto o tipografa, sin especificar su estructura, por ejemplo
aumentar el tamao de la fuente, centrar o cambiar a negrita.
Esta categora incluye los lenguajes de procedimiento que agrupan varias marcas de
presentacin en una macro.
El software que representa el documente debe interpretar el cdigo en el mismo
orden en que aparece.
Los procesadores de texto y en general las aplicaciones de edicin profesional utilizan
este marcado.
Descriptivo, estructural o semntico:
Indican las diferentes partes en las que se estructura el documento, pero sin
especificar cmo deben representare ni en que orden.
Estos lenguajes crean documentos con estructuras en rbol que almacenan
informacin, por lo que son bases de datos, sin embargo no usan tablas ni respetan las
reglas de integridad propias de las BDR, por ello se les llama bases de datos semiestructuradas.
Hibrido: Lenguajes que contienen marcas de los dos tipos anteriores indistintamente.
CFGS ASIX
CFGS ASIX
Como ya hemos vistos los lenguajes de marcas nacen con el SMGL, del cual derivan
directamente algunos lenguajes como HTML. Tambin se cre a partir de el por simplificacin
otro metalenguaje, XML, ms fcil de usar y entender. De XML derivan muchos lenguajes de
marcas como XHTML, RSS etc.
1.6.1 HTML.
HTML es un lenguaje destinado a la creacin de pginas web, que nos permite mezclar en
un mismo documento, texto y contenido multimedia. Adems dispone de una potente
herramienta que son los enlaces, para conectar con otras paginas cuyo contenido este
relacionado. Suponiendo una gran ventaja frente al formato escrito en papel.
HTML fue creado por Tim Berners a principio de los 90 con objetivos divulgativos. No pens
que la web llegara a ser un rea de ocio, negocio y un medio de comunicacin tan
extendido y potente.
Con el tiempo y para adaptarse a todos sus nuevos propsitos se han ido incorporando
modificaciones y nuevos elementos pada dotar a HTML de ms recurso.
Esta evolucin poco planificada y a veces anrquica de HTML, ha supuesto una serie de
inconvenientes y deficiencias, que han sido superados con la introduccin de otras
tecnologas capaces de mejorar el funcionamiento y la organizacin de los sitios Web.
Como puede se CSS, PHP, Java y complementos instalados en los navegadores.
Otro problema de HTML, es que cuando se combina con CSS, dependiendo de los
navegadores hacen que la misma web tenga interpretaciones diferentes, debido al
diferente ritmo de incorporacin de las nuevas propiedades de CSS. Esto ha provocado la
aparicin de los hacks que son pequeos trozos de cdigo para conseguir un
comportamiento homogneo de los navegadores.
CFGS ASIX
1.6.2 XML
Es una simplificacin y adaptacin de SGML que permite definir lenguajes especficos. Por
tanto, XML no es un lenguaje en particular, si no una manera de definir lenguajes para
diferentes necesidades, un metalenguaje.
Algunos de los lenguajes en los que se basan XML, para su definicin son XHTML, SVG,
MathML, RSS.
Sus caractersticas principales son:
XML no solo se utiliza en Internet, sino que se esta convirtiendo en un estndar para el
intercambio de informacin estructurada entre diferentes plataformas. Se puede usar en bases
de datos ligeras, editores de texto, hojas de clculo, transacciones comerciales y en general en
cualquier campo donde se necesita almacenar informacin si las restricciones de un SGBD
relacional.
CFGS ASIX
CFGS ASIX
Hermano Menor
Hermano Mayor
Hijo
Esta estructura jerrquica se denomina de rbol. A las partes que tienen hijos se le denominan
nodos intermedios o ramas, mientras a las que no tienen se les denomina nodos finales u
hojas.
Ejemplo: Si queremos tener una agenda, crearemos el elemento <persona> , que contiene los
elementos <nombre>, <apellidos> y <telfonos> que a su vez contendr los campos <mvil> y
<fijo>.
<persona>
<nombre> Juan </nombre>
10
CFGS ASIX
Raz: Por encima de cualquier elemento se ubica el nodo, raz, que se designa como
/. No es un componente que tenga representacin dentro del documento XML, pero
se utilizar ms adelante como punto de partida para recorrer el rbol XML y ubicar el
resto de nodos.
Elementos: Es la unidad bsica de un documento XML. Son los
delimitadores/contenedores de la informacin. Al igual que los elementos de HTML, se
identifican por una etiqueta de apertura y otra de cierre. Lo que esta entre ambas es el
contenido de ese elemento, que pude ser un dato, otros elementos o estar vaco.
<fijo> 98 4335211 </fijo>
11
CFGS ASIX
\t
\n
\r
\s
	
 
TAB
LF
CR
Space
12
CFGS ASIX
Carcter
&
<
>
Instruccin de procesamiento
Ejemplo:
<? xml versin =1.0 encoding=UTF-8 standalone=yes?>
<!DOCTYPE agenda SYSTEM agenda.dtd>
Inclusin de un DTD externo
<!--Documento de gestin de agenda -->
Comentario
<?xml-stylesheet type=texte/css href=agenda.css?>
<agenda>
Raz
<persona>
<nombre>Bruce</nombre>
Atributo
<apellido>Wayne</apellido>
<telefono tipo=movil> 933234234</telefono>
</persona>
Elementos
<persona>
<nombre>Lucius</nombre>
<apellido>Fox</apellido>
<telefono tipo=fijo> 32932032</telefono>
</persona>
</agenda>
Cierre Raz
Nombres XML: En XML se utilizan una serie de reglas para definir nombres correctos
de elementos, son las mismas que para los atributos.
o Puede empezar con una letra (del alfabeto de cualquier idioma),
subrayado, o dos puntos (esto esta desaconsejado ya que se reserva para
los espacios de nombres).
13
CFGS ASIX
Actividad3:
Nombre
<Nombre_Persona> </Nombre_persona>
<1_Codigo> </1_Codigo>
<da/mes/ao> </da/mes/ao>
<> </>
<Delegado provincial> </Delegado provincial>
<Cdigo-Interno> </Cdigo-interno>
14
CFGS ASIX
.
.
</cliente>
Los atributos pueden pertenecer al mismo espacio de nombres al que pertenece el
elemento al que estn asociados o a otro diferente. La definicin es la misma que con los
elementos, anteponiendo el prefijo del espacio de nombres y los dos puntos al nombre
del atributo. Si no aparece ningn prefijo del espacio de nombres el atributo no
pertenecer a ningn espacio de nombres.
Actividad4: Explica a qu espacio de nombre pertenecen los elementos y los atributos de
este cdigo.
<emp : empleado xmlns:emp=empresa
xmlns : trabajo=trabajo_empresa>
<emp : datosPersonales trabajo:empno=482>
<emp : departamento deptno=10>Ventas</emp:departamento>
15
CFGS ASIX
Espacio de nombres
Dos atributos con el mismo nombre pero con distinto prefijo de espacio de nombres son
diferentes, lo que significa que pueden estar asociados al mismo elemento.
<emp : empleado xmlns : emp=empresa
xmlns : sec=seccin
<emp: datosPersonales emp : empno =2819 sec : empno=003>
<emp : departamento deptno=10> Informtica</emp : departamento>
<emp : nombre> Juan </emp : nombre>
<emp : apellidos> Ramrez Snche </emp : apellidso>
</emp : datos personales>
</emp : empleado>
Espacio de nombres por defecto: Es aquel en el que no se define un prefijo. El mbito
de aplicacin de este espacio de nombres es el del elemento en el que se ha declarado y
sus elementos descendientes pero no sus atributos.
Si se tuviera que aadir un espacio de nombres con prefijo a un documento XML grande
ya creado, habra que ir aadiendo el prefijo a los elementos atributos, algo tedioso y con
posibilidad de cometer errores. As se puede evitar tener que escribir el prefijo.
Atributos especiales:
o xml:space : le indica a la aplicacin, si los espacios en blanco del
contenido textual de un elemento son significativos.
Ejemplos:
(Preservar espacios en blancos)
<?xml version=1.0?>
<textos>
<cita> A quien madruga Dios le ayuda ?</cita>
<poema xml:space=preserve>
El monte es verde,
el agua incolora
y a mi no se me ocurre una rima
</poema>
</textos>
16
CFGS ASIX
17
CFGS ASIX
18
CFGS ASIX
Sintaxis
Tipo de DTD
Interno, privado
Externo, privado
Mixto, privado
Externo, publico
Mixto, publico
Para el uso pblico debemos poner el FPI (Formal Public Identifier- Identificador Pblico
Formal) una etiqueta que identifica al DTD de manera universal.
Al declarar un documento pblico es obligatorio que el DTD sea independiente con lo que no
tiene sentido la combinacin interno y publico.
19
CFGS ASIX
Actividad9: Crea la estructura del FPI con los siguientes datos. El elemento raz se llamara
planeta, Se trata de un DTD creado por mi y la ubicacin de las reglas del DTD es externa, en
un archivo llamado planetas.dtd que se encuentra en el mismo directorio que el archivo XML.
Componentes de un DTD.
Los DTD tienen cuatro posibles componentes, elemento, atributo, entidad y notacin.
Elemento:
Sintaxis general <!ELEMENT nombreElemento modeloContenido>
El nombre del elemento tiene que ser igual al correspondiente del documento XML.
El modelo del contenido puede indicar:
Una regla:
o ANY (cualquier cosa): se puede utilizar para construir el DTD para dejar la
descripcin de un elemento como vlida en cualquier caso, eliminando
cualquier comprobacin sintctica. Es un comodn que no debe aparecer en el
DTD definitivo.
o EMPTY (elemento vaco): describe un elemento sin descendientes.
Un ejemplo seria el elemento <br /> de HTML. Su declaracin seria:
<!ELEMENT br EMPTY>
Datos (caracteres), sean textuales, numricos o cualquier formato que no contenga
marcas (etiquetas). Se describe como #PCDATA (Datos de Caracteres Procesados) y
debe aparecer entre parntesis.
Ejemplo: Si queremos tener un DATA cuya etiqueta sea Nombre en el DTD
pondramos:
<!ELEMENT Nombre (#PCDATA)>
Lo que correspondera en nuestro documento XML a:
<Nombre> Juan Ramrez Snchez Villalobos </Nombre>
Elementos descendientes. Su descripcin debe aparecer entre parntesis y se basa en
las siguientes reglas:
20
CFGS ASIX
Significado
A|B
Se pueden combinar el uso de los smbolos de Cardinalidad de los elementos con los de
secuencia.
Estas reglas se pondrn en la declaracin del elemento padre, seguido de los elementos
que lo componen con sus reglas asociadas.
Ejemplo. Si queremos almacenar un equipo de futbol tendramos como raz Equipo. Luego
tendramos un portero obligatoriamente, defensas, delanteros y centro campistas que
pueden aparecer mnimo una vez y muchas como mximo, entrenador que tiene que
tener seguro y segundo entrenador que puede no tenerlo pero solo tendr uno como
mximo.
<!DOCTYPE Equiopo[
<!ELEMENT Equipo (portero, defensas+, delanteros+, centrocampistas+, entrenador,
segundoEntrenador?>
< !ELEMENT portero (#PCDATA) >
< !ELEMENT defensas (#PCDATA) >
.
.
.
]>
Actividad10: Escribe el DTD para definir un correo electrnico, donde el para tiene que
aparecer seguro, el CC y el CCO no tienen por qu aparecer y siempre tienen que tener
cuerpo y asunto.
21
CFGS ASIX
22
CFGS ASIX
ID: el valor del atributo debe ser nico. No puede aparecer repetido en otros elementos
o atributos empleados en el documento. Sirve para identificar de forma nica un
elemento. Un elemento solo puede tener un atributo ID. Los valores del ID tienen que
empezar con una letra y despus cualquier carcter alfanumrico.
IDREF: el atributo hace referencia al valor de otro atributo del documento, de tipo ID.
Ejemplo:
DTD
<!ATTLIST book isbn ID #IMPLIED>
<!ATTLIST review number IDREF #REQUIRED>
XML
<book isbn="A3540299521"> ... </book>
<review number="A3540299521"> ... </review>
IDREFS: representa mltiples IDs de otros elementos separados por espacios.
Ejemplo:
DTD
<!ATTLIST book isbn ID #IMPLIED>
<!ATTLIST list number IDREFS #REQUIRED>
XML
<book isbn="A3540299521"> ... </book>
<book isbn="B8990671445"> ... </book>
<list number="A3540299521 B8990671445"> ... </list>
NMTOKEN: cualquier nombre sin espacios en blanco en su interior. Los espacios en
blanco anteriores o posteriores se ignoraran.
NOTATION un nombre de notacin que debe estar declarada en el DTD. (Lo veremos
ms adelante)
23
CFGS ASIX
24
CFGS ASIX
Referencia entidades parmetro externas, ubicadas en otros archivos, cuya sintaxis es:
<!ENTITY % nombreEntidad tipoUso FPI URL>
Siendo el tipoUso privado si ponemos SYSTEM o pblico si ponemos PUBLIC. Si es
pblico ser necesario definir el FPI, como vimos anteriormente.
Entidades no procesadas, referencian a datos que no deben ser procesados por el
analizador XML, sino por la aplicacin que lo use, como por ejemplo una imagen. Su
sintaxis es:
<!ENTITY % nombreEntidad tipoUso FPI valorEntidad NDATA tipo>
Ejemplo: Se declara una notacin de nombre JPG para el tipo MIME (extensiones
multipropsito de correo de Internet). Se declara una entidad no procesada de
nombre mediterrneo, asociada al archivo de imagen mediterraneo.jpg. Por ltimo,
se declara un elemento <mar> que cuenta con un atributo imagen que es tel tipo
ENTTY recin declarado.
En el DTD:
<!NOTATION JPG SYSTEM image/jpg>
<!ENTITY mediterraneo SYSTEM mediterraneo.jpg NDATA JPG>
<!ELEMENT mar (nombre, extensin, color)>
<!ATTLIST mar
Imagen ENTITY #IMPLIED>
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT extensin (#PCDATA)>
<!ELEMENT color (#PCDATA)>
25
CFGS ASIX
26
CFGS ASIX
(#PCDATA)>
]]>
<![%final;[
<!ELEMENT book (title, body, supplements?)>
]]>
<!ELEMENT title (#PCDATA)>
<!ELEMENT body (#PCDATA)>
<!ELEMENT supplements (#PCDATA)>
Actividad15: Queremos tener un XML para mandar mensajes, estos mensajes sern de dos
tipos, el corto y el largo. En los mensajes cortos queremos conocer el emisor, el receptor
(mnimo uno), el contenido y la firma digital que puede o no aparecer. Mientras que en los
largos queremos conocer tambin el asunto y la fecha de emisin. Por defecto mandaremos
mensajes cortos.
Crea el DTD que cumpla estas especificaciones y crea un XML de un mensaje largo, y como
debera estar el DTD.
27
CFGS ASIX
Actividad16: Queremos que el DNI sea un atributo identificador obligatorio, que es estado civil
pueda ser solo Soltero Casado o Divorciado y que el elemento enActivo sea optativo. Ve
a la web de generacin automtica de DTD y completa el DTD que te devuelva con las
instrucciones necesarias dado el siguiente documento XML.
<?xml versin=1.0 encoding=UTF-8?>
<!DOCTYPE persona SYSTEM persona.dtd] >
<persona dni = k-123456 estadoCivil=Casado>
<nombre> John </nombre>
<apellidos> Connor </apellidos>
<edad> 25 </edad>
<enActivo />
</persona>
28
CFGS ASIX
Es un documento XML con lo que si que podemos comprobar que esta bien formado.
Existe una gran cantidad de tipos de datos predefinidos para elementos y atributos
que pueden ser ampliados o restringidos en funcin de nuestras necesidades.
Permiten concretar con precisin la cardinalidad de un elemento.
Permite mezclar distintos vocabularios (juegos de etiquetas) gracias a los espacios de
nombres.
Tienen el inconveniente que al ser mas complejos son ms difciles de interpretar a simple
vista como pasaba con los DTD.
En un esquema XML aparecer lo que puede contener un documento XML, elementos, los
atributos que tienen, de que tipo de datos son los elementos y los atributos, en que orden
aparecern, la cardinalidad de los elementos etc.
El esquema XML es el molde del que saldrn los documentos XML que se ajustaran a su
estructura, pero cada uno con sus datos concretos.
Las herramientas vistas anteriormente son capaces de validad documentos XML frente a un
esquema. Para la validacin on-line tenemos la web:
www.corefiling.com/opensource/schemaValidate.html
Herramientas para generar esquemas automticamente a partir de documentos XML.
Al igual que pasaba con los DTD, nuestro esquema automtico ser tan preciso como el
documento que utilizamos para generarlo, y normalmente tendremos que completarlo
manualmente.
Tenemos editores de XML con esta funcionalidad:
- SMLSpy de altova.
<oXygen/> Herramientas on-line:
http://www.flame-ware.com/products/xml-2-xsd
http://www.freematter.com/xsd-generator.html
Estructura de un esquema XML. Componentes.
Un esquema XML es un documento XML que ha de cumplir una serie de reglas;
29
CFGS ASIX
Al igual que en los DTD tenemos que declarar al elemento raz de nuestro XML, su
sintaxis ser: <xs : element name = nombreElementoRaiz>
Fijaros que tiene un atributo name con el nombre del elemento raz.
Al contrario que con los DTD podemos tener un esquema con ms de un elemento raz.
<?xml versin=1.0?>
<xs : schema xmlns : xs =http://www.w3.org.2001/XMLSchema>
<xs : element name=coche />
<xs : element name=barco />
</xs : schema>
Un esquema es un conjunto de declaraciones de elementos y atributos y definiciones
de tipos que sirven para fijar la estructura que debe tener un documento XML. El
orden en que se declaran los elementos, ahora llamados componentes, no es
significativo ni afecta al funcionamiento del mismo.
Para vincular el esquema con el documento XML aadiremos al elemento raz del
documento XML dos atributos:
<?xml version = 1.0 encoding = UTF-8?>
<Coches xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xsi:noNamespaceSchemaLocation = landrover.xsd>
</Coches>
name: Indica nombre del elemento, obligatorio en caso del elemento raz.
ref: indica que la descripcin del elemento se encuentra en otro lugar del esquema.
type: indica el tipo del elemento.
Los tipos de datos ms comunes en XML Schema son:
o xs:string (cadena)
o xs:decimal (nmero decimal)
o xs:integer (nmero entero)
30
CFGS ASIX
default: Valor que tomar por defecto el elemento al ser procesado por alguna
aplicacin siempre que no haya recibido un valor en el documento XML. Solo se pude
usar si el contenido del elemento es textual.
fixed: indica el nico valor que puede contener el elemento, solo si el contenido es
textual.
minOccurs: indica el nmero mnimo de ocurrencias de un elemento dentro del
documento XML. Va desde el 0 hasta el unbouned (ilimitado). El elemento xs:schema
no puede usar este atributo.
maxOccurs: indica el nmero mximo de ocurrencias de un elemento dentro del
documento XML. Va desde el 0 hasta el unbouned (ilimitado). El elemento xs:schema
no puede usar este atributo.
Otros atributos:
31
CFGS ASIX
Tipos de datos simples personales: Podemos definir tipos de datos que no han de
coincidir necesariamente con los estndares del XSD, partiendo de los predefinidos
podemos hacer que cumplan unas determinadas condiciones que necesitemos, a
estas peculiaridades las llamaremos facetas.
Para definir un tipo simple personal no se pone tipo de dato al elemento, se define
un hijo <simpleType>
<?xml version=1.0?>
<xs:schema xmnls:xs =http://www.w3.org.2001/XMLSchema>
<xs:element name=persona>
<xs:simpleType>
</xs:simpleType>
<xs:element>
</xs:schema>
Dentro del simpleType especificaremos cual es la modificacin que se quiere hacer
sobre el tipo predefinido. Las ms comunes son, crear una lista de valores, unin,
restriccin o extensin.
32
CFGS ASIX
Tambin podemos crear un tipo simple fuera de un elemento y una vez definido
podemos asignrselos a los elementos.
<xs:simpleType name="listaDias">
<xs:list itemType="xs:date"/>
</xs:simpleType>
<xs:element name="DiasDePartido" type="listaDias"/>
<xs:element name="DiasDeCompra" type="listaDias"/>
Tipo restriction: Sirve para definir restricciones en los valores de un tipo.
Si queremos declarar un tipo contrasea que tenga un mnimo de 6 caracteres y un
mximo de 13.
<xs:simpleType name =contrasenya>
<xs:restriction base=xs:string>
<xs:minLength value =6/>
<xs:maxLength value =13/>
</ xs:restricition>
</xs:simpleType>
<xs:element name=clave type=contrasea>
Un documento xml con:
<clave>DiAmigoyEntra</clave> seria validado
<clave>12345</clave> No seria validado
Tabla de facetas para restringir rangos de valores
Faceta
maxInclusive / maxExclusive
minInclusive / minExclusive
Length
Enumeration
totalDigits
fractionDigits
Pattern
Uso
33
Numricos y fecha/hora
Numricos y fecha/hora
Texto
Todos
Numricos
Numricos
Texto
CFGS ASIX
Equivalencia
Cualquier carcter
Cualquier digito
Cualquier carcter no digito
Caracteres no imprimibles: espacios en blanco, tabuladores
Cualquier carcter imprimible
N dgitos exactamente
De n a m dgitos.
Uno de los caracteres incluidos ( en este caso a o b o c]
Uno de los caracteres incluidos entre la a y la z
No pueden aparecer los caracteres de dentro
Aparecer o un valor o el otro
Una ocurrencia puede pasar 0 o 1 veces
Una ocurrencia puede pasar 0 o ms veces
34
CFGS ASIX
35
CFGS ASIX
36
CFGS ASIX
37