30
Intercambio de Datos en Paginas Web XML JSON YAML Jose Luis Rodriguez Roldan

Xml json yaml

Embed Size (px)

DESCRIPTION

Introduccion a xml json e yaml

Citation preview

Page 1: Xml json yaml

Intercambio de Datos en Paginas Web

XMLJSONYAML

Jose Luis Rodriguez Roldan

Page 2: Xml json yaml

XML

Introducción a XML El Lenguaje XML Estructura de XML XML bien formado y valido

Page 3: Xml json yaml

Introducción a XML

XML (Extensible Markup Language) es un metalenguaje que fue diseñado básicamente para estructurar, almacenar e intercambiar datos entre diferentes aplicaciones. Es un estándar, ya que es extensible y puede ser utilizado por cualquier aplicación independientemente de la plataforma.

Page 4: Xml json yaml

El Lenguaje XML es

Simple - La especificación completa mide menos de 30 cuartillas. XML ha sido diseñado para facilitar aún más la escritura de programas con respecto a HTML o SGML.

Extensible - Cada quien puede inventar sus propias etiquetas para marcar cual quier tipo de documento, y ser éstas compartidas. De hecho, XML es un metalenguaje que le permite al usuario definir su propio lenguaje de marcado.

Un estándar abierto - XML es SGML. Ello significa que no es necesario saber programar; existen muchas herramientas eficientes que permiten ya sea crearlo, manejarlo o implantarlo en una computadora y distribuirlo.

Eficiente - XML tiene entes interconstruidos para reutilizar fragmentos de documentos, así, estos sólo tienen que ser transmitidos una vez.

Basado en la experiencia - XML ha sido diseñado por personas que tienen amplia experiencia en los len guajes de marcado y han capitalizado las enseñanzas que el uso de ellos les ha su ministrado a lo largo de los años.

Consensuado - El diseño de XML incluye los puntos de vista de los organismos coordinadores de HTML y SGML, así como los de personas que han desarrollado importantes aplicaciones con es tos estándares.

Page 5: Xml json yaml

El Lenguaje XML es

Libre - Nadie tiene la propiedad o patente de XML, ni podrá tenerla, ya que tanto SGML como XML han sido definidos como estándares internacionales. Por lo mismo su uso o desarrollo no implica el pago de ninguna regalía.

Internacional - XML tiene interconstruido un soporte para textos en prácticamente todos los alfabetos del mundo, incluyendo técnicas para consignar el lenguaje y/o código del alfabeto utilizado.

Listo para ser usado - Los “browsers” o navegadores de la web, son capaces de leer especificaciones XML. Los hipervínculos, textos y multimedios pueden ser vistos tal como si fuere un documento HTML.

Manejable - XML incluye métodos para declarar y reforzar las estructuras documentales usadas actualmente, como las de bases de datos.

Validable - XML tiene técnicas que permiten la validación de los documentos involucrados, así que uno puede estar seguro de que los documentos registrados con él son crea dos correctamente.

Page 6: Xml json yaml

Estructura de XML

1.- Prologo. 2.- Elementos o Elemento Raíz 3.- Epilogo (opcional)

Page 7: Xml json yaml

Prologo

Especifica que el documento actual es XML, define la versión y la codificación de caracteres que se usó (UTF-8, UTF-16, ISO 8859-1, etc.) en su generacion. La codificación de caracteres no es obligatoria, pero es una buena práctica.

Algunas veces se especifica si el documento es autónomo, esto es, que no hace referencia a un documentos externos de estructuración. Ej. <!DOCTYPE book SYSTEM “empleados.dtd”?>

Page 8: Xml json yaml

Elementos o Elemento Raíz

Tiene una etiqueta inicial (tag inicial), una etiqueta final (tag final) y datos, las etiquetas (tag) son “case-sensitive”.

Pueden existir elementos vacíos <salario></salario> o </salario>

El o los atributos son un par nombre-valor que se asocia con un elemento particular.

El o los atributos tienen que ser especificados después de la etiqueta inicial (tag inicial) o el nombre de una etiqueta vacía

Page 9: Xml json yaml

Elementos o Elemento Raíz

Los comentarios son del tipo <!-- esto es un comentario -->

Las entidades(entity) se usan en XML como representación alternativa de los caracteres especiales (comillas dobles ó la marca de apertura en un elemento, acentos), también pueden emplearse para incluir el contenido de otros documentos o hacer referencia a trozos de texto repetitivos (una macro <!ENTITY amp "&#38;"&gt;

Page 10: Xml json yaml

Elementos o Elemento Raíz

Secciones CData

Le indican al procesador (parser) que ignore todos los caracteres de marcas que se encuentren en el interior de esta/s sección/es

Page 11: Xml json yaml

XML bien formado y valido

Bien formados: son todos los documentos que cumplen las especificaciones del lenguaje respecto a las reglas sintácticas. De hecho los documentos XML deben tener una estructura jerárquica muy estricta y los documentos bien formados deben cumplirla.

Válidos: Además de estar bien formados, siguen una estructura y una semántica determinada por otro documento (DTD, XSD): sus elementos y sobre todo la estructura jerárquica que define ese documento (DTD, XSD), además de los atributos, deben ajustarse a lo que el documento (DTD, XSD) dicte. El lenguaje utilizado para este fin es el XSDL (XML Schema Definition Language).

Page 12: Xml json yaml

XML valido DTD (Document Type Definition)

Un DTD define los elementos que pueden aparecer en un documento XML, el orden en el cual pueden aparecer, cómo pueden estar anidados y otros detalles básicos de la estructura del documento XML. Los DTD son parte de la especificación original de XML y son muy similares a los DTDs de SGML

Page 13: Xml json yaml

Document Type Definition

Page 14: Xml json yaml

XML valido XSD (XML Schema Definition)

Un esquema puede definir todas las estructuras de documento que pudieran definirse con DTD y además, puede definir tipos de datos y reglas mucho más complejas de las que pueden hacerse con DTD. El W3C desarrollo la especificación de Esquemas XML un par de años después que la especificación original XML.

Page 15: Xml json yaml

XML Schema Definition

Page 16: Xml json yaml

Ventajas de XSD (XML Schema Definition) sobre DTD

Los esquemas usan sintaxis XML Los esquemas XML soportan tipos de

datos Los esquemas XML son extensibles Los esquemas XML tienen mayor poder

de expresión

Page 17: Xml json yaml

JSON

Introducción a JSON El Lenguaje JSON Estructura de JSON

Page 18: Xml json yaml

Introducción a JSON

Acrónimo de JavaScript Object Notation, es un formato ligero para el intercambio de datos.

Una de las ventajas de JSON sobre XML como formato de intercambio de datos, es que es mucho más sencillo escribir un analizador semántico de JSON.

Se emplea habitualmente en entornos donde el tamaño del flujo de datos entre cliente y servidor es de vital importancia, cuando la fuente de datos es confiable y donde no es importante el no disponer de procesamiento XSLT para manipular los datos en el cliente.

Es una especificación que nos permite crear objetos al vuelo (on the fly).

Page 19: Xml json yaml

El Lenguaje JSON

JSON está constituido por dos estructuras: Una colección de pares de nombre/valor. En

varios lenguajes esto es conocido como un objeto, registro, estructura, diccionario, tabla hash, lista de claves o un arreglo asociativo.

Una lista ordenada de valores. En la mayoría de los lenguajes, esto se implementa como arreglos, vectores, listas o secuencias.

Page 20: Xml json yaml

Estructura JSON

Objeto: Un objeto es un conjunto desordenado de pares nombre/valor. Un objeto comienza con { (llave de apertura) y termine con } (llave de cierre). Cada nombre es seguido por : (dos puntos) y los pares nombre/valor están separados por , (coma).

Un arreglo es una colección de valores. Un arreglo comienza con [ (corchete izquierdo) y termina con ] (corchete derecho). Los valores se separan por , (coma).

Page 21: Xml json yaml

Estructura JSON

Un valor puede ser una cadena de caracteres con comillas dobles, o un número, o true o false o null, o un objeto o un arreglo. Estas estructuras pueden anidarse.

Una cadena de caracteres es una colección de cero o más caracteres Unicode, encerrados entre comillas dobles, usando barras divisorias invertidas como escape. Un carácter está representado por una cadena de caracteres de un único carácter. Una cadena de caracteres es parecida a una cadena de caracteres C o Java.

Page 22: Xml json yaml

Estructura JSON

Un número es similar a un número C o Java, excepto que no se usan los formatos octales y hexadecimales.

Page 23: Xml json yaml

Estructura JSON

Page 24: Xml json yaml

YAML

Introducción a YAML El Lenguaje YAML Estructura de YAML

Page 25: Xml json yaml

Introducción a YAML

YAML es un formato para serializar datos que es fácil de procesar por las máquinas, fácil de leer para las personas y fácil de interactuar con los lenguajes de script.

YAML corresponde a las estructuras nativas de datos de lenguajes ágiles.

YAML es portable entre lenguajes de programación. YAML es expresivo y extensible. YAML es fácil para implementar y usar.

Page 26: Xml json yaml

El lenguaje YAML

YAML fue creado bajo la creencia de que todos los datos pueden ser representados adecuadamente como combinaciones de listas, hashes (mapeos) y datos escalares (valores simples).

La sintaxis es relativamente sencilla y fue diseñada teniendo en cuenta que fuera muy legible pero que a la vez fuese fácilmente mapeable a los tipos de datos más comunes en la mayoría de los lenguajes de alto nivel.

YAML utiliza una notación basada en el indentación y/o un conjunto de caracteres Sigil distintos de los que se usan en XML, haciendo que sea fácil componer ambos lenguajes.

Page 27: Xml json yaml

Estructura YAML

YAML utiliza para describir el contenidos el conjunto de caracteres imprimibles Unicode, UTF-8 o UTF-16.

La estructura del documento se indica indentando con espacios en blanco, esta prohibido identar con tabulaciones.

Los comentarios se encabezan con ( # ) y tiene efectos hasta el final de la línea.

Los valores simples (o escalares) en general se representan sin comillas pero pueden utilizarse tanto comillas dobles (“ “) o comillas simples (‘ ‘).

La representación para los arreglos asociativos es “clave: valor” ósea dos puntos seguidos de un espacio una por línea o entre llave ({ }) separados por comas seguido de un espacio ( , ).

Un valor de un arreglo asociativo esta precedida por un signo de interrogación ( ? ), permitiendo construir claves complejas sin ambigüedades.

Page 28: Xml json yaml

Estructura YAML

Las listas simples se denotan encabezados por un guion ( - ) con un elemento por cada línea, o entre corchetes ( [ ] ) y siempre separados por coma espacio ( , ).

Cuando se utilizan comillas dobles para denotar un elemento los carácter especiales se representan como en el lenguaje de progresión “C” que es una secuencia de escape que comienza con una barra invertida (\).

Es posible incluir mas de un documento dentro de un mismo flujo, separándolos por tres guiones ( --- ); los tres puntos ( ... ) indican el fin de un documento dentro de un flujo.

YAML requiere que las comas como los punto y comas que se utilizan como separadores en el documento siempre sean seguidos de un espacio para poder representar los valores simples (escalares) se puedan representar sin las comillas simples o dobles.

Page 29: Xml json yaml

Estructura YAML

Page 30: Xml json yaml

FIN¡¡Gracias!!

DEMO