Re: NVDL

/ noah_mendelsohn@us.ibm.com was heard to say:
| Norm Walsh writes:
|
|> NVDL is designed for namespace-based dispatching so it follows 
|> that it's a solution that can only be considered when different
|> versions appear in different namespaces.
|
| Yes, exactly, and there are many situations in which such 
| namespace-dispatching is natural and desirable.  That said, I would prefer 
| that the TAG not appear to imply that such namespace-based composition of 
| vocabularies is the only one that's ever sensible.

Did I imply that? That wasn't my intent. We've got a significant
finding about versioning underway. It describes a wide range of
possible approaches to the problem of dealing with evolution and
versioning. I think NVDL is quite reasonably another possible
approach.

| Note that I am >not< 
| suggesting that one avoid using namespaces;  I think it's almost always 
| desirable to NS-qualify one's XML elements, and in some cases attributes 
| as well.  I am saying that there are cases in which one wishes to 
| modularize markup in ways that are not best modeled as namespace-driven. 
| For example, one might in some organization use a handful of namespaces 
| for abstractions such as inventory, monetary abstractions, etc., and then 
| assemble schemas for particular document formats such as purchase orders 
| by quite freely mixing bits of markup from these namespaces.  In such 
| cases, I think it's often more appropriate to suggest that the root 
| element name (not just its namespace) indicates the nature of the document 
| as a whole, with namespace-qualified markup mixed quite freely inside.

Sure. And I wouldn't expect to use NVDL in that situation. I wouldn't
expect to use DTDs either :-)

Of course, using NVDL doesn't preclude tighter mixed-namespace
constraints. Consider the DocBook case. DocBook V5.0 allows MathML in
equations. DocBook's definition of "MathML" is "anything in the
MathML namespace." So out of the box, <mml:norman-is-a-fool/> would
validate with the DocBook schema (if it appeared in an equation).

A user wishing to exert tighter control could construct a RELAX NG
grammar that included both DocBook and MathML and replace the "any
mml:*" pattern with a better one. The user could simply take an
off-the-shelf MathML grammar (even an XSD, for that matter) and use
NVDL to validate the combination.

The fact that NVDL is being used doesn't have to mean that MathML can
occur at arbitrary places. DocBook still constraints where. NVDL
simply provides tighter constraints on the actual MathML bits in this
case.

That strikes me as a use case somewhere between the extremes of "any
mixture" and "a tightly constrained mixture".

| I'm not an NVDL expert, but my impression is that it's not focussed 
| primarily on such idioms.  In summary, I have no problem pointing to NVDL 
| as an example of good practice for the things it does well;  I would like 
| to avoid appearing in so doing to discourage use of languages in which 
| different versions share a namespace, or in which the same version of a 
| language freely mixes bits from many namespaces.

I agree wholeheartedly and had no intent to discourage such languages
or even appear to do so.

                                        Be seeing you,
                                          norm

-- 
Norman Walsh <ndw@nwalsh.com> | No man's knowledge here can go beyond
http://nwalsh.com/            | his experience.--John Locke

Received on Friday, 20 July 2007 20:20:00 UTC