Los DTD permiten diseñar un vocabulario para ficheros XML, pero, ¿qué sucede cuando los valores de los elementos y atributos de esos ficheros han de corresponder a datos de un tipo determinado, o cumplir determinadas restricciones que no pueden reflejarse en los DTD? Para ello se definen XML Schemas, que se componen de elementos y atributos, al igual que los DTD.
¿También se definen en ficheros planos? Sí, ya que son documentos XML, pero en este caso la extensión de los archivos es .xsd, motivo por el cual también se les denomina documentos XML Schema Definition.
Los elementos y atributos XML que se utilizan para generar esquemas pertenecen al espacio de nombres XML Schema, con el URI: http://www.w3.org/2001/XMLSchema. En este vocabulario se usa el prefijo , aunque también se usa con menos frecuencia. En la práctica, cualquier prefijo puede ser usado, siempre que se use el mismo prefijo en todo el documento. Por ejemplo: , , . Tenga cuidado en el protocolo, es http y no https.
En los documentos XML que queremos validar frente a documentos XML Schemas (.xsd) se utiliza los elementos se definen en el espacio de nombres con el URI: <a href="http://www.w3.org/2001/XMLSchema-instance" title=" " target="_blank" rel="noopener">http://www.w3.org/2001/XMLSchema-instance.</a> En este vocabulario se usa el prefijo . Cualquier prefijo podría ser usado, siempre que se use el mismo prefijo en todo el documento. Por ejemplo: , , y . Como en URI anterior, tenga cuidado en el protocolo, es http y no https.
Un documento XML Schema tiene como elemento raíz, ejemplar, un elemento . Este elemento contendrá las declaraciones de todos los elementos y atributos que puedan aparecer en un documento XML asociado. Este elemento tendrá un elemento hijo que será el elemento raíz del documento XML, que declararemos con .
El elemento puede tener algunos atributos. La declaración de un esquema suele tener el siguiente aspecto:
El siguiente fragmento: <span style="color: #000080;">xmlns:xs="http://www.w3.org/2001/XMLSchema" </span>indica que los elementos y tipos de datos usados en el esquema vienen del espacio de nombres "http://www.w3.org/2001/XMLSchema". También especifica que los elementos y los tipos de datos que provengan de dicho espacio de nombres deben tener el prefijo . Este fragmento es el único obligatorio para que la definición sea correcta.