Apuntes XML Schema

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 119

1

Lenguajes de Marcas y Sistemas


de Gestión de Información.
Tema 6.2. XML. Validación de
documentos. Parte 2. XML
Schema.
Ciclo formativo de grado superior de Lenguajes de Marcas y
Diseño de Aplicaciones Web (DAW) Sistemas de Gestión de
Información | Tema 6.2.
XML. Validación de

IES María Moliner documentos. Parte 2.


XML Schema

Curso 2018 / 2019


Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 2

Índice
• Introducción
• Lenguajes de validación
• DTD
• XML Schema
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 3

Índice
• XML Schema
▫ Introducción
▫ Estructura
▫ Definición de componentes XML Schema
▫ Métodos de diseño
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 4

Introducción (I)
• Los DTD, en realidad, son una reminiscencia del
lenguaje SGML que permite un mecanismo de
validación para XML al ser éste un subconjunto
de SGML.
• Por ello, se planteó en torno a 1999 una sintaxis
que permitiera más capacidades de validación y
que fuera más coherente con el lenguaje XML.
• Hoy en día es la arquitectura predominante
para la validación, ya que se usa en XQuery y
sobre todo en los servicios Web.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 5

Introducción (II)
• Ventajas de los esquemas:
▫ La sintaxis es XML, por lo que son analizables
como cualquier otro documento XML.
▫ Soportan íntegramente los espacios de nombres.
 Los DTDs no tenían soporte explicito para espacios
de nombres por ser anterior a la invención de los
espacios de nombres en los XML.
▫ Permiten validaciones de datos avanzadas.
▫ Proporcionan una mayor facilidad para crear
validaciones complejas y reutilizables.
▫ Soportan conceptos avanzados como herencia y
sustitución de tipos.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 6

Introducción (III)
• Algunas desventajas:
▫ Son más complejas de entender que las DTD
▫ Presentan más incompatibilidades con software
que las DTD
▫ No permiten definir entidades
▫ Tecnologías como SAX o DOM tienen utilidades
especiales para las DTD, pero no para los XML
Schemas.
 Son APIs (Interfaz de Programación de Aplicaciones)
que permiten la comunicación entre sistemas XML y
otros sistemas.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 7

Índice
• XML Schema
▫ Introducción
▫ Estructura
 Etiqueta schema
 Asociar un esquema a un documento XML
 Partes de un esquema
▫ Definición de componentes XML Schema
▫ Métodos de diseño
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 8

Etiqueta schema (I)


• Un esquema es un documento XML al que se le
coloca la extensión xsd.
▫ Se guarda el archivo con extensión .xsd.
• Al ser un archivo XML tiene la estructura
habitual de todo documento XML con la
obligación de que el elemento raíz se llame
schema.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 9

Etiqueta schema (II)


• La etiqueta schema identifica la raíz de un
documento XML Schema.
• En esta etiqueta se declara el espacio de
nombres estándar que utilizan los esquemas.
▫ Permite diferenciar las etiquetas XML del
esquema, respecto a las del documento XML.
▫ El espacio de nombres del esquema se puede
definir como
 el espacio de nombres por defecto,
 definir un prefijo xs para él (es la forma habitual)
 o bien definir un prefijo xsd.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 10

Etiqueta schema (III)


• Las tres posibilidades mencionadas son:
▫ <schema xmlns=“http://www.w3.org/2001/XMLSchema”>
▫ <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLSchema”>
▫ <xsd:schema xmlns:xsd=“http://www.w3.org/2001/XMLSchema”>

• A partir de ahí las etiquetas pertenecientes a


XML Schema, usarán el prefijo indicado en su
espacio de nombres.
▫ Normalmente se usa la segunda opción, la que
implica usar el prefijo xs. En estos apuntes se
dará por hecho que hemos utilizado esa segunda
opción.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 11

Etiqueta schema (IV)


• Las etiquetas privadas, las propias de nuestro
documento pueden tener asignado un espacio
de nombres.
▫ Normalmente se le aplica un espacio de nombres
por defecto. De esa forma los elementos sin
prefijo serán los nuestros y los que tienen prefijo
los correspondientes a la sintaxis de XML Schema.
Por ejemplo:
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 12

Etiqueta schema (V)


• En el ejemplo anterior, las etiquetas
correspondientes al espacio estándar de XML
Schema usarán el prefijo xs, mientras que las
etiquetas pertenecientes a los documentos XML
correspondientes al espacio privado de la
dirección http://www.lmsgi.com/doc usarán el
espacio de nombres por defecto.
• El atributo targetNamespace sirve para indicar
a qué espacio de nombres se aplican las normas
definidas por XML Schema.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 13

Etiqueta schema (VI)


• Otro ejemplo:

▫ Ahora los elementos de XMLSchema usarán el


prefijo xs, mientras que las nuestras etiquetas
usan el prefijo doc.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 14

Etiqueta schema (VII)


• Un último ejemplo:

▫ En este último caso, las etiquetas XMLSchema usan el


prefijo xs, y nuestras etiquetas usan dos prefijos
(puesto que usamos dos espacios de nombres) doc e
img.
▫ Ambos espacios están también indicados en el
targetNamespace; eso indica que el esquema se
aplicará a documentos pertenecientes a ambos
espacios de nombres.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 15

Índice
• XML Schema
▫ Introducción
▫ Estructura
 Etiqueta schema
 Asociar un esquema a un documento XML
 Partes de un esquema
▫ Definición de componentes XML Schema
▫ Métodos de diseño
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 16

Asociar un esquema a un documento XML


(I)
• Para que un documento XML siga las reglas
definidas en un esquema, no se indica en la
etiqueta !DOCTYPE, como se hacía con las
DTDs.
• En su lugar utilizamos atributos especiales en el
elemento raíz del documento XML.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 17

Asociar un esquema a un documento XML


(II)
• Primero, al igual que en el documento XMLSchema,
necesitamos definir los dos espacios de nombres:
▫ el correspondiente al documento XML (que se suele
usar sin abreviatura, es decir como espacio por
defecto)
▫ y el espacio de nombres de XML Schema (que suele
utilizar el prefijo xs, aunque se puede utilizar otro).
 Los atributos especiales que se utilizan se encuentran
definidos en el espacio de nombres. Por lo tanto para
poder usarlos hay que hacer referencia a dicho espacio
de nombres en el documento instancia XML, mediante el
atributo “xmlns”. XMLSchema.dtd
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 18

Asociar un esquema a un documento XML


(III)
• Además es necesario indicar dónde está el
archivo XMLSchema que contiene las reglas de
validación que se aplican al documento.
▫ Esto se hace gracias al atributo llamado
schemaLocation (perteneciente al espacio de
nombres del esquema, por lo que se usa
normalmente como xs:schemaLocation).
▫ A continuación se indica la ruta al documento
XMLSchema (con extensión xsd).
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 19

Asociar un esquema a un documento XML


(IV)
• También es posible indicar varios esquemas de
validación, por lo que habría que indicar a qué
espacio se aplica cada uno:

▫ En el atributo schemaLocation, el primer valor


coincide con el del “targetNamespace” especificado
en el schema. El segundo es la ubicación donde
se encuentra definido el XML schema.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 20

Asociar un esquema a un documento XML


(V)
• Otra posibilidad es indicar un esquema para un
documento, pero sin que dicho esquema utilice
espacio de nombres.
• Por ejemplo el esquema podría tener esta cabecera
(archivo esquema1.xsd):

▫ Este archivo XML Schema no indica ningún espacio de


nombres al que aplicarse (atributo
targetNamespace).
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 21

Asociar un esquema a un documento XML


(VI)
• Un documento en el que se hiciera referencia
al esquema anterior podría ser:

▫ El atributo noNameSchemaLocation permite


indicar un esquema para el documento sin que
éste utilice espacio de nombres alguno (lo cual
no es nada aconsejable, pero vale para hacer
pruebas).
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 22

Asociar un esquema a un documento XML


(VII)
• Ejemplo:
▫ Documento people.xsd donde se especifica el
esquema:
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 23

Asociar un esquema a un documento XML


(VIII)
• Los atributos del elemento raíz elementFormDefault y
attributeFormDefault especifican si los elementos y los
atributos declarados en él deben estar certificados por
un espacio de nombres, ya sea explícitamente
mediante un prefijo o implícitamente de forma
predeterminada, cuando se utilicen en un documento
instancia XML.
• Los posibles valores de estos atributos son:
▫ “qualified”: indica que, en los documentos instancia XML
que referencien a este esquema, los elementos o atributos
del “target namespace” deben estar cualificados con un
prefijo.
▫ “unqualified”: Este es el valor por defecto. Indica que los
elementos/atributos no necesitan estar prefijados.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 24

Asociar un esquema a un documento XML


(IX)
• Continuación ejemplo.
▫ Documento XML que instancia el esquema
anterior
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 25

Índice
• XML Schema
▫ Introducción
▫ Estructura
 Etiqueta schema
 Asociar un esquema a un documento XML
 Partes de un esquema
▫ Definición de componentes XML Schema
▫ Métodos de diseño
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 26

Partes de un esquema (I)


• Elementos, para indicar los elementos
permitidos en los documentos que sigan el
esquema.
▫ xs:element
• Atributos.
▫ xs:attribute
• Tipos simples, que permiten definir los tipos
simples de datos que podrá utilizar el
documento XML.
▫ xs:simpleType
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 27

Partes de un esquema (II)


• Tipos complejos
▫ xs:complexType.
• Documentación, información utilizable por
aplicaciones que manejen los esquemas.
▫ xs:annotation, xs:documentation y
xs:appInfo.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 28

Índice
• XML Schema
▫ Introducción
▫ Estructura
▫ Definición de componentes XML Schema
 Elementos
 Tipos de datos
 Atributos
 Restricciones (facetas)
 Listas
 Extensiones
 Elementos y atributos globales
▫ Métodos de diseño
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 29

Elementos (I)
• En XML Schema la definición de un elemento
XML se realiza mediante la etiqueta element.
• La sintaxis completa es:
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 30

Elementos (II)
• No siempre se definen todos los atributos
posibles.
▫ Al menos hay que indicar el nombre, el tipo de
datos también es necesario indicarle casi siempre
y el resto de atributos sólo si se necesitan.
• Una definición tipo podría ser:
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 31

Elementos (III)
• name: es el nombre del elemento
• type: el tipo de elemento. XML Schema define
dos tipos de elementos:
▫ Tipos simples: son elementos que sólo pueden
contener datos carácter; no pueden incluir otros
elementos ni tampoco atributos.
▫ Tipos complejos: estos elementos pueden incluir
otros elementos y/o atributos.
 (Veremos en otro apartado los tipos de datos en
más detalle)
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 32

Elementos (IV)
• minOccurs y maxOccurs (Opcionales) : estos dos
atributos indican el mínimo (minOccurs) y máximo
(maxOccurs) número de ocurrencias del elemento.
▫ El valor por defecto para ambos atributos es 1. Si se
quiere indicar que el elemento puede aparecer un
número ilimitado de veces, el atributo maxOccurs
tomará el valor “unbounded”.
• fixed (Opcional): especifica un valor fijo para el
elemento.
▫ el elemento puede estar vacío, pero si no lo está, su
contenido debe coincidir con el especificado en el
atributo “fixed”
• default (Opcional): especifica un valor por defecto
para el elemento.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 33

Índice
• XML Schema
▫ Introducción
▫ Estructura
▫ Definición de componentes XML Schema
 Elementos
 Tipos de datos
▫ Simples
▫ Complejos
 Atributos
 Restricciones (facetas)
 Listas
 Extensiones
 Elementos y atributos globales
▫ Métodos de diseño
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 34

Simples (I)
• Los elementos simples solamente pueden
contener texto (caracteres).
▫ Los elementos simples no pueden contener a otro u
otros elementos (hijos),
▫ ni tampoco pueden tener atributos.
• El texto contenido en un elemento simple, puede
ser de diferentes tipos de datos predefinidos en el
estándar W3C XML Schema.
▫ Los tipos de datos predefinidos pueden ser primitivos
(string, boolean, decimal...) o derivados de estos
(integer, ID, IDREF...).
▫ También es posible definir nuevos tipos de datos
simples.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 35

Simples (II)
• Ejemplos de definición de elementos de tipo
simple:
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 36

Simples (III)
• Existen 19 tipos de datos simples predefinidos
primitivos, que se pueden agrupar en 4
categorías:
1. Tipos cadena
▫ string: secuencia de longitud finita de caracteres
[*]
▫ anyURI: una uri estándar de Internet
▫ NOTATION: declara enlaces a contenido externo
no-XML
▫ Qname: una cadena legal Qname (nombre con
cualificador)
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 37

Simples (IV)
2. Tipos binario codificado
▫ boolean: toma los valores “true” o “false” [*]
▫ hexBinary: dato binario codificado como una serie
de pares de dígitos hexadecimales
▫ base64Binary: datos binarios codificados en base 64
3. Tipos numéricos
▫ decimal: número decimal de precisión (dígitos
significativos) arbitraria [*]
▫ float: número de punto flotante de 32 bits de
precisión simple [*]
▫ double: número de punto flotante de 64 bits de
doble precisión [*]
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 38

Simples (V)
4. Tipos de fecha/hora
▫ duration: duración de tiempo
▫ dateTime: instante de tiempo específico, usando
calendario gregoriano, en formato "YYYYMM-
DDThh:mm:ss"
▫ date: fecha específica del calendario gregoriano, en
formato "YYYY-MM-DD” [*]
▫ time: una instancia de tiempo que ocurre cada día,
en formato "hh:mm:ss"
▫ gYearMonth: un año y mes del calendario gregoriano
▫ gYear/gMonth/gDay: año/mes/fecha del calendario
gregoriano
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 39

Simples (VI)
• De cada uno de estos tipos primitivos se pueden
obtener tipos derivados, como se muestra en la
siguiente imagen.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 40

Índice
• XML Schema
▫ Introducción
▫ Estructura
▫ Definición de componentes XML Schema
 Elementos
 Tipos de datos
▫ Simples
▫ Complejos
▫ Vacío
▫ Elementos
▫ Mixto
 Atributos
 Restricciones (facetas)
 Listas
 Extensiones
 Elementos y atributos globales
▫ Métodos de diseño
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 41

Complejos (I)
• Estos elementos pueden incluir otros elementos
y/o atributos.
▫ Ya no solo contienen una única información en el
interior como los de tipo simple.
• Los tipos compuestos permiten definir
contenidos más complejos.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 42

Complejos (II)
• Puesto que lo normal es que los elementos de
un documento XML puedan contener otros
elementos y por supuesto atributos, es lógico
que la mayoría de elementos indiquen
mediante tipos compuestos su contenido.
▫ Los datos simples son apropiados para indicar el
tipo de contenido de los atributos o bien para
indicar el contenido de los elementos simples (lo
que en DTD serían elementos solo con contenido
#PCDATA).
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 43

Complejos (III)
• Los tipos compuestos se definen con la etiqueta
complexType. En esa etiqueta podemos utilizar
diferentes modelos de definición de contenidos.
• Ejemplo:

▫ Declaramos el elemento “libro”, que es de tipo complejo. Entre la


etiquetas <xs:complexType> y la de cierre </xs:complexType> se
especifica la definición de este elemento. En este caso se trata de un
elemento que incluye un atributo “formato”, que es de tipo string, y
que es obligatorio.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 44

Complejos (IV)
• Aparte del modelo de contenido texto que
aparece en los elementos simples, en los
elementos complejos nos podemos encontrar 3
modelos más de contenido:
▫ Vacío
▫ Elementos
▫ Mixto
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 45

Índice
• XML Schema
▫ Introducción
▫ Estructura
▫ Definición de componentes XML Schema
 Elementos
 Tipos de datos
▫ Simples
▫ Complejos
▫ Vacío
▫ Elementos
▫ Mixto
 Atributos
 Restricciones (facetas)
 Listas
 Extensiones
 Elementos y atributos globales
▫ Métodos de diseño
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 46

Vacío (I)
• Para indicar que un elemento es vacío basta
con no indicar valores e indicar el nombre del
elemento sin indicar tipo de datos alguno.
• No puede contener datos carácter ni otros sub-
elementos, pero sí puede incluir atributos.
▫ Si no contienen atributos pueden declararse
como tipos simples.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 47

Vacío (II)
• Ejemplo

▫ Declaramos el elemento “antiguedad”, que es de


contenido vacío (no contiene ni texto ni otros
subelementos), y que es de tipo complejo porque
contiene un atributo, “anyosDeServicio”, que es
de tipo “positiveInteger” (entero positivo).
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 48

Vacío (III)
• Ejemplo

▫ En este caso el elemento “casado” sólo dispone


de un atributo llamado “valor”, no será posible
meter ningún contenido en la etiqueta de
casado. Si no deseamos atributos (aunque es muy
extraño), entonces simplemente no habrá
etiquetas attribute (pero sí todas las demás).
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 49

Índice
• XML Schema
▫ Introducción
▫ Estructura
▫ Definición de componentes XML Schema
 Elementos
 Tipos de datos
▫ Simples
▫ Complejos
▫ Vacío
▫ Elementos
▫ Secuencias
▫ Elecciones
▫ Etiqueta all (contenidos libres)
▫ Mezcla de elementos
▫ Mixto
 Atributos
 Restricciones (facetas)
 Listas
 Extensiones
 Elementos y atributos globales
▫ Métodos de diseño
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 50

Elementos
• Como se ha comentado antes, los contenidos
compuestos se refieren a los elementos que
contienen otros elementos (pero nunca texto
libre).
• Hay tres posibles tipos de elementos a
contener:
▫ secuencias,
▫ elecciones y
▫ contenidos libres (all).
• Además se pueden incorporar atributos y/o
mezclar los subtipos entre sí.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 51

Índice
• XML Schema
▫ Introducción
▫ Estructura
▫ Definición de componentes XML Schema
 Elementos
 Tipos de datos
▫ Simples
▫ Complejos
▫ Vacío
▫ Elementos
▫ Secuencias
▫ Elecciones
▫ Etiqueta all (contenidos libres)
▫ Mezcla de elementos
▫ Mixto
 Atributos
 Restricciones (facetas)
 Listas
 Extensiones
 Elementos y atributos globales
▫ Métodos de diseño
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 52

Secuencias (I)
• Dentro de un elemento es habitual indicar su
contenido como una secuencia de elementos.
• Esto se permite con la etiqueta sequence,
dentro de la cual se añaden etiquetas element
para indicar los elementos que entran en la
secuencia.
• Deben aparecer todos, y en el mismo orden en
que se especifican.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 53

Secuencias (II)
• Ejemplo1:
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 54

Secuencias (III)
• La etiqueta sequence posee los atributos
minOccurs y maxOccurs para indicar que el
bloque de la secuencia se puede repetir.

• Otro ejemplo, más simple:


Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 55

Índice
• XML Schema
▫ Introducción
▫ Estructura
▫ Definición de componentes XML Schema
 Elementos
 Tipos de datos
▫ Simples
▫ Complejos
▫ Vacío
▫ Elementos
▫ Secuencias
▫ Elecciones
▫ Etiqueta all (contenidos libres)
▫ Mezcla de elementos
▫ Mixto
 Atributos
 Restricciones (facetas)
 Listas
 Extensiones
 Elementos y atributos globales
▫ Métodos de diseño
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 56

Elecciones (I)
• Sirven para permitir elegir uno de entre varios
elementos. Se especifica una lista de
elementos de los cuales sólo puede aparecer
uno en el documento XML.
• Su funcionamiento es el mismo que en las
secuencias, pero en este caso se utiliza una
etiqueta llamada choice.
• La etiqueta choice también posee los atributos
minOccurs y maxOccurs.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 57

Elecciones (II)
• Ejemplo 1:

▫ NCName es un tipo de dato que significa “non-


colonized name”. En el contenido de estos tipos
de element no se permite que aparezca el
símbolo “:” en la cadena.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 58

Elecciones (III)
• Ejemplo 2:
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 59

Índice
• XML Schema
▫ Introducción
▫ Estructura
▫ Definición de componentes XML Schema
 Elementos
 Tipos de datos
▫ Simples
▫ Complejos
▫ Vacío
▫ Elementos
▫ Secuencias
▫ Elecciones
▫ Etiqueta all (contenidos libres)
▫ Mezcla de elementos
▫ Mixto
 Atributos
 Restricciones (facetas)
 Listas
 Extensiones
 Elementos y atributos globales
▫ Métodos de diseño
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 60

Etiqueta all (I)


• Se trata de una posibilidad similar a choice y
sequence que se utiliza de la misma forma y
que tiene como diferencia principal que los
elementos que contiene pueden aparecer cero
o una vez y además en el orden que quieran.
• Esta etiqueta tiene los atributos minOccurs y
maxOccurs, pero sólo se puede indicar como
valores cero o uno.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 61

Etiqueta all (II)


• Ejemplo 1:

▫ En este caso la firma y el código pueden


aparecer o no, aparecer los dos e incluso el
orden será indiferente. Es una etiqueta muy
potente que ahorra mucho trabajo.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 62

Etiqueta all (III)


• Ejemplo 2:
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 63

Índice
• XML Schema
▫ Introducción
▫ Estructura
▫ Definición de componentes XML Schema
 Elementos
 Tipos de datos
▫ Simples
▫ Complejos
▫ Vacío
▫ Elementos
▫ Secuencias
▫ Elecciones
▫ Etiqueta all (contenidos libres)
▫ Mezcla de elementos
▫ Mixto
 Atributos
 Restricciones (facetas)
 Listas
 Extensiones
 Elementos y atributos globales
▫ Métodos de diseño
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 64

Mezcla de elementos (I)


• A veces los contenidos de un documento XML
son extremadamente complejos y por eso se
permite en los esquema colocar etiquetas
choice dentro de etiquetas sequence y
viceversa. Y lo mismo ocurre con las etiquetas
all.
▫ Estas posibilidades permiten crear cualquier tipo
de esquema por complejo que resulte.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 65

Mezcla de elementos (II)


• Ejemplo:
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 66

Índice
• XML Schema
▫ Introducción
▫ Estructura
▫ Definición de componentes XML Schema
 Elementos
 Tipos de datos
▫ Simples
▫ Complejos
▫ Vacío
▫ Elementos
▫ Mixto
 Atributos
 Restricciones (facetas)
 Listas
 Extensiones
 Elementos y atributos globales
▫ Métodos de diseño
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 67

Mixto (I)
• Es el caso más complejo.
• Se trata de elementos que contienen otros
elementos y además texto (e incluso atributos).
• Para permitir esta posibilidad hay que marcar el
atributo mixed de la etiqueta complexType a
true.
• El elemento puede contener tanto datos
carácter como elementos hijo. Los elementos
hijo se definen igual que en el modelo anterior,
mediante los elementos sequence, choice o all.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 68

Mixto (II)
• Ejemplo 1:

▫ No es posible controlar el tipo de datos del texto


interior. Los elementos se controlan
completamente, pero el texto no.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 69

Mixto (III)
• Ejemplo 2:

▫ XML
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 70

Índice
• XML Schema
▫ Introducción
▫ Estructura
▫ Definición de componentes XML Schema
 Elementos
 Atributos
 Restricciones (facetas)
 Listas
 Extensiones
 Elementos y atributos globales
▫ Métodos de diseño
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 71

Atributos (I)
• La definición de atributos en XML Schema es
similar a la definición de elementos.
• Su sintaxis de definición es:
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 72

Atributos (II)
▫ Dentro de la definición de un atributo:
 type solo puede hacer referencia a tipos simples.
 form solo puede tomar los valores: qualified o
unqualified.
 default; si el atributo no aparece en el documento XML,
se le asigna el valor especificado en el atributo
“default”. Los valores por defecto sólo tienen sentido si
el atributo es opcional, de lo contrario tendremos un
error.
 use puede ser: prohibited, optional o required.
 hace referencia a si al atributo no se le puede asignar
ningún valor en el documento XML (valor prohibited), si su
uso es opcional (valor optional) o si es obligatorio darle
valor.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 73

Atributos (III)
• Los atributos sólo pueden asignarse a los
elementos mediante tipos complejos de datos.
▫ Los elementos simples, definidos como tal, no
podrán tener atributos.
• Las declaraciones de atributos para un
elemento deben aparecer siempre al final del
bloque delimitado por la etiqueta de inicio
<complexType> y la de fin </complexType>,
▫ después de las especificaciones de todos los
demás componentes.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 74

Atributos (IV)
• Ejemplo:
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 75

Índice
• XML Schema
▫ Introducción
▫ Estructura
▫ Definición de componentes XML Schema
 Elementos
 Atributos
 Restricciones (facetas)
 Listas
 Extensiones
 Elementos y atributos globales
▫ Métodos de diseño
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 76

Restricciones (facetas) (I)


• XML Schema permite definir restricciones a los
posibles valores de los tipos de datos simples.
Dichas restricciones se pueden establecer en
diferentes aspectos, llamados facetas.
• Las restricciones permiten establecer reglas
complejas que deben de cumplir los datos.
• En este caso dentro de la etiqueta simpleType
se indica una etiqueta restriction, dentro de la
cual se establecen las posibles restricciones.
• Las restricciones también se pueden aplicar
sobre la definición de atributos.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 77

Restricciones (facetas) (II)


• La sintaxis sería:

▫ El atributo base sirve para indicar en qué tipo nos


basamos al definir la restricción (es decir de qué tipo
estamos creando este derivado).
▫ El apartado restriction pueden tener numerosas etiquetas
(facetas) que permiten establecer las restricciones
deseadas al tipo.
 A su vez estas etiquetas interiores disponen de un atributo
llamado fixed que puede ser true/false, estableciendo si es
posible modificar esa propiedad en elementos derivados.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 78

Restricciones (facetas) (III)


• Las facetas que pueden usarse son:
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 79

Restricciones (facetas) (IV)


Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 80

Restricciones (facetas) (V)


• Ejemplo 1:

▫ En este ejemplo se define un elemento llamado


"clave" con la restricción de que su valor tiene
que ser una cadena de, exactamente, doce
caracteres.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 81

Restricciones (facetas) (VI)


• Ejemplo 2:

▫ Se define el tipo persona nombresTipo que permite textos entre


4 y 15 caracteres y a continuación se define un elemento que
utiliza ese tipo.
 Recordad que cuando vimos los elementos simples dijimos que
también era posible definir nuestros propios tipos.
▫ El hecho de declararle como derivado de normalizedString
permite restringir que no considere en los textos más de un
espacio seguido ni los tabuladores ni saltos de línea.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 82

Restricciones (facetas) (VII)


• Ejemplo 3:

▫ Utilizamos la faceta pattern para la validación de un


dato tipo DNI (8 cifras y un número) y la faceta
whiteSpace para eliminar cualquier espacio (aparte
de collapse también admite preserve y replace).
▫ Igual que en el ejemplo anterior creamos el tipo de
elemento y luego se lo asignamos a un elem.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 83

Restricciones (facetas) (VIII)


• Ejemplo 4:

▫ Se define un elemento llamado "color" con la


restricción de que los únicos valores admitidos
son: "verde", "amarillo" y "rojo".
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 84

Restricciones (facetas) (IX)


• Ejemplo 5 (facetas sobre atributos):

▫ Definimos el atributo “demanda” como una restricción del tipo


base “xs:string”, donde sólo existen tres valores posibles:
“alto”, “medio” y “bajo”.
▫ El atributo “demanda” debe tomar uno de estos tres valores.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 85

Índice
• XML Schema
▫ Introducción
▫ Estructura
▫ Definición de componentes XML Schema
 Elementos
 Atributos
 Restricciones (facetas)
 Listas
 Extensiones
 Elementos y atributos globales
▫ Métodos de diseño
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 86

Listas (I)
• Las listas permiten que un componente tenga
como contenido una determinada lista de
valores, separados mediante espacios.
• La construcción de listas indica dos pasos:
1. Crear un tipo simple de datos cuyo contenido
es una etiqueta list, la cual posee el atributo
itemType para indicar el tipo de elementos de
la lista.
Simplemente con ello se podría establecer una
lista (valores separados por espacios) de valores
pertenecientes al tipo indicado.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 87

Listas (II)
2. Crear el tipo ya definitivo de datos que
contendrá una etiqueta restriction a la cual
como tipo base se indica el tipo simple de datos
relacionado con la lista.
▫ En la restricción se pueden indicar estas
etiquetas usando el atributo value:
 length. Indica que la lista tendrá un número exacto de valores.
 minLength. Indica que la lista tendrá un número mínimo de
valores
 maxLength. Indica que la lista tendrá un número máximo de
valores
 enumeration. Posibles valores que puede tener la lista
 whiteSpace. Gestión de los espacios en blanco en cada elemento
de la lista.
 pattern. Expresión regular que debe cumplir cada elemento de la
lista.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 88

Listas (III)
• Ejemplo 1:
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 89

Listas (IV)
▫ En el ejemplo, primero se define un tipo de lista
(listaDecimales) simplemente indicando que será
una lista cuyos valores serán números decimales.
▫ Después se concreta la lista (listaNotas), de
modo que ahora se indica que la lista constará de
tres a seis números (en el XML cada número irá
separado por espacios)
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 90

Listas (V)
• Ejemplo 2:
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 91

Listas (VI)
• Se define el tipo “tiendas” como una restricción del
tipo “listaTiendas” donde “legnth” no puede ser mayor
que 3. Es decir, en “tiendas” puede haber hasta 3
valores de la lista.
• El tipo “listaTiendas” se define como una lista donde
cada elemento de la lista es del tipo “posiblesTiendas”.
• Y este último se define como un “enumeration”.
▫ Podríamos, por ejemplo, a continuación definir elemento
llamado “vendedores” de la siguiente manera:

▫ Un ejemplo de un documento instancia XML podríamos


encontrarnos algo como:

Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 92

Índice
• XML Schema
▫ Introducción
▫ Estructura
▫ Definición de componentes XML Schema
 Elementos
 Atributos
 Restricciones (facetas)
 Listas
 Extensiones
 Elementos y atributos globales
▫ Métodos de diseño
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 93

Extensiones (I)
• Sirve para extender un elemento, ya sea de
tipo simpleType o complexType.
• La etiqueta que se utiliza para definir la
extensión es xs:extensión.
• Permite añadir elementos o atributos a otros
elementos ya definidos.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 94

Extensiones (II)
• Ejemplo 1:

▫ Se crea un elemento “precio” de contenido


simple pero al cuál podemos añadir un atributo.
▫ Es la manera habitual de añadir atributos sobre
lo que de otra manera serían elementos simples.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 95

Extensiones (III)
• Ejemplo 2:

▫ Documento es un elemento de tipo string (texto)


que contiene un atributo llamado idioma
(también string).
▫ Es un poco enrevesado, pero es necesario hacerlo
así.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 96

Extensiones (IV)
• Ejemplo 3:
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 97

Extensiones (V)
▫ Obsérvese que, infoPersonaAmpliada se basa en
infoPersona, añadiéndole dos elementos: "ciudad"
y "país".
▫ En cuanto a xs:complexContent, sirve para
definir restricciones o extensiones a un tipo
complejo (complexType).
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 98

Índice
• XML Schema
▫ Introducción
▫ Estructura
▫ Definición de componentes XML Schema
 Elementos
 Atributos
 Restricciones (facetas)
 Listas
 Extensiones
 Elementos y atributos globales
▫ Métodos de diseño
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 99

Elementos y atributos globales (I)


• Se trata de definir un elemento o un atributo para
ser reutilizado en diferentes partes del documento.
• La forma de utilizarlos es:
▫ Definirlos en la zona global (es decir, no definirlos
dentro de ningún otro componente)
▫ En el caso de los elementos no se pueden indicar los
atributos minOccurs y maxOccurs para indicar la
cardinalidad, porque sólo tiene sentido dentro de
otro elemento.
▫ En el caso de los atributos no se puede utilizar el
atributo use, que indica la obligatoriedad de uso del
atributo.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 100

Elementos y atributos globales (II)


• Una vez definidos, donde se quieran reutilizar
se define el elemento o atributo dentro del
componente en el que se quiere colocar y no se
le da nombre, sino que se usa el atributo ref
para indicar el nombre (name) del elemento o
atributo global.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 101

Elementos y atributos globales (III)


• Ejemplo 1:
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 102

Elementos y atributos globales (IV)


▫ En el ejemplo anterior se ha definido un
elemento global llamado email que representa
una dirección de email (dentro se define un tipo
simple para restringir la forma en la que se
debería rellenar un email) y que después el
elemento trabajador la reutiliza para indicar los
correos electrónicos de un trabajador.
▫ Otros elementos podrían reutilizar esta misma
definición.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 103

Elementos y atributos globales (V)


• Ejemplo 2:
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 104

Índice
• XML Schema
▫ Introducción
▫ Estructura
▫ Definición de componentes XML Schema
▫ Métodos de diseño
 Diseño anidado o de muñecas rusas
 Diseño Plano o de uso de referencias a elementos y
atributos
 Diseño con tipos con nombre.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 105

Métodos de diseño
• Hay varias maneras de abordar el diseño de un
XML Schema. Usaremos una u otra, o
una combinación de varias, dependiendo de
factores tales como la complejidad, extensión y
el tipo de documentos que estamos definiendo.
▫ Por ejemplo, sin son documentos donde
predomina una colección de datos estructurados,
o son documentos con mucho texto libre.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 106

Índice
• XML Schema
▫ Introducción
▫ Estructura
▫ Definición de componentes XML Schema
▫ Métodos de diseño
 Diseño anidado o de muñecas rusas
 Diseño Plano o de uso de referencias a elementos y
atributos
 Diseño con tipos con nombre.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 107

Diseño anidado o de muñecas rusas (I)

• Se llama así porque se anidan declaraciones de


elementos unas dentro de otras.
• Se describe cada elemento y atributo en el
mismo lugar donde se declaran.
• Consiste en, partiendo de un documento XML,
seguir la estructura del mismo e ir definiendo
los elementos que aparecen en el mismo de
forma secuencial, incluyendo la definición
completa de cada elemento en el mismo orden
en el que aparecen en el documento instancia.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 108

Diseño anidado o de muñecas rusas (II)

• Este método de diseño es muy sencillo, pero


puede dar lugar a esquemas XML difíciles de
leer y mantener cuando los documentos son
complejos.
• Además produce duplicidades en la descripción
de elementos con tipos iguales y puede haber
elementos con igual nombre y distintas
descripciones.
• Es el método de diseño menos recomendable.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 109

Diseño anidado o de muñecas rusas (III)


Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 110

Índice
• XML Schema
▫ Introducción
▫ Estructura
▫ Definición de componentes XML Schema
▫ Métodos de diseño
 Diseño anidado o de muñecas rusas
 Diseño Plano o de uso de referencias a elementos y
atributos
 Diseño con tipos con nombre.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 111

Diseño Plano o de uso de referencias a


elementos y atributos (I)
• En este método primero se definen los
diferentes elementos y atributos, para
después referenciarlos utilizando el atributo
“ref”.
• La declaración y su definición están en
diferentes sitios.
• Esta técnica es la que más se parece al diseño
con DTDs.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 112

Diseño Plano o de uso de referencias a


elementos y atributos (II)
• En el siguiente ejemplo se comienza a definir
los elementos más simples para terminar con
los más complejos, pero puede hacerse al revés
(como en los DTDs) comenzando por definir los
elementos de mayor nivel y, descendiendo, ir
definiendo los elementos de menor nivel hasta
llegar a los elementos simples.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 113

Diseño Plano o de uso de referencias a


elementos y atributos (III)
• Ejemplo parte 1:
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 114

Diseño Plano o de uso de referencias a


elementos y atributos (IV)
• Ejemplo parte 2:
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 115

Índice
• XML Schema
▫ Introducción
▫ Estructura
▫ Definición de componentes XML Schema
▫ Métodos de diseño
 Diseño anidado o de muñecas rusas
 Diseño Plano o de uso de referencias a elementos y
atributos
 Diseño con tipos con nombre
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 116

Diseño con tipos con nombre (I)


• Con este método se definen clases o tipos
utilizando los elementos de XML Schema
“simpleType” y “complexType” con un
nombre.
• Estos tipos definidos se pueden utilizar
mediante el tributo “type” de los elementos.
• Este mecanismo permite reutilizar de
definiciones de tipos en diferentes puntos del
documento.
• Es el método más aconsejado ya que permite la
reutilización.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 117

Diseño con tipos con nombre (II)


• En el siguiente ejemplo, al igual que en el caso
anterior, se ha seguido un diseño ascendente
(definiendo primero el de menor nivel) pero se
puede hacer un diseño descendente.
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 118

Diseño con tipos con nombre (III)


• Ejemplo parte 1:
Lenguajes de Marcas y Sistemas de Gestión de Información | Tema 6.2. XML. Validación de documentos. Parte 2. XML Schema 119

Diseño con tipos con nombre (IV)


• Ejemplo parte 2:

También podría gustarte