El lenguaje de despacho de validación basado en espacios de nombres (NVDL) es un lenguaje de esquema XML para validar documentos XML que se integran con varios espacios de nombres . Es un estándar ISO / IEC y es la Parte 4 de la especificación del esquema DSDL . Gran parte del trabajo en NVDL se basa en el lenguaje de enrutamiento de espacios de nombres más antiguo .
Validación
La mayoría de los lenguajes XML se basan en un único espacio de nombres XML. La expectativa en estos casos es que los elementos XML en un espacio de nombres particular pertenezcan a ese idioma y los elementos en otro espacio de nombres pertenezcan a otro idioma. Muchos lenguajes XML permiten el uso de elementos arbitrarios de otros espacios de nombres.
El problema surge durante el intento de validar estos documentos híbridos. Cada idioma está definido por un esquema XML específico, pero no existe ningún vínculo entre los esquemas.
El propósito de NVDL es proporcionar ese enlace, basado en espacios de nombres. Al asociar un validador de esquema con un esquema NVDL, el validador puede usar múltiples esquemas para validar un solo documento, cambiando entre ellos según los espacios de nombres usados en ese documento.
Formato
Los documentos NVDL contienen una lista de reglas, cada una de las cuales tiene una o más acciones a tomar cuando esa regla es verdadera. Las reglas incluyen un espacio de nombres específico y una configuración de modo. NVDL reconoce el modo como un estado particular que cambia a medida que se procesa el documento.
Las acciones ocurren cuando una regla es verdadera. Las acciones pueden incluir validar un esquema, declarar que el documento de instancia no es válido, aceptar esta parte del documento de instancia como válida y continuar validando como lo hizo el padre. Las acciones también pueden cambiar el modo NVDL actual. Se pueden tomar varias acciones cuando una regla es verdadera; esto permite validar una sección del documento de instancia con múltiples esquemas de un tipo diferente.
Ejemplo
xmlns = "http://purl.oclc.org/dsdl/nvdl/ns/structure/1.0" > ns = "http://www.w3.org/1999/xhtml" > esquema = "xhtml.rng" /> ns = "http://www.w3.org/2000/svg/" > schema = "svg.sch" />
Este esquema NVDL validará las partes que usan el espacio de nombres XHTML 1.0 con un esquema RELAX NG , validará las partes que usan el espacio de nombres SVG 1.0 con un esquema Schematron y rechazará el documento como inválido si encuentra elementos con cualquier otro espacio de nombres.