Review Konrad\\'s message re xml:base by next call

Dear all,

I have started reviewing the proposed annex text and I have found 
something in the text and also in some of the examples (which I have not 
been able to completely process).

1. On the text:
in 2.C the text reads:

 if the input buffer begins with a prefix of "/../" or "/..", where ".." 
is a complete path segment, then replace that prefix with "/" in the 
input buffer and if also the output buffer is empty, last segment in the 
output buffer equals "../" or "..", where ".." is a complete path 
segment, then append ".." or "/.." for the latter case respectively to 
the output buffer else remove the last segment and its preceding "/" (if 
any) from the output buffer; otherwise,

I think that the behaviour for the case "output buffer is empty" is left 
undefined. There are three situations:
1. output buffer is empty
2. out buffer equals "../"
3. out buffer equals ".."

But there are only two ways of obtaining the output:
"then append ".." or "/.." for the latter case respectively to the 
output buffer".
By reading this I do not know what I have to add to the output buffer in 
case 1. (out buffer is empty).

2. As I said, I have gone through some of the examples (I did not have 
time to go through all of them, appologies). And in some of them I have 
got different results from the ones that appear in the annex...Of 
course, I am not completely sure whether I have missread something...but 
most of the discrepancies seem to appear because in steps B and C  there 
is a "replace that prefix with "/" in the input buffer that I always 
include but in the current text in the annex seems to dissapear.

Below follows the details of the results that I have obtained following 
my understanding of the annex step by step.

Step 0 is the substitution of "//" by "/".
Step 1 onwards are the steps for processing dots. The letter after the 
step number reflects the case that according to my understanding applies 
according to the start of the input buffer.


STEP        OUTPUT                        INPUT
                                          
no/.././/pseudo-netpath/seg/file.ext
0.                                        
no/.././pseudo-netpath/seg/file.ext

1.E         no                            /.././pseudo-netpath/seg/file.ext
1.C         ""                            /./pseudo-netpath/seg/file.ext
1.B         ""                            /pseudo-netpath/seg/file.ext
1.E         /pseudo-netpath               /seg/file.ext
1.E         /pseudo-netpath/seg           /file.ext
1.E         /pseudo-netpath/seg/file.ext

**DIFFERENT RESULT IN THE ANNEX**


STEP        OUTPUT                        INPUT
                                          
no/..//.///pseudo-netpath/seg/file.ext
0.                                        
no/.././pseudo-netpath/seg/file.ext

1.E         no                            /.././pseudo-netpath/seg/file.ext
1.C         ""                            /./pseudo-netpath/seg/file.ext
1.B         ""                            /pseudo-netpath/seg/file.ext
1.E         /pseudo-netpath               /seg/file.ext
1.E         /pseudo-netpath/seg           /file.ext
1.E         /pseudo-netpath/seg/file.ext

**DIFFERENT RESULT IN THE ANNEX**


STEP        OUTPUT                        INPUT
                                          
yes/no//..//.///pseudo-netpath/seg/file.ext
0.                                        
yes/no/.././pseudo-netpath/seg/file.ext

1.E         yes                           
/no/.././pseudo-netpath/seg/file.ext
2.E         yes/no                        /.././pseudo-netpath/seg/file.ext
3.C         yes                           /./pseudo-netpath/seg/file.ext
4.B         yes                           /pseudo-netpath/seg/file.ext
5.E         yes/pseudo-netpath            /seg/file.ext
6.E         yes/pseudo-netpath/seg        /file.ext
7.E         yes/pseudo-netpath/seg/file.ext

*** RESULT AS IN THE ANNEX ***


STEP        OUTPUT                INPUT
                                  no/../yes
1.E         no                    /../yes
2.C         ""                    /yes
3.E         /yes


**DIFFERENT RESULT IN THE ANNEX**
Please note that, if I have not missunderstood the text, in step 2, case 
C of the annex applies and that it reads "replace that prefix with "/" 
in the input buffer", so in the input buffer we have "/yes", not "yes", 
and in the last step case E applies that instructs to keep the initial "/".


STEP        OUTPUT                INPUT
                                  no/../yes/
1.E         no                    /../yes/
2.C         ""                    /yes/
3.E         /yes                  /
4.E         /yes/

**DIFFERENT RESULT IN THE ANNEX**
As before

STEP        OUTPUT                INPUT
                                  no/../yes/no/..
1.E         no                    /../yes/no/..
2.C         ""                    /yes/no/..
3.E         /yes                  /no/..
4.E         /yes/no               /..
5.c         /yes                   /
6.E         /yes/

**DIFFERENT RESULT IN THE ANNEX**
As before



STEP        OUTPUT                INPUT
                                  ../../no/../..
1.A         ../                   ../no/../..
2.A         ../../                no/../..
3.E         ../../no              /../..
4.C         ../..                 /..
5.C         ../../..              /
6.E         ../../../

STEP        OUTPUT                INPUT
                                  no/../..
1.E         no                    /../..
2.C         ""                    /..
3.C         .. OR /.. ?           /
4.E         ../ OR /../ ?


I couldn't go any further... I will keep testing after the meeting.

Regards

Juan Carlos.        

Received on Tuesday, 12 June 2007 12:14:46 UTC