Beruflich Dokumente
Kultur Dokumente
CAPTULO 151
ndice de contenido
UN POCO DE XML Y XSL................................................................................................................2
INTRODUCCIN...........................................................................................................................2
QU ES XML Y XSL?..................................................................................................................2
PREPARANDO NUESTRA BASE DE DATOS.............................................................................3
EXPORTANDO A XML..................................................................................................................4
PROCEDIMIENTO....................................................................................................................4
ARCHIVOS DE RESULTADO..................................................................................................6
MANIPULANDO EL ARCHIVO XML....................................................................................8
EXPORTANDO UN FORMULARIO........................................................................................8
TRASPASANDO LOS DATOS A UNA APLICACIN EXTERNA...........................................10
IMPORTANDO XML...................................................................................................................10
PARA FINALIZAR.......................................................................................................................11
1
Vistame en http://siliconproject.com.ar/neckkito/
UN POCO DE XML Y XSL
INTRODUCCIN
Por qu le dedico un captulo a XML y XSL? Bsicamente
porque se trata de un lenguaje ampliamente extendido que,
quizs, en algn momento nos pueda sacar de un apuro.
Qu ocurre? Que nuestra aplicacin XXX no puede leer datos directamente de Access.
Lgicamente, Access tampoco puede leer datos de XXX.
Y cmo podramos poner un parche a la anterior situacin? Pues la respuesta podra ser:
utilicemos un lenguaje que entiendan ambas aplicaciones.
Por cierto, cuando hablo de una aplicacin XXX no me refiero a una sper-aplicacin que nos
haya costado montones de dinero (que tambin podra serlo, claro). Me refiero a algo tan
comn como nuestro querido Internet Explorer, por ejemplo.
Debo deciros que, aunque chapurreo un poco XML, no es un lenguaje que controle. En
definitiva, que la idea que deberais sacar de este captulo es que se puede, con Access,
interactuar con archivos XML, y eso puede sernos de utilidad. Al que le guste mucho el sistema
pues no tendr ms remedio que estudiar por su cuenta esto de XML. Quiz, quien se anime,
pueda darme, en un futuro no muy lejano, clases a m... de manera gratuita, claro... je, je,
je...
Entremos en materia.
QU ES XML Y XSL?
XML corresponde a las palabras eXtensible Markup Language, con una espectacular traduccin
ma que es lenguaje estructurado por marcas.
XML est muy relacionado con Internet, y constituye uno de los lenguajes ms estandarizados
de intercambio de datos a travs de la Red.
Y por qu digo por marcas? Porque, asombrosamente (ji, ji...), XML utiliza marcas en su
desarrollo.
Seguimos confusos? Imagino que todo el mundo ha visto cdigo html. HTML utiliza tambin
marcas, que son las que definen lo que son los metadatos de la pgina web, lo que es la
cabecera, el cuerpo, si una frase que aparece est en negrita, o en itlica, etc. Esas marcas
vienen delimitadas por los smbolos (<) y (>).
Por ejemplo, y hablando de htlm, en el siguiente cdigo podemos ver las marcas head, tittle, y
body:
2
Vistame en http://siliconproject.com.ar/neckkito/
<html>
<head>
<tittle>ESTO ES EL TTULO</tittle>
</head>
<body>Esto es el cuerpo</body>
</html>
Todo lo que hay entre estas dos etiquetas pertenece a la cabecera. Por ello, el ttulo pertenece
a la cabecera, y, a su vez, la frase ESTO ES EL TTULO pertenece al ttulo, porque tenemos
una etiqueta de apertura <tittle> y otra de cierre </tittle>, y nuestra frase se halla entre
ambas.
He utilizado html porque creo que todo el mundo ha visto alguna vez en su vida un cdigo
html, y resulta muy fcil de entender.
Pues XML sigue el mismo patrn. No vamos a detenernos a examinar los requisitos de XML
porque no es objecto de este curso, pero os comentar que, a efectos de este captulo:
En uno de los ejemplos que veremos ms adelante nos detendremos a comentar el tema de
las marcas de un archivo XML.
Visto lo anterior, podremos deducir que XSL es una instancia de XML que permite gestionar la
presentacin de cmo veremos los documentos XML
Para finalizar comentaros que para editar y manipular un archivo XML necesitamos un potente
programa llamado Bloc de notas (je, je...), aunque nos servira cualquier editor de texto (yo
os recomiendo el Notepad++, que adems es portable).
3
Vistame en http://siliconproject.com.ar/neckkito/
Aadimos unos pocos registros (pocos para no tener un
XML muy largo). Por ejemplo, yo he aadido los siguientes
(los datos son inventados):
Ahora nos creamos un formulario en blanco. Ser el que nos servir para hacer pruebas. Por
ejemplo, yo lo he llamado FMenu (para variar, claro).
Finalmente, en la carpeta donde tenemos la BD, crearemos una nueva carpeta, a la que
llamaremos ArchivosXML. Ah guardaremos todos nuestros archivos xml.
EXPORTANDO A XML
PROCEDIMIENTO
Para exportar a XML vamos a utilizar el mtodo EXPORTXML, que tiene la estructura siguiente:
2 Para usuarios de Access 2007 y posterior tenemos un botn especfico para ello, que es Varios elementos. Los sufridos usuarios de
Access 2003 debern confeccionarse el formulario a medida, sacar sus propiedades Formato Vista predeterminada:
Formularios continuos.
4
Vistame en http://siliconproject.com.ar/neckkito/
formulario...
Tras esta intensa explicacin terica vamos a realizar un ejemplo, donde slo utilizaremos
algunos de los argumentos de los que hemos visto.
5
Vistame en http://siliconproject.com.ar/neckkito/
Que la codificacin era UTF-8
ARCHIVOS DE RESULTADO
Si ejecutamos este procedimiento y nos vamos a la carpeta
ArchivosXML veremos que se nos han creado 3 archivos:
Y qu sorpresa es? Que la pgina del navegador sale en blanco. Y por qu? No ser que
Firefox o Chrome no son de Microsoft?
Intentemos abrir misDatos.htm, pero esta vez con Internet Explorer. Qu nos sale?
Curioso, verdad?
Vamos a abrir el archivo misDatos.xml con el bloc de notas 3. Nos encontraremos con lo
siguiente:
3 Entiendo que todos sabemos cmo hacer eso, pero por si hay algn/a despistado/a debemos: hacer click con el botn derecho
sobre el archivo Abrir con... Seleccionamos el bloc de notas . Si no nos sale en la lista de programas le damos a la opcin
Elegir Programa... Seleccionamos el bloc de notas, y si an as no nos sale buscamos el archivo Notepad.exe
6
Vistame en http://siliconproject.com.ar/neckkito/
Como vemos, la primera y la segunda lneas se corresponden con valores por defecto que
siempre crea la exportacin, y que proporcionan informacin variada sobre el tipo y contenido
del archivo.
De ah que veamos:
<Id>1</Id>
<Peli>Matrix</Peli>
etc.
Si queremos verlo ms legible podemos abrir el archivo misDatos.xml con IE o con el editor
XML de Microsoft. Obtendremos unas delimitaciones ms claras y con colorines". Algo as:
7
Vistame en http://siliconproject.com.ar/neckkito/
Y, finalmente, si abrimos el archivo misDatos.xsl con el bloc de notas o con el XML editor de
Microsoft podemos prepararnos para llevarnos un susto...
Evidentemente no entraremos en explicar los detalles de este archivo (no creo que yo fuera
capaz ;-) ) Simplemente, como podemos intuir al verlo, vemos que marca los estilos que
configurarn el documento.
En la ilustracin podris ver el primer fragmento del cdigo que ya conocamos con la lnea
insertada. Para vuestra informacin esto es lo que verais si utilizis Notepad++
Y para qu nos sirve lo anterior? Pues para no depender de un archivo htm. Lo veremos con
ms claridad en el prximo apartado.
EXPORTANDO UN FORMULARIO
En nuestro FMenu vamos a aadir un botn de comando, al que llamaremos
cmdExportFormXML, y le generaremos el siguiente cdigo:
8
Vistame en http://siliconproject.com.ar/neckkito/
Private Sub cmdExportFormXML_Click()
'Declaramos las variable
Dim archivoDestino As String
Dim nombreArchivo As String
'Definimos las variables
nombreArchivo = "misDatosForm"
archivoDestino = Application.CurrentProject.Path &
"\ArchivosXML\" & nombreArchivo
'Exportamos el formulario
Application.ExportXML acExportForm, "FDatos",
archivoDestino & ".xml", _
, archivoDestino & ".xsl", , acUTF8
MsgBox "Exportacin realizada correctamente",
vbInformation, "OK"
End Sub
Como veis es prcticamente idntico al anterior, slo que adaptado a un formulario (os he
marcado en negrita las diferencias).
Si ejecutamos ese cdigo veremos que en nuestra carpeta ArchivosXML nos han aparecido,
como mnimo, tres archivos ms (si hemos dejado el logo -Access 2007 y sup.- nos habr
aparecido otro archivo grfico).
Recapitulando:
9
Vistame en http://siliconproject.com.ar/neckkito/
misDatosForm.xml no sabe que hay un archivo de presentacin
misDatosForm2.xml s sabe que hay un archivo de presentacin
misDatosForm2.xml
misDatosForm.xml
Como vemos, si no hay estilo IE slo puede mostrar el cdigo, mientras que si hay estilo IE no
muestra los datos con el estilo correspondiente (y nos evita depender de un archivo htm).
Para este ejemplo utilizaremos como aplicacin externa Microsoft Excel, bsicamente porque
doy por supuesto que todos disponemos de este programa.
As pues, nos situamos sobre el archivo misDatos.xml y lo abrimos con Excel. Al abrirse nos
pedir cmo deseamos abrir el archivo. Le indicamos la opcin Como tabla XML.
En principio la idea que apuntbamos al principio, que era poder pasar datos desde Access a
una aplicacin que no leyera directamente los datos en Access, ya est conseguida.
IMPORTANDO XML
Para realizar la importacin en Access utilizaremos el mtodo IMPORTXML, que tiene la
siguiente estructura:
10
Vistame en http://siliconproject.com.ar/neckkito/
<DatosOrigen> archivo xml donde estn los datos.
Al ejecutarlo se nos crear la tabla AppExterna con la informacin del archivo xml.
Fcil, verdad?
Y ya tenemos la segunda parte del proceso, que era poder incluir datos de una aplicacin
externa a nuestro Access.
PARA FINALIZAR...
Bueno... creo que eso es todo sobre el tema de XML. Espero que este captulo sirva para
11
Vistame en http://siliconproject.com.ar/neckkito/
incrementar los conocimientos de los recursos de que disponemos para manejar datos entre
aplicaciones.
Un saludo, y...
suerte!
12
Vistame en http://siliconproject.com.ar/neckkito/