Está en la página 1de 21

UF1 PROGRAMACIÓN EN XML

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

CLASIFICACIÓN SEGÚN EL TIPO DE MARCAS

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

TeX – Docbook – nroff – troff – RTF

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

XML – ASN.1 – YAML – EBML – RDF – XFML – OWL – XTM

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

• DE PROPÓSITO ESPECÍFICO: MathML – MusicXML – SSML – VML – X3D – XSLT

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.

Otras: Exchanger XML Editor y Liquid XML Editor.

XML ES UN LENGUAJE JERÁRQUICO


Los elementos se relacionan entre sí mediante relaciones de padres, hijos, hermanos..

El resultado es una estructura de árbol.

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.

PÁGINAS WEB Y DOM: Una página web es un


documento HTML que es interpretado por los
navegadores en forma gráfica. El DOM permite ver el
mismo documento de otra manera describiendo el contenido del documento como un conjunto de
objetos. Permite acceder a la estructura de una página HTML mediante el mapeo de los elementos
de esta página en un árbol de nodos.
pág. 2
Un documento XML es válido si existe una serie de reglas de validación que van a especificar la
estructura gramatical y la sintaxis que debe tener dicho documento y éste cumple con ellas.
Todo documento XML válido está bien formado, pero no todo documento XML bien formado es válido.
VALIDACIÓN CON DTD
Es una declaración de la estructura y sintaxis de un documento XML. Antes de crear un documento XML deberemos analizar qué
elementos y etiquetas se van a necesitar para la aplicación que se quiere crear.
El DTD (ubicación) se puede ubicar dentro del propio documento XML o fuera (fichero externo) y (carácter) puede ser privado
(identificado por la palabra SYSTEM) o público (debe ir con la palabra FPI Formal Public Identifier). Siempre se va a declarar al comienzo
del documento XML.
Combinaciones: <!DOCTYPE elemento_raíz + .....>

Componentes:

 Element: <!ELEMENT nombre_elemento (content)>


Nombre_elemento debe coincidir con el indicado en el documento XML.
En contenido, se puede indicar ANY (la validación no llevará a cabo ninguna comprobación sintáctica), EMPTY (indicará que
un elemento no tendrá descendientes), datos (#PCDATA), elementos descendientes (nodos hijos), es conveniente que
aparezcan entre paréntesis.
<!ELEMENT coach (#PCDATA)>
<!ELEMENT players (goalkeeper,defender+,midfielder+,striker+)>
En cuanto a la cardinalidad de los elementos: ? (0,1), * (0,N), + (1, N), “”(obligatoriamente una vez)
A,B  El elemento B aparecerá a continuación del elemento B.
A|B  Aparecerá el elemento A o el B, pero no ambos.
Contenido EMPTY / Elementos (hijos) / Mixto / ANY
Para definir elementos vacíos, existe la palabra EMPTY, que si se sitúa en la zona de categoría, permite indicar que el elemento
está vacío: (DTD) <!Element saltoLinea EMPTY>  (XML) <saltoLinea />
Cada elemento hijo tendrá luego también su propia definición como elemento!!! OJO

 Atributo: <!ATTLIST nombre_elemento nombre_atributo tipo_atributo valor_default>


nombre_elemento se refiere al elemento al que se le quiere añadir el atributo.
tipo_atributo (CDATA, ID, IDREF, IDREFS, NMTOKEN, NMTOKENS, ENTITY, ENTITIES
- CDATA: Texto, podrán tener cualquier carácter.
- ID: es un identificador que permite identificar al elemento de manera única.
- IDREF: es un identificador de otro elemento del propio documento XML.
- IDREFS: es una lista de identificadores a otros elementos (tipo 1 | tipo 2 | tipos | …)
- NMTOKEN: es un texto que solo podrá tener letras, dígitos, guión, subrayado, punto y dos puntos. Lo que se define
como nombres válidos XML.
- NMTOKENS: es una lista de nombre XML válidos. Es como un NMTOKEN pero se incluyen los espacios en blanco,
tabuladores o retornos de carro.
- ENTITY: el tipo del atributo es una entidad que se ha declarado anteriormente
- ENTITIES: Es una lista de entidades.
Los atributos pueden ser declarados como obligatorios (#REQUIRED), optativos (#IMPLIED) o fijos (#FIXED).
 Entidad. Caracteres especiales.
Las entidades pueden ser interna (declaradas en el propio fichero) o externas (privadas, SYSTEM o públicas PUBLIC) y pueden
referirse a:
- Entidades generales:
Interna:
<!ENTITY nombre_entidad definición_entidad>  <etiqueta>&nombre_entidad;</ etiqueta >
<!ENTITY rsa “República Sudafricana>  <etiqueta>&rsa;</ etiqueta >
Externa:
<!ENTITY nombre_entidad tipo_uso url_archivo>
<!ENTITY alumnos SYSTEM “alumnos.txt”>  <estudiantes>&alumnos</estudiantes>
- Entidades parámetro:
Interna:
<!ENTITY % nombre_entidad definición_entidad>
Externa:
<!ENTITY % nombre_entidad tipo_uso fpi url_archivo>
- Entidades no procesadas (unparsed):
Interna:
<!ENTITY % nombre_entidad tipo_uso fpi valor_entidad NDATA tipo>

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.

VALIDACIÓN CON ESQUEMAS XML


Ventajas:
- Al ser un documento XML podemos comprobar que esté bien formado.
- Dispone de un amplio catálogo de tipos de datos predefinidos para los posibles elementos y atributos.
- Permite conocer el número de veces que aparece un determinado elemento en un documento XML.
- Ofrece la posibilidad de utilizar varios espacios de nombres.
Inconveniente: Es bastante más difícil de interpretar por las personas, que los DTDs.
Componentes:

 El nombre correspondiente al elemento raíz se denomina <schema>


 Su espacio de nombres debe ser http://www.w3.org/2001/XMLSchema Se podría no definir prefijo o usar uno de los más
comunes xs o xsd. El esquema más sencillo sería:
<?xml version=”1.0”>
<xs:schema xmlsn:xs=http://www.w3.org/2001/XMLSchema>
....
</xs:schema>
 Como documento bien formado dispone de un elemento raíz, como mínimo, el esquema tendrá al menos la declaración de
ese elemento raíz, que se identificará como <xs:element>
Ej: <simple> Esto es un documento sencillo</simple>
En el esquema tendremos... <xs:element name=”simple” />
Si el esquema tiene declarado más de un elemento raíz, validará más de un tipo de documento XML.
El orden de los componentes no afecta al funcionamiento del esquema correspondiente.
El documento XML debe contener la vinculación al documento XML(esquema).. se declara un espacio de nombres de prefijo
xsi, propio de las instancias de esquemas XML y se indica la ubicación.
<?xml version=”1.0”>
<simple xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xsi:noNamespaceSchemaLocation=”simple.xsd”>
....
</simple>
Componentes básicos de un esquema: (Indico atributos optativos principales)
 xs:schema: Su atributo xmlns permite indicar el número de espacios de nombres que podemos utilizar en un determinado
esquema.
 xs:element: Componente que utilizamos para declarar un elemento y comprobar si existe en el documento XML. Atributos:
name (obligatorios si su padre es xs:schema), ref, type, default, fixed, minOccurs, maxOccurs..
 xs:attribute: Representa la existencia de un atributo de un elemento en el documento XML. Atributos: name (no puede
aparecer simultáneamente que ref), ref, type, use, default, fixed..
 Tipos de datos: Pueden ser predefinidos o construidos. Pueden ser numéricos, de texto, binarios y booleanos. También
pueden ser simples o compuestos.

Lenguajes basados en XML

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

<channel> Su principal función es describir


la fuente RSS mediante tres elementos
obligatorios:
- <tittle>  Hace referencia al nombre del
canal
- <link>  Define el hipervínculo del canal
- <description>  Se encarga de describir
el contenido correspondiente al canal

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:

- <tittle>  Hace referencia al título del artículo


- <link>  Define el hipervínculo al artículo
- <description>  Se encarga de describir el
contenido del artículo

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.

BLOG es una bitácora en internet que recopila contenido ordenado cronológicamente.


BLOGROLL es una colección de enlaces a blogs que aparecen listados en uno de los lados de las páginas web que muestran dicho
blogroll.

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.

• <body></body> Contiene la información que se desea presentar.


- <h1></h1> Define encabezado de tipo 1 (hay de 1 a 6, siendo 1 el más grande).
- <p></p> Sirve para representar un párrafo de texto. No pueden contener elementos de bloque. Sólo elementos de línea. El
navegador ajustará el párrafo al ancho de la página. A la hora de insertar un espacio, es necesario insertarlo mediante el carácter
&nbsp, pues algunos navegadores ignoran el espacio en blanco del teclado.

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

• CSS en línea: <p style=”font-family: Verdana; font-size: medium;”>HOLA MUNDO</p>


• CSS interno: <head>
<style type=”text/css”>
body {font-family: Courier New;}
h1 {font-family: Arial; font-size: x-large;}
p {font-family: Verdana; font-size: medium;}
</style>
</head>
• CSS externo: En este caso, primero crearemos el archivo “estilos.css” en una carpeta como /css.
body {margin: 0px;}
td {color: #000000; font-size: 12px;}
a {color: #FF6600; font-weigth: bold;}
a:hover {color: #3366CC;}
... Y después, se inserta el enlace <link> en cada documento:
<head>
<link rel=”stylesheet” type=”text/css” href=”/css/estilos.css”>
</head>
... o a través de la regla @import:
<style type=”text/css”>
@import “/css/estilos.css”;
</style>
Selectores:
• Podemos agruparlos si comparten igual declaración o selector:
h1 {..Regla1..;} + h1{..Regla2..;}  Iguales  h1 {..Regla1..;, ..Regla2..;}
h1 {..Regla1..;} + h2{..Regla1..;}  Iguales  h1, h2{..Regla..;}
• Universal: Permite seleccionar todos los elementos de una página: *.{..Regla1..;}
• De tipo: Permite seleccionar todos los elementos de una página cuya etiqueta sea igual que la del selector: p{..Regla1..;}
• Descendiente: A es descendiente de B siempre que A se encuentre entre la apertura y cierre de B. Estos selectores se construyen a
partir de dos o más selectores simples y separados por un espacio en blanco:
<p> Texto1 </p>
<p>
<a>Texto2</a>
</p>  p a {font-size: 50px} 
<p>
<span class=”nieto”>
<a>Texto3</a>
</span>
</p>
Podemos excluir a los hijos, para seleccionar a partir de los nietos, de esta forma:
<p> Texto1 </p>
<p>
<a>Texto2</a>
</p>  p * a {font-size: 50px} 
<p>
<span class=”nieto”>
<a>Texto3</a>
</span>
</p>
Podemos seleccionar el primer descendiente de un elemento (hijo):
<p> Texto1 </p>
<p>
<a>Texto2</a>
</p>  p > a {font-size: 50px} 
<p>
<span class=”nieto”>
<a>Texto3</a>
</span>
</p>
pág. 10
• Adyacente: Se utiliza para poder seleccionar aquellos elementos que sean hermanos entre sí, es decir, que todos tienen el mismo
padre. h1 + h2 {Font-size: 50px}
• ATRIBUTOS:
Existen cuatro formas de seleccionar los elementos:
- [atributo]: Elementos que tienen el mismo atributo, sin importar su valor.
- [atributo=valor]: Elementos que tienen ese mismo atributo con el valor que se le pasa.
- [atributo ~=valor ]: Elementos que tienen ese mismo atributo con, al menos un valor igual al especificado.
- [atributo | = valor]: Elementos que tienen ese mismo atributo y la palabra debe comenzar por el valor que se le pasa.
• De clase: Permiten seleccionar una determinada instancia de un elemento concreto.
<h3 class = “grande”>Texto1</h3>
<p class = “grande”>Texto2</p>  p.grande { font-size: 50px} 
<p class = “peque”>Texto3</p>

 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;}

• Pseudo-elementos: Algunos de los pseudo-elementos principales son:


- :first-line Para referirnos a la primera línea de un texto.
- :first-letter Para referirnos a la letra de un texto.
- :before Genera texto antes del contenido de un elemento.
- :after Genera texto después del contenido de un elemento.

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

 Contenido: Texto, imágenes, listas..


 Padding (relleno): Espacio entre el contenido y el borde
 Border
 Backgorund-image (imagen de fondo)
 Background-color (color de fondo)
 Margin: Espacio libre entre la caja y el resto de cajas adyacentes. Muestra el color
o fondo del elemento padre.

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.

Por ejemplo: #menu {width: 180px; heigth: 600px;


<div id=”menu”>
...
</div>
Colores CSS:
Se pueden establecer a través de palabras reservadas (Aliceblue, Brown, darkmagenta, coral... ) o con los siguientes formatos:
p{color: #ff0}; p{color: #ffff00}; p{color: rgb(255, 255,0)}; p{color: rgb(100%, 100%,0%)};
Estructuración del código CSS:
Cuando escribimos código CSS es conveniente distribuirlo en hojas independientes de estilo, agrupando las diferentes reglas que
necesitemos para cada función.
Ejemplo: Estilos globales (contenido html y body), Estilos de layout (ancho, alto, posición, etc.. de las capas principales), Estilo de cada
capa.

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.

ESTRUCTURA BÁSICA HOJA DE TRANSFORMACIONES


 Declaración del documento XML. <?xlm version=”1.0”?>
 Elemento raíz: <xsl:stylesheet (o xsl:transform) version=”1.0”
 Espacio de nombres. Prefijo xsl. xmlns=http://www.w3.org/1999/XSL/Transform ...>
... </xsl:stylesheet>
 Otros elementos (como hijos de <xsl:stylesheet>)

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 (&gt, &amp).
<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 (&gt, &amp).
<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>

XSL-FO muestra las salidas en áreas rectangulares.


Áreas más destacadas:
- Páginas: (múltiples para documentos impresos / 1 para navegadores). Se componen de regiones.
- Regiones: De acuerdo con el esquema de la izquierda. A su vez, las regiones contienen áreas de
bloque.
- Áreas de bloque. Párrafos, listas, tablas.. pueden contener otras áreas de bloque, pero la mayoría
contiene áreas de línea.
- Áreas de línea: Contienen áreas secuenciales.
- Áreas secuenciales: definen texto en el interior de líneas (caracteres simples, viñetas, gráficos...)
Espacio de nombres:
<xsl:stylesheet xmlns:xsl=”http://www.w3.org/TR/WD-sxl” xmlns:fo=”http://www.w3.org/XSL/Format/1.0“ result-ns=”fo”>
Elemento raíz: <fo:root>

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.

TRATAMIENTO DE XML DESDE JAVA


Una alternativa al tratamiento de los documentos XML es hacer lo mediante código JAVA en vez de con tratamiento en Bases de Datos.
Una de las colecciones de datos (API) más conocida para realizar esta tarea es JAXP y en su interior se encuentra SAX y DOM.
SAX. Fue la primera colección de funciones utilizada para tratar ficheros XML desde JAVA. Está basada en eventos y, por esta razón.
difiere un poco en el tratamiento del documento mediante árbol. Esta API a medida que va leyendo el documento va enviando
notificaciones en tiempo real. Es recomendable para documentos grandes, ya que su manera de procesar los datos no los guarda
en memoria.

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.

ERPs Enterprise Resource Planning. Aplicaciones integrales y modulares.


Podemos definirlos como la incorporación de un determinado sistema informático en todos los procesos (internos y externos) que están
relacionados con la empresa, ofreciendo ayuda a las distintas empresas de forma general y, en particular, a la toma de decisiones. Son
muy versátiles ya que pueden funcionar en diferentes sistemas operativos.
Los ERPs necesitan poder gestionar los procesos de comercio electrónico, así como los ciclos mencionados anteriormente.
La función principal de los ERP es la de facilitar el flujo de información que hay entre los elementos de una empresa, evitando duplicidad
de datos. Ejemplos de ERPs: SAP, Odoo, OpenBravo...
Sus características principales son que son integrales (es decir, abarcan todas las necesidades), modulares (las aplicaciones están
organizadas por módulos independientes que se pueden combinar), parametrizables (se adaptan a las distintas necesidades) y
escalables (ofrecen capacidad de crecimiento).
A la hora de elegir un ERP, se prestará especial atención a factores como:
- Que ofrezca soporte a todas las áreas que necesite la empresa.
- Que sea fácil y rápido en su uso.
- Que utilice estándares ya establecidos.
- Que tenga un período de migración y adaptación sencillo y rápido.
- Que proporcione informes y análisis e implemente seguridad.
- Método y tiempo necesario para la formación.
- Garantía del producto.
- Ciclo de vida.
- Servicios de soporte.
- Mantenimiento.
Además, a nivel técnico hay que tener en cuenta..
- Que utilice el hardware y software que ya posea la empresa.
- El S.O. necesario para ejecutarse.
- Las BBDD obligatorias necesarias para la implantación de la plataforma.
- La experiencia y nivel de implantación de la plataforma.
Ventajas de los ERPs
- Detección de puntos débiles en la gestión empresarial
- Optimización de los procesos que se desarrollan en la empresa
- Información centralizada, actualizada y coherente con los procesos internos que se ejecutan en cada momento
- Acceso a toda la información de la empresa de manera modular y basada en roles
- Compartición de la información relevante para cada uno de los procesos que lo requieran
- Reducción de los costes asociados y reducción de tiempos
- Análisis del estado de la empresa desde una visión global
Desventajas de los ERPs
- Costes de implantación. Recursos necesarios para formar a cada trabajador y su reciclaje continuo.
- Se deben identificar perfectamente los roles de cada uno de los trabajadores que operen con el ERP. La asignación correcta
de permisos evitará la propagación de errores y las fugas de datos.
- La instalación y puesta en marcha de un sistema ERP es costosa económicamente y en tiempo
- El acceso a recursos centralizados puede verse como un cuello de botella.
- Hay que verificar e identificar procesos que utilicen datos comunes de manera concurrente.
- Posiblemente los programas antiguos de gestión sean incompatibles con los modelos de datos del ERP
- Si la empresa es grande el hecho de compartir información entre departamentos puede resultar contraproducente.

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.

SugarCRM Software libre.


Módulos:
Ventas
Marketing
Servicio al Cliente
Se desarrollo para LAMP (Linux, Apache, MySQL y PHP). Implementación de la lógica de negocio en PHP. Actualmente puede almacenar
distintos S.O. como Windows, Linux y Mac OS.
Se puede ejecutar en la nube, de forma local, desde teléfonos inteligentes y tabletas.
Principales funciones:
Mantener cuentas de empresa, contactos de personas y las diferentes oportunidades de registro
Crear informes
Mantener documentos
Creación y mantenimiento de casos
Registro de llamadas / Envío de correos / Planificación de reuniones / Mantenimiento de tareas / Mantenimiento de notas
Creación de campañas publicitarias (correo electrónico y ordinario)
Creación de los diferentes artículos para la base de conocimientos
Mantenimiento de empleados

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:

- Definición de los objetivos


- Definición de los requerimientos de información
- Diseño y modelización: identificará las fuentes de datos y obtendrá un modelo lógico de datos del data warehouse. En esta
etapa se definirá la estructura de almacenamiento.
- Implementación siguiendo los siguientes pasos: Extracción y transformación de los datos del sistema. Carga de los datos
ya validados. Explotación del Data warehouse.
- Revisión. Para ir actualizando y potenciando su función y utilización.
- Diseño de la estructura de cursos de formació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.

Permiten hacer uso de un determinado producto sin muchas restricciones.


- Licencias permisivas: Sin limitación (BSD, MIT, Apache...)
- Licencias robustas: Distintas limitaciones a tener en cuenta..
 Fuertes: Se deben distribuir de la misma forma que la original (GNU, GPL, Eclipse)
 Débiles: Se distribuyen de forma muy parecida a la original, aunque pueden tener una licencia diferente (Mozilla,
OpenSource)
Licencias de código cerrado / Software propietario. Gran número de restricciones, dependiendo de la licencia.
Según el coste
- Freeware: Sin coste.
- Payware: con coste.
- Shareware: Sin conste durante un determinado período de tiempo.

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.

Características de la gestión empresarial:

1. Una empresa existirá siempre que obtenga beneficio.


2. La empresa debe realizar una buena gestión de los recursos disponibles para ser competitiva.
3. El objetivo principal de una empresa debe ser siempre el cliente.

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

BI: Business Intelligence


CBR: Case Base Reasoning
ERP: Enterprise Resource Planning
CRM: Customers Relationship Management
CM: Change Management.
BA: Business Analytics.
ETL: Extract, Transform & Load data.
SFA: Sales Force Automation system.
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.

SAP: Sistemas Aplicaciones y Productos.


FI FInance PP Production Planning
CO COntrolling (Control y costos) HR Human Resources
LO Logistics BC Basics Components
SD Sales & Distribution IS Industrial Solutions
MM Materials Management CRM Customer Relationship Management
LE Logistics Execution QM Quality Management

OpenBravo:
Interfaz RIA Rich Internet Application
Retail POS Point Of Sale

pág. 21

También podría gustarte