-
Este video es una introducción a XML
-
El XML se puede pensar como
-
un modelo de datos, alternativo al
-
modelo relacional, para el modelado de datos
-
Además de hacer una introducción a XML,
-
vamos a compararlo con
-
el modelo relacional, aunque
-
no es sumamente necesario haber visto
-
los videos del modelo relacion para sacar algo de provecho de este
-
El nombre completo de XML es Lenguaje de Marcas Exstensible (Exstensible Markup Language)
-
El XML es un estándar para
-
la representación e intercambio de datos, y
-
fué diseñado inicialmente para el intecambio
-
de información en Internet.
-
Ahora, no se preocupe si no puede leer
-
el pequeño bloque de código en la esquina inferior del video.
-
No se espera que lo haga aún.
-
El XML puede ser visto
-
como un documento de formato similar
-
al HTML, si se encuentra familiarizado con HTML.
-
La mayoría de las personas lo están.
-
La gran diferencia es que
-
las etuiquetas en un documento HTML
-
describen el contenido de
-
los datos en lugar de cuál
-
es el formato de los datos, lo cual
-
es lo que se suele representar con los tags de HTML.
-
El XML tiene también un formato
-
de streaming (distribución de multimedia) o estándar de streaming
-
el cual se utiliza normalmente para el uso
-
de XML en programas, para que
-
admitan y consuman XML.
-
Veamos entonces los datos XML propiamente dichos.
-
En el lado izquierdo del video se observa una porción de un documento XML.
-
El documento entero está disponible
-
en el website del curso.
-
El XML tiene tres componentes básicos.
-
De nuevo, bastante similar al HTML.
-
Lo primero es un elemento etiquetado (tagged element).
-
Entonces, por ejemplo, miremos este elemento aquí.
-
Es un elemento que dice
-
que el dato aquí es First Name.
-
Por lo tanto tenemos una etiqueta de apertura y su correspondiente equiqueta de cierre.
-
Tenemos también un desarrollo anidado.
-
Por lo que, por ejemplo, tenemos un elemento que representa el Autor
-
Tenemos la equiqueta de apertura aquí,
-
la etiqueta de cierre aquí,
-
y un anidamiento de los elementos First Name y Last Name.
-
Aún mas grande tenemos
-
un elemento Book aquí con etiquetas
-
de apertura y cierre con un
-
anidamiento de numerosos elementos dentro
-
y el documento entero, de hecho, es
-
un elemento cuya etiqueta de apertura
-
es Bookstore y la etiqueta de cierre
-
no es visible en el video ahora.
-
Entonces, de esto es lo que los elementos consisten:
-
una etiqueta de apertura, un texto
-
o otro sub-elemento, y una etiqueta de cierre.
-
Adicionalmente tenemos
-
atributos, que cada elemento
-
puede tener dentro de su etiqueta
-
de apertura. Veamos el elemento Book aquí.
-
Un conjunto de atributos y
-
un atributo consiste en
-
un nombre de atributo,
-
el signo igual y un valor.
-
De modo que nuestro elemento Book
-
justo aquí tiene tres atributos:
-
Uno llamado ISPN,
-
Uno llamado Price
-
y uno llamado Edition.
-
Cualquier elemento puede tener cualquier cantidad
-
de atributos, siempre y cuendo los nombres de los atributos sean únicos.
-
Y, por último, el tercer componente
-
del XML es el texto en si
-
el cual está representado aquí en color negro.
-
De modo que, dentro de los elementos podemos tener Strings
-
Tenemos Strings por toda esta parte,
-
tenemos un título aquí,
-
aquí tenemos un comentario.
-
Y así, uno puede pensar
-
el XML como una suerte de
-
árbol en donde los textos
-
forman los elementos rama del árbol.
-
De nuevo, esos son los tres grandes componentes del XML.
-
Se parece bastante a HTML excepto
-
que las etiquetas describen el contenido
-
de los datos, y no la forma en que debe dárseles formato.
-
Ahora utilicemos algo de tiempo para comparar el modelo relacional contra el XML.
-
De nuevo, no es extremadamente importante que
-
aprendas acerca del modelo relacional de manera
-
que puedes saltear este material
-
si no te interesa, pero en muchos
-
casos cuando se diseña una aplicación que tiene que
-
trabajar con datos puede ser necesario
-
tomar una decisión sobre si usar
-
una base de datos relacional o si
-
almacenar los datos en XML.
-
Bueno, veamos algunos
-
aspectos diferentes de
-
los datos y cómo se usan y
-
cómo se comparan entre el modelo relacional y el XML
-
Empecemos con la estructura de los datos en si.
-
Como aprendimos, la estructura
-
en el modelo relacional es básicamente un conjunto de tables (tablas)
-
De manera que definimos un conjunto de columnas y tenemos un conjunto de filas.
-
XML es, generalmente, (otra vez,
-
usualmente en un documento o
-
en formato de texto), pero si uno
-
piensa acerca de la estructura en si misma, la estructura es jerárquica.
-
Los elementos anidados inducen una jerarquía o un árbol.
-
Existen construcciones que, de hecho, nos permiten
-
tener vínculos entre
-
documentos y demás, se puede
-
tener, también un XML que represente
-
un grafico, aunque, en general,
-
se lo piensa mas como una estructura de árbol
-
Luego, hablemos acerca de los esquemas.
-
En el modelo relacional el esquema es muy importante.
-
Uno fija el esquema con antelación,
-
cuando se diseña una base de datos,
-
luego añade los datos que se ajustan al esquema.
-
Pero, en XML, se tiene mucha mayor flexibilidad.
-
Por lo tanto el esquema es flexible.
-
De hecho, muchas personas
-
consideran a XML como auto-descriptivo.
-
En otras palabras,
-
el esquema y los datos están como mezclados todos juntos.
-
Las etiquetas en los elementos están
-
diciendo qué clase de datos
-
se obtendrán, y se pueden tener muchas irregularidades.
-
Ahora voy a decir que
-
existen muchos mecanismos para introducir
-
esquemas en XML, pero no son obligatorios.
-
En el modelo relacional los esquemas son absolutamente obligatorios.
-
En XML este es mas bien opcional.
-
En particular, volvamos
-
y demos un vistazo
-
a nuestro ejemplo, y veremos
-
que tenemos una suerte
-
de estructura elemental en nuestro ejemplo,
-
pero no todo está perfectamente estructurado,
-
como si lo sería en el modelo relacional.
-
Entonces, volviendo aquí y dando un vistazo,
-
primero que todo tenemos
-
esta situación donde en este
-
primer Libro, tenemos un atributo llamado Edition, la tercera edición
-
mientras que en el segundo Libre
-
tenemos solo dos atributos, por lo que no hay una Edición en este Libro.
-
En cambio, en el modelo relacional,
-
tendríamos que tener una columna
-
para Edición, y tendríamos una para cada Libro.
-
Aunque, por supuesto, podríamos tener ediciones en Null para algunos libros.
-
En XML es perfectamente aceptable
-
tener algunos atributos para algunos
-
elementos, y que estos atributos no aparezcan en otros elementos.
-
Aquí hay otro ejemplo en donde
-
tenemos un componente en un Libro
-
que no está en otro, y este es el componente Remark (Nota)
-
Por lo que tenemos un Libro
-
donde parece que tenemos
-
una Nota y de paso, se puede
-
ver que este Libro sugiere (esta
-
nota sugiere) que compremos
-
el libro completo todo junto con el primer curso.
-
El primer curso es un subconjunto,
-
por lo tanto, no es una muy
-
buena sugerencia, aunque Amazon de hecho la hizo.
-
En fin, me fuí por las ramas.
-
Si vemos que tenemos
-
una Nota para este primer Libro
-
y que no tenemos ninguna para
-
el segundo, lo cual no
-
es ningún problema en XML.
-
En el modelo relacional,
-
otra vez, tendríamos que usar valores nulos para ese caso.
-
Y para el tercer ejemplo
-
solo quiero obtener la cantidad de Autores.
-
El primer libro tiene dos autores,
-
el segundo libreo - no se puede ver completo, pero tiene tres autores.
-
No hay problema en XML.
-
Tener diferente cantidad de cosas
-
es perfectamente estándar.
-
Por lo que el punto principal es
-
que hay una gran flexibilidad
-
en XML en cuanto al esquema.
-
Se puede crear una base de datos
-
con ciertos tipos de elementos, después
-
añadir mas elementos, eliminar elementos,
-
introducir inconsistencias en la
-
estructura, y no hay ningún problema.
-
Y de vuelta, comentaré una
-
vez mas que hay mecanismos para
-
agregar elementos "tipo-esquema"
-
o especificaciones tipo-esquema al XML.
-
De hecho, vamos a cubrir ambas en los próximos dos videos.
-
Luego, vamos a hablar sobre como los datos son consultados
-
así que para el modelo relacional, tenemos algebra relacional
-
tenemos SQL
-
Son muy simples, yo diría que lenguajes agradables
-
Es un poco cuestión de opinion,
-
pero voy a darles una carita feliz
-
Consultas XML es un poco más complicado.
-
Ahora, uno de los
-
Factores aquí es que XML
-
es mucho más nuevo que el
-
Modelo relacional y la consulta XML
-
esta aun asentándose hasta cierto grado
-
Pero sólo voy a decir, que es un poco
-
menos, así que voy a darle
-
una carita neutral
-
en términos de cuan simple y
-
agradable son los lenguajes para consultas XML
-
y estaremos pasando algo de tiempo
-
en videos futuros, aprendiendo algo de esos lenguajes.
-
luego, en nuestro gráfico es el aspecto de ordenamiento.
-
Por lo tanto, el modelo relacional es
-
fundamentalmente es un modelo desordenado
-
y eso realmente se puede considerar una cosa mala hasta cierto punto.
-
A veces En aplicaciones de datos es bueno tener orden.
-
Aprendimos el orden por cláusula en SQL y esa es una manera de conseguir orden en resultados de consultas.
-
Pero fundamentalmente, los datos en nuestra tabla, en nuestra base de datos de relación, son un conjunto de datos, sin un orden dentro de ese conjunto.
-
ahora, en XML tenemos, diría, un orden implícito.
-
Por lo tanto XML, como ya he dicho, se puede considerar como un modelo de documento o un modelo de secuencia.
-
y en cualquier caso,
-
solo la naturaleza del XML
-
siendo establecida en un
-
documento como el que tenemos aqui
-
o siendo en una secuencia que induce un orden.
-
específicamente, Echemos un vistazo a los autores aquí.
-
Así que aquí tenemos a dos autores,
-
y estos autores están en un orden en el documento.
-
Si ponemos esos autores en una base de datos relacional, no habría orden.
-
podrían salir en cualquier orden
-
a menos que hicieramos
-
una orden por clausula en nuestra
-
consulta, Mientras que en XML,
-
implícito por la estructura del documento es un orden.
-
Y hay un orden entre estos dos libros también.
-
a veces ese orden es significante, a veces no lo es.
-
Pero esta disponible para ser utilizado en una aplicación.
-
Por último, hablemos de implementación.
-
Como he mencionado en vídeos anteriores,
-
el modelo relacional ha estado alrededor
-
por al menos de 35 años, y los
-
sistemas que lo implementan han estado
-
alrededor por casi el mismo tiempo.
-
Son sistemas muy maduros.
-
ellos Implementan el modelo relacional
-
como el modelo nativo
-
de los sistemas y son usados ampliamente.
-
Las cosas con XML son
-
un poco diferentes, en parte otra vez por que
-
XML no ha estado alrededor por mucho tiempo.
-
Pero lo que esta sucediendo ahora
-
en términos de XML y sistemas convencionales de BDD
-
es que XML es tipicamente un add-on (componente extra).
-
Por lo tanto en la mayoría de los sistemas, XML
-
será una capa sobre el sistema de base de datos relacional.
-
Puede introducir datos en XML;
-
puede consultar los datos en XML.
-
Se traducirá a una implementación relacional.
-
Eso no es necesariamente algo malo.
-
Y te permite
-
combinar datos relacionales y XML
-
en un solo sistema, a veces
-
incluso en una sola consulta, pero
-
no es el modelo nativo del propio sistema.
-
Ahora usted puede haber notado que el nombre de este vídeo es "XML Bien-formados".
-
Así que XML bien formado
-
es en realidad el XML más flexible.
-
Un documento XML o
-
una secuencia XML es considerada
-
bien formada si se adhiere
-
a los requerimientos básicos estructurales de XML.
-
Y no hay muchos.
-
Sólo que tememos un único
-
elemento raíz, como ya comentamos ante,
-
una sola librería en este caso;
-
que todas nuestras etiquetas
-
son coincidentes, no tenemos
-
tags (etiquetas) abiertas sin (tags) etiquetas cerradas;
-
y nuestras etiquetas están aninadas
-
correctamente, así que no tenemos entrelazamiento de elementos .
-
Y por último, dentro de cada elemento
-
si tenemos los nombres de atributos, ellos son únicos.
-
Y eso es de lo que se trata.
-
Eso es todo lo que requerimos para un
-
documento XML, o
-
Un conjunto de datos XML para ser considerados como bien formado.
-
Y para muchas aplicaciones, eso es todo que nos preocupa.
-
A fin de comprobar si un
-
documento está bien formado, y específicamente
-
Para acceder a los componentes del
-
documento en un programa,
-
Tenemos lo que llamamos un analizador de XML. (XML parser)
-
Asi que, tomaremos un documento XML
-
aquí, y lo alimentamos
-
a un analizador de XML, (XML parser)
-
y el analizador revisará la
-
estructura básica del documento,
-
solo para asegurar que todo esta bien.
-
Si el documento no aparece
-
a estos tres requisitos aquí,
-
el analizador sólo enviará un error diciendo que no esta bien formado.
-
Si el documento se adhiere
-
a la estructura, entonces lo que sale es XML analizado.
-
Y, hay varios estándares
-
para cómo mostramos XML analizado.
-
Uno se llama el modelo de objetos de documento,
-
o DOM; es una
-
interfaz de programación para tipo
-
de atravesar el árbol que está implícito por XML.
-
Otro popular es SAX.
-
Ese es mas que todo un modelo de secuencia para XML.
-
Así que estas son las maneras en
-
que un programa accedería al XML analizado
-
cuando este sale del analizador. (parser)
-
Así que surge un problema,
-
porque los datos XML se utilizan con
-
frecuencia en Internet, es
-
como mostramos XML.
-
Así que una manera de exhibir XML es
-
como lo vemos aquí, Pero muy
-
a menudo queremos dar formato a los
-
datos que se encuentra en un documento XML
-
o una cadena XML
-
de una manera más intuitiva.
-
Y en realidad hay una configuración para hacer eso.
-
Lo que podemos hacer es utilizar un
-
lenguaje basado en reglas para tomar
-
el XML y traducirlo automáticamente en HTML,
-
que luego podemos interpretar en un navegador.
-
Un par de lenguajes populares son
-
hojas de estilo conocidas como CSS o
-
el lenguaje de hoja de estilo extensible
-
conocido como XSL.
-
Vamos a ver un poco con
-
XSL después en un vídeo
-
en el contexto de la consulta en XML.
-
No cubriremos CSS en este curso.
-
Pero entendamos cómo se utilizan
-
estos lenguajes, cuál es la estructura básica.
-
La idea es que tenemos
-
un documento XML
-
y luego lo enviamos a un
-
intérprete de CSS o XSL, pero también
-
tenemos que tener las reglas que vamos
-
a utilizar en ese documento particular.
-
Y las normas van a hacer cosas como
-
coincidir patrones o agregar
-
comandos extras y una vez que enviemos
-
un documento XML a través de el intérprete,
-
obtendremos un documento HTML
-
y, a continuación, podemos reproducir el documento en el navegador.
-
Ahora, una cosa que debo mencionar es
-
que también comprobaremos con el
-
analizador para asegurar de que el
-
documento está bien formado
-
así como antes que traducimos a HTML.
-
Para concluir, XML es un
-
estándar para intercambio y representación de datos.
-
También puede ser pensado como un modelo de datos.
-
Especie de un competidor
-
para el modelo relacional para estructurar los datos en la aplicación.
-
Generalmente tiene mucha más
-
flexibilidad que el modelo relacional, lo que puede
-
ser una ventaja y una desventaja, en realidad.
-
En este vídeo cubrimos el
-
XML bien formado, por lo tanto,
-
XML, que se adhiere a los requisitos estructurales,
-
en el siguiente video cubriremos
-
XML válido, donde en realidad
-
introducimos una especie de
-
esquema para XML.
-
La última cosa que quiero mencionar, es que
-
la especificación formal de XML es absolutamente enorme.
-
Hay un montón de campanas y silbatos.
-
Vamos a cubrir, en estos videos,
-
los componentes más importantes
-
para la comprensión de cualquier cosa con XML.