Re: Appling inheritance rule to xml:base, was Re: FINAL minutes for the XML

Some text enhancements, and a fix for the absolute path and net path in
step b).

Konrad Lanz wrote:

> Konrad Lanz wrote:
>
>> Dear all,
>>
>> [...] I think we could specify a "join URI function" by referring to
>> [RFC 2396 <http://www.ietf.org/rfc/rfc2396.txt>] section 5.2 skipping
>> steps 1 - 5 and performing step 6) only and amending it as follows,
>> thus appending a relative URI (rel-uri-2) to any URI (uri-1).
>>
>>      a) All but the last segment of the *URI's (uri-1)* path component
>>         is copied to the buffer.  In other words, any characters after
>>         the last (right-most) slash character, if any, are excluded.
>
     b) If the relative URI (rel-uri-2) starts with a '/' slash delete all
        "<segment>/" from the buffer, where <segment> is a complete path
segment.
        If the URI (rel-uri-2) starts with a '//' two slashes delete
further the
        '//<authority>/'. Then the relative URI is appended to the
buffer string.

>>
>> [...]
>>      g) *If the resulting buffer string begins with
>>         "<scheme>://<authority>/" followed by one or more complete path
>>         segments of "..", then the resulting URI is considered to be in
>>         error and Implementations SHOULD indicate this error and fail,
>
if however there are no "<scheme>://<authority>/"> components, the

>>
>>         result is a relative URI starting with a relative path.
>>         Albeit if processing continues Implementations MUST handle this
>>         by retaining the leading ".." complete path segments in the
>>         resulting path (i.e., treating them as part of the final URI
>>         e.g. ../../<segment>/<segment> )*.
>>
>>
>> [...]
>>
>> 2.4 Document Subsets
>>
>> Definition:
>>
>> * Simple heritable attributes are attributes that have a value that can
>> be redeclared only. This redeclaration is done by supplying a new value
>> in the child axis. 
>
The redeclaration of a simple heritable attribute A contained in an
element E
is done by supplying a new value to an attribute with the same name
contained
in a descendant element of E.

>> Simple heritable attributes are xml:lang and xml:space.
>>
>> * Joint heritable attributes 
>
contained in an element E

>> are attributes that cannot only be
>> redeclared, but also have values that are to be interpreted by some
>
function depending on attributes of the same name contained in elements
along E's parent axis.

A Joint heritable attribute is xml:base and joint heritable attributes need
a "bequeath function" that inherits only their nearest ancesting attribute's
quintessential asset contained in an element along E's parent axis. Note
however that this "bequeath function" may cause that the joint heritabe
attribute inherits nothing. In the case of xml:base this happens if
there is
either no bequeather or the heir does not have a relative URI and hence
the "bequeath function" refuses to inherit.

In the case of xml:base the "bequeath function" is the "join URI
function" (see above) taking any URI (uri-1) from a bequeather and joins
a relative URI of the heir (rel-uri-2) after last slash of the fromer
and then
normalizes the result.
The "bequeath function" may also be called with a null URI (i.e. no
xml:base
attribute (heir) exists in E. DONT MIX THIS WITH xml:base="")

>> [...] The processing of an element node E MUST be modified slightly when
>> an XPath node-set is given as input and the element's parent is omitted
>> from the node-set. The method for processing the attribute axis of an
>> element E in the node-set is enhanced. All element nodes along E's
>> ancestor axis are examined for nearest occurrences of heritable
>> attributes in the xml namespace, such as the attributes *xml:lang,
>> xml:space and xml:base* (whether or not they are in the node-set). From
>> this list of attributes, remove any simple heritable that are in E's
>> attribute axis (whether or not they are in the node-set. Joint heritable
>> attributes can only be removed from the list if the their nearest
>> occurrences of the corresponding heritable attribute (xml:base) along
>> E's ancestor axis will also be rendered, otherwise the attribute remains
>> after it's value has been fixed using a "bequeath function" . Then,
>> lexicographically merge this attribute list with the nodes of E's
>> attribute axis that are in the node-set. The result of visiting the
>> attribute axis is computed by processing the attribute nodes in this
>> merged attribute list.[...]
>>
>> best regards
>> Konrad
>>
>> Henry S. Thompson wrote:
>> > -----BEGIN PGP SIGNED MESSAGE-----
>> > Hash: SHA1
>> >
>> > ht should have written:
>> >
>> > <a>
>> >   <b xml:base="test/">
>> >      <c xml:base="test"/>
>> >   </b>
>> > </a>
>> >
>> > with the 'b' being clipped out, we get
>> >
>> > <a>
>> >   <c xml:base="test/test"/>
>> > </a>
>> >
>> > - --
>> >  Henry S. Thompson, HCRC Language Technology Group, University of 
>> Edinburgh
>> >                      Half-time member of W3C Team
>> >     2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 
>> 650-4440
>> >             Fax: (44) 131 650-4587, e-mail: ht@inf.ed.ac.uk
>> >                    URL: http://www.ltg.ed.ac.uk/~ht/
>> > [mail really from me _always_ has this .sig -- mail without it is 
>> forged spam]
>> > -----BEGIN PGP SIGNATURE-----
>> > Version: GnuPG v1.2.6 (GNU/Linux)
>> >
>> > iD8DBQFEGEeikjnJixAXWBoRAqrDAJ9SjWo5ia3ZY71qIS/0Wyb+A3G1wgCeL1h0
>> > t1xtupkoi1t9e1/Jg4lumtU=
>> > =drcN
>> > -----END PGP SIGNATURE-----
>> >
>> > 
>

Received on Thursday, 16 March 2006 12:54:33 UTC