XML videoclase Flashcards

1
Q

INTRODUCCIÓN A XML

1. Que es y que no es un XML

A

− En 1991 Tim Barnes Lee crea las reglas de la primera versión de HTML.

− 1993 Marc Andressen y colaboradores crean Mosaic (primer navegador). Que luego fué Netscape que podíamos ver fotos y letras, formatos y tablas.

− 1995 Bill Clinton permite el acceso libre a internet.

− En 1998 ante la enorme explosión de páginas de internet y su necesario intercambio de la información, la w3c genera la especificación del XML. Ya que el html nunca fué pensado para manejar datos dada la gran cantidad de etiquetas (eran más etiquetas que información). Por eso se creó esa nueva especificación XML.

− XML por tanto nace como una extensión al HTML y significa Extensible Markup Language.

− Lo que no es el XML: no es algo que vaya a sustiuir al HTML. Si no más bien lo complementa.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q
  1. El XML se caracteriza por ser:
A

− Sencillo pero poderoso.

− Tecnologías alrededor de él lo hacen fundamental en el desarrollo Web, como son:
• Ajax
• RSS
• WebServices…

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q
  1. El XML no es
A

− No es un sustituto de HTML, aunque el estandar XHTML trata de reunir ambos (este fué estandar hasta aparecer HTML5).

− Alrededor de este lenguaje tendremos otras especificaciones como DTD, XSLT o XPath.

− Incluso se pueden utilizar estilos en cascada (CSS) en documentos XML.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q
  1. Especificaciones del XML
A

− http://www.w3.org/XML

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q
  1. Estructura de un documento XML
A

− Inicio:
etiqueta inicial
>? xml version=”1.0” encoding=”UTF-8” ?>

     >/nodohijo>
--------------------
*Ej:
>libros>
     >libro>
          >autor>Valor>/autor>
     >/libro>
>/libros>
--------------------
− Valores de los atributos entre comillas.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q
  1. Reglas básicas de XML
A

− Documentos bien formados

− Contenidos de un archivo XML: el XML no hace nada, no formatea, simplemente contiene datos.

− Validación de un archivo XML.

− XML Namespace

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q
  1. Documentos bien formados:
A

− Todos los archivos XML tienen sólo un nodo raiz.

− Las etiquetas sin contenido deben ser cerradas con una diagonal.

− No puede haber atributos sin valor.

− Los valores de los atributos siempre deben ir entre comillas.

− El anidamiento de las etiquetas debe ser siempre el correcto.

− La declaración de xml (opcional).

− A un documento XML que sigue todas las reglas se le conoce como “bien formado” (well-formed).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q
  1. Los elementos de un archivo:
A

− Elementos o nodos: a cada una de las etiquetas. Un nodo puede contener otros subnodos o subetiquetas.

− Atributos:
• su valor siempre entre comillas,
• no podemos usar caracteres especiales, palabra xml es palabra reservada para el analizador sintáctico
• y no puede haber atributos vacíos

  • Comentarios:
    • van a ser iguales a los comentarios html
    • y no se pueden anidar.

− Characters Data Section (o CDATA)
• generalmente cuando necesitamos colocar etiquetas html dentro de los valores

− Instrucciones de proceso

− Entity references: caracteres que no tenemos dentro de nuestro teclado.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q
  1. La declaración XML
A

− Es opcional

− Importante el encoding para el idioma que se va a utilizar.

− La W3C recomienda ponerla.

− Debe ser la primera línea del archivo.

− Versión: hay dos 1.0 y 1.1

− El standalone también es opcional.

− >? xml version=”1.0” encoding=”UTF-8” standalone=”yes”?>

− Aunque esto último de standalone es lo menos puesto.

− >? significa que es una etiqueta de control.

− >? xml (puede ir en mayúsculas o minúsculas)

− >?xml version (en inglés sin acento)

− UTF-8 caracteres occidentales.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q
  1. Los nodos o elementos de XML
A

− Iniciar con guión bajo o letra. No podemos iniciar con número o caracteres especiales

− Se puede dentro letras, números, guiones o guiones bajos. También puntos.

− Lo que no podemos utilizar son espacios.

− No se puede utilizar la cadena “xml” al nombrar un elemento. Es una palabra reservada.
− No se permite usar caracteres raros, no funny-characters. Nada de acentos, nada de ñ, nada de diéresis, ni ningún otro caracter que no sea del inglés.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q
  1. Los atributos en un documento XML
A

− Un atributo sigue las mismas normas que un elemento para su nombre.

− No puede haber atributos con el mismo nombre en una etiqueta.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q
  1. Comentarios en un documento XML
A

− Son los que no toma en consideración el analizador sintáctico y se los salta.

− Son iguales a los de HTML.

− La única condición es que no se pueden anidar, ni dentro de las etiquetas, ni en el inicio, antes que la etiqueta de declaración xml.

− Dentro de una etiqueta no puede meter un comentario. Tiene que ir fuera de etiquetas

 >!-- comentarios  -->
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q
  1. Character Data Section
A

− Permite escribir código libre, como etiquetas HTML, ya que su contenido no es analizado por el “parser” (o analizador sintáctico) de XML.

− Esto nos va a permitir añadir etiquetas HTML.
>nombre> Miguel >/nombre>
>nombre> > ! [ CDATA[ >b>Miguel ] ] > >/b>

Con esto le dedimos que todo lo que está entre corchetes no lo intereprete que lo deje tal como está.

− No se pueden anidar CDATA dentro de otro CDATA.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q
  1. Instrucciones de proceso o processing instruction
A

− Son instrucciones que sólo interesan a la aplicación que procesa el archivo XML, no al analizador sintáctico del XML. Pero si lo toma en cuenta la aplicación que está leyendo esta instrucción.

− Por ejemplo los xsl
>? target instruction ?>
>?xml-stylesheet type=”text-xsl” href=”estilos.css” ?>

− El nombre del target no puede ser XML y tiene las mismas reglas del nombre que los nodos y atributos.

− No son para XML sino para el navegador. Y así podemos poner instrucciones PHP…

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q
  1. Los caracteres especiales o entities
A

− Son los caracteres especiales que posiblemente no existen en el teclado (caso por ejemplo de marca registrada, el euro etc).

− Estos caracteres especiales hay que definirlos en un archivo que se llama DTD.

− Sin embargo vamos a tener 5 entities que si podemos utilizar directamente: & ‘ ⁢ > o “
Que serían &, las comillas dobles “”, y las comillas sencillas ‘ ‘

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q
  1. Los espacios en blanco en un archivo XML
A

− Los espacios en blanco (tabuladores, retorno de carro, etc…) sirven para hacer más legible (para nosotros) a los archivos XML.

− Los analizadores sintácticos de XML los ignoran, pero aumentan el tamaño de los archivos.

17
Q

USO DE LOS ESTILOS EN CASCADA EN UN DOCUMENTO XML

  1. Ligar un archivo XML a un archivo CSS
A

> ?xml-stylesheet type=”text/css” href=”css/libros.css”?>

18
Q
  1. Crear el archivo de estilos en cascada con las etiquetas generales
A
libros{
     display: block;
     font-size: 18px;
     width: 600px;
}
libro{
     display: block;
     border: 2px black solid;
     background: yellow;
     margin: 5px;
}
19
Q
  1. Crear los estilos en cascada para los subnodos de XML
A

− Igual que lo anterior
nombre{
}

20
Q

20- Manejar los atributos y colocar cadenas antes y después de los nodos

A

nombre: after{content: “, “ attr(paginas) “páginas”; color: orange; font-size: 18px;}
autor: before{content:”Autor: “;}

21
Q

EL MODELO DOM PARA XML

21. Introducción al modelo DOM en XML

A

− Tenemos 3 especificaciones dentro del DOM: una para html, otra para javascript y otra para xml. Y es esta última la que vamos a ver.

− DOM lo que significa es Document Object Model.

− Fue creado como estandar en 1998 por la W3C.

− Provee una forma de manipular, crear, cambiar y borrar el contenido de un documento por medio de un script (código). Luego de forma programática.

− El modelo DOM es independiente de la plataforma, navegador o lenguaje de programación. Esta es una de las ventajas del DOM.

− Representa el documento como un arbol y permite acceder a la estructura del mismo.

22
Q

22 Un punto importante en el modelo DOM

A
En el modelo DOM de XML, TODO es un nodo de arbol:
     • Elementos
     • Instrucciones de proceso
     • CDATA
     • Comentarios
     • Textos o contenidos

− Todo esto se considera un nodo. Entonces a cualquier parte del arbol se le va a considerar un nodo. Y vamos a acceder a él como tal

− La relación entre nodos es de “padre - hijo”.

− Así en el DOM se utiliza de forma frecuente los términos:
     • child (hijo)
     • sibling (hermano)
     • ancestor (ancestrp)
     • descendent (descendiente)
--------------------
*Ej
>libros> //este es el nodo raiz o root
     >libro>
          >nombre paginas="60"> Expiación>/nombre>
          >autor> Ron Howard>/autor>
          >editorial> Summa>/editorial>
     >/libro>
 >libro>
      >nombre paginas="50"> El Capital>/nombre>
      >autor> Carlos Marx>/autor>
      >editorial> Planeta>/editorial>
 >/libro> >/libros>

** En este caso libros sería el padre de libro y libro sería el hijo, autor sería el nieto de libros y libros el ancestro. Nombre, autor y editorial serían hermanos.

23
Q
  1. Padres, hijos y hermanos en XML
A

− Los nodos tienen una relación jerárquica dentro del arbol.

− Los nodos padres tienen nodos hijos, también llamados subnodos.

− Los nodos hijos del mismo padre son conocidos como hermanos (siblings) etc.

− El nodo principal es el nodo raiz o root.

− Cada nodo excepto el raiz tiene un nodo padre.

− Un nodo puede tener cualquier cantidad de nodos hijos (child) o subnodos. No hay un límite.

− Un nodo que no tiene hijos se le llama “leaf” (hoja). Sería el caso en nuestro ejemplo de nombre, autor y editorial.

− Los nodos que tienen el mismo padre se les llama hermanos o siblings, aquí no hay medios hermanos.

− Otro término que vamos a utilizar mucho va a ser firstchild (va a ser el primero de los hijos), caso de autor. Con ello recorremos los hijos de izquierda a derecha. El último de los hijos es lastchild.

− Y también vamos a tener una funcionalidad nextSibling (vamos de izquierda a derecha) y previousSibling (vamos de derecha a izquierda). Y así podemos navegar entre hermanos.

− Gracias a que la estructura de un archivo XML se puede representar como un arbol y es por tanto jerárquica, podemos recorrerlo sin saber su estructura exacta y sin conocer los datos que contiene o tener un mapa preciso. Simplemente nos vamos a la raiz y a partir de ahí nos vamos hacia la izquierda o la derecha con nextSibling, previousSibling, con lastchild o firstchild sin tener que conocer la estructura previamente. Y con ello recorreremos la totalidad del mapa.

24
Q
  1. Cargar un archivo XML por medio de XMLHttpRequest
A

− Para esto necesitamos navegadores modernos. Caso del explorer en versiones 6 y anteriores.

− Para cargar vamos a necesitar javascript y para ello nuestra etiqueta script. También lo podemos hacer en un archivo externo.
• Lo primero que vamos a verificar por medio del objeto window si tiene el objeto XMLHttpRequest.

* Ej:
>script>
     if(window.XMLHttpRequest( ){
          xhttp = new XMLHttpRequest( );
          alert("Si es moderno");
     } else {
          xhttp = new ActiveXObject(Microsoft.XMLHTTP);
     }
     xhttp.open("GET", "libros.xml", false);
     xhttp.send( );
     xmlDoc = xhttp.responseXML;
     alert(xmlDoc);
>/script>

** Con esto ya estaríamos listo para desmenuzar el documento XML mediante el DOM.

25
Q
  1. Propiedades y métodos para analizar un archivo XML
A

− Si revisamos dentro de las propiedades vamos a tener, con un sistema de notación de punto (siendo x nuestro nodo):
• x.nodeName - nombre del nodo x
• x.nodeValue - valor del nodo x
• x.parentNode - nos dice el nombre del padre del nodo
• x.childNodes - hijo del nodo x
• x.attibutes - atributos del nodo x

− Dentro de los métodos de XML-DOM (siendo x nuestro nodo)
• x.getElementsByTagName(nombre) - selecciona los elementos con el nombre de etiqueta especificado.
• x.appendChild(nodo) - inserta un subnodo en x
• x.removeChild(nodo) - quita el nodo dentro del elemento x
——————–
* Ejemplo de XML-DOM
libro = xmlDoc.getElementsByTagName(“nombre”)[0].childNodes[0].nodeValue

** childNodes[0] para bajarnos hasta el texto que también es un nodo

26
Q
  1. Recorrer un documento XML con las instrucciones DOM
A
*Ej:
titulos = xmlDoc.getElementByTagName("nombre");
for (var i=0; ibr>")
}
--------------------
** 
var libros = xmlDoc.documentElement.childNodes;
for (i=0; ibr>);
          document.write("Autor: "+libro[3].childNodes[0].nodeValue+">br>");
          document.write("Editorial "+libro[5].childNodes[0].nodeValue+">br>");
          document.write();
          document.write("------------"+">br>");
     }
}
27
Q
  1. Extraer el valor de los atributos con getNamedItem()
A
* Ej:
var libros = xmlDoc.documentElement.childNodes;
for (i=0; i");         
     document.write(libro[3].nodeName+" "+libro[3].childNodes[0].nodeValue+">br>");
     document.write(libro[5].nodeName+" "+libro[5].childNodes[0].nodeValue+">br>");
     document.write("------------"+">br>");
     }
28
Q
  1. La herramienta XPath:
A

− XPath es un lenguaje que nos permite navegar dentro de un documento xml.

− Fue creado como estandar en 1999 por la W3C.

− En esencia es parecido a las expresiones regulares.

− XPath es utilizado en el estandar XSLT, el cual permite transformar el estilo de un documento XML.

− Es utilizado en otras tecnologías como XQuery y XPoint.

− El lenguaje XPath contiene más de 100 funciones, entra las que se encuentran funciones de cadena, numéricas, de fecha, etc. Luego es extremadamente poderoso. Podríamos compararlo con un búsqueda en un disco duro.

− En XPath existen 7 tipos de nodos (muy parecidos a los que tenemos en XML):
• Elementos (element)
• Atributos (attribute)
• Texto (text), que van a ser los valores que tenemos dentro de los nodos.
• Nombres de espacio (namespace)
• Instrucciones (processing-instruction)
• Comentarios (comment)
• Nodos de documento (document nodes)

− A los nodos que ya no contienen otros nodos también se les conoce como “atómicos”.

− Se les llama “items” a los nodos.

− Se mantiene la misma relación entre nodos que en XML: padre, hijo, hermano, ancestro (va a ir para arriba), descendiente (va a ir para abajo).

29
Q
  1. Elementos de una cadena XPath
A

− Padres, hijos y hermanos:
EXPRESIÓN | DESCRIPCIÓN
• nodo - selecciona todos los nodos con ese nombre
• / - selecciona la raiz
• // - selecciona el nodo en el documento sin importar donde se encuentren
• . - selecciona el nodo actual
• .. - selecciona el nodo padre
• @ - selecciona el atributo
____________________
− Ahora si nosotros no tenemos el nombre del nodo, lo podemos hacer por medio de comodines, que sería el asterisco y en ese nivel todo nodo que se encuentre.
− Padres, hijos y hermanos
EXPRESIÓN | DESCRIPCIÓN
• * - selecciona cualquier nodo
• @* - selecciona cualquier atributo
• node( ) - selecciona cualquier nodo de cualquier tipo

30
Q
  1. XPath: ubicación absoluta o relativa
A

− Si la localización del XPath inicia con una diagonal, es absoluta.

− Si la localización del XPath NO inicia con diagonal, es relativa. Es decir donde sea el nodo base ahí empieza.

− Cada parte del camino o “Path” está formado por un eje o “axis”, que es un nodo con relación al “nodo actual” o “content-node”.

− nodo-prueba (node-test) identifica el nodo con el nodo actual.

− predicados (o ausencia de ellos), afina la selección con algún criterio. Con ello afinamos alguna búsqueda.

− También puede haber operadores en una expresión XPath, como suma, resta, multiplicación, etc.

31
Q
  1. Cargar un archivo externo con XMLHttpRequest
A