DICCIONARIO · X

XML Schema

XML Schema (XSD) es el lenguaje del W3C para describir la estructura de un documento XML: qué elementos y atributos admite, en qué orden y con qué tipos de datos. Un programa compara cada XML con su esquema y lo rechaza si no cumple, por eso los formatos de factura electrónica y los sitemaps publican su XSD oficial.

Germán Gutiérrez Escrito por 6 min de lectura
Ficha rápida
Nombre oficial
W3C XML Schema Definition Language (XSD)
XSD 1.0
Recomendación del W3C del 2 de mayo de 2001; segunda edición del 28 de octubre de 2004
XSD 1.1
Recomendación del W3C del 5 de abril de 2012 (añade aserciones y asignación condicional de tipos)
Espacio de nombres
http://www.w3.org/2001/XMLSchema (el mismo en 1.0 y 1.1)
Extensión de archivo
.xsd (un esquema es a su vez un documento XML)

≡En resumen

  • Un XSD es un contrato: define qué forma debe tener un XML para que el otro sistema lo acepte.
  • Un XML puede estar bien formado y aun así no ser válido frente a su esquema.
  • XSD aporta tipos de datos (fechas, decimales, enteros, listas cerradas de valores) que las DTD no tenían.
  • Facturae, UBL y el protocolo de sitemaps publican esquemas XSD oficiales para validar sus archivos.
  • La versión que casi todo el software soporta es XSD 1.0; la 1.1 añade reglas condicionales.

01 ¿Qué es XML Schema (XSD)?

El W3C aprobó XML Schema 1.0 como recomendación el 2 de mayo de 2001, para sustituir a las DTD heredadas de SGML, que no sabían distinguir un número de un texto. En 2004 publicó una segunda edición con correcciones y el 5 de abril de 2012 llegó XSD 1.1, compatible en lo esencial con la 1.0. El grupo de trabajo de XML Schema está cerrado y el mantenimiento pasó al grupo XML Core del W3C: es un estándar estable.

02 Cómo funciona un XSD: elementos, tipos y restricciones

Ejemplo · Un esquema mínimo y un XML que lo cumple

Esquema (pedido.xsd):

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
 <xs:element name="pedido">
  <xs:complexType>
   <xs:sequence>
    <xs:element name="cliente" type="xs:string"/>
    <xs:element name="fecha" type="xs:date"/>
    <xs:element name="total" type="xs:decimal"/>
   </xs:sequence>
   <xs:attribute name="id" type="xs:positiveInteger" use="required"/>
  </xs:complexType>
 </xs:element>
</xs:schema>

Documento válido:

<pedido id="1042"><cliente>Ana Pérez</cliente><fecha>2026-09-29</fecha><total>89.95</total></pedido>

Si la fecha llegara como 29/09/2026 o el total como 89,95, el documento seguiría bien formado, pero el validador lo marcaría como no válido.

Pieza Para qué sirve Ejemplo de uso
xs:element Declara un elemento permitido cliente, fecha, total
xs:attribute Declara un atributo y si es obligatorio id obligatorio en pedido
xs:complexType Define un elemento que contiene otros elementos o atributos La estructura del pedido
xs:simpleType Define un tipo de valor propio a partir de otro Un código postal de 5 dígitos
xs:sequence / xs:choice / xs:all Fija el orden o las alternativas de los hijos Cabecera antes que líneas de factura
minOccurs / maxOccurs Número de apariciones permitidas De 1 a ilimitadas líneas de producto
Facetas (pattern, enumeration, maxLength, minInclusive…) Restringen los valores Moneda solo EUR, USD o GBP
Piezas principales de un XML Schema
01

Tipos predefinidos

xs:string, xs:boolean, xs:decimal, xs:integer, xs:date, xs:dateTime, xs:anyURI y decenas más, con reglas de formato exactas.

02

Espacios de nombres

Un esquema declara su targetNamespace, lo que permite combinar vocabularios, como las extensiones de imagen y vídeo de un sitemap.

03

Reutilización

Con import e include un esquema aprovecha tipos definidos en otros; así se construyen formatos grandes como UBL.

03 Cómo validar un XML contra un XSD

  1. 1

    Consigue el esquema oficial

    Descárgalo de la fuente del formato: facturae.gob.es para Facturae, sitemaps.org para los sitemaps, OASIS para UBL.

  2. 2

    Enlaza el esquema (opcional)

    El XML puede indicar dónde está su esquema con el atributo xsi:schemaLocation; muchos validadores lo usan para encontrarlo.

  3. 3

    Valida con una herramienta

    En la línea de comandos, xmllint de libxml2 (opción --schema); en código, las librerías de validación de Java, .NET, PHP o Python.

  4. 4

    Lee los errores en orden

    El primer error suele arrastrar a los siguientes: corrige el elemento que falta o el valor con formato incorrecto y vuelve a validar.

  5. 5

    Automatízalo

    Integra la validación en el proceso que genera o recibe el XML para que ningún archivo inválido salga ni entre en tu sistema.

04 Ejemplos reales de XML Schema: Facturae, UBL y sitemaps

Formato Quién publica el XSD Qué valida
Facturae 3.2.2 Ministerio de Hacienda (facturae.gob.es) Facturas electrónicas a las Administraciones Públicas españolas a través de FACe
UBL OASIS Facturas y documentos comerciales; es una de las sintaxis admitidas para la factura electrónica B2B en España
Sitemap 0.9 sitemaps.org (sitemap.xsd y siteindex.xsd) Archivos sitemap y sitemaps índice
Extensiones de Google Google (imagen, vídeo y noticias) Etiquetas image:, video: y news: dentro de un sitemap
Formatos con esquema XSD público

En la factura electrónica, el esquema es la frontera entre una factura aceptada y una rechazada. Con el Real Decreto 238/2026, las facturas entre empresas deberán usar UBL, CII, EDIFACT o Facturae; tienes el calendario en la ficha de facturación.

En SEO, el protocolo de sitemaps propone validar cada archivo contra sitemap.xsd declarando el espacio de nombres http://www.sitemaps.org/schemas/sitemap/0.9. Un sitemap XML que no valida puede procesarse de forma parcial o ignorarse; por eso revisarlo forma parte de cualquier auditoría SEO técnica.

05 XSD vs DTD, RELAX NG y JSON Schema

Criterio DTD XML Schema (XSD) RELAX NG JSON Schema
Sintaxis Propia, no XML XML XML o compacta JSON
Tipos de datos Casi ninguno (texto) Más de 40 tipos predefinidos y derivados Usa los tipos de XSD string, number, integer, boolean, object, array, null
Espacios de nombres No Sí Sí No aplica
Uso hoy Documentos heredados Estándar en integraciones y factura electrónica Documentación técnica (DocBook, ODF) API y configuración en JSON
Lenguajes para definir y validar estructuras de datos

Si tu integración usa JSON en lugar de XML, el equivalente práctico de XSD es JSON Schema. La idea es la misma: un contrato legible por máquinas que se comprueba antes de procesar los datos.

06 Cuándo necesitas un XML Schema en tu proyecto

  • ✓Intercambias datos con un organismo, banco o cliente que exige un formato XML concreto.
  • ✓Generas facturas electrónicas, pedidos EDI o catálogos para marketplaces.
  • ✓Recibes XML de terceros y no quieres que un archivo mal formado rompa tu base de datos.
  • ✓Expones o consumes servicios SOAP, cuyo contrato WSDL incluye tipos definidos en XSD.
  • ✓Quieres generar clases de código a partir del esquema en lugar de escribirlas a mano.

Los servicios web SOAP describen sus mensajes con XSD, y la mayoría de las integraciones con ERP, bancos y Administraciones siguen ese modelo. Si tienes que conectar tu plataforma con alguno de ellos, una agencia de desarrollo web que trabaje con esquemas te evita semanas de prueba y error.

Preguntas frecuentes sobre XML Schema

Es un documento, normalmente con extensión .xsd, que define qué elementos, atributos, orden y tipos de datos debe tener un XML para considerarse válido. Lo estandariza el W3C.

XML Schema Definition, el nombre del lenguaje del W3C con el que se escriben los esquemas XML y la extensión habitual de sus archivos.

Para validar automáticamente que un XML cumple el formato acordado antes de procesarlo, documentar ese formato y generar código a partir de él.

El XML contiene los datos; el XSD es otro XML que describe las reglas que esos datos deben cumplir.

La DTD tiene sintaxis propia y casi no distingue tipos de datos; XSD está escrito en XML, admite espacios de nombres y valida fechas, números o listas de valores.

Con una herramienta como xmllint (opción --schema) o con la librería de validación de tu lenguaje de programación, indicando el archivo XML y su esquema.

En la web oficial facturae.gob.es, que publica los XSD de las versiones 3.2, 3.2.1 y 3.2.2, esta última la vigente.

Fuentes consultadas

Germán Gutiérrez

Sobre el autor

Development Manager en appyweb

Dirige el equipo de desarrollo de appyweb: aplicaciones web y móviles, SaaS, integraciones y arquitectura de software.

Ver perfil en LinkedIn ↗

Términos relacionados

Ver todos los términos →
X XML XML (Extensible Markup Language) es un lenguaje de marcado del W3C, recomendación desde el 10 de febrero de 1998, que estructura datos en texto con etiquetas que define cada aplicación. Es legible por personas y máquinas, y sigue siendo la base de los sitemaps, los feeds RSS, los documentos de Office y la factura electrónica. J JSON JSON (JavaScript Object Notation) es un formato de texto ligero e independiente del lenguaje para intercambiar datos estructurados, basado en pares nombre-valor y listas ordenadas. Está normalizado en el RFC 8259 y el ECMA-404, y es el formato habitual de las API web, los archivos de configuración y los datos estructurados JSON-LD. S Sitemap XML Un sitemap XML es un archivo en formato XML que, siguiendo el protocolo sitemaps.org (versión 0.9), lista las URL de un sitio que quieres que los buscadores conozcan, con metadatos opcionales como la fecha de última modificación. Admite extensiones para imágenes, vídeos, noticias e idiomas y es la forma estándar de ayudar a Google y Bing a descubrir contenido. F Facturación La facturación es el proceso con el que una empresa o un profesional emite, envía, registra y conserva las facturas que documentan sus ventas de bienes o servicios. En España la regula el Real Decreto 1619/2012, y entre 2027 y 2028 cambia con dos normas: VeriFactu y la factura electrónica obligatoria entre empresas. V Validation Validation (validación) es el proceso de comprobar, con evidencias, que algo cumple lo que debe cumplir. En el entorno digital tiene dos usos principales: validar una idea o producto con clientes reales antes de invertir en él, y validar los datos que un usuario introduce en un formulario para que sean correctos, seguros y accesibles. W Web Services Un web service (servicio web) es un software que expone funciones o datos a otras aplicaciones a través de la red mediante protocolos estándar como HTTP, con mensajes en XML o JSON, para que sistemas distintos se comuniquen sin intervención humana. Es la pieza que conecta webs, apps, ERP, pasarelas de pago y administraciones públicas.