Resumen de Diseño y Normalización de Bases de Datos
Diseño y Normalización de Bases de Datos: Guía Completa
Introducción
XML (eXtensible Markup Language) es un lenguaje para representar datos estructurados en forma de árbol. En este material nos centramos en cómo definir la estructura válida de documentos XML mediante DTD y, especialmente, XML Schema, y cómo validar documentos contra esas definiciones. Aprenderás conceptos clave, sintaxis esencial, ejemplos prácticos y cómo usar XPath/XQuery para obtener información de documentos validados.
Definición: Un esquema XML es una descripción formal (en XML) que especifica los elementos, atributos, tipos de datos y restricciones que debe cumplir un documento XML para considerarse válido.
1. Motivos para usar esquemas y validación
- Garantizar integridad estructural y semántica de los documentos XML.
- Detectar errores antes de procesar datos (p. ej., valores faltantes o tipos incorrectos).
- Facilitar interoperabilidad entre aplicaciones y servicios web.
2. DTD vs XML Schema — comparación rápida
| Característica | DTD | XML Schema (XSD) |
|---|---|---|
| Sintaxis | Propia (no XML) | Basada en XML |
| Tipos de datos | Muy limitada | Tipos nativos (xsd:string, xsd:date, xsd:unsignedInt, etc.) |
| Orden de elementos | Obligatorio según declaración | Más flexible (modelo complejo, secuencias, elección) |
| Soporte para claves/refs | Limitado | Soporta xsd:key, xsd:keyref, xsd:unique |
| Reutilización de tipos | Pobre | Soporta tipos complejos nombrados, herencia por extensión/restricción |
Definición: Un DTD (Document Type Definition) es una forma antigua de declarar la estructura de un documento XML; tiene su propia sintaxis y limitaciones frente a XML Schema.
3. Componentes básicos de XML Schema
3.1 Espacios de nombres (namespaces)
- Un esquema suele declarar el espacio de nombres del vocabulario de XSD: por ejemplo, xmlns:xsd="http://www.w3.org/2001/XMLSchema".
- El prefijo (p. ej.,
xsd:) se usa para identificar etiquetas del lenguaje de esquema.
3.2 Elementos, tipos y cardinalidad
- xsd:element define un elemento. Atributos relevantes:
name,type,minOccurs,maxOccurs. typepuede ser un tipo simple (p. ej.,xsd:string) o un tipo complejo nombrado (p. ej.,Employee).minOccursymaxOccurscontrolan multiplicidad;maxOccurs="unbounded"= repetir ilimitado.
Definición: Un tipo complejo (xsd:complexType) describe un elemento que contiene otros elementos y/o atributos. Un tipo simple describe elementos que contienen solo valores atómicos.
3.3 Tipos simples y valores básicos
- Tipos comunes:
xsd:string,xsd:date,xsd:unsignedInt,xsd:float. - Se pueden restringir valores mediante
xsd:restrictionyxsd:pattern,xsd:minInclusive, etc.
Ejemplo (fragmento):
$$<xsd:element name="employeeSalary" type="xsd:unsignedInt"/>$$
3.4 Unicidad, claves y referencias
xsd:uniqueimpone unicidad dentro de un conjunto seleccionado porxsd:selectoryxsd:field.xsd:keydefine una clave única (similar a PK).xsd:keyrefcrea una referencia a unaxsd:key(similar a FK).
Ejemplo (conceptual):
$$<xsd:key name="employeeSSNKey">$$ $$<xsd:selector xpath="employee"/>$$ $$<xsd:field xpath="employeeSSN"/>$$ $$</xsd:key>$$
4. Estructura típica de un archivo XSD (paso a paso)
- Declaración del esquema y espacio de nombres:
$$<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">$$ - Documentación/anotaciones (opcional):
$$xsd:annotation<xsd:documentation xml:lang="en">Descripción</xsd:documentation></xsd:annotation>$$ - Declaración del elemento raíz y su tipo (inline o por referencia de tipo nombrado).
- Definición de tipos complejos (
xsd:complexType) conxsd:sequence,xsd:choiceoxsd:all. - Restricciones de unicidad y claves (
xsd:unique,xsd:key,xsd:keyref).
5. Ejemplo práctico: esquema resumido para una entidad Em
¿Ya tienes cuenta? Iniciar sesión
XML: esquemas y validación
Klíčové pojmy: XML Schema define estructura y tipos en XML, Usar xmlns:xsd para referenciar el vocabulario XSD, xsd:element con type, minOccurs, maxOccurs controla aparición, xsd:complexType describe elementos con hijos, xsd:simpleType con xsd:restriction y xsd:pattern limita valores, xsd:key, xsd:unique, xsd:keyref gestionan integridad referencial, xsd:sequence, xsd:choice, xsd:all controlan orden y alternativas, Validar XML detecta errores antes del procesamiento, XPath selecciona nodos con / y // y calificadores entre [], XQuery construye consultas FLWR sobre XML, Preferir XSD sobre DTD para tipos y reutilización, Validar documentos con procesadores (p. ej., Xerces, lxml)