XML Schema - PowerPoint PPT Presentation

1 / 51
About This Presentation
Title:

XML Schema

Description:

Esquema = definici n de estructura de un conjunto de documentos XML ... Clave = adem s de ser nico, debe existir y no puede ser nulo. ... – PowerPoint PPT presentation

Number of Views:120
Avg rating:3.0/5.0
Slides: 52
Provided by: diUn7
Category:
Tags: xml | nulo | schema

less

Transcript and Presenter's Notes

Title: XML Schema


1
XML Schema
2
Lenguajes de Esquemas
  • Esquema definición de estructura de un conjunto
    de documentos XML
  • Validar Chequear que un documento sigue un
    esquema
  • Principal Ventaja Protección de errores
  • Otras aplicaciones Edición, compresión, etc.
  • DTDs un ejemplo de esquemas (con varias
    limitaciones)
  • XML Schema desarrollo posterior del W3c
  • Existen Otros
  • RELAX-NG, Schematron, etc.

3
Características de DTDs
  • Especifican estructura del documento
  • Elementos, atributos, anidamientos, etc.
  • Integridad referencial mínima (ID, IDREF)
  • Mecanismo sencillo de abstracción
  • Entidades ? Macros
  • Inclusión de documentos externos
  • Integrados en XML (Parte de la especificación)
  • Sencillos de comprender (? Expresiones regulares)

4
Limitaciones de DTDs
  • La Sintaxis no es XML (difíciles de manipular)
  • No soportan Espacios de nombres
  • No permiten especificar tipos de datos (por
    ejemplo enteros, flotantes, fechas, etc.
  • No permiten especificar secuencias no ordenadas
  • ((e1,e2,e3)(e1,e3,e2)(e2,e1,e3)...(e3,e2,e1))
  • No hay soporte para declaraciones sensibles al
    contexto Los elementos se definen todos a nivel
    de documento, ejemplo, contenido con el mismo
    nombre cuya estructura cambia en diferentes
    contextos
  • Soporte limitado para Referencias cruzadas, no es
    posible formar claves a partir de varios
    atributos o de elementos
  • No son extensibles (una vez definido, no es
    posible añadir nuevos vocabularios a un DTD)

5
XML SchemaObjetivos de Diseño
  • Sintaxis XML
  • Soporte para Espacios de Nombres
  • Mayor expresividad
  • Restricciones numéricas
  • Integridad dependientes del contexto
  • Tipos de datos
  • Gran cantidad de tipos de datos predefinidos
  • Creación de tipos de datos por el usuario
  • Extensibilidad
  • Inclusión/Redefinición de esquemas
  • Herencia de tipos de datos
  • Soporte a Documentación

6
Ejemplo
alumnos.xsd
ltxsschema xmlnsxs"http//www.w3.org/2001/XMLSch
ema" targetNamespace"http//www.uniovi
.es/alumnos" xmlns"http//www.uniovi.e
s/alumnos"gt ltxselement name"alumnos"gt
ltxscomplexTypegt ltxssequencegt ltxselement
name"alumno" minOccurs"1" maxOccurs"200"
type"TipoAlumno"/gt lt/xssequencegt
lt/xscomplexTypegt lt/xselementgt ltxscomplexType
name"TipoAlumno"gt ltxssequencegt
ltxselement name"nombre" type"xsstring"/gt
ltxselement name"apellidos" type"xsstring"/gt
ltxselement name"nacim" type"xsgYear"/gt
lt/xssequencegt ltxsattribute name"dni"
type"xsinteger"/gt lt/xscomplexTypegt lt/xsschema
gt
Elemento raíz schema y espacio de nombres
determinado
Permite especificar rangos de inclusión
Permite especificar tipos
7
Estructura del Schema
  • El esquema está formado por
  • Elemento raíz schema del espacio de nombres
  • http//www.w3.org/2001/XMLSchema
  • Atributo targetNamespace indica el espacio de
    nombres que se está definiendo
  • Subelementos
  • Declaraciones globales de elementos y atributos
  • Definiciones de tipos de elementos y atributos
  • Anotaciones

ltxsschema xmlnsxs"http//www.w3.org/2001/XMLSch
ema" targetNamespace"http//www.uniovi
.es/alumnos" xmlns"http//www.uniovi.e
s/alumnos"gt ltxselement name"alumnos"gt .
. . lt/xselementgt . . . lt/xsschemagt
8
Tipos Complejos vs Simples
  • Pueden declararse 2 tipos
  • Complejos Pueden contener sub-elementos y
    atributos

Ejemplo de Tipo Complejo
ltalumno dni9873435gt ltnombregtJoselt/nombregt
ltapellidosgtBuenolt/apellidosgt lt/alumnogt
Simples No contienen sub-elementos ni
atributos Pueden aparecer dentro de elementos o
en valores de atributos
9
Validación esquemas e Instancias
  • Un documento XML Schema define un conjunto de
    documentos con una determinada estructura
  • Un documento XML puede validarse contra varios
    esquemas
  • Puede asociaciarse explícitamente mediante el
    atributo schemaLocation
  • Utiliza 2 cadenas, el espacio de nombres y la URL
    del documento
  • Si no se utiliza espacio de nombres, puede usarse
    noNamespaceSchemaLocation

10
Validación esquemas e instancias
alumnos.xsd
ltxsschema xmlnsxs"http//www.w3.org/2001/XMLSch
ema" targetNamespace"http//www.uniovi
.es/alumnos" xmlns"http//www.uniovi.e
s/alumnos"gt ltxselement name"alumnos"gt
ltxscomplexTypegt ltxssequencegt ltxselement
name"alumno" minOccurs"1" maxOccurs"200"
type"TipoAlumno"/gt lt/xssequencegt
lt/xscomplexTypegt lt/xselementgt ltxscomplexType
name"TipoAlumno"gt ltxssequencegt
ltxselement name"nombre" type"xsstring"/gt
ltxselement name"apellidos" type"xsstring"/gt
ltxselement name"nacim" type"xsgYear"/gt
lt/xssequencegt ltxsattribute name"dni"
type"xsinteger"/gt lt/xscomplexTypegt lt/xsschema
gt
11
Tipos Anónimos vs. con nombre
ltxselement name"alumno"gt ltxssequencegt
ltxselement name"nombre" type"xsstring"/gt
ltxselement name"apellidos" type"xsstring"/gt
lt/xssequencegt lt/xselementgt
legible
ltxselement name"alumno" type"TipoAlumno"/gt
ltxsComplexType name"TipoAlumno"gt
ltxssequencegt ltxselement name"nombre"
type"xsstring"/gt ltxselement
name"apellidos" type"xsstring"/gt
lt/xssequencegt lt/xsComplexTypegt
Reutilizable
12
Otra posibilidad Referencias
ltxselement name"alumno"gt ltxssequencegt
ltxselement name"nombre" type"xsstring"/gt
ltxselement name"apellidos" type"xsstring"/gt
lt/xssequencegt lt/xselementgt
ltxselement name"alumnos"gt ltxssequencegt
ltxselement ref"alumno" /gt lt/xssequencegt lt/xsel
ementgt
13
Tipos complejos Creación a partir de tipos
simples
ltxselement name"precio"gt
ltxscomplexTypegt ltxssimpleContentgt
ltxsextension base"xsdecimal"gt
ltxsattribute name"moneda" type"xsstring" /gt
lt/xsextensiongt lt/xssimpleContentgt
lt/xscomplexTypegt lt/xselementgt
ltprecio monedaeuros"gt23.45lt/preciogt
14
Tipos Complejos Secuencia
  • Construcción básica mediante secuencia de
    elementos

ltxselement namealumnogt ltxscomplexTypegt
ltxssequencegt ltxselement name"nombre"
type"xsstring"/gt ltxselement
name"apellidos" type"xsstring"/gt
ltxselement name"nacim" type"xsgYear"
minOccurs"0" maxOccurs"1"/gt
lt/xssequencegt ltxsattribute name"dni"
type"xsinteger"/gt lt/xscomplexTypegt lt/xselemen
tgt
ltalumno dni"9399390"gt ltnombregtJuanlt/nombregt
ltapellidosgtGarcía Garcíalt/apellidosgt
ltnacimgt1985lt/nacimgt lt/alumnogt
15
Tipos ComplejosAlternativa
  • choice Representa alternativas
  • OJO Es una o-exclusiva

ltxscomplexType name"Transporte"gt
ltxschoicegt ltxselement name"coche"
type"xsstring"/gt ltxselement name"tren"
type"xsstring"/gt ltxselement name"avión"
type"xsstring"/gt lt/xschoicegt
lt/xscomplexTypegt
lttransportegt ltcochegtRenault R23lt/cochegt lt/transpor
tegt
16
Tipos Complejos Contenido Mixto
  • El contenido Mixto permite mezclar texto con
    elementos

ltxscomplexType name"TCom" mixed"true"gt
ltxschoice minOccurs"0" maxOccurs"unbounded"gt
ltxselement name"emph" type"xsstring"/gt
lt/xschoicegt lt/xscomplexTypegt ltxselement
name"comentarios" type"TCom" /gt
ltcomentariosgt Es un poco ltemphgtlistillolt/emphgt lt/
comentariosgt
17
Secuencias no ordenadas
  • all Todos los elementos en cualquier orden
  • En DTDs requería enumerar las combinaciones
  • (A,B,C)(A,C,B)...(C,B,A)

ltxscomplexType name"TipoLibro"gt ltxsallgt
ltxselement name"autor" type"xsstring"/gt
ltxselement name"título" type"xsstring"/gt
lt/xsallgt lt/xscomplexTypegt ltxselement
name"libro" type"TipoLibro" /gt
ltlibrogt ltautorgtJuanita la Localt/autorgt
lttítulogtNo estoy localt/títulogt lt/librogt
ltlibrogt lttítulogtEl kigotelt/títulogt
ltautorgtCerbanteslt/autorgt lt/librogt
18
Agrupaciones
  • Es posible nombrar agrupaciones de elementos y de
    atributos para hacer referencias a ellas

ltxsgroup name"nombApell"gt ltxssequencegt
ltxselement name"nombre" type"xsstring"/gt
ltxselement name"apellidos" type"xsstring"/gt
lt/xssequencegt lt/xsgroupgt
ltxscomplexType name"TipoAlumno"gt ltxsgroup
ref"nombApell" /gt ltxselement name"carrera"
type"xsstring"/gt lt/xscomplexTypegt
19
Tipos Simples
  • Los tipos simples no pueden contener elementos o
    atributos
  • Pueden ser
  • Predefinidos o built-in (Definidos en la
    especificación)
  • Primitivos
  • Derivados
  • Definidos por el usuario
  • Restringiendo facetas de tipos predefinidos

20
Tipos simples Primitivos
  • string
  • boolean
  • number, float, double
  • duration, dateTime, time, date, gYearMonth,
    gYear, gMonthDay, gDay, gMonth
  • hexBinary, base64Binary
  • anyURI
  • QName Nombre cualificado con espacio de nombres
  • NOTATION Notación binaria (similar a DTD)

21
Jerarquía de tipos
22
Creación de nuevos tipos simplesFacetas
  • Los nuevos tipos se construyen mediante
    restricción de facetas
  • length, minlength, maxlength Longitud del tipo
    de datos
  • pattern Restricciones sobre valores mediante
    expresiones regulares
  • enumeration Restringe a una determinada
    enumeración de valores
  • whitespace Define política de tratamiento de
    espacios (preserve/replace, collapse)
  • (max/min)(in/ex)clusive Límites
    superiores/inferiores del tipo de datos
  • totaldigits, fractionDigits número de dígitos
    totales y decimales

23
Enumeraciones y Restricciones
  • Enumeración

ltxssimpleType name"TipoCarrera"gt ltxsrestriction
base"xstoken"gt ltxsenumeration
value"Gestión"/gt ltxsenumeration
value"Sistemas"/gt lt/xsrestrictiongt lt/xssimpleTy
pegt
24
Listas
ltxssimpleType name"ComponentesRGB"gt ltxslist
itemType"ComponenteRGB"/gt lt/xssimpleTypegt ltxss
impleType name"ComponenteRGB"gt ltxsrestriction
base"xsnonNegativeInteger"gt ltxsmaxInclusive
value"255" /gt lt/xsrestrictiongt lt/xssimpleTypegt
ltcolorgt255 255 0lt/colorgt
25
Uniones
ltxssimpleType name"TipoNota"gt ltxsuniongt
ltxssimpleTypegt ltxsrestriction
base"xsfloat"gt ltxsmaxInclusive
value"10" /gt ltxsminInclusive value"0"
/gt lt/xsrestrictiongt lt/xssimpleTypegt
ltxssimpleTypegt ltxsrestriction
base"xsstring"gt ltxsenumeration value"No
presentado" /gt lt/xsrestrictiongt
lt/xssimpleTypegt lt/xsuniongt lt/xssimpleTypegt ltxs
element name"nota" type"TipoNota" /gt
ltnotagt 5.75 lt/notagt
ltnotagt No presentado lt/notagt
26
Expresiones regulares
  • Ejemplos de expresiones regulares

ltxssimpleType name"NIF"gt ltxsrestriction
base"xstoken"gt ltxspattern
value"\d7,8A-Z" /gt lt/xsrestrictiongt lt/xssi
mpleTypegt ltxselement name"nif" type"NIF" /gt
ltnifgt9394173Jlt/nifgt
ltnifgt11079845Mlt/nifgt
Expresión
Posibles valores
Elemento 2 b, ab, aab, aaab, xb, yb, zb b,
ab ab, aab, aaab, ax, bx, cx
Elemento \d ab xyzb a?b ab a-cx
27
Expresiones Regulares
  • a-cx
  • 0-9x
  • \Dx
  • (pa)2rucha
  • .abc
  • (ab)x
  • a1,3x
  • \n
  • \pLu
  • \pSc
  • ax, bx, cx
  • Carácter ? dígito seguido de x
  • Carácter ? dígito seguido de x
  • paparucha
  • Cualquier carácter (1) seguido de abc
  • ax, bx, aax, bbx, abx, bax,...
  • ax, aax, aaax
  • Salto de línea
  • Letra mayúscula
  • Símbolo de moneda

28
Tipos Derivados por Extensión
  • Similar a las subclases de POO Añadir elementos
    a un tipo base

ltxscomplexType name"Figura" gt ltxsattribute
name"color" type"Color"/gt lt/xscomplexTypegt ltx
scomplexType name"Rectángulo"gt
ltxscomplexContentgt ltxsextension
base"Figura"gt ltxsattribute name"base"
type"xsfloat" /gt ltxsattribute name"altura"
type"xsfloat" /gt lt/xsextensiongt
lt/xscomplexContentgt lt/xscomplexTypegt ltxscomple
xType name"Círculo"gt ...similar pero incluyendo
el radio lt/xscomplexTypegt
29
Tipos Derivados por Extensión
  • Los tipos derivados pueden utilizarse en los
    mismos sitios que la clase base

ltxselement name"figuras"gt
ltxscomplexTypegt ltxssequencegt ltxselement
name"figura" type"Figura"
maxOccurs"unbounded" /gt lt/xssequencegt
lt/xscomplexTypegt lt/xselementgt
ltfigurasgt ltfigura base"23" altura"3"
xsitype"Rectángulo" /gt ltfigura radio"3"
xsitype"Círculo" /gt lt/figurasgt
Es necesario especificar el tipo mediante xsitype
30
Tipos Abstractos
  • Mediante abstract"true" se declara un tipo como
    abstracto.
  • Ese tipo no puede usarse directamente

ltxscomplexType name"Figura" abstract"true"gt
ltxsattribute name"color" type"Color"/gt
lt/xscomplexTypegt
También es posible limitar la derivación de
tipos final"restriction"
31
Declaración de Atributos
ltxscomplexType name"Círculo"gt ltxsattribute
name"radio" type"xsfloat"
use"required" /gt ltxsattribute
name"color" type"Color"
default"255 0 0"/gt ltxsattribute
name"tipo" type"xsstring"
fixed"jpeg" /gt lt/xscomplexTypegt
Por defecto los atributos son opcionales. Indicar
que son obligatorios use"required"
Valor por defecto de un atributo. Podría
definirse otro valor.
Valor fijo de un atributo. Si no se define, se
utiliza ése. Si se define, debe coincidir.
32
Inclusión de Esquemas
  • include permite incluir elementos de otros
    esquemas
  • Los elementos deben estar en el mismo espacio de
    nombres
  • Es como si se hubiesen tecleado todos en un mismo
    fichero

33
Importación de Esquemas
  • import permite incluir elementos de otros
    esquemas con distintos espacios de nombres

Espacio de nombres P
Espacio de nombres A
Profes.xsd
Alumnos.xsd
ltxsdschema gt ltxsdimport namespace"A"
schemaLocation"Alumnos.xsd"/gt ltxsdimport
namespace"P" schemaLocation"Profes.xsd"/gt
lt/xsdschemagt
Universidad.xsd
34
Redefinición de Esquemas
  • redefine es similar a include pero permite
    modificar los elementos incluidos.

Alumnos.xsd
Añade el elemento nota
ltxsredefine schemaLocation"Alumnos.xsd"gt
ltxscomplexType name"TipoAlumno"gt
ltxscomplexContentgt ltxsextension
base"TipoAlumno"gt ltxssequencegt
ltxselement name"nota" type"Nota" /gt
lt/xssequencegt lt/xsextensiongt
lt/xscomplexContentgt lt/xscomplexTypegt lt/xsred
efinegt
AlumnosConNotas.xsd
35
Claves y Unicidad
  • Los DTDs proporcionaban el atributo ID para
    marcar la unicidad (un valor ID era único en todo
    el documento)
  • XML Schema tiene más posibilidades
  • Indicar que un elemento es único (unique)
  • Definir atributos únicos
  • Definir combinaciones de elementos y atributos
    como únicos
  • Distinción entre unicidad y claves (key)
  • Clave además de ser único, debe existir y no
    puede ser nulo.
  • Declarar el rango de un documento en el que algo
    es único

36
Claves y Unicidad
ltxscomplexType name"Alumnos"gt ltxssequencegt
ltxselement name"Alumno" type"TipoAlumno"/gt
lt/xssequencegt ltxskey name"DNI"gt
ltxsselector xpath"aalumno"/gt ltxsfield
xpath"adni"/gt lt/xskeygt lt/xscomplexTypegt
Es necesario incluir el espacio de nombres (XPath)
La clave puede formarse para atributos y elementos
37
Claves y Unicidad
ltxscomplexType name"Alumnos"gt ltxssequencegt
ltxselement name"Alumno" type"TipoAlumno"/gt
lt/xssequencegt ltxsunique name"DNI"gt
ltxsselector xpath"aalumno"/gt ltxsfield
xpath"adni"/gt lt/xsuniquegt lt/xscomplexTypegt
Unique especifica que debe ser único, pero podría
no existir
38
Referencias a Claves
keyref especifica que debe hacer referencia a una
clave (Claves Externas)
ltxselement name"clase"gt ltxssequencegt
ltxselement name"alumnos" ... ltxselement
name"delegado" ... lt/xssequencegt ltxskey
name"DNI"gt ltxsselector xpath"aalumnos/aalumn
o"/gt ltxsfield xpath"adni"/gt lt/xskeygt ltxskey
ref name"Delegado" refer"DNI"gt ltxsselector
xpath"adelegado"/gt ltxsfield
xpath"adni"/gt lt/xskeyrefgt
39
Valores Nulos
  • Indicar que un elemento puede ser nulo sin estar
    vacío.
  • Vacío (Empty) Un elemento sin contenido
  • Nulo (Nil) Un elemento que indica que no hay
    valor

ltxsdelement name"Persona"gt ltxsdcomplexTypegt
ltxsdelement name"nombre" type"xsdNMTOKEN"/gt
ltxsdelement name"primerApell"
type"xsdNMTOKEN"/gt ltxsdelement
name"segundoApell" type"xsdNMTOKEN"
nillable"true"/gt
lt/xsdcomplexTypegt lt/xsdelementgt
ltpersonagt ltnombregtJohnlt/nombregt
ltprimerApellgtSmithlt/primerApellgt
ltsegundoApell xsinil"true"/gt lt/personagt
40
Incluir cualquier contenido...
  • any indica cualquier contenido de un determinado
    espacio de nombres
  • anyAttribute cualquier atributo de un espacio de
    nombres

ltxscomplexType name"Comentario"gt
ltxssequencegt ltxsany namespace"http//www.w3.o
rg/1999/xhtml" minOccurs"1"
processContents"skip" /gt lt/xssequencegt
ltxsanyAttribute namespace"http//www.w3.o
rg/1999/xhtml"/gt lt/xscomplexTypegt
ltcomentariosgt lthtmlpgtEs un
lthtmlemphgtListillolt/htmlemphgt
lt/htmlpgt lt/comentariosgt
41
XML SchemaLimitaciones
  • No soporta entidades. Mecanismo para crear macros
  • lt!ENTITY texto "Esto texto se repite muchas
    veces" gt
  • Es necesario seguir usando los DTDs ?
  • Lenguaje de Restricciones limitado
  • Ejemplo Verificar valor total suma de valores
    parciales?
  • Sensibilidad al contexto limitada
  • Por ejemplo Especificar que el contenido depende
    del valor de un atributo
  • lttransporte tipo"coche"gt ...lt/transportegt
  • lttransporte tipo"avión"gt ...lt/transportegt
  • Tamaño de archivos XML Schema puede ser excesivo
  • Legibilidad de las especificaciones...XML no
    siempre es legible
  • Complejidad de la especificación
  • Muchas situaciones/combinaciones excepcionales

42
Esquemas XMLOtras técnicas
  • Relax NG. Desarrollado por OASIS a partir de TREX
    y RELAX
  • Soporta mayor número de restricciones y
    gramáticas ambigüas
  • Incluye una sintaxis abreviada (no XML)
  • Schematron
  • Utiliza un modelo basado en reglas (en vez de
    gramáticas)
  • Asocia reglas de validación a expresiones XPath
  • Puede expresar restricciones arbitrarias
  • Lenguajes para XML (Encaje de patrones con
    expresiones Regulares)
  • XDuce, CDuce, HydroJ

43
Ejercicios
  • Herramientas
  • xmllint Contiene la opción --schema que valida
    contra un esquema
  • xmllint --schema alumnos.xsd alumnos.xml
  • xsv (http//www.ltg.ed.ac.uk/ht/xsv-status.html)
  • Herramienta desarrollada en Python
  • Funcionamiento a través de Web o en línea de
    comandos
  • Salida en formato XML (difícil de leer al
    principio)

44
Diseño Vocabularios XML
45
Diseño Vocabularios XML
  • Separación tradicional de dos mundos
  • Sistemas orientados a Datos
  • Información uniforme y fuertemente estructurada
    (ej. Tablas)
  • Mucha cantidad de información repetida
  • Objetivo Procesamiento eficiente (Almacenes de
    datos)
  • Sistemas orientados a Documentación
  • Información poco uniforme y entrelazada (ej.
    Libros)
  • No existe un patrón uniforme
  • Objetivo Comunicación, Presentación (Mensajes)
  • Se podría añadir un tercer mundo
  • Programación Orientada a Objetos
  • Propuestas para añadir capacidad de programación
    a documentos
  • XML Información semi-estructurada (Lugar
    intermedio)
  • Estructuras jerárquicas entrelazadas

46
Orientación del esquemaDatos vs. Documentos
ltfacturagt ltemisióngt23-2-2006lt/emisióngt
ltenvíogt3-3-2006lt/envíogt ltdireccióngt
ltnombregtLuis Carolt/nombregt ltcallegtUríalt/callegt
ltnumerogt2lt/numerogt ltciudadgtGijónlt/ciudadgt
ltcpgt33021lt/cpgt lt/direccióngt lttlfnogt985102012lt/t
lfnogt lt/facturagt
ltnota fecha23-2-2006gt ltdegtJuan Lopezlt/degt
ltparagtLuis Carolt/paragt ltasuntogtEncargolt/asuntogt
ltmsggt Necesito darte el encargo. Puedes
enviarme un correo a ltemailgtcaro_at_gijon.comlt/ema
ilgt o me llamas al lttlfnogt985102012lt/tlfnogt
lt/msggt lt/notagt
Orientado a Datos
Orientado a Documentos
47
Diseño Vocabularios XML
  • Características a tener en cuenta
  • Tamaño de documentos
  • Facilidad de escritura
  • Facilidad de procesamiento
  • Flexibilidad (ej. HTML es muy flexible, Bases de
    Datos menos)
  • Consistencia Evitar características incoherentes
  • Nivel de abstracción Buscar término medio en
    nivel de detalle
  • ltfechagt10 Marzo 2003lt/fechagt
  • ltfechagtltdíagt10lt/diagtltmesgtMarzolt/mesgtltañogt2003lt/año
    gtlt/fechagt
  • Patrones de diseño
  • www.xmlpatterns.com

48
Ejemplo de Discusión
Representación de propiedades
ltpizzagt ltnombregtMargarita lt/nombregt
ltpreciogt6lt/preciogt lt/pizzagt
ltpizza nombre"Margarita" precio6
/gt
  • Atributos o Elementos?

49
Ejemplo de Discusión
Representación de propiedades
ltpizzagt ltnombregtMargarita lt/nombregt
ltpreciogt6lt/preciogt lt/pizzagt
ltpizza nombre"Margarita" precio6
/gt
  • Atributos o Elementos?

En los DTDs Pueden incluirse restricciones
sobre su valor Ej. valor si o no Pueden
definirse valores por defecto Pueden validarse
los valores ID e IDREF Pueden definirse
restricciones sobre espacios en blanco
(NMTOKENS) Ocupan menos espacio Más fáciles de
procesar (SAX y DOM) Acceso a entidades externas
(datos binarios)
Soportan valores arbitrariamente complejos y
repetidos Establecen un orden Soportan atributos
de atributos Mayor flexibilidad ante
modificaciones
50
Diseño Vocabularios En resumen...
...Aparición de una nueva torre de Babel...
  • Algunos Consejos
  • Estudiar dominio de la Aplicación (ver estándares
    ya definidos!!!)
  • Considerar futuras ampliaciones (extensibilidad)
  • Validar antes de que sea tarde
  • Usar espacios de nombres
  • etc. etc.

51
  • Fin
Write a Comment
User Comments (0)
About PowerShow.com