Salta el contingut

PR0374 — Validació de Documents XML

Objectius

  • Crear definicions DTD internes i externes
  • Crear esquemes XSD amb tipus simples i complexos
  • Associar DTD i XSD als documents XML
  • Validar documents amb eines externes

Lliurament

Format: Carpeta comprimida .zip amb nom PR0374_nom_cognom.zip Termini: Consulteu la programació d'aula Eina de validació recomanada: VS Code amb extensió XML (Red Hat) o XMLSpy


Exercici 1 — DTD per a un catàleg de productes

Crea el fitxer cataleg.xml amb almenys 3 productes, on cada producte tingui:

  • Atribut id (ID obligatori)
  • Atribut categoria (enumeració: electronica, roba, alimentacio)
  • Atribut disponible (boolean: true/false, per defecte true)
  • Element nom (text, obligatori)
  • Element preu (text, obligatori)
  • Element descripcio (text, opcional)
  • Element tags amb zero o més elements tag

Crea el fitxer extern cataleg.dtd i associa'l al document. Valida el document amb l'eina escollida.

Captura: Inclou un screenshot de la validació exitosa.


Exercici 2 — XSD per a un sistema de reserves

Dissenya un sistema de reserves d'hotel. Crea reserves.xml i reserves.xsd on una reserva tingui:

  • id (atribut, format: RES-000 fins RES-999 — usa pattern XSD)
  • dataEntrada i dataSortida (tipus xs:date)
  • client (element complex amb: nom, cognom, email, telefon opcional)
  • habitacio (element complex amb atributs: numero (integer), tipus (enumeració: individual, doble, suite))
  • preu (decimal, ha de ser positiu: xs:minExclusive value="0")
  • observacions (text opcional, màx 500 caràcters)

Inclou almenys 2 reserves vàlides. Afegeix un tercer document reserves_invalid.xml amb un error deliberat (p. ex., data en format incorrecte) i captura l'error de validació.


Exercici 3 — Migració DTD → XSD

Pren el DTD de la biblioteca del RA4 (biblioteca.dtd) i crea el seu equivalent biblioteca.xsd. Millora la validació original:

  • any: integer amb rang 1000-2026
  • isbn: string amb pattern ISBN-[0-9]{3}-[0-9]{2}-[0-9]{5}-[0-9]{2}-[0-9]{1}
  • idioma: enumeració (ca, es, en, fr, de, it)
  • preu: decimal ≥ 0 (novetat respecte al DTD)
  • genere: text (2-50 caràcters)

Valida el biblioteca.xml original contra el nou XSD i documenta les diferències de validació entre DTD i XSD en un fitxer diferencies.md.


Criteris d'avaluació

Criteri Pes
DTD correcte i ben associat 30%
XSD amb tipus i restriccions correctes 40%
Migració DTD → XSD amb millores 20%
Captures de validació (èxit i error) 10%