Resumen LM
Resumen LM
Resumen LM
Los LENGUAJES DE MARCAS O LENGUAJES DE MARCADO, no son lenguajes de programación. No tienen funciones aritméticas o
variables.
CARACTERÍSTICAS
• Texto plano: Por lo que pueden ser interpretado mediante un simple editor de texto, de forma que los documentos son independientes
del sistema operativo que los ha creado.
• Compacidad/Compactibilidad: Permite mezclar las instrucciones de marcado con el propio contenido.
• Independencia del dispositivo final: De un mismo documento, se pueden hacer distintas interpretaciones, dependiendo del
dispositivo final.
• Especialización: Podemos hacer uso de los lenguajes de marcas en un gran número de áreas (gráficos vectoriales, notación científica,
interfaces de usuario.. )
• Flexibilidad: Podemos combinar el mismo tipo de archivo con otros lenguajes diferentes (HTML, PHP, JavaScript). Existen etiquetas
que ya vienen especificadas para tal fin, como son los <script>.
• DE PRESENTACIÓN: Se refieren al formato del texto (usado tradicionalmente por procesadores de texto y programas de edición).
Codifican cómo debe presentarse un documento, ocultando las marcas, consiguiendo un efecto WYSIWYG. En Word podemos ver
estas marcas con la tecla .
• DESCRIPTIVO, ESTRUCTURAL O SEMÁNTICO: Hacen referencia a las diferentes partes en las que puede dividirse el documento,
sin ofrecer detalles de cómo se representan y en qué orden van a hacerlo. Las marcas indican qué es, no cómo se representan.
Van a ir creando una serie de documentos que van a almacenar información en forma de árbol... son bases de datos pero
semiestructuradas.
• HÍBRIDO: Lenguajes que permiten utilizar los dos tipos de marcas anteriores: HTML – XHTML – WML
CLASIFICACIÓN SEGÚN SU FUNCIONALIDAD
• DOCUMENTACIÓN ELECTRÓNICA: TeX – Docbook – nroff – troff – RTF – ASN.1 – YAML – EBML – Wikitexto – LinuxDoc
• TECNOLOGÍAS DE INTERNET: HTML – XHTML – WML (Páginas Web)
XMPP (Mensajería instantánea)
WSDL – SOAP – UDDI (Servicios Web)
RSS – ATOM (Sindicación de contenidos)
GladeXML – Xforms – XAML (Interfaces/formularios de usuario)
HERRAMIENTAS DE EDICIÓN
XLMSpy: Para XML, XLST, XPath, XQuery... Cuenta con diferentes herramientas entre las que pueden diferenciarse las de
representación gráfica de diferentes documentos. Programa de pago con 30 días de prueba.
<oXygen>: Para una serie de tecnologías entre las que cabe destacar XSD, XSLT o XQuery. Es necesario descargarse el XML Editor.
XML Copy Editor: Software libre con licencia GNU GPL. También es editor de XML, XSD, XSLT, etc...
XMLPad Pro Edition: Su función principal es comprobar si un documento XML está bien formado.
Los nodos que NO TIENEN HIJOS se llaman NODOS HOJA. Los que SÍ TIENEN
HIJOS, se denominan NODOS INTERMEDIOS O RAMAS.
pág. 1
Un documento XML bien formado cumple una serie de reglas establecidas por W3C en las
especificaciones correspondientes para XML.
• Podemos comenzar un documento por una instrucción de procesamiento XML que indique cuál es la versión del XML que se está
utilizando y, algunas veces, se indica también la codificación y si se encuentra preparado para procesarse o si necesita una serie de
archivos.
• Instrucción simplificada: <? xml version=”1.0”?>
• Sólo debe haber un elemento raíz del que van a colgar los demás.
• Los elementos se encuentran entre símbolos de apertura<> y cierre </>.
• Existen diferencias entre minúsculas y mayúsculas.
• Dos atributos no pueden tener el mismo nombre.
• Los atributos pueden llevar el valor “simples” o “dobles”, pero sólo uno de los tipos.
ESTRUCTURA
RAÍZ El nodo raíz es el primer elemento que encontramos en la estructura y lo designamos como “/”.
ELEMENTOS Unidad básica de los XML. Su función principal es almacenar información. Representan estructuras mediante las que
se organizará el contenido del documento o acciones que se desencadenan cuando el programa navegador interpreta el documento.
El elemento raíz, debe formar parte de cualquier elemento XML. Si el documento está bien formado tendrá un solo elemento raíz. Es
el primer elemento que se encuentra en la estructura y se designa como “/”.
<ejemplo></ejemplo>
Por otro lado, el elemento vacío tenga o no atributos, debe abrirse y cerrarse con una sola instrucción. <Ejemplo/>
ATRIBUTOS Es un par nombre-valor que se encuentra dentro de la etiqueta de inicio e indica las propiedades que llevarán asociadas
los elementos. Ej: <a href="http://www.enlace.com" target="_blank">Ejemplo de enlace</a>
Especiales:
xml:space Para indicar si debe tener en cuenta los espacios en blanco (“default”/”preserve”)
xml:lang Para indicar el idioma en el que está escrito (ISO “en”, “es”... identificador IANA, empiezan por i- o I-, o identificador
definido por el usuario, empiezan por x- o X- ).
xml:base Para definir una URI distinta a la existente en el documento.
TEXTO
COMENTARIOS
ESPACIO DE NOMBRES Para evitar conflicto de nombres.
Se declara como atributo del elemento y se utiliza anteponiendo el prefijo a elementos
y atributos, además de los “:”.
El ámbito cubre el elemento y sus elementos descendientes, incluidos sus atributos.
<nombre_elemento xmlns:prefijo=”URI del espacio_de_nombres”>
ESPACIO DE NOMBRES POR DEFECTO
Similar al anterior, pero ahorrándonos poner el prefijo a los elementos.. el problema es que el ámbito no incluye los atributos del elemento.
<nombre_elemento xmlns:prefijo=”URI del espacio_de_nombres”>
Se puede desasignar a un elemento del espacio de nombres por defecto con la instrucción <nombre_elemento xlmsn=” ”>
INSTRUCCIONES DE PROCESAMIENTO <? ...?>
ENTIDADES PREDEFINIDAS Para poder representar caracteres especiales de marcado y que se interpreten
como texto.
CDATA Grupo de varios caracteres que no necesitan ser analizados por el procesador.
DTD Se definen una serie de reglas que asignan restricciones sobre la estructura del documento XML.
VISUALIZACIÓN DOCUMENTO XML
- Mediante hoja de estilo CSS que indique al navegador cómo convertir cada elemento en un elemento visual. La instrucción de
procesamiento sería del estilo: <?xml-stylesheet type=”text/css” href=”estilos.css”?>
- Mediante hoja de transformaciones XSLT <?xml-stylesheet type=”text/xsl” href=”transforma.xsl”?>
- Mediante programación (Java, JavaScript).. que procese el documento.
DOM: Es una API estándar de W3C para documentos HTML, XHTML y XML, que proporciona una representación estructural del
documento y permite modificar su contenido, estilo o presentación visual. Comunica las páginas
web con los scripts o lenguajes de programación.
Los programadores pueden construir documentos,
navegar por su estructura y añadir/modificar/eliminar
elementos y contenido. Se puede acceder a
cualquier cosa que se encuentre en un documento
HTML, XHTML y XML.
Componentes:
pág. 3
Notación. Para señalar el tipo de atributo al que se le permite utilizar algún valor que se haya declarado previamente en el
DTD como notación. Mediante notación, podemos determinar un formato de datos distinto a XML (gif, jpg, etc...)
PCDATA. Parsed Character Data. Indica que entre la apertura y cierre de este elemento se almacenarán caracteres como
texto y serán analizados por un parser.
CDATA. Character Data. Igual que PCDATA pero su contenido no se analizará.
PARSER: Procesador que se encarga de leer un documento XML para, posteriormente, determinar la estructura y propiedades de
aquellos datos que se encuentran contenidos en dicho documento. Este procesador va a comprobar que se han seguido las reglas de
forma correcta y, a continuación, puede validar el documento e informar, en caso de que existan errores, de los errores producidos.
SVG: Scalable Vector Graphics. Para representar una serie de gráficos vectoriales bidimensionales.
WML: Wireless Mark-up Language. Para representar la información en dispositivos móviles.
RSS: Really Simple Sindication. Para la publicación de información que va a sufrir actualizaciones constantes.
Atom: Atom Syndication Format. Lenguaje que se utiliza como semillas web.
DocBool: Para definir documentos.
XBRL: Extensible Business Reporting Language. Para la generación de informes financieros.
pág. 4
RSS
Really Simple Syndication. Tecnología que tiene como función principal compartir o distribuir información que se encuentre en la web.
Feed Reader es un software específico diseñado para leer los contenidos RSS.
La información disponible en un sitio web puede compartirse de varias formas.. una, es suscribiendo la fuente con un agregador de
noticias. Otra, si compartimos aquella información insertada en otros lugares web, de forma que la persona encargada de recibir las
noticias, actúa también como emisor, dado lugar a un proceso de redifusión web.
Subscribiéndonos a la fuente, a través de la tecnología RSS, vamos a estar al día de todas las actualizaciones que se produzcan en el
sitio web.
RSS, por lo tanto, hace referencia a una técnica que podemos utilizar para extender aquellos contenidos que se encuentran en un sitio
web. Es un lenguaje derivado de XML mediante el que podemos construir los diferentes archivos que almacenan el contenido que se
puede difundir.
Ventajas:
- No se requiere comprobar los sitios web, para saber si la información está actualizada.
- Formato texto plano, lo que agiliza la transmisión. Recomendable para dispositivos móviles.
- Posibilidad de filtrar información de diferentes sitios sin perder tiempo, utilizando la agrupación.
Estructura:
<?xml versión=”1.0” encoding=”utf-8”?> Referencia a la declaración XML.
<rss versión=”2.0”> Declaración del DTD
<channel>
<tittle>Hola mundo</tittle>
<link>...</link>
<description>…</description>
<item>
…
</item>
</channel>
</rss>
Además, channel tiene la posibilidad de contener un elemento o varios <item>. Cada elemento item cuenta con la posibilidad de poder
definir un determinado artículo en el canal RSS.
Debe contar también con tres elementos
fundamentales:
Para la creación de un canal de contenido, lo único que hace falta es un editor de XML y una página web. Para agilizar la creación de
páginas de sindicación podemos utilizar las herramientas Joomla o Drupal, que permiten crear una estructura de soporte para la creación
y administración de contenido. Son de código abierto y con implementación mayoritariamente en PHP. Utilizan también servidores web
Apache y gestores de BBDD Mysql.
pág. 5
Validación del archivo RSS:
Se puede validar en: jttps://validator.w3.org/Feed
Una vez validado debemos subirlo a un servidor web:
- Insertar el enlace en la página de inicio, apuntando al archivo RSS.
- Seguidamente, insertar un elemento <link> para que los lectores RSS encuentren el archivo RSS para leerlo. Se suscriben a
nuestro Feed.
- Finalmente, se envía la dirección URI correspondiente desde el archivo RSS hasta el sitio web determinado. Se catalogan y
almacenan feeds para que los diferentes buscadores los puedan visitar.
AGREGACIÓN
Es necesario que el usuario disponga de un agregador. Entre los lectores de RSS distinguimos:
- Agregadores de escritorio.
- Agregadores en línea.
- Agregadores plugin. Algunos navegadores FireFox, Netscape...
Una vez que el usuario ha seleccionado el agregador adecuado, tiene que seleccionar los feeds o archivos RSS.
pág. 6
HTML Etiquetas y atributos se pueden escribir tanto en mayúsculas como en minúsculas
HiperText Markup Language. Surgió por la complejidad del lenguaje SGML, creándose un lenguaje mucho más simple y adaptado
expresamente al cometido de representar contenido para la Web.
El diseño y el número de etiquetas que contiene HTML es muy reducido, por lo que la curva de aprendizaje es bastante rápida.
ETIQUETAS Y ELEMENTOS
Los documentos html se abren y cierran con la etiqueta <html></html>. Dentro de este par de etiquetas se encontrará el resto del
documento y, por lo tanto, los siguientes elementos:
• <head></head> Contiene información relativa a la página web, como puede ser, el título, metadatos, estilos..
Las marcas que pueden utilizarse dentro de las cabeceras son:
• <title></title> Obligatoria (todas las demás, opcionales). Aparecerá como título en el navegador Web.
• <meta></meta> Encargada de indicar el contenido de nuestras palabras junto con las palabras clave. Esta directiva suele llevar
dos atributos: name y content, que hacen referencia al nombre de la página y a sus principales contenidos. Ej:
<meta name=”descripción” content=”Página principal de Ilerna con alumnos y profesores”></meta>
<meta name=”keywords” content=”Nombre y apellidos de alumnos matriculados”></meta>
Otro uso diferente de la etiqueta “meta” es el “refresco automático” que, transcurrido un tiempo estimado, pasa a actualizarse de
nuevo la misma página. Recomendable si el contenido cambia con frecuencia.
<meta http-equiv=”refresh” content=”10”;”url=http://www.google.es”></meta> En este caso, estamos indicando que pasados 10
segundos, se acceda a la página web de Google.
• <base></base> Se le puede indicar una URL base de algún documento, sonidos, gráficos, etc.. que hagan referencia a una
determinada página web.
• <link></link> Define el formato del vínculo a la hora de indicar el comando href en el cuerpo.
• <script></script> Llevará insertado un script implementado en otro lenguaje. Mediante el atributo type indicamos el lenguaje de
programación y mediante el atributo src definimos la URL del script en el caso de que sea externo.
Ejemplo: <script type= “text/javascript” src=”/js/archive.js”> </script>
• <style></style> Marca que nos permite insertar una hoja de estilo en la cabecera. Mediante el atributo type, indicamos el
lenguaje del estilo, CSS, por ejemplo: <style type =”text/css”>body{margin-left:40px;} </style>
• <object></object>
Cuando creamos una página web, es conveniente que, al comienzo, realicemos una planificación de su diseño para, después,
ordenar la información y recursos disponibles que se van a ofrecer. Para llevar a cabo esta tarea, es recomendable que hagamos uso
de una estructura de directorios.
- <img src=”img/1.jpg” alt=”Imagen de ejemplo” width=150px height=100px></img> Permite incorporar una imagen en el
contenido que se va a representar.
Las etiquetas <figure> y <figcaption> ofrecen la posibilidad de agrupar una imagen con su información o leyenda.
- <br> Insert un salto de línea. En este caso, no es necesario poner la etiqueta de cierre. Puede cerrarse directamente. <br/>.
- <hr> Separa dos párrafos con una línea horizontal. No necesita etiqueta de cierre. Puede utilizar los atributos: align, noshade,
size, width.
- <b></b>, <u></u> y <i></i> Sirven para insertar texto en negrita, subrayado o cursiva respectivamente.
- <big></big>, <small></small> Agranda/disminuye el tamaño de la letra.
pág. 7
- <s></s> o <strike></strike> Tachado de texto.
- <div></div> Para agrupar varios elementos dentro de un bloque. Permite asignarles un identificador.
- <table></table> Sirve para escribir una tabla con el contenido que se desea representar. Cada fila se marcará con <tr></tr> y
dentro de la fila, cada <td></td> será la columna.
<th></th> Para crear las cabeceras de las columnas con su valor centrado y en negrita.
Desde la aparición de HTML5, soporta los siguientes atributos:
- summary: realiza el resumen y la estructura de la tabla para facilitar la tarea de
los buscadores.
- width: indica el ancho total de la tabla (px o %)
- frame: indica el nombre del marco en el que se puede visualizar la tabla.
- rules: especifica las líneas de división que serán visibles.
- border: determina el ancho del borde anterior.
- cellspacing: determina el espacio existente entre las distintas celdas.
- cellpadding: especifica el espacio existente entre el borde de las celdas y el
contenido.
Si tenemos una tabla, el primer elemento que podemos representar es el que aparece dentro de la etiqueta <caption></caption>,
que representa el título de la tabla que lo contiene.
Es posible combinar un conjunto de celdas con <colgroup> y <col spand=2>...
Disponemos además, de una serie de elementos que nos permiten referirnos a las diferentes partes de una tabla en el lenguaje
HTML: <thead> - <tbody> - <tfood>
- <ul></ul> Define listas no numeradas en las que cada ítem estará definido por <li></li>
A través del parámetro type se puede seleccionar el tipo de viñeta que se desee (html5 disk / circle / square).
- <ol></ol> Define listas numeradas en las que cada ítem estará definido por <li></li>
A través del parámetro start = número permite seleccionar el primer número de la lista.. y a través del parámetro type se
puede seleccionar el tipo de enumeración (html5 1 (1,2,3...), a (a, b, c... ), A (A, B, C...), i (i, ii, iii...), I (I, II, III...))
- <dl></dl> Listas de definición, ofrece la posibilidad de representar elementos de un diccionario (término y definición):
<dl>
<dt>Término</dt>
<dd>Definición</dd>
</dl>
- <blockquote></blockquote> Permite visualizar una cita con el margen izquierdo mayor produciéndose un efecto sangría.
- <pre></pre> Devuelve una copia exacta del texto, respetando los espacios en blanco, tabulaciones y retorno de carro.
- Hipervínculos: Permiten acceder a otro recurso (sitio web, fichero, imagen.. ) <a></a>
<a href=”URL”>Enlace</a> Define un hipervínculo a una URL. El contenido entre <a> y </a> es el que se mostrará en el
enlace. El atributo href es el que nos ofrece la posibilidad de crear un hiperenlace.
- Anclas y vínculos internos: Permiten acceder a un sitio concreto dentro de una página web. Si queremos hacer uso de los
vínculos internos, antes debemos establecer un ancla que es un punto fijo de posición al que accederemos tras un vínculo interno.
- Rutas relativas y absolutas:
- Absolutas: Aquellas que enlazan con páginas cuya dirección absoluta se indica en el atributo href del comando a. Suelen ser
páginas web externas y empiezan a direccionarse desde el comienzo de la ruta que indicamos:
<a href=”http://www.google.es”>
- Relativas: Aquellos enlaces cuya dirección se indica en el atributo href del comando a, Suelen ser enlaces a páginas internas
al mismo proyecto. Empiezan a direccionarse a partir del directorio actual.
<a href=”./pagina2/pagina2.html”>
- Imágenes: <img> A través de su atributo src (obligatorio), indicaremos la dirección donde está la imagen que queremos
visualizar. alt permite indicar un texto alternativo (por ejemplo, para visualizar si la carga de la imagen se ve frustrada).
- Colores: Podemos representar los colores mediante el símbolo “#”, seguido de tres pares de dígitos hexadecimales. El rango de
colores indica la intensidad de los colores primarios (rojo, verde y azul #RRVVAA). Los diferentes pares de cifras hexadecimal,
van a oscilar desde 00 hasta FF, proporcionando un rango que va desde 0 hasta 255 valores diferentes.
Otra forma de expresar colores en HTML es haciendo uso de una notación hexadecimal más corta, que utiliza un dígito para
cada color (#RVA). En este caso el rango de valores va de 0 a 15. También de forma directa: red, green, blue.
- Formularios: Toda la información que recogen los formularios debe tratarse por archivos que se deben implementar por el propio
desarrollador. De esta forma, lo almacenaremos en bases de datos diseñadas previamente. La información puede ser enviada o
procesada mediante e-mail o servidor web a través del botón de envío (submit).
Se define mediante el comando: <form></form>. Dentro de ese bloque, se implementan todos los elementos necesarios.
Atributos de form:
- action Indica la URL a la que se enviarán los datos del formulario.
- method Indica el método de transferencia de los datos en el servidor web.
post: envío codificado
get: envío de los datos a una dirección web
- target Se utiliza para indicar o especificar dónde vamos a mostrar la respuesta del formulario. Los valores pueden ser:
“_blank”: En ventana nueva.
“_self”: En la propia ventana del formulario.
“_parent”: En la ventana padre (la que precede al formulario.
- name: Identifica al formulario mediante un nombre. Para facilitar su tratamiento debería ser único.
pág. 8
ELEMENTOS DE UN FORMULARIO
- <fieldset></fieldset> Podemos agrupar un conjunto de elementos bajo un nombre utilizando este comando.
- <input name= “....“ type = “....“ ></input> Mediante esta etiqueta vamos a poder crear varios tipos de elementos,
dependiendo del valor que le demos al atributo type (checkbox, radio, date, submit, reset, search, password. Mediante
el atributo name identificaremos el elemento.
- <textarea></textarea> Área de texto de grandes dimensiones para que el usuario tenga la posibilidad de escribir todo lo
deseado. Los atributos de esta marca son name, cols Número de caracteres que puede tener cada línea, rows Número
de líneas del área de texto y readonly Para evitar que el usuario pueda editar el campo.
- <button></button> Para insertar un botón. Esto también podemos hacerlo directamente con el comando input (<input
name=”Enviar” type=”submit” value=”Submit”>. Podemos añadirle el atributo type, para indicar el tipo de botón que
queremos (submit / reset / button).
- <select><options value=”...”></options> </select> Este bloque de comandos sirve para definir una lista desplegable con
opciones.
- <label></label> Para asignar un título o etiqueta a un determinado campo del formulario.
MARCOS: Ofrecen la posibilidad de mostrar varios archivos html en la misma ventana del navegador. También pueden interactuar.
Los frames hacen que los sitios sean menos accesibles (más difícil imprimir el contenido, por ejemplo), por lo que hay que utilizarlos
cuando la situación lo aconseje.
<iframe></frame> Inserta un marco en un documento. Suele utilizarse para insertar publicidad o páginas de colaboración.
<objetct></object> El tipo de objeto que se inserta viene determinado por el atributo type (audio/mp3, video/mpg... )
<param name=”nombre_parametro” value=”valor_parametro”> No tiene etiqueta de cierre. Permite inicializar las variables objeto.
Html5 mediante unas etiquetas nuevas, añade una serie de características y elementos nuevos, agrupando los contenidos en
etiquetas que tienen asignado un nombre de acuerdo con la tarea que van a realizar:
• <header> Encabezado de la página
• <nav> Enlaces de navegación<
• <article> Algún artículo que se haya publicado
• <section> Parte correspondiente a algún artículo
• <aside> Barras laterales
• <footer> Pie de página
• <dialog> Distintos diálogos o comentarios
Además, html5 cuenta con <div> y <span>, para agrupar diferentes elementos hijos haciendo uso de atributos como class, id o tittle.
Variantes DTD para html: 3
- Strict DTD
- Transitional DTD
- Frameset DTD
pág. 9
CSS Comentarios: /*…..*/
Cascading Style Sheets. Es un lenguaje de presentación que resulta imprescindible para poder crear sitios web de calidad. El objetivo
es dejar HTML fuera de las tareas de presentación.
Principales ventajas: Facilidad a la hora de generar código y mantenerlo. Documentos más legibles. Menos código a la hora de escribir.
Formas de añadir hojas de estilo a los documentos HTML:
ID: Nos ofrece la posibilidad de seleccionar una sola línea de una página completa.
<h3 ID = “primero”>Texto1</h3>
<p ID = “segundo”>Texto2</p> #segundo { font-size: 50px}
<p ID = “tercero”>Texto3</p>
• Pseudo-clases: Permite seleccionar elementos según las indicaciones del usuario. Algunas de las pseudo-clases más frecuentes son
las que aplican a:
- :link Enlaces que nunca se visitan.
- :visited Enlaces visitados una vez como mínimo.
- :hover Elementos indicados por el usuario, sin necesidad de ser activados.
- :active Los elementos que se activan.
- :focus Los elementos que tienen el foco.
Ejemplo:
a:visited {color:black;}
a: active {color:red;}
MODELO DE CAJAS
Los elementos que deseamos añadir al documento html se van a representar de forma automática a través de cajas rectangulares
invisibles (a no ser que añadamos algún tipo de borde o color).
El alto y ancho de la caja se controlará mediante width y heigth, indicándose los valores
en píxeles o en porcentaje (respecto del padre). También puede utilizarse <inherit>, para
que los valores se hereden del padre o bien <auto>, para que sea el propio navegador
quien calcule dichos valores dependiendo del espacio que quede disponible en la página.
pág. 11
XML Conversión y adaptación de documentos XML
Consta de las siguientes partes:
XSLT: Este lenguaje declarativo, puede transformas documentos XML a distintos formatos.
XPath: Es un tipo de lenguaje funcional que puede tener acceso a determinadas secciones de un documento XML. Está
diseñado para acceder, transformar y dar formato de salida a los documentos XML.
XSL_FO: Hace referencia al vocabulario XML para poder determinar las distintas semánticas de formateo.
XSLT
Declarativo porque está basado en definir una serie de
reglas o plantillas que deben ser aplicadas a un
documento XML, para conseguir transformarlo en la
salida seleccionada.
Estas reglas, que suelen tener extensión .xsl, unidas al
documento .xml, se van a pasar como parámetros a un
procesador XSLT, encargado de generar el nuevo
documento.
Los inconvenientes que presenta el CSS (no pueden cambiar el orden de los elementos pertenecientes a un documento HTML, no
permite llevar a cabo distintas operaciones con los elementos y no puede combinar elementos), son superados con XSLT.
En muchas ocasiones se opta por una combinación de ambas hojas de estilo, utilizándose XSLT para determinar el contenido que se
quiere mostrar y su orden, y CSS para dar formato visual agradable a la información.
PROCESADOR XSLT
Transformación: Lectura del XML y representación del documentos mediante árbol de nodos (elementos, atributos, textos,
comentarios, instrucciones o espacios de nombres Procesamiento, nodo a nodo (el nodo que se está tratando en un instante
determinado es el nodo contexto) Transformación.
De XML podemos pasar a texto, XML o HTML.
Se puede llevar la transformación a cabo en tres sitios diferentes:
- En servidor web
- En servidor cliente
- En aplicación diferente
Pasos para la transformación:
Análisis de la hoja de instrucciones Paso a estructura de árbol.
Procesamiento del documento XML Paso a estructura de árbol.
Posicionamiento en la raíz del XML
Los elementos que no formen parte del espacio de nombres (prefijo xsl), se pasan a la cadena de salida sin modificación
alguna. Elementos de resultado literal.
El procesador sólo puede llevar a cabo una única regla en cada nodo. Si hay dos reglas sobre el mismo nodo y no se
indica prioridad (mode), se aplica la última en aparecer.
Algunas transformaciones especiales:
1. Una hoja de transformaciones sin plantilla, dará lugar al envío del contenido de texto del XML directamente a la salida (sin
tener en cuenta atributos, comentarios o instrucciones específicas de procesamiento.
2. Una hoja de transformaciones con una sola plantilla, asociada al nodo raíz, pero sin ningún contenido, no se envía nada a
la salida.
3. Si la hoja de transformaciones no tiene plantilla asociada al nodo raíz, pero sí tiene otras asociadas a otros elementos,
se irá realizando el recorrido por el árbol del documento XML, enviando el contenido textual a la salida y aplicando las
reglas definidas en las plantillas al encontrar elementos con plantilla asociada.
4. En general, se va recorriendo el documento XML y en el momento en que aparece alguna plantilla cuya expresión (atributo
match) coincide con el elemento en el que nos encontramos, se aplica la plantilla.
5. Si hubiera una plantilla vacía, el elemento al que afecte la plantilla y todos sus descendientes, no se visualizarían. Si es
el caso de la plantilla que se ajusta al elemento raíz, la salida que se generará es vacía y ya no se seguirá procesando la
hoja de transformaciones, aunque tuviera más plantillas.
6. Cada regla o plantilla en la hoja de transformaciones, contiene un patrón XPath asociado, que coincide con los nodos del
documento XML original, a los cuáles se aplicará la regla. Si hay varias plantillas que se ajustan a la misma expresión, se
aplicarán las reglas de resolución de conflictos.
pág. 12
ELEMENTOS
xsl:stylesheet ó xsl:transform Definen el elemento raíz en la hoja de transformaciones.
Atributo obligatorio: Versión; xmlns;
Optativos: exclude-result-prefixes lista (prefijos), separados por comas, los espacios de nombres que no deben ser enviados a la
salida.
xsl:output Definen el formato del documento de salida. Debe aparecer como hijo del anterior.
Optativos: method (XML, HTML, texto); Versión (sólo para los formatos de salida XML y HTML); encoding; indent; omit-xml-
declaration; standalone;
xsl:template Es junto con xsl:apply-templates, la instrucción principal de las hojas de transformaciones. Puede representar una
plantilla que dispone de una serie de acciones encargadas de realizar el patrón de una plantilla.
Contiene un patrón XPath asociado, que coincide con los nodos del documento XML original, a los cuáles se aplicará la regla. Cuando
una plantilla se aplica, se dice que ha sido instanciada.
Si aplicamos una plantilla a un determinado nodo, se va a aplicar sólo a ese nodo, pero lo que hace es sustituir al nodo y a sus
descendientes, por el resultado de la plantilla.
Si queremos que antes de sustituir el nodo y todos sus descendientes, se apliquen también a los descendientes otras plantillas, tenemos
que utilizar la instrucción <xsl:apply-templates>.
Optativos: name; match (expresión XPath); Si se omite uno de ellos, el otro es obligatorio. priority (valor de -9 a 9, para aplicar las
reglas de resolución de conflictos entre plantillas. Si no se le asigna priority, hay una aplicación automática, pero, en definitiva, cuanto
más específico es el patrón, mayor prioridad tiene); mode para distinguir entre plantillas cuyo atributo match sea el mismo, de forma
que en la invocación desde <xsl:apply-templates>, se puede indicar explícitamente cuál usar.
<xsl:apply-templates>
Optativos: select (expresión XPath); mode;
<xsl:call-templates> Permite llamar a una plantilla por su nombre.
Atributo obligatorio: name;
<xsl:value-of> Visualiza el contenido del elemento indicado en el atributo select y de todos sus descendientes.
Atributo obligatorio: select (expresión XPath);
Optativos: disable-output-escaping (indica si algunos caracteres especiales (>, &), van a enviarse tal cual a la salida o, por el contrario,
en su forma de entidad (>, &).
<xsl:text> Permite escribir texto literal en la salida.
Optativos: disable-output-escaping (indica si algunos caracteres especiales (>, &), van a enviarse tal cual a la salida o, por el contrario,
en su forma de entidad (>, &).
<xsl:for-each> Instrucción de control que permite repetir una lista de elementos para poder realizar diferentes
transformaciones sobre ellos.
Obligatorio: select (expresión XPath, que determina la lista de elementos que se va a repetir);
<xsl:sort> Devuelve los datos de un documento XML ordenados por algún método.
Optativo: select (expresión XPath, que determina el nodo o grupo de nodos que va a constituir el método de ordenación); order
(ascending, descending) ...
<xsl:if> Realiza una pregunta por una condición y, si esa condición es cierta, va a realizar una cosa. En caso de que sea falsa,
realizará otra.
Obligatorio: test (expresión XPath, que en caso de ser cierta, aplica a la plantilla);
<xsl:choose>, <xsl:when>, <xsl:otherwise> Ofrecen la posibilidad de llevar a cabo un comportamiento condicional con
distintas opciones, además de otra por defecto.
GENERACIÓN DE NUEVOS ELEMENTOS Y ATRIBUTOS (Para salida en formato XML)
<xsl:element> Permite la posibilidad de generar un elemento (nodo) nuevo en el documento de salida.
Atributo obligatorio: name;
Optativos: namespace; use-attibute-sets;
<xsl:attribute> Permite la posibilidad de generar un atributo de un determinado elemento.
Atributo obligatorio: name;
Optativos: namespace;
<xsl:comment> Crea un comentario en el documento de salida, que puede ser de texto literal o, un dato que se ha extraído del
documento XML inicial.
<xsl:processing-instruction> Ofrece la posibilidad de crear distintas instrucciones de procesamiento sobre el documento de
salida.
<xsl:copy-of> Permite realizar una copia exacta de un elemento a la salida. Tanto atributos como aquellos elementos descendientes,
también se copiarán.
<xsl:copy> Permite realizar la copia de un determinado nodo sin hacerla de sus descendientes.
pág. 13
XSL- FO
Es el lenguaje que se encarga de determina el aspecto que van a tener los datos a la hora de mostrarlos en un formato determinado
de salida, que suele ser PDF, RTF, PostScript...
FOP: Formatting Objects Processor. Es una aplicación (Java) que entre sus tareas principales se encarga de coger un documento XSL-
FO de entrada para generar una salida en formato diferente.
Para generar un PDF a partir de un documento con formato FO, la sintaxis a aplicar sería:
fop -fo <doc_existente.fo> -pdf <doc_generado.pdf>
Para generar un documento de salida PDF, partiendo de un XML, la sintaxis a aplicar sería:
fop -xml<doc_inicial.xml> -xsl<doc_inicial.xsl> -pdf <doc_final.pdf>
ALMACENAMIENTO DE INFORMACIÓN
Las bases de datos XML nativas son una alternativa a las relacionales, donde se sustituyen las tablas por una serie de documentos
HTML, con sus correspondientes elementos y atributos.
La herramienta BaseX, implementa dos tipos diferentes de lenguajes de consulta:
XPath: Lenguaje bastante sencillo que dispone de una gran cantidad de expresiones que nos van a permitir la posibilidad de
poder acceder a las diferentes partes de un documento HTML.
XQuery: Es otro lenguaje que utiliza XPath para facilitar la manipulación de documentos XML.
BaseX es un motor de datos nativo XML, que incluye XPath y XQuery. La información resultante de una consulta se puede presentar de
diferentes formas.. modo texto, estructura de árbol, estructura de carpetas, modo tabla, diagrama de dispersión..
En las bases de datos nativas podemos ejecutar tres tipos de sentencia:
- Opción Command
- Opción Search
- Opción XQuery
pág. 14
XPath
XPath: Lenguaje diseñado para acceder, transformar y dar formato de salida a los documentos XML.
Direccionamiento: Absoluto (/) , Relativo (“.” Directorio actual ; “..” Directorio padre).
XPath trata al documento XML como un árbol de Nodos.
Direccionamiento: absoluto o relativo.
Tipos de nodo:
• Nodo raíz del documento: nodo principal, ya que, a partir de los demás, comienzan a derivar los demás. Cada documento,
tiene un único nodo raíz y se caracteriza por ser un nodo que no tiene padre y tener, al menos, un hijo.
• Elemento: todo elemento de un XML es un elemento XPath.
• Atributo: se parece al nodo atributo de un XML.
• Texto: en este nodo, podemos almacenar toda la información que deseemos.
• Comentarios: conjunto de texto que no es procesado por el compilador, por tanto, el desarrollador del programa explica los
pasos que está realizando, para que, en un futuro, cuando retorne el código fuente por alguna avería o incidencia se conozcan
los detalles.
• Instrucciones de procesamiento.
• Espacio de nombre (namespace).
Tipos primitivos básicos: String, number y boolean.
EXPRESIONES MÁS COMUNES
• elem: Elemento de nombre elem.
• /elem: Elemento de nombre elem, situado en el directorio raíz (/).
• e1/e1: Elemento e2 es hijo directo de su padre e1.
• E1//e2: Elemento e2 es descendiente de e1, pero se desconoce el grado.
• //elem: Elemento de nombre elem, que depende del directorio / pero se desconoce a qué nivel.
• @atrib Atributo que se identifica con el nombre de atrib.
• * Carácter comodín. Cualquier elemento (o todos).
• @* Cualquier atributo (o todos).
• . Representa el nodo actual en el que nos encontramos.
• .. Representa el nodo padre.
• espNom:* Hace referencia a los elementos del espacio de nombres espNom
• @espNom:* Hace referencia a todos los atributos del espacio de nombres espNom
Añadiendo la cláusula text() a la expresión XPath, devolverá el texto de los nodos. Ejemplo: /coches/nombre/text()
En el caso de los atributos, utilizaríamos data() o string(). Ejemplo: /coches/@matrícula/data() ó /coches/@matrícula/string()
En las expresiones XPath se utilizan además operadores lógicos, aritméticos u otros operadores, así como funciones.
Podemos acceder a los elementos mediante filtros con dos tipos de valores:
Literales: Que van entre dobles comillas para acceder a ese valor concreto.
Acceder a un coche cuya matrícula es 0011: /coche/matrícula[@valor=”0011”]
Recuperados: Que permiten el acceso mediante otras expresiones.
Acceder a aquellas personas que tengan un coche de la marca Opel: /coche/marca[@valor=”Opel”]/persona/@dni
Acceso a elementos mediante ejes:
Estas expresiones permiten acceder a partes
concretas del árbol XML, siempre que exista
parentesco entre los distintos nodos.
pág. 15
XQuery: Otro lenguaje que utiliza XPath para facilitar la manipulación de documentos XML. Permite realizar consultas para extraer y
procesar la información contenida en el documento XML.
Una parte de XQuery se asemeja a SQL (utilizando las mismas cláusulas, como where, order by, etc.. ), por otro lado, se asemeja a
XPath, ya que con él comparte los modelos de datos y funciones y operadores. Igualmente, tiene los mismos nodos y tipos de datos
primitivos.
Sí son específicas de este lenguaje las siguientes funciones o cláusulas:
Función doc(): Permite leer un documento XML que indiquemos por parámetro, devolviendo el nodo raíz.
Función FLWOR(): Conjunto de funciones que se refieren a for, let, where, order by, return.
- for: indica, mediante un rango de valores, los elementos para tratar.
- Let: permite declarar variables para que, a continuación, podamos asignarle valores.
- Where: acompaña a la sentencia for, permitiendo introducir una condición, para que la estructura iterativa se repita
mientras que se cumpla dicha condición.
- order by: parámetro por el que vamos a ordenar la visualización del resultado de una determinada consulta.
- Return: comando que nos permite devolver un resultado de una expresión dada.
Gracias a estas funciones, se pueden construir funciones en XQuery.
Otras cláusulas:
- DECLARE FUNCTION Permite declarar funciones XQuery.
- if... else Simula una situación condicional.
Funciones predefinidas:
- uppercase Para pasar a mayúscula.
- substring Devuelve subcadenas de texto.
- contains Para comprobar si un carácter pertenece a una cadena de texto.
- max Devuelve el valor máximo de un conjunto de números.
- sum Devuelve la suma.
- avg Devuelve la media aritmética
- current-date Para calcular la fecha actual
- current-hour Para calcular la hora actual
- root Devuelve el nodo raíz de un árbol
Otros dos lenguajes que no han tenido demasiada repercusión por lo que su uso se ha quedado muy restringido: XLink y XPointer.
XLink. Es un lenguaje que permite vincular documentos XML mediante distintos tipos de enlaces.
XPointer. Es un lenguaje en el que se pueden enlazar fragmentos de ficheros XML. En este caso, puede hacer uso de la identificación
de fragmentos del lenguaje XPath.
DOM. En este caso la API se utiliza para acceder y tratar documentos XML como estructuras árbol. Es independiente al lenguaje
que se esté utilizando, en este caso, Java, ya que lo que realiza son modelos de objetos que se pueden tratar en cualquier lenguaje
orientado a las marcas. La jerarquía de objetos DOM, almacena las relaciones entre los distintos nodos de un documento XML para
facilitar su tratamiento. La diferencia con la API anterior es que, en este caso, sí que se almacena en memoria todo el documento.
Esta característica hace que el espacio de memoria tenga una capacidad considerable y los archivos más recomendado para este modo
de trabajar sea los documentos de menor tamaño.
Todo lo anterior está incluido en la API JAXP que se encuentra en la versión 6, de esta forma podemos procesar, tratar, validar y
consultar los documentos XML.
pág. 16
UF3 SISTEMAS DE GESTIÓN DE INFORMACIÓN EMPRESARIAL
Podemos definir las aplicaciones de inteligencia de negocio como aquellas que consiguen, entre otras funciones, automatizar y agilizar
procesos, registrar resultados y favorecer la extracción de conclusiones.
Algunas familias de aplicaciones son:
CM: Change Management. Distintas herramientas que tienen como fin facilitar a los empleados los cambios que tengan que
modificar.
BA: Business Analytics. Las distintas herramientas que vamos a emplear para analizar datos y resultados hasta que podamos
sacar las conclusiones oportuna.
ETL: Extract, Transform & Load data. Estas aplicaciones tienen como función fusionar aquellos datos de diferentes orígenes.
SFA: Sales Force Automation system. Aplicaciones que forman parte de un CRM y permiten registrar las fases de un proceso
de ventas.
BPM: Business Process Management.
MRP: Material Resource Planning.
SRM: Supplier Relationship Management.
KM: Knowledge Management.
PLM: Product Life Management.
PRM: Partners Relationship Management.
SCM: Supply Chain Management.
pág. 17
SAP 70’s Sistemas Aplicaciones y Productos. Software comercial, desarrollador de software más potente de Europa, considerada una
de las mayores del mundo.
SAP incorpora un lenguaje de programación propio ABAP, que ofrece la posibilidad de trabajar con diferentes datos y acceder a distintas
BBDD. Puede realizar llamadas a procesos remotos para establecer una comunicación entre sistemas. La última versión de SAP añade
la codificación de módulos en Java.
Módulos:
FI FInance
CO COntrolling (Control y costos)
LO Logistics
SD Sales & Distribution
MM Materials Management
LE Logistics Execution
PP Production Planning
HR Human Resources
BC Basics Components
IS Industrial Solutions
CRM Customer Relationship Management
QM Quality Management
Productos:
SAP Business Suit: Medianas y grandes empresas. Productos básicos. Posibilidad de conectar con otro software SAP o
de proveedores diferentes.
SAP Business One: Pequeña empresa.
SAP Business All-in-One: Solución completa. Arquitectura modular.
SAP Business ByDesign: Para gestiones empresariales basadas en aplicaciones online.
OpenBravo 90’s Alternativa a SAP pero de software libre. Utiliza la interfaz RIA (Rich Internet Application)
Cuenta con una arquitectura cliente que permite la integración con otros productos OpenSource existentes.
Módulos:
Gestión de datos maestros Gestión comercial y CRM
Gestión de aprovisionamientos Finanzas y contabilidad
Gestión de almacenes Inteligencia de negocio
Gestión de proyectos y servicios Retail POS (Point Of Sale)
Gestión de la producción
Especificaciones técnicas:
Servidor Cliente
S.O. Windows Server y Linux (entre otros que soporten Java) Web sin necesidad de instalaciones
BBDD PostgreSQL u Oracle JavaScript: Librería SmartClient
Lenguaje de programación: Java 2SE Ajax
FrameWork: Hibernate y Weld
Servidor: Apache
Generación de informes: JasperReports (de Jaspersoft)
ORACLE 70’s
En 2005 añadió nuevas empresas relacionadas con los sistemas empresariales, competidoras de SAP.
El producto integral ofrecido por Oracle es JD Edwards Enterprise One, que cuenta con toda la lógica necesaria para llevar a cabo la
gestión integral de las empresas. Permite además, ofrecer soluciones individuales de ERP, CRM y BI.
Microsoft
En 2001 creó una nueva línea de negocio más orientada al sistema de gestión empresarial. Este producto se ha ido desarrollando a lo
largo de los años para ofrecer soporte a medianas empresas (Dynamics NAV) y para añadir distintas funcionalidades de un ERP actual.
OpenERP
Es el ERP OpenSource que cuenta con más módulos libres para poder añadir. Arquitectura basada en cliente-servidor.
pág. 18
CRMs Customers Relationship Management. Aplicaciones con un amplio rango de funcionalidades.
Se trata de una aplicación que veces se encuentran integrada en un ERP, orientada al registro de información de clientes, ventas y
marketing.
Su función principal es conseguir clientes y mantenerlos. No son sólo un sistema de gestión empresarial, sino que también se refieren
a la visión que puede tener un cliente dentro de una empresa. El cliente es la parte central y todos los procesos van a ir destinados a
mejorar su relación con la empresa.
Tiene dos partes bien diferenciadas.
Lógica operacional:
- Automatización de ventas, productos y clientes para tener la información organizada.
- Automatización de marketing para gestionar las diferentes campañas.
- Gestión de soporte en la empresa.
- Gestión de servicio de atención al cliente.
- Organización del call center.
- Métricas que determinen el funcionamiento del negocio.
Lógica analítica: Analizará la información disponible, facilitando...
- Analizar la información existente para llevar a cabo las diferentes campañas de marketing.
- Indicadores del estado de la empresa.
- La modificación de estrategias según los cambios realizados.
Tareas principales: Almacenar datos, lanzar ofertas, realizar informes y llevar a cabo campañas publicitarias.
Podemos distinguir entre CRMs integrados en un sistema ERP (SAP, Oracle y Microsoft) o exclusivos (OpenSource y SugarCRM).
Estos últimos tienden a desaparecer.
Ejemplos de CRMs: SugarCRM, Salesforce, CiviCRM e HiperGate.
Data warehouse Es un almacén de datos que recopila toda la información correspondiente a la organización o a una
empresa determinada. Otra definición: Expediente de una empresa que contiene información transaccional y operacional. Se almacena
en una BBDD diseñada específicamente para proporcionar análisis. La información, en muchos casos, se divide en pequeñas unidades
lógicas denominadas centros comerciales.
Funciones:
- Integrar los datos de las correspondientes BBDD distribuidas, facilitando una descripción global y un análisis comprensivo.
- Separar datos de operaciones cotidianas con propósito de publicación y ayuda a la hora de la toma de decisiones.
Fases de implantación:
pág. 19
INSTALACIÓN Y CONFIGURACIÓN DE SISTEMAS ERP-CRM
Tipo de licencia
Licencias de código abierto. Permite su comercialización bajo una licencia de código abierto, permitiendo acceder al código fuente,
modificarlo y adaptarlo a las distintas necesidades que determine la empresa.
TIPO DE INSTALACIÓN
• Monopuesto: La instalación del software se realiza en un solo ordenador. Conveniente para entornos de desarrollo o aprendizaje,
pero no en producción.
• Cliente-Servidor: Se instalan todos los datos y la gestión de estos en un ordenador, siendo posible el acceso al control y
administración de los mismos desde distintos puntos de la organización, instalando una aplicación (cliente) con la que conectarse
al ordenador que posee los datos (servidor). Es, por lo tanto, una configuración bastante flexible.
Es conveniente utilizar la configuración cliente-servidor, para desarrollar diferentes tareas de administración, mantenimiento,
ampliación, etc.. en el servidor de manera eficiente.
Como inconveniente, señalar la infraestructura de comunicaciones ante un fallo en el funcionamiento.
• Cliente-Servidor Web: Similar a la anterior con la salvedad de que se utiliza una interfaz basada en estándares web, permitiendo
el acceso y la gestión desde cualquier navegador que esté instalado en la máquina cliente. Esta configuración ofrece mucha más
flexibilidad al poder hacer uso de cualquier navegador y no necesita ninguna aplicación antes de comenzar con el proceso de
instalación.
• SaaS: Utiliza el modelo Cliente-Servidor, pero el servidor se encuentra en otra empresa externa que se va a encargar del desarrollo
y mantenimiento del software.
Esta configuración dispone de unos precios ajustados. Como ventaja, se elimina la tarea de mantenimiento. Por otro lado, como
desventaja, se pierde el control del servidor.
Gestión empresarial: Actividad que mediante un conjunto de individuos especializados (gerentes, consultores, productores analistas.. )
pretende conseguir mejorar la productividad y la competitividad.
Business Intelligence. Conjunto de estrategias, aplicaciones, datos, productos, tecnologías y arquitectura técnicas enfocadas a la
administración y creación de conocimiento sobre el medio, a través del análisis de los datos existentes en una organización o empresa.
pág. 20
ACRÓNIMOS
HTML: HiperText Markup Language
WYSIWYG: What you see is what you get Aplica a lenguajes de presentación (procesadores de texto), que permiten escribir un
documento mostrando directamente el resultado final.
SGML: Standard Generalized Markup Language
XML: EXtensible Markup Language
XHTML:xEXtensible HiperText Markup Language Es más estricto en cuanto a que debe estar bien formado y definido en el DTD,
pues proviene de XML.
API: Application Programming Interface. Es el conjunto de funciones y procedimientos que ofrece una biblioteca , para ser utilizado por
otro software como una capa de abstracción.
DOM::Document Object Model (Modelo de Objetos del Documento)
W3C: World Wide Web Consortium
XSLT: EXtensible Stylesheet Language for Transformation
CSS: Cascading Style Sheets XSL: eXtensible Stylesheet Language
DTD: Document Type Definition SAX: API Simple para XML
FPI: Formal Public Identifier (DTD) JASP: API de Java para Procesamiento de XML
PCDATA: Parsed Character Data FOP: Formatting Objects Processor
CDATA: Character Data SVG: Scalable Vector Graphics.
RSS: Really Simple Sindication WML: Wireless Mark-up Language
PICS: Platform for Internet Content Selection XBRL: Extensible Business Reporting Language
TTL: Time To Leave
CMS: Content Management System
OpenBravo:
Interfaz RIA Rich Internet Application
Retail POS Point Of Sale
pág. 21