Introducción a XML

2.063 visualizaciones

Publicado el

Un pequeño repaso a XML

Publicado en: Tecnología, Empresariales
0 comentarios
3 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
2.063
En SlideShare
0
De insertados
0
Número de insertados
175
Acciones
Compartido
0
Descargas
85
Comentarios
0
Recomendaciones
3
Insertados 0
No insertados

No hay notas en la diapositiva.
  • Introducción a XML

    1. 1. martes, 07 de noviembre de 2006 XML Conceptos generales. Isaac Ruiz Guerra (RuGI)
    2. 2. martes, 07 de noviembre de 2006 <ul><li>Introducción </li></ul><ul><li>Validaciones </li></ul><ul><li>XPATH </li></ul><ul><li>XQUERY </li></ul><ul><li>XSLT </li></ul><ul><li>Web Services </li></ul>
    3. 3. martes, 07 de noviembre de 2006 Introducción <ul><li>Qué es XML. </li></ul><ul><ul><li>Un lenguaje de marcado de texto creado para el intercambio de datos. </li></ul></ul><ul><li>Su importantancia. </li></ul><ul><ul><li>Es texto plano. </li></ul></ul><ul><ul><li>Datos identificados. </li></ul></ul><ul><ul><li>Fácil de procesar. </li></ul></ul><ul><ul><li>Jerárquico </li></ul></ul><ul><li>Dónde se puede utilizar. </li></ul>
    4. 4. martes, 07 de noviembre de 2006 <ul><li>Introducción I </li></ul><ul><li>Sintaxis: </li></ul><ul><li>Elementos </li></ul><ul><ul><li>Deben tener inicio y fin </li></ul></ul><ul><ul><li>Nombres sin espacios </li></ul></ul><ul><ul><li>Anidamiento ordenado </li></ul></ul><ul><ul><li>Elementos vacios </li></ul></ul><ul><li>Atributos </li></ul><ul><ul><li>Tambien llamados modificadores </li></ul></ul><ul><li>Comentarios </li></ul><!-- Este es un comentario --> <persona> <nombre>Juan</nombre> <foto nombre=“foto1.jpg” / > </persona>
    5. 5. martes, 07 de noviembre de 2006 Introducción II <ul><li><!-- Este es un comentario --> </li></ul><ul><li><persona> </li></ul><ul><ul><li><nombre>Juan</nombre> </li></ul></ul><ul><ul><li><edad>27</edad> </li></ul></ul><ul><ul><li><entrada hora=“9” minutos=“10” > 07112006</entrada> </li></ul></ul><ul><ul><li><persona> </li></ul></ul>Atributos Elementos Comentarios
    6. 6. martes, 07 de noviembre de 2006 <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <persona> <nombre>Isaac</nombre> <apellido>Ruiz</apellido> <color>azu</color> </persona> <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <persona nombre=“ I saac&quot; apellido=&quot;Ruiz&quot; color =&quot;azul“ / >
    7. 7. martes, 07 de noviembre de 2006 Introducción III <?xml version=&quot;1.0“ ? > <pelicula-favorita> <titulo>La ciudad del pecado</titulo> <director>Robert Rodriguez</director> <duracion>112</duracion> </pelicula-favorita> <?xml version=&quot;1.0“ ? > <postulante> <titulo>Ingeniero</titulo> <experiencia>Desde 2001 en Mars SA</experiencia> <idioma>Ingles</idioma> <residencia>Los Angeles CA</residencia> </postulante> <titulo> ¿?
    8. 8. martes, 07 de noviembre de 2006 Introducción IV Espacios de nombre ( namespaces ) Espacio de nombres: pelicula-favorita <pelicula-favorita:titulo> <peliculafavorita:director> <pelicula-favorita:duracion> - titulo -director -duracion Espacio de nombres: postulante <postulante:titulo> <postulante:experiencia> <postulante:residencia> -titulo -experiencia -residencia
    9. 9. martes, 07 de noviembre de 2006 Introducción V Espacios de nombre ( namespaces ) xmlns:nombre=“url” xmlns: Indica que se esta definiendo un espacio de nombres. nombre : Es el prefijo que se ocupara para referenciar el espacio de nombres. url : un url válido
    10. 10. martes, 07 de noviembre de 2006 Introducción VI Espacios de nombre ( namespaces ) <?xml version=&quot;1.0“ ? > < pf :pelicula-favorita xmlns : pf =“ http://www.pf.com ”> < pf : pelicula-favorita> < pf : titulo>La ciudad del pecado< pf : /titulo> < pf : director>Robert Rodriguez< / pf : director> < pf : duracion>112</ pf : duracion> </ pf : pelicula-favorita>
    11. 11. martes, 07 de noviembre de 2006 Introducción VII Espacios de nombre ( namespaces ) <?xml version=&quot;1.0“ ? > < pos :postulante xmlns : pos =“ http://www.esp-p.com ”> < pos : postulante> < pos : titulo>Ingeniero</ pos : titulo> < pos : experiencia>Desde 2001 en Mars SA</ pos : experiencia> < pos : idioma>Ingles</ pos : idioma> < pos : residencia>Los Angeles CA</ pos : residencia> </ pos : postulante>
    12. 12. martes, 07 de noviembre de 2006 Introducción VIII Espacios de nombre ( namespaces ) <ul><li><?xml version=&quot;1.0“ ? > </li></ul><ul><li>< pos :postulante xmlns : pos =“ http://www.esp-p.com ”> </li></ul><ul><li>< pos : postulante> </li></ul><ul><li>< pos : titulo>Ingeniero</ pos : titulo> </li></ul><ul><li>< pos : experiencia>Desde 2001 en Mars SA</ pos : experiencia> </li></ul><ul><li>< pos : idioma>Ingles</ pos : idioma> </li></ul><ul><li>< pos : residencia>Los Angeles CA</ pos : residencia> </li></ul><ul><ul><ul><li>< pf :pelicula-favorita xmlns : pf =“ http://www.pf.com ”> </li></ul></ul></ul><ul><ul><ul><li>< pf : pelicula-favorita> </li></ul></ul></ul><ul><ul><ul><li>< pf : titulo>La ciudad del pecado< pf : /titulo> </li></ul></ul></ul><ul><ul><ul><li>< pf : director>Robert Rodriguez< / pf : director> </li></ul></ul></ul><ul><ul><ul><li>< pf : duracion>112</ pf : duracion> </li></ul></ul></ul><ul><ul><ul><li></ pf : pelicula-favorita> </li></ul></ul></ul><ul><li></ pos : postulante> </li></ul>
    13. 13. martes, 07 de noviembre de 2006 Introducción IX XPATH XQUERY XLINK XPOINTER XSLT XFORMS SVG WSDL
    14. 14. martes, 07 de noviembre de 2006 Introducción X XPATH XQUERY XLINK XPOINTER XSLT XFORMS SVG WSDL
    15. 15. martes, 07 de noviembre de 2006
    16. 16. martes, 07 de noviembre de 2006 Validación I XML bien formado VS. XML Válido.
    17. 17. martes, 07 de noviembre de 2006 Validación II XML bien formado. Un documento XML bien formado es aquel cuyo contenido se encuentra estructurado de forma tal que, por cada etiqueta de inicio, existe una etiqueta de fin.  No deben existir traslapes entre etiquetas, es decir, las etiquetas anidadas deben iniciar y terminar dentro de la etiqueta que la contiene.  
    18. 18. martes, 07 de noviembre de 2006 Validación III XML bien formado. <persona>         <nombre> Pedro </nombre>         <edad>33 </edad> </persona>   <persona>         <nombre> Pedro <edad> </nombre>         33 </edad> </persona>   Error:
    19. 19. martes, 07 de noviembre de 2006 Validación IV XML Válido. Implica que el documento no sólo está bien formado sino que además su estructura está claramente definida en un documento externo.
    20. 20. martes, 07 de noviembre de 2006 Validación V DTD Schemas Relax NG NRL
    21. 21. martes, 07 de noviembre de 2006 Validación VI DTD Document Type Definition.Definición del tipo de documento. Fue la primera manera para definir el contenido de un archivo XML. Basado en la deficinición de: Elementos, atributos, entidades. No es lo suficientemente flexible para los nuevos roles que ha tomado XML
    22. 22. martes, 07 de noviembre de 2006 Validación VII <!Element ficha (datos)+> <!Element datos (nombre, email?, direccion)> <!Element nombre (#PCDATA)> <!Element direccion (#PCDATA)> <!Element email (#PCDATA)>
    23. 23. martes, 07 de noviembre de 2006 Validación VIII <ul><li>Schemas </li></ul><ul><li>Ventajas: </li></ul><ul><li>Están escritos en XML </li></ul><ul><li>Brindan más posibilidades para definir el contenido del XML </li></ul><ul><li>Son extendibles </li></ul><ul><li>Soportan tipos de datos </li></ul>
    24. 24. martes, 07 de noviembre de 2006 Validación IX <ul><li>Schemas </li></ul><ul><li>Se puede controlar: </li></ul><ul><li>Qué elementos pueden aparecer en el documento. </li></ul><ul><li>Qué atributos pueden aparecer en el documento. </li></ul><ul><li>Qué elementos pueden ser descendientes de otros. </li></ul><ul><li>En qué ordén y cuándo deberán aparecer los elementos </li></ul><ul><li>Definir qué tipos de datos podrán tener los elementos </li></ul><ul><li>Definir el tipo de datos de los atributos </li></ul>
    25. 25. martes, 07 de noviembre de 2006 Validación X RELAX NG y NRL Derivaciones de los Schemas para darles mas flexibilidad, no estan del todo aceptadas y se utilizan más en entornos académicos.
    26. 26. martes, 07 de noviembre de 2006 Validación XI DTD Schemas Relax NG NRL
    27. 27. martes, 07 de noviembre de 2006 Validación XII XML Schemas. Tipo de datos. Cadena de caracteres xs:string Decimal xs:decimal Booleano xs:boolean Fecha xs:date Y más.......
    28. 28. martes, 07 de noviembre de 2006 Validación XIII XML Schemas. Elementos. Sintaxis: <xs:element name=“” type=“” [fixed=“” default=“”]/> Ejemplos: <xs:element name=“nombre” type=“xs:string”/> <xs:element name=“fechaNacimiento” type=“xs:date”/>
    29. 29. martes, 07 de noviembre de 2006 Validación XIV XML Schemas. Atributos. Sintaxis: <xs:atribute name=“” type=“” [fixed=“” default=“”] [use=“”]/> Ejemplos: <xs:atribute name=“color” type=“xs:string” use=“required”> <xs:atribute name=“sexo” type=“xs:string” default:”M” use=“optional”>
    30. 30. martes, 07 de noviembre de 2006 Validación XV XML Schemas. Restricciones xs:enumeration Define una lista de valores posibles para un elemento. xs:fractionDigits Define el número máximo de dígitos decimales permitidos
    31. 31. martes, 07 de noviembre de 2006 Validación XVI XML Schemas. Restricciones xs:minExclusive Define el valor mínimo permitido para el elemento. xs:maxInclusive Define el valor máxico permitido para el elemento.
    32. 32. martes, 07 de noviembre de 2006 Validación XVII XML Schemas. Restricciones <xs:element name=“puntaje”> <xs:simpleType> <xs:restriction base=“xs:integer”> <xs:minExclusive value=“0”/> <xs:maxExclusive value=“101”/> </xs:restriction base=“xs:integer”> </xs:simpleType> </xs:element name=“puntaje”>
    33. 33. martes, 07 de noviembre de 2006 Validación XVIII Ejemplos
    34. 34. martes, 07 de noviembre de 2006 <xs:element name=&quot;person&quot;> <xs:annotation> <xs:documentation>Specify information about a person.</xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element ref=&quot;name&quot;/> <xs:element ref=&quot;email&quot; minOccurs=&quot;0&quot; maxOccurs=&quot;unbounded&quot;/> <xs:element ref=&quot;url&quot; minOccurs=&quot;0&quot; maxOccurs=&quot;unbounded&quot;/> <xs:element ref=&quot;link&quot; minOccurs=&quot;0&quot; maxOccurs=&quot;1&quot;/> </xs:sequence>
    35. 35. martes, 07 de noviembre de 2006 XPATH I <ul><li>XML Path Languaje. </li></ul><ul><li>Permite identificar partes internas de un documento XML mediante rutas </li></ul><ul><li>Défine cómo acceder a cierto punto de la estructura del documento </li></ul><ul><li>Permite referenciar no sólo elementos, sino tambien textos, atributos o cualquier información dentro del documento </li></ul>
    36. 36. martes, 07 de noviembre de 2006 XPATH II XSLT XLink XLPointer XQuery XPath
    37. 37. martes, 07 de noviembre de 2006 XPATH III <ul><li>Nodos </li></ul><ul><ul><ul><ul><li>Raíz </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Elemento </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Atributo </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Texto </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Comentario e instrucción de procesamiento. </li></ul></ul></ul></ul>
    38. 38. martes, 07 de noviembre de 2006 XPATH IV <ul><li>Expresiones </li></ul><ul><li>/personnel/person/name/family </li></ul><ul><li>Ruta de localización. </li></ul><ul><li>//name </li></ul><ul><li>/ para separar nodos </li></ul>
    39. 39. martes, 07 de noviembre de 2006 XPATH V Ejes: Atributo /personnel/person[attribute::id=&quot;Big.Boss&quot;]/name/family /personnel/person[@id=&quot;Big.Boss&quot;]/name/family
    40. 40. martes, 07 de noviembre de 2006 XPATH VI Ejes: child /personnel/child::person/child::name /personnel/person/name
    41. 41. martes, 07 de noviembre de 2006 XPATH VII Ejes: ancestor /personnel/person/name/family/ancestor::* /personnel/person[@id=&quot;Big.Boss&quot;]/name/family/ancestor::*
    42. 42. martes, 07 de noviembre de 2006 XPATH VIII <ul><li>Operadores </li></ul><ul><li>Aritmeticos (+, -, Div, Mod,*) </li></ul><ul><li>Lógicos (And, or) </li></ul><ul><li>Comparación (=, !=, <, >=, etc) </li></ul><ul><li>Combinacion (is, union) </li></ul><ul><li>/dvd/titulo[precio>44]/nombre </li></ul>
    43. 43. martes, 07 de noviembre de 2006 XPATH IX Funciones Xpath ofrece una serie de funciones para incorporar a las expresiones. sum (dvd/titulo/precio) substring(/dvd/titulo[1]/nombre, 1,3)
    44. 44. martes, 07 de noviembre de 2006 XQUERY I Es una propuesta basada en XML para realizar consultas a documentos XML y cualquier repositorio de información que mantenga estructuras similares. Se basa en Xpath, por lo que comparte funciones y los operadores disponibles.
    45. 45. martes, 07 de noviembre de 2006 XQUERY II Tipos de datos Si el documento XML tiene schema, cada elemento tendra su tipo de dato en función del definido en el schema. Sino, se tomará según el contexto; “ 123” puede ser cadena o número según quien solicite el valor.
    46. 46. martes, 07 de noviembre de 2006 XQUERY II Expresiones FLWOR Las expresiones FLWOR constituyen la base para la creación de consultas XQUERY. ( F )or ( L )et ( W )here ( O )rder by ( R )eturn
    47. 47. martes, 07 de noviembre de 2006 XSLT I eXtendible Stylesheet Languaje for Transformations. Lenguaje Extensible de hojas de estilo para transformaciones.
    48. 48. martes, 07 de noviembre de 2006 XSLT II XML Procesador XSLT Salida XML Hoja de Estilo
    49. 49. martes, 07 de noviembre de 2006 XSLT III <ul><li>Procesadores conocidos: </li></ul><ul><li>Saxon </li></ul><ul><li>Xalan </li></ul><ul><li>XSLTProc </li></ul><ul><li>4Suite </li></ul><ul><li>Sablotron </li></ul>
    50. 50. martes, 07 de noviembre de 2006 XSLT IV <ul><li>Elementos disponibles </li></ul><ul><li>Templates </li></ul><ul><ul><li>Bucles (xsl:for each) </li></ul></ul><ul><ul><li>Extracción de valores (xsl:value-of) </li></ul></ul>
    51. 51. martes, 07 de noviembre de 2006 XSLT V Funciones XSLT incorpora sus propias funciones, pero, es posible utilizar las de Xpath.
    52. 52. martes, 07 de noviembre de 2006 Web Services I ¿Qué es un Web Service? Un servicio web es un componente de software basado en XML que permite desarrollar aplicaciones que pueden intercambiar datos con otras por medio de una red (Internet), independientemente de la plataforma en la que funcionen.
    53. 53. martes, 07 de noviembre de 2006 Aplicación Web Services II Internet Servicio Web Programa Cliente Figura 1. La utilización de un WS es transparente.
    54. 54. martes, 07 de noviembre de 2006 Web Services III Estructura de un WS en capas <ul><li>Red </li></ul><ul><li>Transporte </li></ul><ul><li>Empaquetamiento </li></ul><ul><li>Descripción </li></ul><ul><li>Descubrimiento </li></ul>
    55. 55. martes, 07 de noviembre de 2006 Web Services IV Red. El envío y la recepción de mensajes deberá enmarcarse dentro de un ámbito (una red).
    56. 56. martes, 07 de noviembre de 2006 Web Services V Transporte. Una vez construido el mensaje, se necesita un conjunto de reglas para enviarlo y recibirlo. En esta capa se utiliza HTTP.
    57. 57. martes, 07 de noviembre de 2006 Web Services VI Empaquetamiento. La estructura de las peticiones y las respuestas se define en esta capa, y el protocolo utilizado hoy en día es SOAP (Simple Object Acces Protocol) basado en XML. Programa cliente Internet mensaje SOAP mensaje SOAP Servicio web
    58. 58. martes, 07 de noviembre de 2006 Web Services VII Empaquetamiento. Envelope Header Body Cabecera #1 Cabecera #2 Cabecera .... Estructura de un mensaje SOAP
    59. 59. martes, 07 de noviembre de 2006 Web Services VIII Empaquetamiento. Emisor Intermediario #1 Intermediario #2 Receptor Mensaje SOAP HTTP SMTP HTTP Un mensaje SOAP puede atravesar varios nodos (y protocolos) antes de llegar a su destino.
    60. 60. martes, 07 de noviembre de 2006 Web Services IX Empaquetamiento. <!-- Mensaje SOAP: Petición --> <?xml version=&quot;1.0&quot;/> <soap:Envelope xmlns:soap=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot; soap:encodingStyle=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;> <soap:Header> <s:identidad xmlns:s=&quot;http://identidad.com/ns/&quot; soap:mustUnderstand=&quot;1&quot;> <usuario>libreria</usuario> <usuario>calle56</usuario> </s:identidad> </soap:Header> <soap:Body> <x:detalleLibro xmlns:x=&quot;http://biblio.com/ns&quot;> <isbn>8435009165</isbn> <sucursal>98-283843</sucursal> </x:detalleLibro> </soap:Body> </soap:Envelope>
    61. 61. martes, 07 de noviembre de 2006 Web Services X Descripción. Esta capa ofrece un mecanismo para describir la funcionalidad de un WS. Hoy en día el estándar utilizado para cubrir este proposito es WSDL (Web Service Description Languaje).
    62. 62. martes, 07 de noviembre de 2006 Web Services XII Descubrimiento. Para disponer y utilizar un WS, primero hay que encontrarlo UDDI (Universal Description Discovery and Integration) es la iniciativa para crear un directorio global de WS’s.
    63. 63. martes, 07 de noviembre de 2006 Web Services XIII Estructura de un WS en capas <ul><li>Red </li></ul><ul><li>Transporte </li></ul><ul><li>Empaquetamiento </li></ul><ul><li>Descripción </li></ul><ul><li>Descubrimiento </li></ul>
    64. 64. martes, 07 de noviembre de 2006 <ul><li>slideshare.net </li></ul><ul><li>http://www.w3c.org </li></ul><ul><li>http://www.w3schools.com/ </li></ul><ul><li>http://www.javahispano.org </li></ul><ul><li>Libros: </li></ul><ul><li>XML. La guía total del programador. </li></ul><ul><li>Francisco Minera. MP Ediciones. Argentina 2006 </li></ul><ul><li>XML In a nutshell </li></ul><ul><li>Elliote Rusty & W. Scott Means. O’Reilly 2004 </li></ul>

    ×