77
Facultad de Estadística e Informática SISTEMAS WEB

TECNOLOGIAS PARA LA INTEGRACION DE SOLUCIONES · Facultad de Estadística e Informática Bibliografía A. Rodríguez, Publicación en Internet y Tecnología XML, Alfa-Omega Ra-Ma,

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Facultad de Estadística e Informática

SISTEMAS WEB

Facultad de Estadística e Informática

Bibliografía▪ A. Rodríguez, Publicación en Internet y Tecnología XML, Alfa-Omega Ra-Ma, Madrid. España, 2004▪World Wide Web Consortium (W3C). Abril 2000. XML Schema. Consultado el 1 de marzo de 2017 desde https://www.w3.org/XML/Schema.▪World Wide Web Consortium (W3C). Abril 2000. XML. Consultado el 1 de abril de 2016 desdehttps://www.w3.org/standards/xml/core

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

▪XML Schema Definition (XSD).

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

▪Existen varios modelos de lenguaje para la creación de esquemas de documentos XML, los más populares:▪XSD – Basado en las especificaciones de la W3C▪XDR – (XML-Data Reduced Language). Implementado por Microsoft.

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

▪XML Schema Definition (XSD).▪Propuesto por W3C, se convirtió en estándar con las Recomendaciones XML Schema del 2 de mayo de 2001.

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

▪XML Schema Definition (XSD).▪Objetivo: Declarar los diversos objetos que pueden ser usados, definir su contenido y atributos.

Extensión .xsd. ejemploEsquema.xsd

Facultad de Estadística e Informática

eXtensible Markup Language (XML)Las recomendaciones de XML Schema se encuentran en tres documentos:a) XML Schema Parte 0. Fundamentos no normativo.

https://www.w3.org/TR/xmlschema-0/b) XML Schema Parte 1. Estructuras, normativo.

https://www.w3.org/TR/xmlschema-1/c) XML Schema Parte 2. Tipos de datos, normativo.

https://www.w3.org/TR/xmlschema-2/

Facultad de Estadística e Informática

eXtensible Markup Language (XML)XML Schema:a) Tipos de datosb) Restricciones/Facetasc) Definición de tipos de datosd) Declaración de elementose) Declaración de atributosf) Ejemplo

Facultad de Estadística e Informática

eXtensible Markup Language (XML)XML Schema:a) Tipos de datosb) Restricciones/Facetasc) Definición de tipos de datosd) Declaración de elementose) Declaración de atributosf) Ejemplo

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Tipos de datos:

▪ La recomendación sobre los tipos de datos y su uso se encuentra en la recomendación XML Schema Part 2. Datatypes.

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Tipos de datos:

▪Primitivos.

▪Derivados.

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Tipos de datos:

▪Primitivos: Boolean, Float, Double, Decimal, binary, etcétera.

▪String = #PCDATA

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Tipos de datos:

▪Derivados. Se obtienen de los tipos Primitivos:CDATA – derivado de string

long- derivado de integer

int – derivado de long, etc.

Facultad de Estadística e Informática

Facultad de Estadística e Informática

eXtensible Markup Language (XML)XML Schema:a) Tipos de datosb) Restricciones/Facetasc) Definición de tipos de datosd) Declaración de elementose) Declaración de atributosf) Ejemplo

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Facetas de los datos:

▪ Las “facetas” son propiedades que indican cómo se ha de restringir el valor de un determinado dato.

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Faceta Descripción

maxLength Valor de longitud máxima permitida

minLength Valor de longitud mínima permitida

precision Número máximo de dígitos para derivados de decimal

whiteSpace Qué hacer con los espacios en blanco (preserve, replace, colapse)

……

Ejemplos de facetas son:

Facultad de Estadística e Informática

eXtensible Markup Language (XML)XML Schema:a) Tipos de datosb) Facetasc) Definición de tipos de datosd) Declaración de elementose) Declaración de atributosf) Ejemplo

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Definición de nuevos tipos de datos

▪Nuevos tipos de datos creados por el usuario.a. Nuevos tipos de datos simples –

simpleType

b. Nuevos tipos de datos complejos –complexType.

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Tipos de datos simples <xsd:simpleType>

Utilizado para crear una restricción sobre un tipo de dato existente ya definido (tipo de dato base)

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Tipos de datos: Simples personalizados

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Tipos de datos: Simples personalizados

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Tipos de datos: Simples personalizados

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Tipos de datos: Simples personalizados

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Tipos de datos complejos <xsd:complexType>

Su contenido suele ser declaraciones de otros elementos y atributos.

También puede establecer la secuencia en la cual deben ser mostrados los elementos.

A través de la etiqueta <sequence>

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Etiqueta <xsd:sequence>… </xsd:sequence>.

Define el orden o secuencia en la cual deben ser mostrados los elementos en el documento XML.

También se puede definir la incardación(número de apariciones del elemento)

Facultad de Estadística e Informática

eXtensible Markup Language (XML)Etiqueta <xsd:sequence>… </xsd:sequence>.Incardación:

Facultad de Estadística e Informática

eXtensible Markup Language (XML)Además de la Etiqueta <xsd:sequence>… </xsd:sequence>.

xsd: all. Permite a los elementos de un grupo aparecer o no en cualquier orden en el elemento contenido.

xsd: choice. Para elegir de una lista de elementos.

Facultad de Estadística e Informática

XML Catálogo Pelis

<?xml version="1.0" encoding="utf-8"?><catalogo xmlns="esquema.xsd"><titulo>Catálogo de Películas</titulo><pelicula id="0001">

<duracion>Largometraje</duracion><genero>Ciencia Ficción</genero><anio>2017</anio><nombre>Logan</nombre>

</pelicula><pelicula id="0002">

<duracion>Cortometraje</duracion><genero>Animación</genero><anio>2017</anio><nombre>Jefe en pañales</nombre>

</pelicula><pelicula id="0003">

<duracion>Largometraje</duracion><genero>Ciencia Ficción</genero><anio>2017</anio><nombre>La Mujer Maravilla</nombre>

</pelicula><fecha>2017-09-12</fecha><responsable>Erika</responsable></catalogo>

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

<xsd:complexType name="DatosCatalogo"><xsd:sequence><xsd:element name="titulo" type="xsd:string" minOccurs="1" maxOccurs="1"/><xsd:element name="pelicula" type="datosPelicula" minOccurs="1"maxOccurs="unbounded"/><xsd:element name="fecha" type="xsd:date" minOccurs="0" maxOccurs="1"/><xsd:element name="responsable" type="xsd:string" minOccurs="1" maxOccurs="1"/></xsd:sequence></xsd:complexType>

Define los nodos hijo del elemento raíz “DatosCatalogo”

Facultad de Estadística e Informática

eXtensible Markup Language (XML)XML Schema:a) Tipos de datosb) Facetasc) Definición de tipos de datosd) Declaración de elementose) Declaración de atributosf) Ejemplo

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Declaración de elementos

1.En su forma más elemental, pueden ser declarados de forma global:

<xsd: element name=“alias” />

1.1 El tipo de contenido se declara mediante type: <xsd: element name=“alias” type=“xsd:string”/>

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Declaración de elementos

1.2 Se indica el número de apariciones minOccurs, maxOccurs:

<xsd: element name=“alias” type=“xsd:string” minOccurs=“1” maxOccurs=“1”/>

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

<xsd:complexType name="DatosCatalogo"><xsd:sequence><xsd:element name="titulo" type="xsd:string" minOccurs="1" maxOccurs="1"/><xsd:element name="pelicula" type="datosPelicula" minOccurs="1"maxOccurs="unbounded"/><xsd:element name="fecha" type="xsd:date" minOccurs="0" maxOccurs="1"/><xsd:element name="responsable" type="xsd:string" minOccurs="1" maxOccurs="1"/></xsd:sequence></xsd:complexType>

Define los nodos hijo del elemento raíz “DatosCatalogo”

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Declaración de elementos

2. Cuando el contenido de un elemento son otros elementos, están declarados en un bloque complejo (complexType).

La relación se establece por medio de los atributos type y name. Ejemplo:

Facultad de Estadística e Informática

eXtensible Markup Language (XML)Declaración de elementos<xsd:element name=“cuenta” type=“datoscuenta” minOccurs=“1” maxOccurs=“1”/>

<xsd:complexType name=“datoscuenta”>

<xsd:element name=“usuario” type=“xsd:string” minOccurs=“1”

maxOccurs=“1”/>

<xsd:element name=“pass” type=“xsd:string” minOccurs=“1”

maxOccurs=“1”/>

</xsd:complexType>

</xsd:element>

Facultad de Estadística e Informática

eXtensible Markup Language (XML)Declaración de elementos

<xsd:element name=“cuenta” minOccurs=“1” maxOccurs=“1”/>

<xsd:complexType>

<xsd:sequence>

<xsd:element name=“usuario” type=“xsd:string” minOccurs=“1” maxOccurs=“1”/>

<xsd:element name=“pass” type=“xsd:string” minOccurs=“1” maxOccurs=“1”/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Define los nodos hijo del elemento “datosPelicula”

<xsd:complexType name="datosPelicula"><xsd:sequence><xsd:element name="duracion" type="xsd:string" minOccurs="0" maxOccurs="1"/><xsd:element name="genero" type="xsd:string" minOccurs="1" maxOccurs="1"/><xsd:element name="anio" type="xsd:string" minOccurs="0" maxOccurs="1"/><xsd:element name="nombre" type="xsd:string" minOccurs="1" maxOccurs="1"/></xsd:sequence><xsd:attribute name="id" type="xsd:string"/></xsd:complexType>

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Declaración de elementos

Mediante complexType también se pueden declarar los atributos del elemento.

Facultad de Estadística e Informática

eXtensible Markup Language (XML)XML Schema:a) Tipos de datosb) Facetasc) Definición de tipos de datosd) Declaración de elementose) Declaración de atributosf) Ejemplo

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Atributos.

▪ Es un tipo simple.

▪ Puede ser un tipo simple personalizado.

▪ Aparece en elementos de tipo complejo.

▪ Usa la etiqueta <xsd:attribute>

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Define los nodos hijo del elemento “datosPelicula”

<xsd:complexType name="datosPelicula"><xsd:sequence><xsd:element name="duracion" type="xsd:string" minOccurs="0" maxOccurs="1"/><xsd:element name="genero" type="xsd:string" minOccurs="1" maxOccurs="1"/><xsd:element name="anio" type="xsd:string" minOccurs="0" maxOccurs="1"/><xsd:element name="nombre" type="xsd:string" minOccurs="1" maxOccurs="1"/></xsd:sequence><xsd:attribute name="id" type="xsd:string"/></xsd:complexType>

<xsd:attribute name="id" type="xsd:string"/>

Facultad de Estadística e Informática

XML Catálogo Pelis

<?xml version="1.0" encoding="utf-8"?><catalogo xmlns="esquema.xsd"><titulo>Catálogo de Películas</titulo><pelicula id="0001">

<duracion>Largometraje</duracion><genero>Ciencia Ficción</genero><anio>2017</anio><nombre>Logan</nombre>

</pelicula><pelicula id="0002">

<duracion>Cortometraje</duracion><genero>Animación</genero><anio>2017</anio><nombre>Jefe en pañales</nombre>

</pelicula><pelicula id="0003">

<duracion>Largometraje</duracion><genero>Ciencia Ficción</genero><anio>2017</anio><nombre>La Mujer Maravilla</nombre>

</pelicula><fecha>2017-09-12</fecha><responsable>Erika</responsable></catalogo>

<pelicula id="0001">

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Atributos.

▪ El elemento <xsd:attribute> debe contener uno de los siguientes parámetros:▪ type= “tipo”, es el tipo al que pertenece el atributo.

▪ref= “etiqueta”, identifica la definición de un atributo que ya se ha declarado (globalmente).

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Atributos.

▪ Al definir un atributo puede especificarse:▪Es requerido u opcional?▪Tiene valor predefinido?▪Aparece una o ninguna vez.

▪Para todo ello se utiliza use y value.

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Atributos.

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Declaración de Atributos.

▪ Las normas básicas para la declaración de atributos en XML Schema son:

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Declaración de Atributos.

I. Declaración Global

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Declaración de Atributos.

1. Pueden ser declarados de forma global, con el tipo de dato utilizado:

<xsd:attribute name=“id” type=“xsd:string”/>

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Declaración de Atributos.

II. Referencia a un atributo declarado globalmente.

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

2. Un atributo declarado de forma global es referenciado a través de <xsd:attributeref=“atributo”>

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

<xsd:element name=“CodigoPostal” type= “atribCodPos” minOccurs=“0” maxOccurs=“1”/>

<xsd:complexType name=“atribCodPos”>

<xsd:attribute ref=“id”>

<xsd:attribute name=“cp” type=“xsd:string”/>

</xsd:complexType>

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Declaración de Atributos.

III. Declaración dentro del elemento que lo utiliza en complexType

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

3. Pueden ser declarados dentro del elemento en el que se utilizan, en un elemento complexType:

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

<xsd:element name=“CodigoPostal” minOccurs=“0” maxOccurs=“1”>

<xsd:complexType>

<xsd:attribute name=“cp” type=“xsd:string”/>

</xsd:complexType>

<xsd:element>

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Declaración de Atributos.

IV. Declaración fuera del elemento que lo utiliza en complexType

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

4. Generalmente se declaran en un bloque complexType, y los elementos de forma independiente

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

<xsd:element name=“CodigoPostal” type= “atribCodPos” minOccurs=“0” maxOccurs=“1”/>

<xsd:complexType name=“atribCodPos”>

<xsd:attribute name=“cp” type=“xsd:string”/>

</xsd:complexType>

Facultad de Estadística e Informática

eXtensible Markup Language (XML)XML Schema:a) Tipos de datosb) Facetasc) Definición de tipos de datosd) Declaración de elementose) Declaración de atributosf) Ejemplo

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

catalogo pelicula +

duracion [#] *

genero [#] +

anio [#] *

nombre [#] +

titulo [#]

fecha [#] ?

responsable [#]

Facultad de Estadística e Informática

XML SchemaDefinition (XSD). Ejemplo:archivo películas.xml

Facultad de Estadística e Informática

XML Schema Definition (XSD). Ejemplo:archivo esquema.xsd

Facultad de Estadística e Informática

Clase 11. Tecnologías XML.XML Schema Definition (XSD). Ejemplo

Facultad de Estadística e Informática

eXtensible Markup Language (XML)Ejemplo:Para referenciar al archivo esquema.xsd dentro del documento XML

Facultad de Estadística e Informática

eXtensible Markup Language (XML)Ejemplo:Para validar nuestro ejemplo

http://www.xmlvalidation.com/

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

▪XML Schema Definition (XSD).

▪Qué son los

ESPACIOS DE NOMBRES (namespaces)

Facultad de Estadística e Informática

eXtensible Markup Language (XML)ESPACIOS DE NOMBRES (namespaces)

Se convirtió en estándar con la recomendación del W3C “Namespacesin XML” del 14 de enero de 1999.Última versión: https://www.w3.org/TR/xml-names/

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Espacios de nombre (Namespaces)▪Permiten utilizar dentro de un mismo documento elementos con el mismo nombre. Asignando un prefijo o identificador

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Espacios de nombre (Namespaces)▪Tienen asignado un determinado URI (Uniform Resource Identifier - Identificador de Recursos Universal).

Una dirección de Internet que hace referencia a un lenguaje o tecnología XML

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

▪Espacios de nombre (Namespaces)

Un espacio de nombres XML es un conjunto de nombres, identificados por una referencia URI, que se utilizan en documentos XML como tipos de elementos y nombres de atributo.

Facultad de Estadística e Informática

eXtensible Markup Language (XML)▪Espacios de nombre (Namespaces)

La declaración de un espacio de nombres se realiza mediante el

atributo xmlns y se le proporciona un valor en el documento

(una dirección de Internet – URL Uniform Resource Locator )

Es decir, su valor es una referencia a un URI que representa el nombre del espacio de nombres.

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

La asignación de los espacios de nombre (Namespaces) puede realizarse de dos formas:

a) Nombre del espacio por defecto: xmlns=“URI”

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

a) Nombre del espacio por defecto: xmlns=“URI”. Esta asignación establece que todos los elementos que se encuentran dentro, utilizarán ese espacio de nombre. Ejemplo:

Facultad de Estadística e Informática

eXtensible Markup Language (XML)a) Nombre del espacio por defecto: xmlns=“URI”.

<?xml version=“1.0”?>

<html xmlns=‘http://www.w3.org/TR/REC-html40’>

…todos los elementos incluidos aquí pertenecerán al ese espacio de nombre…

</html>

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

b) Nombre de espacio con prefijo.

xmlns: prefijo=“URI”

De esta forma, cuando se utilice el elemento en el documento tendrá la sintaxis: prefijo:elemento.

Ejemplo:

Facultad de Estadística e Informática

xmlns:xsd=“http://www.w3.org/2001/XMLSchema-datatypes” >

<elemento>Soy elemento Schema, por defecto</elemento>

<xsd:elemento>Soy elemento xsd</xsd:elemento>

</schema>

Espacio de nombre schema, como valor por defecto.

Espacio de nombre con prefijo xsd

Elemento de schema, valor por defectoElementos de espacio de nombre con prefijo xsd

XML Schema Definition (XSD).Ejemplo espacio de nombre:

<schema xmlns=“http://www.w3.org/2001/XMLSchema”

Facultad de Estadística e Informática

eXtensible Markup Language (XML)

Gracias por su atención