The Cover PagesThe OASIS Cover Pages: The Online Resource for Markup Language Technologies
SEARCH | ABOUT | INDEX | NEWS | CORE STANDARDS | TECHNOLOGY REPORTS | EVENTS | LIBRARY
SEARCH
Advanced Search
ABOUT
Site Map
CP RSS Channel
Contact Us
Sponsoring CP
About Our Sponsors

NEWS
Cover Stories
Articles & Papers
Press Releases

CORE STANDARDS
XML
SGML
Schemas
XSL/XSLT/XPath
XLink
XML Query
CSS
SVG

TECHNOLOGY REPORTS
XML Applications
General Apps
Government Apps
Academic Apps

EVENTS
LIBRARY
Introductions
FAQs
Bibliography
Technology and Society
Semantics
Tech Topics
Software
Related Standards
Historic
Created: June 19, 2003.
News: Cover StoriesPrevious News ItemNext News Item

Namespace Routing Language (NRL) Supports Multiple Independent Namespaces.

James Clark has announced the publication of a Namespace Routing Language (NRL) specification. NRL is "an XML language for combining schemas for multiple namespaces; it allow the schemas that it combines to use arbitrary schema languages." The release includes a tutorial and specification document and a sample implementation in the Jing (RELAX NG Validator in Java) distribution. NRL "is the successor to Clark's Modular Namespaces (MNS) language and is intended to be another step on the path towards Document Schema Definition Languages (DSDL) Part 4."

The W3C XML Namespaces Recommendation itself "allows an XML document to be composed of elements and attributes from multiple independent namespaces: each of these namespaces may have its own schema and the schemas for different namespaces may be in different schema languages. The problem then arises of how the schemas can be composed in order to allow validation of the complete document." The Namespace Routing Language attempts to solve this problem. Among the features and benefits of NRL: it supports schema language coexistence, allows extension of schemas not designed to be extended, makes authoring of extensible schemas easier supports 'transparent' namespaces, allows contextual control of extension, and allows concurrent validation. "For RELAX NG, it can be used to provide some of the namespace-based modularity features that are built-in to XSD."

"NRL is designed to allow an implementation to stream, and the sample implementation does so. The sample implementation [Jing RELAX NG validator in Java] has a SAX-based plug-in architecture that allows new schema languages to be added dynamically. It comes with support for RELAX NG (both XML and compact syntax), W3C XML Schema (via a wrapper around Xerces-J), Schematron, and (recursively) NRL. W3C XML Schema and Schematron schemas are autodetected (using the namespace URI) and can be used as both top-level schemas and as NRL subschemas. With the new Jing release, NRL can also use any schema language with an implementation that supports the JARV interface." [adapted from the announcement and NRL website]

Bibliographic Information

Namespace Routing Language (NRL). By James Clark. Date: 2003-06-13. Copyright (c) Thai Open Source Software Center Ltd. Abstract: "The XML Namespaces Recommendation allows an XML document to be composed of elements and attributes from multiple independent namespaces. Each of these namespaces may have its own schema; the schemas for different namespaces may be in different schema languages. The problem then arises of how the schemas can be composed in order to allow validation of the complete document. This document proposes the Namespace Routing Language (NRL) as a solution to this problem. NRL is an evolution of the author's earlier Modular Namespaces (MNS) language."

Namespace Routing Language Features and Benefits

NRL provides the following features and benefits [per the text of the announcement]:

  • Supports schema language coexistence. For example, if you have a schema for XHTML in RELAX NG and a schema for SVG in W3C XML Schema, NRL allows you to validate an XHTML document that embeds SVG, without having to convert either of your schemas.

  • Allows extension of schemas not designed to be extended. For example, suppose you have an schema for XHTML which does not allow extension, but you want to embed SVG in XHTML. NRL allows you to do so without having to add wildcards to your XHTML schema.

  • Makes authoring of extensible schemas easier. Instead of having to clutter up a schema with wildcards, you can write a simple schema without wildcards and then use NRL to specify what kind of extension is allowed.

  • Supports "transparent" namespaces. By transparent namespace, I mean a namespace t where you want to validate <x><t:y><z/></t:y></x> like <x><z></x>. This is useful for namespaces that provide templates or versioning.

  • Allows contextual control of extension. If you have a W3C XML Schema that uses wildcards in different contexts, you can use NRL to control which namespaces are allowed in each context.

  • Allows concurrent validation. You can specify that a particular namespace or the whole document is validated with respect to multiple schemas, which may be in different schema languages. So you could validate a document against both a W3C XML Schema schema and a Schematron schema.

  • For RELAX NG, it can be used to provide some of the namespace-based modularity features that are built-in to XSD.

Principal references:


Hosted By
OASIS - Organization for the Advancement of Structured Information Standards

Sponsored By

IBM Corporation
ISIS Papyrus
Microsoft Corporation
Oracle Corporation

Primeton

XML Daily Newslink
Receive daily news updates from Managing Editor, Robin Cover.

 Newsletter Subscription
 Newsletter Archives
Bottom Globe Image

Document URI: http://xml.coverpages.org/ni2003-06-19-b.html  —  Legal stuff
Robin Cover, Editor: robin@oasis-open.org