Re: Processor conformance: fault on non-conformant input

On Mar 22, 2004, at 9:03 PM, Umit Yalcinalp wrote:
[snip]
> I am not sure that Sanjiva is alone. Here are my concerns.
>
> If a processor is not required to process all aspects of the WSDL 
> document, then it is impossible, technically, to find out whether a 
> document is conformant or not, because "conformant" processors may 
> choose to ignore certain portions of a document and end up not 
> reporting errors. Note that by "sheer ignorance" (as it is bliss ;-)), 
> it is equivalent to consume or ignore a specific portion of a 
> document. If it is valid/legal, you are conformant by default, if it 
> is not, well you are allowed to ignore certain portions of it. Nice!

Something like this got raised in the last F2F. By me.

My understanding is that it's pretty tricky to write what I'll call a 
WSDL validator. Or what I would like a validator to do. Basically, the 
validator has to explore all the "paths" through the document (or all 
the legal querys against the WSDL "database/document") and check each 
one. Hmm. Maybe it's enough to explore the whole thing once...except, I 
guess it could be possible for a feature to tweak something from wrong 
to right someplace else. Ick.

> Based on this definition, a document may not be conformant but the 
> processor will be. So, what is the purpose of defining a conformant 
> processor? A processor that can handle valid WSDL documents and more 
> or a processor that will reject invalid WSDL documents?  It seems that 
> a conformant processor is NOT the processor that may be able to reject 
> a non-conformant document by this change.
[snip]

It does seem that being a document isn't as central to WSDL as one 
might like :) OTOH, it's sorta like old HTML...if you don't understand 
something in a binding that *you rightly don't care about*, ignore it.

There is some language in the Web Archtecture document about extensible 
langauges et al. Maybe that would help :)

Ah yes, section 1.2.2:

"""Language subset: one language is a subset (or, "profile") of a 
second language if any document in the first language is also a valid 
document in the second language and has the same interpretation in the 
second language.

Language extension: one language is an extension of a second language 
if the second is a language subset of the first (thus, the extension is 
a superset). Clearly, creating an extension language is better for 
interoperability than creating an incompatible language.

Ideally, many instances of a superset language can be safely and 
usefully processed as though they were in the subset language. 
Languages that exhibit this property are said to be "extensible." 
Language designers can facilitate extensibility by defining how 
implementations must handle unknown extensions -- for example, that 
they be ignored (in some way) or should be considered errors."""

Hmm. This is still a bit confused and confusing, especially for our 
purposes. Maybe we can treat the "partial document" processing 
processor as processing a language subset of the WSDL document (ugh, 
that sounds tinny).

Cheers,
Bijan Parsia.

Received on Tuesday, 23 March 2004 02:02:38 UTC