Esta guía asume que no sabes nada. Al terminar tendrás todo lo necesario para aprobar el examen final de LMSG en ASIR.
3
Temas del examen
45
Preguntas de práctica
16
Conceptos clave
¿De qué va esta asignatura?
LMSG (Lenguajes de Marcas y Sistemas de Gestión de la Información) trata sobre cómo almacenar, transformar y gestionar datos usando XML y sistemas empresariales.
En este segundo cuatrimestre el examen cubre tres bloques principales:
5
Transformaciones XML → HTML con XSL
Tienes datos en XML y quieres mostrarlos de forma bonita en el navegador. Usas XSL (que contiene XPath para filtrar y XSLT para transformar) para convertir ese XML en una página HTML.
6
Bases de datos XML: XPath y XQuery
En vez de guardar datos en una base de datos relacional (como MySQL), se guardan en documentos XML. Para consultarlos usas XPath (simple) o XQuery (más potente, parecido a SQL).
7
ERPs y sistemas de gestión empresarial
Los ERP (como Microsoft Dynamics 365) son programas que integran todos los departamentos de una empresa. También se estudian los sistemas Help Desk para gestionar incidencias.
Conceptos previos que necesitas
XML básico
¿Qué es XML?
Un formato de texto para guardar datos con etiquetas. Parecido al HTML pero tú defines las etiquetas. <disco><nombre>OK Computer</nombre></disco>
HTML básico
¿Qué es HTML?
El lenguaje que entienden los navegadores web. Con etiquetas como <table>, <tr>, <td> para mostrar tablas y datos de forma visual.
💡Clave de la asignatura: XML guarda los datos de forma estructurada pero "fea". El objetivo es transformar ese XML en HTML para que el usuario lo vea bonito en el navegador. Eso es exactamente lo que hace el Tema 5.
Cómo usar esta guía
1
Lee los temas 5, 6 y 7 en orden desde el menú lateral. Cada tema empieza desde cero.
2
Fíjate en los cuadros naranjas — son las trampas y preguntas típicas que menciona el profesor en clase.
3
Repasa el Resumen Visual — tabla comparativa de todo el temario en una sola página.
4
Haz el Examen Teórico (25 preguntas) y el Examen Práctico (20 situaciones con código) para autoevaluarte.
Tema 5
Transformaciones XML con XSL, XPath y XSLT
Aprenderás a transformar datos XML en páginas HTML visualmente atractivas usando el lenguaje XSL.
¿Por qué transformar XML?
Cuando abres un archivo XML en el navegador, esto es lo que ves:
XMLtienda.xml — así se ve en el navegador SIN transformación (feo)
El objetivo es convertirlo en una tabla HTML bonita con colores. Para eso usamos XSL.
XSL contiene DOS lenguajes:XPath (para navegar y filtrar los datos) y XSLT (para transformar y presentar esos datos). Ambos trabajan juntos dentro de un fichero .xsl.
XPath vs XSLT — La diferencia más importante del tema
XPath — Filtrado ANTES
¿Qué hace? Navega y filtra datos del XML
¿Cuándo actúa? ANTES de que lleguen los datos al procesamiento
Forma: Una sola línea, estructura tipo ruta
Ejemplo:/tienda/disco[precio < 50]
Analogía: Es el grifo. Si lo cierras, no llega agua. No importa lo que hagas después.
VS
XSLT — Condiciones DESPUÉS
¿Qué hace? Transforma y presenta los datos recibidos
¿Cuándo actúa? DESPUÉS de recibir los datos
Forma: Múltiples líneas con etiquetas XML
Ejemplo:<xsl:if test="año > 1990">
Analogía: Es el cocinero. Solo puede cocinar lo que le llega. Si no llega nada, no puede hacer nada.
⚠️TRAMPA DE EXAMEN (la más repetida): Si el filtro XPath ya excluye los discos de 1980 (por ejemplo, solo pasa los posteriores a 1990), añadir un xsl:if en XSLT no sirve de absolutamente nada. Esos datos NUNCA llegarán. La única solución es cambiar el filtro XPath.
XPath — Navegación por el XML
XPath funciona como las rutas de archivos en un ordenador. Usas barras / para navegar por la estructura del XML.
Expresión XPath
Significado
/tienda/disco
Todos los elementos disco dentro de tienda
/tienda/disco[precio < 50]
Solo los discos con precio menor que 50 — filtro
/tienda/disco[año > 1990]
Solo los discos posteriores a 1990
//disco
Todos los disco en cualquier parte del documento
/tienda/disco[1]
Solo el primer disco
XSLT — Las instrucciones principales
xsl:for-each
Bucle — recorre elementos
Itera sobre todos los nodos que selecciona XPath y ejecuta el código por cada uno.
xsl:if
Condición sobre datos recibidos
Comprueba una condición y solo ejecuta el código si se cumple. Ojo: solo actúa sobre los datos que ya llegaron.
xsl:value-of
Muestra el valor de un nodo
Extrae y muestra el contenido de texto de un elemento XML.
xsl:choose / xsl:when
Multiple condiciones (if/else)
Permite evaluar varias condiciones, como un switch/case. Para clasificar discos por décadas, por ejemplo.
Ejemplo completo paso a paso
Vamos a mostrar los discos con precio menor a 50€ en una tabla HTML:
XSLdiscos.xsl — Ejemplo con filtro XPath + presentación XSLT
<!-- El filtro XPath está en el select del for-each --><xsl:templatematch="/"><html><body><tableborder="1"><!-- XPath filtra AQUÍ: solo discos con precio menor que 50 --><xsl:for-eachselect="tienda/disco[precio < 50]"><tr><td><xsl:value-ofselect="nombre"/></td><td><xsl:value-ofselect="grupo"/></td><td><xsl:value-ofselect="precio"/></td></tr></xsl:for-each></table></body></html></xsl:template>
Añadir condición XSLT dentro del bucle
XSLCon xsl:if para marcar discos en oferta
<xsl:for-eachselect="tienda/disco"><!-- sin filtro: llegan TODOS --><tr><td><xsl:value-ofselect="nombre"/></td><td><!-- XSLT comprueba DESPUÉS de recibir todos los discos --><xsl:iftest="año > 1990">OFERTA</xsl:if></td></tr></xsl:for-each>
Caracteres especiales: < y > en XSL
En XML/XSL no puedes escribir < o > directamente dentro de atributos porque el parser pensaría que estás abriendo/cerrando una etiqueta. Se usan entidades de escape:
Símbolo
Entidad de escape
Ejemplo en XSL
< (menor que)
<
test="precio < 50"
> (mayor que)
>
test="año > 1990"
<= (menor o igual)
<=
test="precio <= 20"
Datos clave para el examen — Tema 5
✓
XSL no modifica el XML original — solo lee los datos y los presenta de otra forma.
✓
XSL puede transformar a más cosas que HTML — también a otro XML o PDF, pero lo más habitual es HTML.
✓
Se puede añadir CSS al XSL para dar estilos, igual que en HTML normal. Lo ideal es tenerlo en un fichero externo.
⚠
Pregunta trampa: "¿Qué harías para mostrar discos de 1980 si el filtro XPath es [año > 1990]?" → Cambiar el filtro XPath, NO añadir un xsl:if.
Tema 6
Bases de Datos XML XPath y XQuery
Aprenderás a almacenar documentos XML en bases de datos nativas y a consultarlos con XPath y XQuery.
¿Qué es una base de datos XML nativa?
En vez de guardar los datos en tablas (como hace MySQL), una BD XML guarda directamente los documentos XML tal cual. Nosotros usamos eXist-db en clase.
Ventaja principal: si ya tienes los datos en XML (exportados de otro sistema), no necesitas importarlos a tablas. Los consultas directamente.
XPath vs XQuery en bases de datos XML
XPath — Consulta simple
Estructura: una línea, tipo ruta de directorio
Reconocimiento rápido: empieza por /
Puede hacer: navegar, seleccionar, filtrar
NO puede hacer: ordenar resultados
Ejemplo:/biblioteca/libro
Con filtro:/biblioteca/libro[precio=23]
VS
XQuery — Consulta compleja
Estructura: FLWOR — varias líneas
Reconocimiento rápido: tiene for, where, return
Puede hacer: todo lo de XPath + ordenar + devolver HTML
RETURN: obligatorio siempre
Ejemplo:for $x in doc("lib.xml")//libro
Superconjunto: XQuery incluye XPath dentro
Truco para identificarlas en el examen: Si ves una sola línea que empieza por / → es XPath. Si ves varias líneas con for, where y return → es XQuery. XQuery es un superconjunto de XPath: usa XPath internamente pero añade mucho más.
Las cláusulas FLWOR de XQuery
El nombre FLWOR viene de las iniciales de sus cláusulas: For, Let, Where, Order by, Return.
XQueryCon ORDER BY y devolviendo HTML — algo que XPath no puede hacer
for$xin doc("biblioteca.xml")//librowhere$x/precio <30order by$x/titulo
return<h2>{$x/titulo}</h2>(devuelve HTML directamente)
Ventajas y limitaciones de las BD XML
Ventajas de seguridad
Frente a un fichero XML
✓
Usuario y contraseña para acceder
✓
Permisos distintos por usuario (solo lectura, escritura…)
✓
Limitar acceso a documentos o colecciones concretas
✓
Rechazo de conexiones por IP sospechosa
Limitaciones frente a BD relacional
Vs MySQL / Oracle / SQL Server
✗
No evita redundancia — puedes duplicar documentos sin error
✗
No controla inconsistencia — el mismo disco puede tener dos años distintos
✗
Sin relaciones entre documentos
✗
Sin índices únicos — no detecta datos repetidos
X-Update: modificar datos en BD XML
Para insertar, modificar o borrar documentos en una BD XML existe X-Update. Equivale al INSERT, UPDATE y DELETE de SQL.
Para el examen: no te van a pedir que escribas consultas X-Update. Solo tienes que saber que existe y para qué sirve. Lo importante de las BD XML es consultarlas con XQuery.
Tema 7
ERP y Sistemas de Gestión Empresarial
Aprenderás qué es un ERP, cómo se personaliza y para qué sirven los sistemas de Help Desk como GLPI.
¿Qué es un ERP?
ERP significa Enterprise Resource Planning (Planificación de Recursos Empresariales). Es un software que integra y centraliza todos los procesos de una empresa en un único sistema.
La clave del ERP: Es interdepartamental — todos los departamentos (ventas, finanzas, fabricación, almacén, RRHH…) usan el mismo sistema y comparten datos en tiempo real. Si Ventas introduce un pedido, Almacén lo ve al instante.
¿Qué hay debajo de un ERP?
Los usuarios ven pantallas con gráficos y tablas bonitas. Pero debajo hay una base de datos relacional que lo almacena todo:
Microsoft Dynamics 365
Base de datos: SQL Server
El ERP de Microsoft usa su propio motor de base de datos (SQL Server). Lógico, son de la misma empresa.
Oracle ERP
Base de datos: Oracle Database
Oracle hace tanto el ERP como la base de datos. Aprovechan su propio motor de BD para mayor integración.
Características de un ERP
1
Modular: está dividido en módulos por departamento (módulo de ventas, módulo de contabilidad, módulo de almacén…). Puedes instalar solo los que necesitas.
2
Interdepartamental: todos los departamentos comparten la misma base de datos. No hay "silos" de información.
3
Visión en tiempo real: en cualquier momento puedes ver el estado actual de toda la empresa (ventas del día, stock disponible, facturas pendientes…).
4
Centralizado: un único sistema para toda la empresa. Antes, cada departamento usaba su propio programa y los datos no se comunicaban.
Personalización del ERP (3 opciones — dato de examen)
Como técnico informático, tu trabajo en el ERP es principalmente personalizarlo, no programarlo. En Microsoft Dynamics 365 hay exactamente 3 zonas personalizables:
Zona 1
Área de trabajo
La pantalla principal del usuario. Puedes añadir, quitar o reorganizar los widgets y datos que aparecen.
Zona 2
Cinta de opciones
La barra de iconos y botones de la parte superior. Puedes añadir o quitar acciones frecuentes.
Zona 3
Panel de navegación
El menú lateral. Puedes reorganizar los módulos y accesos directos según las necesidades del usuario.
Cómo personalizar en Dynamics: En cada zona hay una flechita azul con la opción "Personalizar". Hay tres opciones: "Personalizar esta página" (área de trabajo), "Personalizar cinta de opciones" y "Personalizar panel de navegación".
Generación de informes en el ERP
Los técnicos no programan informes desde cero. Los generan desde los menús del ERP y los exportan:
📊 Exportar a Excel
Para hojas de cálculo con datos que el usuario puede manipular. En Dynamics siempre hay un botón de exportación a Office.
📄 Exportar a PDF
Para informes formales que se van a imprimir o enviar. El formato queda fijo y no se puede editar.
Help Desk y GLPI — Gestión de incidencias
⚠️TRAMPA TÍPICA DE EXAMEN: Los sistemas Help Desk (como GLPI) sirven para reportar y gestionar incidencias, NO para resolverlas. Son los técnicos humanos quienes resuelven la incidencia. El programa solo organiza los tickets.
1
Usuario detecta un problema
La impresora no funciona, el ordenador va lento, una aplicación da error…
2
Usuario abre un ticket en GLPI
Describe el problema en el sistema. Se crea un ticket con número de seguimiento.
3
El técnico humano resuelve el problema
Va a donde está el usuario, arregla el problema físicamente y cierra el ticket en GLPI.
4
Ticket cerrado
El sistema registra la incidencia como resuelta. Queda historial para auditorías futuras.
Repaso total
Resumen Visual Completo
Todo el temario en una sola página. Ideal para el repaso de última hora antes del examen.
Comparativa general de los 3 temas
Concepto
Tema 5
Tema 6
Tema 7
¿Qué estudia?
Transformar XML en HTML
Bases de datos XML nativas
ERPs y gestión empresarial
Tecnología clave
XSL (XPath + XSLT)
XQuery (+ XPath)
Microsoft Dynamics 365
Lenguaje de consulta
XPath para filtrar, XSLT para transformar
XPath (simple) y XQuery (complejo)
No hay consultas
Software de clase
Navegador + fichero .xsl
eXist-db
Microsoft Dynamics 365 / GLPI
XPath vs XSLT vs XQuery — de un vistazo
Característica
XPath
XSLT
XQuery
¿En qué tema?
5 y 6
5
6
Función principal
Navegar y filtrar datos
Transformar y presentar
Consultar (como SQL)
Número de líneas
Una línea
Múltiples líneas
Múltiples líneas
¿Puede ordenar?
No
No (solo con XSLT avanzado)
Sí (ORDER BY)
¿Puede devolver HTML?
No
Sí (es su objetivo)
Sí
Cláusula obligatoria
—
—
RETURN
Identificación rápida
Empieza por /
Etiquetas <xsl:…>
Tiene for…return
Las 5 trampas de examen del profesor
Trampa 1: Si el filtro XPath es [año > 1990] y te preguntan cómo mostrar discos de 1980, la respuesta es cambiar el filtro XPath, no añadir un xsl:if.
Trampa 2: GLPI / Help Desk no resuelve las incidencias. Solo las gestiona. Las resuelven los técnicos humanos.
Trampa 3: La transformación XSL no modifica el XML original. Solo lo lee y lo muestra de otra forma.
Trampa 4: XQuery tiene la cláusula RETURN siempre obligatoria. WHERE y ORDER BY son opcionales.
Trampa 5: Una base de datos XML NO es una base de datos relacional. No tiene relaciones, ni índices únicos, ni prevención de redundancia automática.
Personalizaciones del ERP — Exactamente 3
→ Área de trabajo — pantalla principal
→ Cinta de opciones — barra de botones superior
→ Panel de navegación — menú lateral
Cláusulas FLWOR de XQuery
F — FOR — itera (como FROM en SQL)
L — LET — asigna variable (opcional)
W — WHERE — filtra (opcional)
O — ORDER BY — ordena (opcional)
R — RETURN — devuelve resultado (SIEMPRE OBLIGATORIO)
Respondidas: 0/25
Correctas: 0
Examen Teórico
25 Preguntas Teóricas
Conceptos de los temas 5, 6 y 7. Responde todas las preguntas y comprueba tus resultados al final.
0%
puntuación
0
Correctas
0
Incorrectas
25
Total
Examen Práctico
20 Situaciones Prácticas
Situaciones reales con código XSL, XQuery y XPath como en el examen real. Lee el código con atención antes de responder.