- From: Juergen Reuter <reuterj@ira.uka.de>
- Date: Wed, 17 Nov 1999 18:56:29 +0100
- To: WebDAV WG <w3c-dist-auth@w3.org>
- cc: reuterj@ira.uka.de, jjh@ira.uka.de
Hi all!
While trying to implement a WebDAV/DeltaV based C/S application,
some parsing related questions arose that I would like to have
clarified, if possible. In the mailing archive with recent postings
of this list, I did not find any related topic, but I may have
overseen some posting and would also be grateful for any reference.
N.B.: [WebDAV] means RFC 2518, [XML] REC-xml-19980210,
[Namespaces] REC-xml-names-19990114, and [HTTP] RFC 2068.
1. [WebDAV] section 23.1 (appendix 1), and 12.12.1:
As far as I understand [XML], the declaration
<!ELEMENT keepalive (#PCDATA | href+) >
is not a valid xml element declaration. The use of both,
#PCDATA and children content href implies a mixed content
declaration. For mixed content, [XML] section 3.2.2 defines
[51] Mixed ::= '(' S? '#PCDATA' (S? '|' S? Name)* S? ')*'
| '(' S? '#PCDATA' S? ')'.
Hence, element keepalive may be declared as
<!ELEMENT keepalive (#PCDATA | href)* >
which is a more general form and might need to be further
restricted to its originally intended syntax on the semantic
level of the specification.
Alternatively, one could specify
<!ELEMENT keepalive (all | href+) >
<!ELEMENT all EMPTY>
where element all would effectively replace the '"*"'
PCDATA of the keepalive element.
2. At a first look, [WebDAV] section 23.1 seems to present the
syntax in the style of a document type declaration as specified
in [XML] section 2.8, rule [28] (doctypedecl definition).
If this is intended, "the Name in the document type declaration
must match the element type of the root element" (cited from
[XML] validity constraint: root element type). Effectively,
this would mean, that there must be an element named webdav-1.0
which serves as root element. However, I can not find an element
declaration of the form <!ELEMENT webdav-1.0 ... >. Instead,
the examples in [WebDAV] seem to use elements propfind,
multistatus, propertyupdate, propertybehaviour, lockinfo and prop
as varying root elements. Hence, could an additional element
declaration such as
<!ELEMENT webdav-1.0 (propfind | multistatus |
propertyupdate | propertybehaviour | lockinfo | prop) >
solve this problem?
3. The xml code in the examples in chapter 8 of [WebDAV] should, if I
understand right, be compliant with the syntax specified in
appendix 1. Section 2.8 of [XML] says:
"An XML document is valid if it has an associated document type
declaration and if the document complies with the constraints
expressed in it."
Without supplying a DTD, the document can only be checked for
well-formedness, which does not seem to help very much for
real-life applications. Hence, I would expect the xml code of
the examples in chapter 8 of [WebDAV] to begin as follows or
the like:
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE webdav-1.0 PUBLIC "-//W3C/DTD webdav-1.0//EN"
"http://www.w3.org/TR/1999/webdav-1.0.xml">
According to the root element issue (see above), I would expect then
<webdav-1.0>
followed by the lines as supplied in the examples in chapter 8,
and then followed by
</webdav-1.0>
which terminates the xml code.
4. The response in the example in section 8.1.1 [WebDAV] contains
the line
<D:prop><R:DingALing/><R:Random/></D:prop>
As far as I understand, R as an undeclared namespace prefix,
as there is no declared R namespace in scope. The line should
propably read as follows:
<D:prop xmlns:R="http://www.foo.bar/boxschema/">
<R:DingALing/><R:Random/>
</D:prop>
5. Section 9.1 of [WebDAV] defines the DAV header as follows:
DAV = "DAV" ":" "1" ["," "2"] ["," 1#extend]
I could not find any syntax rule for extend, neither in
[WebDAV], nor in [HTTP]. If extend may contain a ",", this
may lead to ambigous parsing; e.g. the string "DAV:1,2,3" could
be parsed with "2,3" representing the extend non-terminal. Hence,
if extend has not been defined by now, it should at least be
further restricted, e.g. by requiring extend = token or
extend = quoted-string, with token and quoted-string being
defined in [HTTP].
6. Is there a specific reason for WebDAV not making use of xml
element attributes? I think, using attributes could both, speed
up parsing and simplify the grammar.
For example, elements exclusive and shared could be replaced by
a single enumerated attribute (see [XML] section 3.3.1, rule [57]
EnumeratedType) for element lockscope.
I hope I could present my issues clearly enough.
Many thanks in advance!
Bye,
Juergen
Received on Wednesday, 17 November 1999 13:00:17 UTC