Subject: RE: Syntax Issues

From: Jim Whitehead <[email-masked]>
Date: Thu, 2 Dec 1999 09:12:20 -0800

Sorry for the slow response -- your email came in at the start of my
Thanksgiving holiday...

> As far as I understand, WebDAV's DTD itself is fixed; but the examples
> in chapter 8 use a namespace identified by the external entity
> reference URI "http://www.foo.bar/boxschema", which, effectively,
> extends the syntax.

This is correct -- we're viewing this as a feature.  We wanted property
names and values to be created by anyone without having to go through a
central property registry.  We felt it was unlikely that all clients and
servers would understand all properties, and hence we demand just the lowest
level of interoperability, well-formedness.

However, Larry Masinter has, in the past, warned of the dangers of this
approach, noting that it is possible to create new protocols that are
conveyed only in properties, and these protocols would not be interoperable,
despite the fact all applications would be WebDAV compliant.  So far this
risk has not materialized -- perhaps the fact that no current client
actually uses PROPPATCH is a contributor :-)

> Ok, I understand that there might be reasons for some implementors not
> to use validation.  On the other hand, I think validating xml could be
> implicitly introduced into [WebDAV], thereby allowing each implementor
> to decide on his own whether to use validation or not.  The current
> syntax, however, makes it impossible to use validation, unless an
> additional input filter is supplied that patches the input data, or a
> validating parser is patched to accept even [WebDAV]'s syntax.

Well, given that property values can potentially contain almost any element,
and since the DAV vocabulary of XML elements is tightly controlled by RFCs,
I'm really not sure what value an application would gain from validation,
except to expend CPU cycles.  What benefit do you perceive your application
would gain from validation?

> However, this is not a problem, because in section 2.8 [XML] says:
> "The document type declaration can point to an external subset ..., or
> contain the markup declarations directly ..., or can do both."  This
> means client properties do not need to be declared in the DTD, but can
> also be declared directly as markup declarations in the submitted
> document.

OK, this is possible, but again I wonder at its value. In order to make use
of a property, the application must typically understand both its syntax and
semantics. The DTD information only supplies a limited form of syntactic
information, and conveys virtually no semantic information.  The only
application I can imagine that might make use of DTD information without
understanding the contents of the property is a property viewer (an app.
that just displays the properties to the user), which, due to XML's
document-centric heritage, is no great surprise.  But, any other application
will either (a) not understand the semantics of the property, and hence will
only need to parse the information, a quality provided by well-formedness,
or (b) will have in-depth understanding of the syntax and semantics of the
property which goes far beyond the information conveyed in a DTD, in which
case the DTD provides only a limited, and not particularly useful, form of
specification redundancy.

- Jim