Xml dtd

13,241 views

Published on

Tutorial de XML y DTD, muy completo y sencillo de entender, con ejemplos y ejercicios.

Published in: Technology, News & Politics
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
13,241
On SlideShare
0
From Embeds
0
Number of Embeds
700
Actions
Shares
0
Downloads
367
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Xml dtd

  1. 1. XML (EXTENSIBLE MARKUP LANGUAGE) Escrito por: Elisabeth
  2. 2. Historia del XML  Desarrollada a partir de 1996, como un subconjunto de SGML.  Adoptado por W3C.  W3C  Constituido en 1994 con el objetivo de desarrollar protocolos comunes para la evolución de Internet.
  3. 3. ¿Qué es XML?  XML es un lenguaje de marcas.  Sus partes se distinguen entre sí por medio de Etiquetas.  Es extensible: podemos crear nuestras propias etiquetas.  Sigue una sintaxis estricta, es poco tolerante a fallos.  Es necesario el anidamiento.
  4. 4.  Hay dos tipos de etiquetas: 1. Etiqueta de apertura. 2. Etiqueta de cierre. Ejemplo: <?xml versión=”1.0”?> <coche> Citroen <matricula>6545BHG</matricula> </coche>
  5. 5. HTML contra XML HTML XML Se centra en el despliegue y es menos estructurado Se centra en los datos y es muy estructurado. Las etiquetas y atributos son fijos. Las etiquetas y atributos son extensibles. Es posible olvidar cerrar alguna etiqueta Se fuerza a tener una estructura consistente.
  6. 6. ¿Para qué sirve XML?  Ayuda en la integración de datos. Nos ayuda a estandarizar el intercambio de información a través de ficheros.  Un documento XML es un documento de texto plano en el que se describe la estructura de la información que él mismo contiene.  XML no sólo contiene información sino también las estructuras del lenguaje necesarias para transmitir esa información, permitiendo crear nuestras propias etiquetas adaptadas a nuestras necesidades.  XML abre el camino para que los propios ordenadores interpreten la información de las páginas Web.  XML no contiene por sí sólo información sobre el formato en que se deben representar los datos. Son necesarias hojas de estilo CCS
  7. 7.  Ejemplo: <?xml versión=”1.0”?> <valores> <accion> <mercado>Madrid</mercado> <mercadoabierto>Si</mercadoabierto> </accion> </valores>
  8. 8. Ventajas de XML  Formato ideal para transacciones B2B.  Permite poderosas técnicas de extracción y búsqueda de información.  Las estrictas reglas para la composición de un documento XML, permite su fácil análisis sintáctico.  XML es sensitivo a mayúsculas y minúsculas.  Fácil de procesar/entender por software o por humanos.  Pensado para ser utilizado en cualquier lenguaje o alfabeto.  Separa radicalmente la información o contenido, de su presentación o formato.
  9. 9. Objetivos del XML:  Directo a la red: sus caracteres son fácilmente transferibles a través de internet.  Compatible con todas las aplicaciones.  Compatible con SGML.  Fácil digestión: sencillez.  Sin extras: no tienes características opcionales.  Alto y claro: es legible tanto para máquinas como para humanos.  Es fácil y rápido de diseñar.  Formalidad.  Lápiz y papel: se puede hacer desde un editor de textos.  Lo importante es comprenderse.
  10. 10. XML bien formados  Una herramienta que se utiliza es el XMLSpy. www.altova.com  En esta herramienta podemos crear nuestro XML.  Pulsando el botón “check well-formedness” podemos comprobar si está bien formado o no.  Estará bien formada cuando: 1. Su sintaxis es válida. 2. Utiliza caracteres autorizados 3. Comienza y finaliza todas las marcas. 4. Si satisface un conjunto de reglas. 5. Es valido si está bien formado y satisface las reglas que le impone su DTD. Para definir que debe ir en el fichero, en qué orden o qué es obligatorio debemos de crear el DTD.
  11. 11. Formar XML  Un documento se basa en una serie de entidades:  Cada entidad contiene uno o más elementos.  Cada elemento está formado por 0 o más atributos.  Podemos poner comentarios dentro de un documento con los símbolos  <!...y…>  Los comentarios pueden estar en cualquier parte del documento, pero sin son muchos pueden consumir ancho de banda.
  12. 12.  Un archivo consta de:  Prólogo  Cuerpo  Epílogo
  13. 13. Ejemplo: <?xml version="1.0" encoding="UTF-8" standalone=“no"?> <!...Esto es un comentario…> <INFORMACION> <INFO> <TITULO> WINDOWS98? SOLO SI ME OBLIGAN! </TITULO> <AUTOR> Fernando Damián Martines </AUTOR> <EMAIL> Cami@yahoo.es </EMAIL> <VERSION>1.0</VERSION> </INFO> </INFORMACION>
  14. 14. DTD (Document Type Definition)  El dtd indica que contenido debe tener el documento XML y en qué orden.  Actúa de plantilla.  No guarda información sólo la estructura.  El dtd puede ser:  Externo.  Interno  Mixto.
  15. 15. Clases de DTD  Veremos estas dos clases: 1. DTD interno o incrustado. 2. DTD externo.
  16. 16. DTD INCRUSTADO  Un dtd empieza por : <?xml versión=”1.0” standalone = “yes”?> <!DOCTYPE nombre_etiqueta [ … … … ]> El atributo “standalone” del prólogo inicializado al valor “yes” indica que el documento es autosuficiente y no necesita de otros elementos externos.
  17. 17. DTD EXTERNO:  Un dtd Externo empieza por :  <?xml version="1.0" encoding="UTF-8"?>  <!DOCTYPE pelicula SYSTEM “c:documentosfilmoteca.dtd”>  (si el DTD está en esa ruta)  <!DOCTYPE pelicula SYSTEM “http://www.mipagina.es/filmoteca.dtd”>  (si el DTD está en esa página web)
  18. 18. A partir de ahí comienza la definición del contenido de los DTD  El primer <!ELEMENT que aparece se refiere a la etiqueta raíz. <!ELEMENT identificador (tipo_de_contenido)> Ejemplo: <!ELEMENT nombre_vía (#PCDATA)>
  19. 19. Los tipos de contenidos que podemos indicar son:  #PCDATA: indica un contenido de tipo “dato analizable” (por ejemplo, un número o una palabra).  Otro elemento o elementos (si son varios aparecen separados por comas).  EMPTY: el elemento no tiene contenido (se llama elemento vacío).  ANY: el elemento puede tener cualquier contenido: No es muy conveniente utilizarlo, por ser demasiado genérico.  MIXED: el elemento puede tener tipos de contenido diversos, pero al contrario que con ANY, esos contenidos deben estar debidamente especificados.
  20. 20. Ejemplos:  <!ELEMENT sueldo (#PCDATA)>  <!ELEMENT dirección (nombre_vía, número, cp, localidad)>  <!ELEMENT salto-de-página EMPTY>  <!ELEMENT batiburrillo ANY>  <!ELEMENT identificador (nif | nie)> (significa que el elemento “identificador” puede estar compuesto O por un “nif” O por un “nie”)
  21. 21.  En la especificación de contenido se puede incorporar un símbolo de frecuencia: Ninguno = el elemento aparece sólo una vez. + = el elemento aparece 1 ó más veces. * = el elemento es opcional y aparece 0 ó más veces. ? = el elemento es opcional y aparece 0 ó 1 vez.
  22. 22.  Ejemplos: <!ELEMENT libro (prólogo?, capítulo+)> <!ELEMENT resolución (descripción, alegaciones*)> <!ELEMENT aviso (titulo?, (parrafo+, grafico)*)>
  23. 23. Más sobre XML: Atributos  La etiqueta denota el nombre del elemento, y el atributo, sus propiedades.  Los atributos sólo pueden indicarse en las etiquetas de apertura, no en las de cierre.  Un atributo está formado por el nombre del mismo y el valor que toma, separados por el signo de igualdad =. El valor del atributo debe estar entre comillas, simples o dobles.  Un atributo debe tomar valor siempre.
  24. 24.  EJEMPLO: <?xml version=“1.0”?> <películas> <película> <título>El Padrino</título> <actores> <actor papel=“protagonista”>Al Pacino</actor> <actor papel=“secundario”>Diane Keaton</actor> </actores> </película> </películas>
  25. 25.  OTRO EJEMPLO: <?xml version=“1.0”?> <trabajadores> <trabajador situación=“fijo”>Pepe Gómez</trabajador> <trabajador situación=“eventual”>Antonio Marín</trabajador> </trabajadores>
  26. 26. Definición de atributos en un DTD  <!ATTLIST elemento atributo tipo vpredeterminado> elemento es el nombre del elemento cuyos atributos queremos definir. atributo es el nombre del atributo. tipo es el tipo de valores que podrán tener el atributo. vpredeterminado (opcional) es el valor predeterminado que tendrá ese atributo.
  27. 27.  Para cada atributo de un elemento utilizaremos un ATTLIST distinto. Ejemplo: <película título=“El Padrino” duración=“180”/> La línea correspondiente a ese elemento en el DTD sería: <!ELEMENT película EMPTY> (ya que estamos hablando de un elemento vacío).
  28. 28.  Los atributos se definirían así: <!ATTLIST película título CDATA “”> <!ATTLIST película título CDATA “”> Y el documento completo sería… <?xml version=“1.0”?> <!DOCTYPE película [ <!ELEMENT película EMPTY> <!ATTLIST película título CDATA “”> <!ATTLIST película duración CDATA “”> ]> <película título=“El Padrino” duración=“180”/>
  29. 29.  Los valores predeterminados que puede tener un atributo son:  #IMPLIED indica que es opcional aplicar un valor a un atributo, es decir, se trata de un atributo opcional y no indicamos ningún valor predeterminado.  #REQUIRED indica que es obligatorio asignar un valor al atributo. Es decir: el atributo debe obligatoriamente aparecer.  #FIXED valor indica que el valor del atributo debe ser el indicado y no es posible cambiarlo.  valor indica que el valor asignado es el predeterminado.
  30. 30.  Ejemplos:  <!ATTLIST imagen ancho CDATA #REQUIRED>  <!ATTLIST alumno nota CDATA “5”>  <!ATTLIST persona edad CDATA #IMPLIED
  31. 31.  También podemos indicar una lista de posibles valores para el atributo. Ejemplo: queremos incluir un atributo con una calificación para cada película, del 1 al 5, con valor predeterminado 3. Lo haríamos de la siguiente forma: <!ATTLIST película nota (1 | 2 | 3 | 4 | 5) “3”>  Por lo que estas definiciones serían válidas: <película título=“El Padrino” nota=“5”/> <película título=“El Padrino”/>
  32. 32.  Los tipos de datos principales que pueden ir asociados a un atributo son:  CDATA  un valor cualquiera  (valor1 | valor2 | … )  un valor dentro del rango enumerado.  ID  un valor único.  IDREF  un valor único previamente indicado.  IDREFS  varios IDREF.  NMTOKEN  un nombre con sólo caracteres XML válidos (letras, números, puntos, guiones, subrayados y los dos puntos)  NMTOKENS  varios NMTOKEN
  33. 33. Caracteres especiales & &amp; < &it; > &gt; ` &apos; “ &quot;
  34. 34.  Se declaran de la siguiente forma: <!ENTITY nombre valor_de_sustitución>  Ejemplo: supongamos que queremos almacenar un precio en euros: <precio>19,95 €</precio> (&#x20ac es el código UNICODE del símbolo del euro).  Simplificaremos la tarea de indicar el euro usando la siguiente nomenclatura: <!ENTITY euro “€”>  A partir de este momento podremos incluir el símbolo del euro así: <precio>19,95 &euro</precio>
  35. 35.  El documento completo sería <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE precio [ <!ELEMENT precio (#PCDATA)> <!ENTITY euro "€"> ]> <precio>19,95 &euro;</precio>
  36. 36.  Supongamos que queremos incluir para cada película una frase de recomendación: “Obra maestra”, “Muy mala”, etc.  Nos creamos las entidades: <!ENTITY om “Obra maestra”> <!ENTITY mm “Muy mala”>  Pudiéndolas utilizar de la siguiente manera: <película> <título>El Padrino</título> <calificación>&om;</calificación> </película>
  37. 37.  Supongamos que tenemos el siguiente documento xml: <?xml version=“1.0” encoding=“UTF-8”?> <notas> <nota>El propietario no se hace responsable de las opiniones vertidas por los autores.</nota> </notas>  En el ejemplo anterior podemos incluir la línea: <!ENTITY notas SYSTEM “notas.xml”>  De manera que siempre que usemos la entidad &notas; se sustituirá su valor por el contenido del archivo. (SYSTEM indica que el archivo “notas.xml” está en el mismo directorio que el archivo actual).
  38. 38. Ejemplo de XML y su DTD <?xml version="1.0"?> <libro> <titulo> Cien años de soledad </titulo> <disponible tiempo="24" unidad="horas"/> <autor> Gabriel García Márquez </autor> <formato> Rústica </formato> <publicacion>1967 </publicacion> <precio cantidad="9.99" moneda="euro"/> <descuento cantidad="5"/> <enlacelibro href="/exec/ISBN/84-473-0619-4"/> </libro>
  39. 39. DTD:  <!ELEMENT autor ( #PCDATA ) > <!ELEMENT descuento EMPTY > <!ATTLIST descuento cantidad CDATA #REQUIRED > <!ELEMENT disponible EMPTY > <!ATTLIST disponible tiempo CDATA #REQUIRED > <!ATTLIST disponible unidad CDATA #REQUIRED > <!ELEMENT enlacelibro EMPTY > <!ATTLIST enlacelibro href CDATA #REQUIRED > <!ELEMENT formato ( #PCDATA ) > <!ELEMENT libro ( titulo | disponible | autor | formato | publicacion | precio | descuento | enlacelibro )* > <!ELEMENT precio EMPTY > <!ATTLIST precio cantidad CDATA #REQUIRED > <!ATTLIST precio moneda CDATA #REQUIRED > <!ELEMENT publicacion ( #PCDATA ) > <!ELEMENT titulo ( #PCDATA ) >
  40. 40. Ejercicio:  Construir un esquema XML para la siguiente DTD: <!ELEMENT Libro (Titulo, Contenido, Copyright)> <!ATTLIST Libro xmlns CDATA #REQUIRED> <!ELEMENT Titulo (#PCDATA)> <!ELEMENT Contenido ((Capitulo+, Separacion?)+)> <!ELEMENT Capitulo (Tema, Seccion+)> <!ATTLIST Capitulo materia (XML|Java) "Java"> <!ELEMENT Tema (#PCDATA)> <!ELEMENT Seccion (#PCDATA)> <!ATTLIST Seccion apartados CDATA #REQUIRED dificil (si|no) "no"> <!ELEMENT Separacion EMPTY> <!ELEMENT Copyright (#PCDATA)>

×