AW: Issue: PROP_ATTR

Hi,

I've spent some time looking at the current RFC, and what needs to be done
to get this subject defined more precisely.

The wording on property names seems to be OK (if the appendix about the non
W3C-complaint name matching is removed). It probably could be less vague on
what it means by a "schema", though. In addition, I would propose to have
the section about property names moved *in front* of the section about
property values (so 4.4 and 4.5 would be exchanged).

I've also tried to add text to 4.4 that specifies the current consensus on
how XML attributes in the property element are treated... Here's my attempt
(comments are welcome):

4.4.  Property Values
The value of a property when expressed in XML MUST be well formed.

XML has been chosen because it is a flexible, self-describing, structured
data format that supports rich schema definitions, and because of its
support for multiple character sets. XML's self- describing nature allows
any property's value to be extended by adding new elements. Older clients
will not break when they encounter extensions because they will still have
the data specified in the original schema and will ignore elements they do
not understand. XML's support for multiple character sets allows any
human-readable property to be encoded and read in a character set familiar
to the user. XML's support for multiple human languages, using the
"xml:lang" attribute, handles cases where the same character set is employed
by multiple human languages.

TEXT BELOW WAS ADDED...

The value of a property is defined in terms of the W3C recommendation "XML
Information Set" [XML-INFOSET] and "Canonical XML" [RFC3076]. It consists of
a subset of the property element's information items, of which some are
optional (that is, a server MAY choose not to persist them).


    [prefix]
    (optional) The namespace prefix part of the element-type name.
    [children]
    (required) An ordered list of child information items, in document
order. Note that the full Information Set of each child is part of the
value.
    [attributes]
    (optional) An unordered set of attribute information items.
    [namespace attributes]
    (optional) An unordered set of attribute information items, one for each
of the namespace declarations.
    [in-scope namespaces]
    (optional) An unordered set of namespace information items, one for each
of the namespaces in effect for this element.
    [base URI]
    (optional) The base URI of the element, as computed by the method of XML
Base.

In addition, attributes from the XML namespace
(http://www.w3.org/XML/1998/namespace) are inherited by means of section 2.4
of [RFC3076]:

    xml:lang
    (required)
    other attributes from the XML namespace
    (optional)

4.4.1.  Examples for property values
Set request:

  <propertyupdate
	  xmlns="DAV:" xmlns:foo="http://foo.bar.com"
xmlns:x="http://www.w3.org/XML/1998/namespace"
		xml:lang="en" x:space="preserve">
	  <set>
	    <foo:bar attr="test">xyz</foo:bar>
	  </set>
  </propertyupdate>

Inheritance of attributes from XML namespaces as defined in section 2.4 of
[RFC3076]:

  <propertyupdate
	  xmlns="DAV:" xmlns:foo="http://foo.bar.com"
xmlns:="http://www.w3.org/XML/1998/namespace"
		xml:lang="en" x:space="preserve">
	  <set>
	    <foo:bar attr="test" xml:lang="en" x:space="preserve">xyz</foo:bar>
	  </set>
  </propertyupdate>

The value of the property named ("http://foo.bar.com", "bar") thus is:

    [prefix]
    "foo"
    [children]
    3 character information items
    [attributes]
    attribute information items, describing "attr", "xml:lang" and "x:space"
    [namespace attributes]
    (empty)
    [in-scope namespaces]
    the namespace information items (no value, "DAV:"), ("foo",
"http://foo.bar.com"), ("x", "http://www.w3.org/XML/1998/namespace"),
("xml", "http://www.w3.org/XML/1998/namespace")
    [base URI]
    no value

Removal of optional information:

  <propertyupdate
	  xmlns="DAV:" xmlns:foo="http://foo.bar.com"
xmlns:x="http://www.w3.org/XML/1998/namespace"
		xml:lang="en" x:space="preserve">
	  <set>
	    <foo:bar xml:lang="en">xyz</foo:bar>
	  </set>
  </propertyupdate>

The value of the property named ("http://foo.bar.com", "bar") then becomes:

    [children]
    3 character information items
    [attributes]
    attribute information item, describing "xml:lang"

Received on Sunday, 22 April 2001 16:13:02 UTC