18
Características y elementos fundamentales J.M. Morales-del-Castillo

Título Características y elementos fundamentales J.M. Morales-del-Castillo

Embed Size (px)

Citation preview

Page 1: Título Características y elementos fundamentales J.M. Morales-del-Castillo

Título

Características y elementos fundamentales 

 

J.M. Morales-del-Castillo

Page 2: Título Características y elementos fundamentales J.M. Morales-del-Castillo

Título

Introducción (1)

• Al igual que las DTD XML Schema es un lenguaje para expresar las reglas que deben seguir los ficheros XML para ser considerados válidos (atendiendo a un criterio determinado).

• Ventajas frente a las DTD:– Utiliza sintaxis XML.– Permite un mayor control sobre la estructura

del documento y sobre los tipos de datos que se pueden utilizar.

• Desventajas frente a las DTD:– Es algo más complejo.

Page 3: Título Características y elementos fundamentales J.M. Morales-del-Castillo

Título

Introducción (2)

!El fichero es válido!

Validadores en línea:

http://tools.decisionsoft.com/schemaValidate/results.jsp

http://www.xmlforasp.net/SchemaValidator.aspx

Page 4: Título Características y elementos fundamentales J.M. Morales-del-Castillo

Título

Introducción (3)• XML Schema permite:

– Crear un vocabulario XML específico (ya que definimos como válidas unas etiquetas específicas).

– Definir el contenido de los elementos de un fichero XML, así como una serie de restricciones para ese contenido.

• Esto implica:– El conjunto de etiquetas debe de estar identificado por un

espacio de nombre propio.– El esquema es exclusivo para ese espacio de nombre.

• Restricciones:– No soporta el procesamiento de entidades.

Page 5: Título Características y elementos fundamentales J.M. Morales-del-Castillo

Título

Cómo referenciar un esquema desde un documento XML

• Veamos cómo referenciar desde un fichero XML su esquema asociado:

<?xml version=“1.0” encoding=“ISO-8859-1”?><elemento xmlns=“http://www.example.es/local/”

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=“http://www.example.es/local/ Ejemplo_Esquema.xsd”>

Espacio de nombre por defecto para nuestras

etiquetas

Espacio de nombre para instancias de xml schema

Orden donde se define que el esquema asociado al espacio

de nombre dado se encuentra en el fichero Ejemplo_Esquema.xsd

Page 6: Título Características y elementos fundamentales J.M. Morales-del-Castillo

Título

Cabecera de los esquemas XML

• Todos los esquemas XML tienen una cabecera con los siguientes elementos:

<?xml version=“1.0” encoding=“ISO-8859-1”?><xs:schema xmlns:xs=“http://www.w3.org/2001/XMLSchema”

targetNamespace=“http://www.example.es/local/” xmlns=“http://www.example.es/local/” elementFormDefault=“qualified”>

...

Elemento raíz xs:schema. Se debe cerrar al

final del esquema

Espacio de nombre de XML Schema

Espacio de nombre al que aplicar el

esquema

Espacio de nombre por defecto

Orden que especifica que todo elemento declarado en el esquema debe tener un

espacio de nombre asociado

Page 7: Título Características y elementos fundamentales J.M. Morales-del-Castillo

Título

Componentes de XML Schema

Elementos

Tipo de datos

Atributos

Predefinidos

Construidos

Page 8: Título Características y elementos fundamentales J.M. Morales-del-Castillo

Título

Tipo de datos predefinidos

• Existen diferentes tipos de datos que ya están incluidos en la definición de XML Schema y que los validadores pueden procesar sin necesidad de que los tenga que definir el desarrollador.

• Tipos de datos predefinidos comunes son:– Cadena de caracteres: xs:string– Entero positivo: xs:integer– Número decimal: xs:decimal (entero positivo + dos

cifras decimales)– Fecha: xs:date (formato AAAA-MM-DD)– Año: xs:gYear (formato AAAA)

PredefinidosTipo de datos

Page 9: Título Características y elementos fundamentales J.M. Morales-del-Castillo

Título

Tipo de datos construidos

• Otros tipos de dato los debemos de definir nosotros mismos ya que no están incluidos por defecto en XML Schema. Se construyen a partir de una restricción en un tipo de dato predefinido.

• Se pueden definir dentro de un elemento o al principio del fichero.

• Vamos a ver dos ejemplos:

– Valores facetados de opciones múltiples– Valores facetados con patrones de formato

Construidos o arquetipos

Tipo de datos

Page 10: Título Características y elementos fundamentales J.M. Morales-del-Castillo

Título

Facetas con opciones múltiples

Construidos o arquetipos

(opciones múltiples)

<xs:simpleType name=“colores">

<xs:restriction base="xs:string">

<xs:enumeration value=“rojo"/>

<xs:enumeration value=“verde"/>

<xs:enumeration value=“azul"/>

</xs:restriction>

</xs:simpleType>

Tipo de datos

Page 11: Título Características y elementos fundamentales J.M. Morales-del-Castillo

Título

Facetas con patrones de formato

Construidos o arquetipos (patrones de formato)

<xs:simpleType name=“Num_Telefono">

<xs:restriction base="xs:string">

<xs:length value=“10"/>

<xs:pattern value="\d{2}-\d{7}"/>

<xs:pattern value="\d{3}-\d{6}"/>

</xs:restriction>

</xs:simpleType>

Números de teléfono: 93-4467801 ó 958-128434

Tipo de datos

Page 12: Título Características y elementos fundamentales J.M. Morales-del-Castillo

Título

Cómo definir elementos (1)

• Los elementos que solo contienen datos se definen así: <xs:element name=“elemento” type=“construído/predefinido”/>

• Si contiene elementos anidados estos se definen bajo las etiquetas complexType y enumeration:

<xs:element name=“elemento”> <xs:complexType> <xs:sequence> <xs:element name=“elemento1” type=“construído/predefinido”/> <xs:element name=“elemento2” type=“construído/predefinido”/>

...

Elementos

Page 13: Título Características y elementos fundamentales J.M. Morales-del-Castillo

Título

Cómo definir elementos (y 2)

• Es posible definir las ocurrencias de los elementos con los atributos minOccurs y maxOccurs.

– minOccurs: Define el número mínimo de ocurrencias del elemento. Su valor mínimo es 0.

– maxOccurs: Define el número máximo de ocurrencias. Su valor mínimo es 1 y el máximo unbounded.

• Si no se indica ninguno de ellos, el elemento deberá aparecer una única vez (es decir minOccurs=0 y maxOccurs=1).

<xs:element name=“nombre” type=“tipo” minOccurs=“0” maxOccurs=“unbounded”/>

Elementos

Page 14: Título Características y elementos fundamentales J.M. Morales-del-Castillo

Título

Cómo definir atributos (1)

• Se definen siempre dentro del ámbito de un elemento (anidados en una etiqueta complexType).

• En elementos vacíos o que contienen a otros elementos los definimos así:

<xs:element name=“nombre”> <complexType> <xs:attribute name=“atributo” type=“predefinido/construído”/> ...

Atributos

Page 15: Título Características y elementos fundamentales J.M. Morales-del-Castillo

Título

Cómo definir atributos (2)

• Si el elemento contiene datos y además un atributo (<elemento atributo=“valor”>Datos</elemento>) es necesario definir una etiqueta simpleContent, una etiqueta extension que contiene el tipo de dato del elemento y a continuación la definición del atributo (siempre dentro del ámbito de una etiqueta complexType):

<xs:element name=“nombre”> <xs:complexType> <xs:simpleContent> <xs:extension base=“construído/predefinido del elemento”> <xs:attribute name=“atributo” type=“construído/predefinido”/> ...

Atributos

Page 16: Título Características y elementos fundamentales J.M. Morales-del-Castillo

Título

Cómo definir atributos (y 3)

• Además es posible definir la obligatoriedad del uso de un atributo en el documento XML indicando el atributo use. Sus valores son optional y required.

<xs:attribute name=“atributo” type=“predefinido” use=“required”/>

Atributos

Page 17: Título Características y elementos fundamentales J.M. Morales-del-Castillo

Título

Extensión

• La extensión de los ficheros de esquemas XML es .xsd

Page 18: Título Características y elementos fundamentales J.M. Morales-del-Castillo

Título

Siguiente módulo:

Visualizar XML con CSS

© J.M. Morales-del-Castillo 2007