RE: Use of attributes

Note: I personally don't care much one way or the other on this
topic, so I'm just reporting on the rationale that went into the
current choice.

   From: Julian F. Reschke [mailto:julian.reschke@greenbytes.de]

   > From: Clemm, Geoff
   >    From: Lisa Dusseault [mailto:lisa@xythos.com]
   >
   >    But the DeltaV draft requires the following syntax:
   >      <supported-live-property-set>
   > 	<supported-live-property name="getcontentlength" namespace="DAV:"/>
   > 	<supported-live-property name="quota"
   >    namespace="http://www.xythos.com/schemas/StorageServer"/>
   > 	...
   >      </supported-live-property-set>
   >
   >    Is there some merit to doing things this way that isn't immediately
   >    obvious?
   >
   > This was done at the request of the folks who care about syntactic
   > validation (e.g. DTD or XML-Schema).  It is expected that this
   > report will be extended with other interesting metadata about the
   > supported live properties (e.g. DAV:is-computed).  By using the
   > DAV:supported-live-property node, this can be declared as:
   >
   > <!ELEMENT supported-live-property (is-computed?)>

   That could have easily been done by adding it in the form of:

	   <x:quota xmlns:D="DAV:" D:is-computed="true" />

For a simple extension like D:is-computed, yes, but not all
extensions will have values that easily map into a simple string.

   >    Aside from consistency and stylistic considerations, the syntax in
the
   > draft
   >    is just plain broke. The DTD for supported-live-property set
hardwires
   > the
   >    namespace to DAV:
   >
   >    <!ATTLIST supported-live-property namespace NMTOKEN "DAV:">
   >
   > This does not hardwire the namespace to be "DAV:", it just specifies
   > that the "DAV:" is the default if no explicit namespace attribute is
   > specified.

   Now that you mention that: this breaks reporting of live properties
   that actually happen to be in no namespace at all (no, I wouldn't
   suggest using things like that, but ...).

   I assume that currently no server uses DTDs to validate. Which
   raises the question how they should process element where the
   attribute is missing:

   a) assuming the property is in the DAV: namespace,
   b) assuming it's in no namespace.

   For consistency, I'd prefer b).

Since (as you indicate) one should not place properties in
the default namespace, having the default be something that
we discourage and is likely to not occur, does not make much
sense to me.

   If it's a), that should be clearly stated somewhere 

The fact that the default is the DAV: namespace is specified
in the DTD declaration in the protocol.  We could repeat that
in text I suppose.

   (and a way to report properties in "no" namespace -- such as
   namespace="" -- should be documented).

How else could it be represented?  Since we do not want to encourage
anyone to place properties in the default namespace, I'd be inclined
to leave this unstated, as a way of discouraging this bad practice.

Cheers,
Geoff

Received on Sunday, 5 August 2001 23:23:24 UTC