See also: IRC log
Jirka Kosek and Petr Nalevka present a series of slides on nvdl[2]. NVDL, which does not mean “Naturally, Validation Disrupts Life” but Namespace-based Validation Dispatching Language, is an ISO standard for dispatching of XML documents to validators or other processors for the following three use cases:
The main feature of nvdl is something that can already be done with some schema languages (e.g XSD) but it does so with a lot of ease and flexibility. Language author does not have to maintain complex schemas, the slicing and dispatching of documents is done based on a (very) simple nvdl syntax.
NVDL has a few implementations (jnvdl, onvdl, SnRNV, enovdl - the first three in java). jnvdl built by Petr has some interesting extensions, such as the dispatching on version attribute in the case of several (version of) language(s) sharing a single namespace. Also showed rapidly is Relaxed, a web-based GUI around nvdl, and an exercise in making checking compound XML documents feasible and user-friendly.
Doug asks if nvdl can be used to check some attribute incompatibilities in a scenario of using SVG+WAI-ARIA. Jirka notes that although nvdl may not, this looks like a job for something like schematron
nvdl implementations need not support any particular schema languages (they, after all, only dispatch to tools with schema support) but most of them today support xsd, rng, schematron, with some also supporting DTDs
MSM worried that nvdl allows extensibility and modification of languages even when language designer did not want it. This is something that can be done anyway (copy, edit, publish schema) but nvdl allows (by design) to do it by reference (which can be done with rng or xsd too), and simply.
Felix thinking about the possibility of having xproc steps for dispatching and validation
RESOLUTION: the minutes of THIS meeting will be public
<ChrisL> Pointer to NVDL spec
<ChrisL> http://nvdl.org/
<Jirka> Presentation: http://www.kosek.cz/xml/2008w3c-nvdl/
<ChrisL> an implementation, oNVDL
<ChrisL> http://www.oxygenxml.com/onvdl.html
http://www.kosek.cz/xml/2008w3c-nvdl/titlepg.html
Jirka: starts presentation.
3 typical uses of NVDL
<Ralph> [Nice! "NVDL can integrate existing schemas written in different schema language"]
<karl> I wonder if they can integrate any kind of schemas languages or only schemas languages for XML
Petr takes floor
<karl> thinking about CSS syntax inside an XML document for example, two different types of schemas and vocabulary.
<DanC> (MSM, perhaps this addresses agendum 5...)
<DanC> (or maybe not...)
<MSM> (DanC, I believe it does. It's just that I don't believe it's technically accurate as an account of what is required to do this in XSD.)
<ChrisL> so its like block structured languages compared to 'one big subroutine' programming
<Ralph> [I interpret the Note in slide 6 to be "Note, imagine a class of documents in which ..."]
<ericP> [+1]
<ericP> [or at least, it's useful to us that way]
<ChrisL> Ralph, yes ,that seems to be what its saying
Petr: Slide 8 has (simple!) nvdl example for the use case we have been describing
<dom> [it is pretty readable, indeed]
<ChrisL> re-use is much more web-like
<DanC> (hmm... http://www.w3.org/2000/07/rdf.xsd ... odd... I had the impression RDF's syntax was awkward, at best, to represent in XSD; I would have expected RNG)
<Jirka> DanC: RELAX NG is from 2001
<DanC> (this reminds me of some investigation by HT into XHTML modularisation and XSD and top-down vs bottom-up composability... something that's getting fixed in XSD 1.1... looking for pointers...)
<Liam> (greatly improved, not totally fixed I fear, because of some difficulties relating to attribute declarations)
<DanC> (http://www.w3.org/2001/tag/group/track/actions/48 ACTION-48 Produce an exemplary implementation of XHTML Modularization using substitution groups for both bottom-up extensibility and top-down modularity )
<DanC> (as I recall, the outcome was that it was workable except for timing differences in XSD 1.1 and XHTML mod)
Petr: going (a little) deeper in how nvdl language works
<ChrisL> deeper is good
http://www.kosek.cz/xml/2008w3c-nvdl/foil15.html
Chris: asks questions about
context (slide 12)
... if you are in the head mode and find a div, do you switch
to the block mode?
<DanC> ChrisL, I think the stuff on slide 12 is *not* saying anything about "if you're in head mode..."
Jirka: basically, it is stating what "could" be in the head element - content that would be validated against X,Y
Jirka: anything else would be ignored/rejected
<ChrisL> ok, thanks
Jirka: back to slide 15
<Zakim> ChrisL, you wanted to ask clarifying question
<DanC> (hmm... the input consists of a bunch of schemas too, no? or maybe the idea is that they're fetched during the process. hmm.)
<MSM> [Sorry, Jirka, can you repeat that bit?
<MSM> Under what conditions are things nested?]
<ChrisL> Doug - looks like we should be using the term 'validation candidates' in SVGT1.2 D.3.1
<DanC> plh, this slide (17) seems to give a "yes" answer to your question
http://www.kosek.cz/xml/2008w3c-nvdl/foil17.html
<Zakim> ChrisL, you wanted to ask whether splitting into validation candidates means original line numbering context is lost
<ChrisL> error locations given by xpath rather than line nubers - neat!
<Liam> [an nvdl implementation could probably handle line numbers by inserting blank lines and spaces]
http://www.kosek.cz/xml/2008w3c-nvdl/foil18.html
Jirka: +1 to Liam's suggestion, which is what our implementation does
<DanC> I'm going to play the agenda into the channel to give people an opportunity to withdraw items
DanC: time check
<ChrisL> I see
<ChrisL> jnvdl:useWhen="@version = '1.0'"
<ChrisL> neat, how does doctype switching work?
<Jirka> we have jnvdl:useWhenDoctype
Jirka: extension for filtering
when a namespace is used by different versions
... jnvdl:useWhen="@version = '1.0'"
... pure nvdl does not let you do that
<DanC> agenda order is 2, 8, 12, 7, 14
<plh> I thought that schema switching based on conditions was also supported in RNG. Is my recollection incorrect?
<ChrisL> on slide 22, i'm wondering how to extend that example to use @version so 1.1 and 1.0 go to the 1.1 DTD while 1.2 goes to the 1.2T RNG
<DanC> (I wonder if Chris and the presenters are available to stay after the chaired discussion to discuss details)
<ChrisL> Yes, i am. i have some specific questions and examples to discuss
<Jirka> ChrisL: you can use different schema languages in different validate actions
<Ralph> [/me amused at the use of the term "restaurant" in this manner; it seems to work :) ]
<Jirka> Yes, I can stay longer on call
<ChrisL> I have also been looking at http://dev.w3.org/SVG/profiles/1.2T/publish/conform.html#ConformingSVGDocuments and thinking the nvdl there is all wrong and should use multiple modes rather than one big one
<DanC> FYI, I ordered the agenda based on a goal that I got from olivier: to get the team aware of the technology and how we could use it
<Jirka> Description of JNVDL extensions: http://jnvdl.sourceforge.net/extensions.html
<Jirka> plh: relax ng can switch content models, but not on full XPath basics
<karl> I note that these are also parts of the strategies used by htm5 validator - http://about.validator.nu/
[presentation ends]
<karl> thanks to Jirka and Petr
<PetrNalevka> Thank you all
<Ralph> +1, thanks, Jirka and Petr
Doug: interested in SVG and ARIA
<DanC> FYI, shepazu is Doug Schepers, who works on SVG, among other things.
Doug: ARIA is a set of attributes, describes roles and states the role can be in
<DanC> (karl, indeed... I can imagine a whole meeting just to talk about relaxed and validator.nu ...)
Doug: would want to validate SVG (or XHTML) with aria, would like to tell author you have right role, but you have the wrong state
<DanC> (doug, maybe you could type a little markup?)
<ChrisL> so its adding attributes in a given namespace to selected svg elements. or (harder) to add attributes i the nul namespace that have an 'aria-' at the start of the attribute name
<DanC> <svg:rect role="combo-box"> ... combo-box...</svg:rect>
<DanC> maybe?
<ChrisL> http://www.w3.org/TR/wai-aria/
Doug: e.g state="yes" for role="combo-box" is incompatible
Jirka: this is no task for nvdl, but could be handled by schematron
ChrisL: and you can tell nvdl to pass info to schematron
<ChrisL> so you could use nvdl to dispatch schematron (or xslt) to validate the correct use of aria attributes
<DanC> (time was when ARIA attributes were in a separate namespace... but that time seems to be passing...)
Petr: if you want relation from one namespace to another, you need the nvdl attach feature
MSM: on slide 17 - http://www.kosek.cz/xml/2008w3c-nvdl/foil17.html
... seem to talk about problems with existing schema
languages
... but these seem to be issues with implementations
<karl> an example with SVG and ARIA - http://www.w3.org/TR/wai-aria/#impl_namespace
Jirka: explains an example of errors not being user friendly
<fsasaki> shepazu, example for the "attribute validation" issue: http://www.w3.org/TR/xml-i18n-bp/nvdl/xhtml-its.nvdl , described at http://www.w3.org/TR/xml-i18n-bp/#integration-its-xhtml-nvdl
Jirka: in practice I do not know grammar-base languages with user defined error messages
MSM: not about schema languages in general, but current batch
Jirka: agreed
<ChrisL> s/[???]/useful/
PLH: are the supported schema languages left to each implementation?
Jirka: yes. most implementations
support w3c xml schema, rnd, schematron
... some also support DTD validation
Ralph: interested in idea of more
helpful user error messages
... especially in context of multiple validation
... quick description of what such an interface to several
1-language validator would look like?
Jirka: basically, nvdl splits
documents into small fragments and sends to validator
... grabs results. can explain more about how jnvdl does it
<DanC> (Ralph, slide 18 suggests to me that the Java 1.5 validation API is a big part of the answer to your question)
<DanC> (I'm not familiar with it, though)
<MSM> [w.r.t. slide 12 - one question that arises, once the levels of language and implementation are disentangled better, is: given that we have shortcomings in existing implementations, is the right approach to fixing the problems to improve the implementations or to specify a new language that allows us to work around shortcomings of the current implementations of other languages?]
Jirka: nvdl is about the dispatching
Ralph: is the validation API part of the NVDL standard?
(slide 18)
Jirka: there is no API for the error messages in the ISO standard for NVDL
<DanC> * Yves http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/validation/package-summary.html
Petr: jnvdl uses the standard java validation API
Ralph: was curious about [slide
4] "Using !DOCTYPE or xsi:schemaLocation is not very good
practice"
... interested in developing on those remarks
Jirka: lacking time for this
:)
... postpone and discuss by email?
<ChrisL> it may be helpful to validate against different schemas at different times. so hardcoded location is bad
<ChrisL> zaki, agenda?
MSM: don't believe
characterization of schema languages is correct
... suggest replacing have to with may
... etc.
Jirka: agree it is possible to
create modular schemas with existing schema languages
... advantage of nvdl is that you do not need to do those
schemas extremely carefully
<DanC> (Ian, any input on ACL of minutes?)
Jirka: nvdl allows easier manipulation of schemas
<DanC> MSM: suppose schema 1 says : x consists of an a, a b, and a c
MSM: nvdl could be used for extensions not expected by original grammar
Jirka: this is a difference of approach.
MSM: problematic is that nvdl can change content model
<Zakim> ChrisL, you wanted to say surely thats better than copy-and-modify?
ChrisL: I can do that by taking a
schema and modifying it
... but loses modifications to original schema
... whereas modification by reference keeps a hook to the
original
... reference allows you to do a superset
MSM: XSD and RNG allows that
Jirka: yes, if schema is written in a certain way you can do that
<MSM> [And problematic is that nvdl changes content models, while the rhetoric of the presentation is all about how hard it is to change content models, and how easy it is to use NVDL, which does not involve changing content models]
Petr: controversial to draw a
strict line between author with control and language designer
with control
... there is also the question of readability
Felix: xproc would be
interesting
... was thinking about the possibility of having xproc steps
for dispatching and validation
Jirka: not sure, think xproc has
simpler features than nvdl
... think you could validate with nvdl from xproc
RESOLUTION: the minutes of THIS meeting will be public
Meeting is (officially) ADJOURNED
<ChrisL> http://dev.w3.org/SVG/profiles/1.2T/publish/conform.html#ConformingSVGDocuments
(some participants stay for further discussion)