Saltar la navegación

Tecnologías XML

Entre las tecnologías XML disponibles se pueden destacar:

XSL : Lenguaje Extensible de Hojas de Estilo, cuyo objetivo principal es mostrar cómo debería estar estructurado el contenido, cómo debería ser diseñado el contenido de origen y cómo debería ser paginado en un medio de presentación como puede ser una ventana de un navegador Web o un dispositivo móvil, o un conjunto de páginas de un catálogo, informe o libro.

XPath : Lenguaje de Rutas XML, es un lenguaje para acceder a partes de un documento XML.

XLink : Lenguaje de Enlace XML, es un lenguaje que permite insertar elementos en documentos XML para crear enlaces entre recursos XML.

XPointer : Lenguaje de Direccionamiento XML, es un lenguaje que permite el acceso a la estructura interna de un documento XML, esto es, a sus elementos, atributos y contenido.

XQL : Lenguaje de Consulta XML, es un lenguaje que facilita la extracción de datos desde documentos XML. Ofrece la posibilidad de realizar consultas flexibles para extraer datos de documentos XML en la Web.

Ejemplos de diferentes tecnologías XML

Ejemplo de documento XML:

<?xml version="1.0" encoding="ISO-8859-1"?>
<libro>
  <titulo></titulo>
  <capitulo>
    <titulo></titulo>
    <seccion>
      <titulo></titulo>
    </seccion>
  </capitulo>
</libro>

Ejemplo de transformación XSL:

<!-- Transforma el documento XML anterior en un documento XHTML -->
<xsl:stylesheet version="1.0" xmlns="http://www.w3.org/1999/xhtml"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:strip-space elements="libro capitulo titulo"/>
<xsl:output
   method="xml"
   indent="yes"
   encoding="iso-8859-1"
   doctype-public="-//W3C//DTD XHTML 1.1//EN" 
   doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"/>

<!-- Utiliza el título del libro como título del documento XHTML -->
<xsl:template match="libro">
 <html>
   <head>
     <title>
       <xsl:value-of select="titulo"/>
     </title>
   </head>
   <body>
     <xsl:apply-templates/>
   </body>
 </html>
</xsl:template>

<!-- Y también como título de nivel H1 -->
<xsl:template match="libro/titulo">
  <h1>
    <xsl:apply-templates/>
  </h1>
</xsl:template>

<!-- Los títulos de los capítulos aparecerán como H2 -->
<xsl:template match="capitulo/titulo">
  <h2>
    <xsl:apply-templates/>
  </h2>
</xsl:template>

<!-- Los títulos de las secciones aparecerán como H3 -->
<xsl:template match="seccion/titulo">
  <h3>
    <xsl:apply-templates/>
  </h3>
</xsl:template>
</xsl:stylesheet>

Ejemplo de código XPath:

<!-- Toma todos los elementos titulo dentro del elemento capítulo
     y los elementos autor dentro del elemento capitulo -->
/doc/capitulo/titulo | /doc/capitulo/autor

Ejemplo de código XLink:

<my:crossReference
  xlink:href="libro.xml"
  xlink:role="http://www.example.com/linkprops/listalibros"
  xlink:title="Lista de libros">
Lista actual de libros
</my:crossReference>

Ejemplo de código XPointer:

documento.xml#xpointer(
    /libro/capitulo[@public])xpointer(/libro/capitulo[@num="1"])

Ejemplo de código de XQuery:

<!-- Libros escritos por Vargas Llosa después de 1991 -->
<bib>
 {
  for $b in doc("http://libro.example.com/bib.xml")/bib/libro
  where $b/autor = "Vargas Llosa" and $b/@anio > 1991
  return
    <libro anio="{ $b/@anio }">
     { $b/titulo }
    </libro>
 }
</bib>