Ramiro Lago - PowerPoint PPT Presentation

1 / 23
About This Presentation
Title:

Ramiro Lago

Description:

Es un lenguaje de marcas, universalmente aceptado, de tal forma ... Semejante a una sentencia CREATE DATABASE en SQL. Nos sirve para validar el documento XML. ... – PowerPoint PPT presentation

Number of Views:54
Avg rating:3.0/5.0
Slides: 24
Provided by: venq2
Category:
Tags: db | lago | ramiro

less

Transcript and Presenter's Notes

Title: Ramiro Lago


1
Introducción a XML
  • Ramiro Lago

2
Introducción a XML (I)
  • HTML ha permitido integración desde un punto de
    vista sintáctico. Es un lenguaje de marcas,
    universalmente aceptado, de tal forma que el
    navegador lo interpreta y sabe cómo debe
    presentar el contenido.
  • En el siguiente ejemplo se puede observar que
    las etiquetas se orientan a expresar una
    estructura de visualización
  • HTML no se centra en la comprensión del
    contenido, no se especifica el significado
    (semántica) de los datos. Fue creado para que una
    aplicación pudiera traducir marcas a una
    estructura de presentación, no para crear
    estructuras de datos.
  • Esta carencia de HTML es cubierta por XML.

3
Introducción a XML (II)
  • XML Extensible Mark-up Language (lenguaje de
    marcado extensible)
  • Es un lenguaje orientado a
  • La definición de datos de carácter general. Nos
    permite definir modelos de datos.
  • Al compartir modelos de datos se facilita el
    intercambio de datos entre sistemas
    (aplicaciones) heterogéneos.
  • Crear nuevos lenguajes gracias a sus mecanismos
    de extensibilidad. Por ello, se dice que XML es
    un metalenguaje (un lenguaje para crear nuevos
    lenguajes).
  • Se refiere únicamente a los datos, no a su
    presentación. Deja a otras aplicaciones la tarea
    de definir la estructura de visualización.

Históricamente deriva de SGML (Standard
Generalized Mark-up Language), definido por IBM
en 1986. Creado y soportado por el World Wide
Web Consortium (www.w3c.org) Traducciones
http//www.w3.org/2003/03/Translations/OverviewLan
g.htmles
4
Definition Type Document (DTD) y XML Schema
  • Es preciso especificar los elementos válidos que
    pueden ser incluidos en un documento XML. Las dos
    formas más comunes de especificar definiciones
    son
  • DTD
  • XML Schema
  • Son documentos basados en XML que
  • Describen la estructura del documento XML.
  • Declara y define todos los tipos de de elementos
    del documento.
  • Define el orden de los tipos de elementos.
  • Especifica el tipo de atributos y los valores por
    defecto.
  • Importancia a la hora de transferir datos entre
    sistemas. El DTD/XML Schema especifica a los
    sistemas la estructura de datos que es
    transferida mediante XML.

En este ejemplo, gracias a DTD, se especifica que
una libreta de direcciones se compone de personas
(registros), definiendo los campos válidos de
cada registro
5
Reglas básicas del lenguaje (I)
  • Todo contenido estará etiquetado. Toda etiqueta
    debe estar delimitada por los símbolos de menor y
    mayor. Ejemplo ltlibrogt
  • Las etiquetas se cierran en el mismo orden en el
    que se abrieron. La etiqueta de cierre tiene el
    mismo nombre que la de apertura y se inicia por
    la barra /.
  • Ejemplo ltlibrogt ... lt/librogt
  • Por comodidad se permiten etiquetas que sirvan
    tanto para la apertura como para el cierre. Estas
    etiquetas deben acabar con el símbolo de barra
    /.
  • Los nombres de etiquetas son sensibles a
    mayúsculas y minúsculas (a diferencia de HTML)
  • La estructura de una etiqueta sigue la terna
    objeto-atributo-valor.
  • Notación larga
  • ltetiquetagt
  • ltatributo1gt valor lt/atributo1gt
  • ...
  • lt/etiquetagt
  • Notación corta (las dobles comillas son
    obligatorias, a diferencia de HTML)
  • ltetiqueta atributo1valor ... gt lt/etiquetagt
  • Ejemplo
  • ltlibrogt
  • ltautorgtMiguel De Cervanteslt/autorgt
  • lttitulogtEl Quijotelt/titulogt
  • ltpreciogt18lt/preciogt
  • lt/librogt

6
Reglas básicas del lenguaje (II)
  • La estructura del documento es jerárquica, en
    forma de árbol, en la que siempre hay un primer
    elemento raíz.
  • Todo documento XML debe comenzar por una
    declaración XML con la siguiente estructura
  • lt?xml
  • versionVersión de XML
  • encodingCodificación
  • standaloneIncluye_DTD
  • ?gt
  • Donde cada atributo significa
  • Versión de XML número de versión que se utiliza.
  • Codificación formato de codificación, por
    ejemplo, UTF-8, UTF-16, ISO-10646-UCS-2,
    ISO-10646-UCS-4, ISO-8859-1, ISO-8859-2, (hasta
    ISO-8859-9), etc. Las dos primeras son las más
    usadas.
  • Incluye_DTD puede tomar el valor yes (la
    especificación DTD se encuentra en el propio
    documento) o no (la especificación es un
    archivo externo).
  • Ejemplo
  • lt?xml version1.0 encodingUTF-8
    standaloneyes ?gt

7
Reglas básicas del lenguaje (III)
  • Ejemplo
  • lt?xml version"1.0" encoding"UTF-8"
    standalone"no" ?gt
  • lt!DOCTYPE libreria2 SYSTEM "libreria2.dtd"gt
  • ltlibreria2gt
  • ltlibrogt
  • ltautorgtMiguel De Cervanteslt/autorgt
  • lttitulogtEl Quijotelt/titulogt
  • ltpreciogt18lt/preciogt
  • lt/librogt
  • ltlibrogt
  • ltautorgtAntonio Lopezlt/autorgt
  • lttitulogtCosas absurdaslt/titulogt
  • ltpreciogt25lt/preciogt
  • lt/librogt
  • lt/libreria2gt
  • Para codificar caracteres en base diez
  • Code
  • Ejemplo esta es la 1170 vez

8
DTD introducción
  • Nos permite definir los tipos de elementos
    válidos de un documento XML. Semejante a una
    sentencia CREATE DATABASE en SQL.
  • Nos sirve para validar el documento XML. Hay que
    examinar la adecuación de un documento XML en dos
    niveles
  • Cuando el documento cumple con la DTD se dice que
    es válido.
  • Cuando cumple con las reglas XML diremos que está
    bien formado.
  • Tipos de DTD
  • Internas situadas dentro del documento XML
  • Externas archivo independiente
  • Las DTD no siguen la sintaxis de XML

9
DTD DOCTYPE
  • Tanto las DTD internas como las externas deben
    empezar por una declaración DOCTYPE
  • lt!DOCTYPE root SYSTEM externalDTD
    internalDTDgt
  • Root elemento raíz del documento XML.
  • externalDTD la DTD es externa. Debe señalar el
    archivo entre comillas dobles y tener la
    extensión .dtd
  • Ejemplo
  • lt!DOCTYPE libreria SYSTEM librería.dtdgt
  • internalDTD por defecto, interna.
  • Ejemplo
  • lt!DOCTYPE libreria
  • lt!ELEMENT libro (PCDATA)gt
  • gt
  • El elemento raíz señalado en DOCTYPE debe
    coincidir con el nodo raíz del documento.
  • La DTD debe contener todos los elementos,
    atributos y entidades que se utilizarán en el
    documento XML

10
DTD ejemplo
  • A continuación puede ver el ejemplo completo

libreria2.dtd
libreria2.xml
11
DTD elementos
  • Un ELEMENT es un componente, un item, que define
    un dato. No confundirlo con atributos, entidades
    o relaciones del diseño de una base de datos, ya
    que puede ser cualquiera de las tres cosas. Un
    elemento es como una etiqueta de un documento
    HTML.
  • Sintaxis
  • lt!ELEMENT nombre tipogt
  • Tipo, puede ser
  • EMPTY no incluye ningún otro elemento ni texto,
    pero si permiten la inclusión de atributos.
  • Elementos los elementos contenidos. Símbolos
  • Asterisco () el elemento puede aparecer
    cualquier número de veces.
  • Coma (,) separador de elementos, que además
    especifica el orden de aparición de los
    elementos.
  • Interrogante (?) El elemento aparece una o
    ninguna vez.
  • Más () el elemento debe aparecer al menos una
    vez.
  • Paréntesis contienen la secuencia de elementos.
  • Sin signo el elemento aparece sólo una vez.
  • Tubería () separa elementos alternativos
  • Mixtos permiten combinación de elementos y
    texto, se especifican lt!ELEMENT nombre
    (PCDATA)gt
  • ANY cualquiera de los anteriores lt!ELEMENT
    nombre ANYgt

12
DTD ejemplo de la librería (I)
  • Supongamos que queremos definir la estructura de
    una biblioteca donde los libros pueden tener
    varios autores y donde algunos libros tienen una
    rebaja del precio.
  • DTD
  • lt!ELEMENT libreria3 ( libro ) gt
  • lt!ELEMENT libro ( autor, titulo, precio,rebaja?
    ) gt
  • lt!ELEMENT autor ( PCDATA ) gt
  • lt!ELEMENT titulo ( PCDATA ) gt
  • lt!ELEMENT precio ( PCDATA ) gt
  • lt!ELEMENT rebaja ( PCDATA ) gt
  • Esta definición permite el siguiente documento
    XML
  • ltlibrogt
  • ltautorgtMiguel De Cervanteslt/autorgt
  • lttitulogtEl Quijotelt/titulogt
  • ltpreciogt18lt/preciogt
  • lt/librogt
  • ltlibrogt
  • ltautorgtAntonio Lopezlt/autorgt
  • ltautorgtAna Perezlt/autorgt
  • lttitulogtCómo crecerlt/titulogt
  • ltpreciogt25lt/preciogt

13
DTD atributos
  • Explicaremos algunas características de los
    atributos de forma muy resumida. La sintaxis de
    los atributos es
  • lt!ATTLIST nombre_elemento
  • nombre_atributo_1 tipo valor
  • nombre_atributo_n tipo valorgt
  • El tipo puede ser CDATA (cadena), ENUMERATION
    (lista de valores, ID (identificador único), etc
  • El valor puede ser REQUIERED (obligatorio),
    IMPLIED (opcional), etc.
  • Ejemplo de DTD
  • lt!ELEMENT ordenador (PCDATA) gt
  • lt!ATTLIST ordenador
  • cpu CDATA REQUIERED
  • mhz CDATA IMPLIED
  • gt
  • Ejemplo de XML
  • ltordenador cpuPentiumIII/gt
  • ltordenador cpuPentiumIII mhz300/gt

14
DTD ejemplo de la librería (II)
  • Vamos a ampliar el ejemplo de la librería. Un
    libro puede tener un resumen, este elemento tiene
    como atributos el autor del resumen y el archivo
    donde se guarda

lt?xml version"1.0" encoding"UTF-8" ?gt lt!ELEMENT
libreria3 ( libro ) gt lt!ELEMENT libro (autor,
titulo, precio,rebaja?,resumen?)gt lt!ELEMENT autor
( PCDATA ) gt lt!ELEMENT titulo ( PCDATA )
gt lt!ELEMENT precio ( PCDATA ) gt lt!ELEMENT rebaja
( PCDATA ) gt lt!ELEMENT resumen (PCDATA )
gt lt!ATTLIST resumen autor CDATA
IMPLIED fichero CDATA REQUIRED gt
lt?xml version"1.0" encoding"UTF-8"
standalone"no" ?gt lt!DOCTYPE libreria3 SYSTEM
"libreria3.dtd"gt ltlibreria3gt ltlibrogt ltautorgtMigu
el De Cervanteslt/autorgt lttitulogtEl
Quijotelt/titulogt ltpreciogt18lt/preciogt lt/librogt ltli
brogt ltautorgtAntonio Lopezlt/autorgt ltautorgtAna
Perezlt/autorgt lttitulogtCómo crecerlt/titulogt ltprec
iogt25lt/preciogt ltrebajagt10lt/rebajagt ltresumen
fichero"ert34.doc" /gt lt/librogt lt/libreria3gt
15
Esquema XML (XML Schema) introducción (I)
  • Críticas a DTD
  • El propio lenguaje de DTD no está basado en XML.
  • No hay una buena definición de tipos, poco más
    que cadenas y enumeraciones de elementos.
  • No soporta espacios de nombres (NAMESPACES), que
    discriminan los distintos elementos por un
    prefijo.
  • El esquema XML es el relevo de DTD, destinado a
    superar sus carencias y a crear lenguajes usando
    la sintaxis XML.
  • XML Schema ha sido creado por Microsoft a partir
    de estándares de W3C
  • XML-Data
  • DCD (Document Content Description). DCD es una
    especificación basada en RDF (Resource
    Description Framework), que se utiliza en la
    definición de estructuras de documentos con la
    finalidad de intercambiar información entre
    diversas aplicaciones.

16
Esquema XML (XML Schema) introducción (II)
  • Soportado por W3C (http//www.w3.org/XML/Schema)

17
EsquemaElementos básicos del lenguaje Schema
  • Schema
  • Elemento raíz de todo esquema (recuerde que los
    esquemas están basados en XML, que requiere un
    nodo raíz. Atributos
  • name nombre del esquema que estamos creando
  • xmlns espacios de nombres utilizados en el
    documento. Los espacios de nombres tienen una
    finalidad organizativa determina los tipos de
    datos creados por diferentes empresas. En nuestro
    ejemplo recurrimos al espacio de nombres definido
    por Microsoft
  • ltSchema name mi_esquema.xml
  • xmlns"urnschemas-microsoft-comxml-data
  • xmlnsdt"urnschemas-microsoft-comdatatypes"gt
  • ...
  • lt/Schemagt

18
EsquemaElementos básicos del lenguaje datatype
  • datatype
  • Con este elemento señalamos los tipos que luego
    utilizaremos en el documento XML
  • boolean
  • char
  • date
  • dateTime
  • dateTime.tz con configuración regional
  • entities tipo ENTITIES
  • entity tipo ENTITY
  • enumeration
  • float
  • int
  • Id tipo de dato ID
  • r4 real de 4 bytes
  • r8 real de 8 bytes
  • String
  • time
  • time.tz
  • uri Universal Resource Identifier
  • uuid número global que sirve de identificador
    único
  • Ejemplo
  • ltdatatype dttype int /gt
  • ltdatatype dttype string /gt

19
EsquemaElementos básicos del lenguaje
ElementType
  • ElementType
  • Con este elemento definimos los tipos de
    elementos que define el esquema. Atributos
  • name
  • model el modelo de contenido. Por defecto es
    open (permite albergar dentro del elemento
    otros elementos adicionales, que no es necesario
    definir en el esquema close (semejante a DTD
    no permite incluir elementos que no hayan sido
    declarados).
  • content tipo de contenido empty (vacio),
    textOnly, eltOnly (el elemento es un contenedor
    de otros elementos) y mixed (puede ser tanto
    texto como contenedor).
  • order especifica la aridad de los elementos
    agrupados dentro del actual elemento one (sólo
    una serie de elementos), seq (los elementos
    aparecen en el mismo orden que se declaran) y
    many (cualquier número de veces y en cualquier
    orden).

20
EsquemaElementos básicos del lenguaje element
  • element
  • Para declarar las instancias (ocurrencias) de
    los tipos de elementos o grupos de elementos.
    Atributos
  • type el tipo del elemento (habrá sido declarado
    en el esquema).
  • minOccurs el número mínimo de veces que puede
    aparecer el elemento. Un número mayor o igual a
    0.
  • maxOccurs el número máximo de veces que puede
    aparecer el elemento. Puede ser 1 o asterísco (,
    cualquier número de veces).

21
EsquemaUn ejemplo
  • ltSchema name "libreria4_esq.xml"
  • xmlns"urnschemas-microsoft-comxml-data"
  • xmlnsdt"urnschemas-microsoft-comdatatypes"gt
  • ltElementType name "autor" content"textOnly
  • dttype"string"gt
  • ltdescriptiongt
  • lttitlegtAutorlt/titlegt
  • ltbodygtAutor o editorlt/bodygt
  • lt/descriptiongt
  • lt/ElementTypegt
  • ltElementType name "titulo" content"textOnly"
  • dttype"string"gt
  • ltdescriptiongt
  • lttitlegtTítulolt/titlegt
  • ltbodygtTítulolt/bodygt
  • lt/descriptiongt
  • lt/ElementTypegt
  • ltElementType name "libro" content"eltOnly"
    model"closed"gt
  • ltdescriptiongt
  • lttitlegtLibrolt/titlegt
  • ltbodygtLibro de la libreríalt/bodygt
  • lt/descriptiongt
  • ltelement type"autor" minOccurs"1"
    maxOccurs"" /gt
  • ltelement type"titulo" minOccurs"1"
    maxOccurs"1" /gt
  • ltelement type"precio" minOccurs"1"
    maxOccurs"1" /gt
  • lt/ElementTypegt
  • ltElementType name "libreria4" content"eltOnly"
    model"closed"gt
  • ltdescriptiongt
  • lttitlegtLibreríalt/titlegt
  • ltbodygtLa libreríalt/bodygt
  • lt/descriptiongt
  • ltelement type"libro" minOccurs"0"
    maxOccurs"" /gt
  • lt/ElementTypegt
  • lt/Schemagt

22
EsquemaElementos básicos del lenguaje
AttributeType
  • AttributeType
  • Del mismo modo que ElementType servía para
    definir los tipos de elementos, con AttributeType
    definimos los tipos de atributos del esquema.
    Atributos
  • name
  • dttype el tipo de dato.
  • dtvalues conjunto de valores posibles. Podemos
    usarlo cuando el atributo sea del tipo
    enumeration o nmtokens.
  • default valor por defecto.
  • requiered si el atributo es requerido dentro del
    elemento será yes, no en caso contrario.
  • Ejemplo
  • ltAttributeType namedía_semana
    dttypeenumeration
  • dtvaluesLunes Martes Miércoles Jueves Viernes
    Sabado Domingo
  • defaultLunes requieredyes
  • ltdescriptiongt
  • lttitlegtDía de la semanalt/titlegt
  • ltbodygtNombre del día dentro de la semanalt/bodygt
  • lt/descriptiongt
  • lt/AttributeTypegt

23
EsquemaElementos básicos del lenguaje attribute
  • attribute
  • Del mismo modo que element servía para declarar
    las ocurrencias de elementos, con attribute
    declaramos los atributos. Atributos
  • type un tipo de atributo declarado en el
    esquema.
  • default valor por defecto (para esta ocurrencia
    del atributo). Este valor por defecto prevalece
    sobre el que se haya especificado en
    AttributeType.
  • requiered si el atributo es requerido dentro del
    elemento será yes, no en caso contrario (para
    esta ocurrencia del atributo).
  • Ejemplo (en el que se supone que se han
    declarado los tipos de atributos día_mes,
    hora y día_semana
  • ltElementType name reunión"
    content"textOnly dttype"string"gt
  • ltattribute typedía_mes requieredyes /gt
  • ltattribute typehora requieredno /gt
  • ltattribute typedía_semana defaultMartes
    requieredno /gt
  • ltdescriptiongt
  • lttitlegtAutorlt/titlegt
  • ltbodygtAutor o editorlt/bodygt
  • lt/descriptiongt
  • lt/ElementTypegt
Write a Comment
User Comments (0)
About PowerShow.com