Conversión e adaptación de documentos XML

De MediaWiki
Ir a la navegación Ir a la búsqueda


Introdución

A información XML pode ser consultada mediante linguaxes coma XQuery e XPath.

XPath

Podes consular máis información no artigo de XPath.

XQuery

Pode haber equivalentes XPath para as XQuery

Podes consular máis información no artigo de XQuery.

XLink

Xlink (XML Linking Language - Lenguaje de Vinculación para XML) es un estándar del W3C para vincular documentos XML (htþ://www.w3.org/TR/xlink). Es una tecnología que no ha tenido un gran desarrollo e implantación.

Con Xlink se pueden vincular documentos XML mediante enlaces simples, equivalentes a la etiqueta <a> de HTML que permiten vincular un documento con otro, y mediante enlaces extendidos, que permiten vincular varios documentos entre sí.

Amósanse varios enlaces simples.

<?xmf version="1.0" encoding="ISO-8859-l"?>
<clasicos xmlns:xlink="http://www.w3.org/1999/x1ink"> 
 <clasico titulo='tEl señor de las .moscasrr>
  <sinopsis xlink: type="simple" xlink:href ="http://www.clasicos/moscas.gif" xlink:show="new">
  Unos niños viajan en un avión que sufre un accidente...
  </sinopsis>
 </clasico>
 <clasico titulo="El guardián entre el centeno">
  <sinopsis xlink:type="simple" xlink:href="http://www.clasicos.com/guardian.gif" xlink:show="new">
  La visión muy particular de la vida que tiene un joven...
  </sinopsis>
 </clasico>
</clasicos>

2. Declárase o espazo de nomes http://www.w3.org/1999/x1ink.

4. Indícase que o tipo de vínculo é simple. Os vínculos simples son coma os enlaces en HTML, permitindo enlazar un documento so con outro recurso.

5. Indícase o ficheiro o que se van a vincular co atributo xlink:href

6. Indícase onde se amosará o recurso enlazado (nesta caso nunha fiestra nova)

Exemplo:

Vinculanse catro documentos XML (a súa existencia suponse):

  • un contén información sobre Salvador Dali (dali.xml)
  • outro contén información sobre a época na que viviu durante a segunda república española (segundaRepublica.xml)
  • outro sobre a sua parella Gala (gala.xml)
  • outro sobre o seu amigo o poeta Federico García Lorca (garciaLorca.xml).

Vaise crear outro documento XML que servirá de vínculo entre os outros catro.

<?xm] version="1.0" encoding="ISO-8859-1"?>
<entorno xmlns:xlink="http://www.w3.org/1999/x1ink" xlink:t1pe="exLended">
<!-- vincúlase ao pintor coa súa época e os seus achegados -->
<pintor xlink:type="locator" xlink:label="pintor" xlink : href=" dali.xml"/>
<allegado xlink:type="locator" xlink:label="pareja" xlink : href=" gala.xml"/>
<allegado xlink:type="locator" xlink:label="amigo" xlink: href="garcialorca.xml"/>
<historia xlink:type="locator" xlink:label="periodo" xlink: href="segundaRepublica.xml"/>
<vinculo xlink:type="arc" xlink:from="pintor" xlink : to="pareja"/>
<vinculo xlink:tynpe="arc" xlink: from="pintor" xlink:to="amigo"/>
<vinculo xlink:type="arc" xlink: from="pintor" xlink:to="periodo"/>
</entorno>

A Declárase o espazo de nomes http://www.w3.org/1999/x1ink.

A Índicase que o tipo de vínculo é extendido o que permite asociar múltiples documentos.

A Índicanse os ficheiros que se van vincular. Para ello se etiquetan los elementos implicados con el atributo xlink:t1pe=trl-ocatorrr. Se categorizacada fuente de información con el atributo xlink:labe1 (pintor, pareJa, amigo, etc) y se especifica el archivo donde se almacena la información con el atributo xl-ink: href .

A Por último, créanse os vínculos (arcos) entre as diferentes fontes de información con elementos que conteñen o atributo xlink:type="arc". Especificarase tamén desde onde, xlink: from, e ata onde, xlink: Lo, vai o arco.

Lista de atributos Xlink:
Atributo Descripción Posibles valores
xlink:type Tipo de enlace simple, extended, locator, arc, resource, title, none
xlink:href URI á que se enlaza
xlink:role URI
xlink:arcrole URI
xlink:title Descripción do enlace
xlink:show Onde se abre o enlace replace, new, embed, other, none
xlink:actuate Indica cando se amosa o recurso enlazado onLoad, onRequest, other, none
xlink:label Etiqueta dun elemento que se usará para vincular
xlink:from Valor do atributo xlink: label do elemento desde onde se vincula
xlink:to Valor do atributo xlink: label do elemento a onde se vincula

XPointer

É unha especificación do W3C para vincular fragmentos de documentos XML. Foi subdividido en catro documentos:

  • Framework básico que define esquemas de XPointer e simples fragmentos identificadores

E tres esquemas adicionáis:

  • xptr element para direccionar elementos pola súa posición ná árbore do documento
  • xptr xmlns, para atar prefixos de nomes de espacios ao nome de espazos de nome
  • xptr xpointer para direccionamento completo baseado en XPath

Emprégase conxuntamente con XLink, sendo ambas tecnoloxías que non tiveron moito éxito. Apóyase en XPath para identificar os fragmentos do documento XML enlazados.

Posibles expresións XPointer serían:

libro.xml#xpointer(/libro /capitulo[#publico])

Indica que se enlaza cun documento libro.xml no que se buscarán os elementos /Libro/capitulo que conteñan un atributo chamado publico.

libro.xm1#xpointer(/libro/capitulo[@publico])xpointer(/libro/capitulo[@num="2"])

Enlázase cun documento libro.xml no que se buscarán os elementos /libro/capitulo que conteñan un atributo publico. Se devolve un conxunto vacío de nodos avalíase a seguiente expresión, que devolve os elementos con atributo núm de valor 2 de /libro/capitulo


Existen diversas funcións predefinidas que permiten acceder a diversos puntos nun documento XML:

  • here ()
  • origin ()
  • point ()
  • start-point()
  • range()
  • ...


Ampliación. Máis exemplos no titorial de w3schools.

XSLT

Fluxo de XSLT

XSL (eXtensible Stylesheet Language, linguaxe de follas de estilo extensible) é un estándar que engloba un conxunto de tres estándares que teñen o obxectivo común de transformar e aplicar estilos aos documentos XML:

XPath
empregado para construir expresións que busquen e accedan a partes concretas do documento XML.
XSLT (XSL Transformations)
é unha linguaxe que nos permite crear unha serie de reglas e patróns que tranformarán o contido do documento orixinal noutro documento XML (ou con outro formato: XHTML, texto, LaTeX, etc.). Un uso típico é para pasar un documento XML a unha web XHTML.
XSL-FO (XSL Formatting Objects)
linguaxe que nos permite formatear os datos contidos no documento XML. Traballa con áreas, bloques, rexións, anchuras e alturas das páginas, dos márxenes, etc. Moi utilizado para xenerar ficheiros PDF a partir de documentos XML.

XSLT permítenos transformar un documento XML engadindo ou eliminando etiquetas ou atributos no documento final, reorganizando os seus elementos, ordenalos segundo algún criterio, etc. Así poderemos crear distintos documentos a partir dun mesmo XML orixe, ou ter distintas vistas da mesma información (dun mesmo documento con información dos meus clientes poido obtener un listado dos morosos, as etiquetas para as cartas que se lles envía ou información sobre a súa facturación, e todo como resultado de aplicar distintos XSLTs ó mesmo documento).

XSLT é unha linguaxe declarativa: as follas de estilo XSLT non se escriben como unha secuencia de instruccións, se non coma unha colección de plantillas (template rules). Cada plantilla establece cómo se transforma un determinado elemento (definido mediante expresións XPath). O seu funcionamento básico consiste en aplicar transformacións a aquelas partes do documento seleccionadas a través dunha expresión XPath que encaixan con alguhna plantilla:

  • O procesador analiza o documento e constrúe a árbore do documento.
  • O procesador recorre a árbore do documento desde o nodo raíz.
  • En cada nodo recorrido o procesador aplica ou non algunha plantilla:
  • Se a un nodo non se lle pode aplicar ningunha plantilla, aplícaselle un patrón predefinido, que copia o seu contenido no documento final (o texto do nodo, non o dos nodos descendentes). A continuación, o procesador recorre os seus nodos hijos.
  • Se a un nodo se lle pode aplicar unha plantilla, se lle aplica. A plantilla pode generar texto que se inclúe no documento final. En principio, o procesador non recorre os seus nodos fillos, salvo que a plantilla indique ó procesador que sí que deben recorrerse os nodos fillos.
  • Cuando o procesador recorreu a árbore, a transformación rematou

Podes ver este proceso e información detallada no artigo específico de XSLT.

Exercicios

Referencias

XPath

XQuery

XSLT