Namespace-based Validation Dispatching Language (NVDL) is an XML schema language for validating XML documents that integrate with multiple namespaces. It is an ISO/IEC standard, and it is Part 4 of the DSDL schema specification. Much of the work on NVDL is based on the older Namespace Routing Language.

Validation

edit

Most XML languages are based on a single XML namespace. The expectation in these cases is that XML elements in a particular namespace belong to that language, and elements in another namespace belong to another language. Many XML languages allow the use of arbitrary elements from other namespaces.

The problem arises during the attempt to validate these hybrid documents. Each language is defined by a specific XML schema, but there is no linkage between the schemas.

The purpose of NVDL is to provide that linkage, based on namespaces. By associating a schema validator with an NVDL schema, the validator can use multiple schemas to validate a single document, switching between them based on the namespaces used in that document.

Format

edit

NVDL documents contain a list of rules, each of which has one or more actions to take when that rule is true. Rules include a specific namespace and a mode setting. NVDL recognizes the mode as a particular piece of state that changes as the document is processed.

Actions occur when a rule is true. Actions can include validating a schema, declaring the instance document invalid, accepting this part of the instance document as valid, and continue validating as the parent did. Actions can also change the current NVDL mode. Multiple actions can be taken when a rule is true; this allows for validating a section of the instance document with multiple schemas of a different type.

Example

edit
<rules xmlns="http://purl.oclc.org/dsdl/nvdl/ns/structure/1.0">
  <namespace ns="http://www.w3.org/1999/xhtml">
    <validate schema="xhtml.rng"/>
  </namespace>
  <namespace ns="http://www.w3.org/2000/svg/">
    <validate schema="svg.sch"/>
  </namespace>
  <anyNamespace>
    <reject/>
  </anyNamespace>
</rules>

This NVDL schema will validate the parts that use the XHTML 1.0 namespace with a RELAX NG schema, validate the parts that use the SVG 1.0 namespace with a Schematron schema, and reject the document as invalid if it encounters elements with any other namespace.

edit

📚 Artikel Terkait di Wikipedia

XML schema

Schema Languages: Document Structure Description Document Type Definition Namespace Routing Language Namespace-based Validation Dispatching Language OASIS

List of XML markup languages

application behaviors Namespace-based Validation Dispatching Language National Information Exchange Model Nested Context Language NewsML: provides a media-independent

Document Schema Definition Languages

Regular-grammar-based validation – RELAX NG Part 3: Rule-based validation – Schematron Part 4: Namespace-based Validation Dispatching Language (NVDL) Part

ISO/IEC JTC 1/SC 34

ISO/IEC JTC 1/SC 34, Document description and processing languages is a subcommittee of the ISO/IEC JTC 1 joint technical committee, which is a collaborative

D (programming language)

the D language specification). C++ namespaces are used via the syntax extern(C++, namespace) where namespace is the name of the C++ namespace. On C++:

List of ISO standards 18000–19999

Regular-grammar-based validation – RELAX NG ISO/IEC 19757-3:2016 Part 3: Rule-based validation – Schematron ISO/IEC 19757-4:2006 Part 4: Namespace-based Validation Dispatching

Object REXX

high-level, general-purpose, interpreted, object-oriented (class-based) programming language. Today it is generally referred to as ooRexx (short for Open

Laminas

release were the removal of require_once statements, migration to PHP 5.3 namespaces, a refactored test suite, a rewritten Zend\Session, and the addition of