[Phoenix] Implementing namespace-unawareness

Andreas Wuest awuest at student.ethz.ch
Fri Sep 29 19:19:26 CEST 2006


Hi

On 29.9.2006 11:41 Uhr, Andreas Wuest wrote:

> Hi
> 
> On 29.9.2006 11:05 Uhr, Michael Wechner wrote:
> 
>> Andreas Wuest wrote:
>>> I am not sure though which nodes all have to substituted. Do we only 
>>> have to substitute the nodes in the NameTest production, or generally 
>>> all occurring QNames? Also, in the NameTest production, it is 
>>> distinguished between '*', NCName ':' '*' and QName. By what should 
>>> '*' and NCName ':' '*' be replaced with?
>>
>>
>> Unfortunately I cannot help on this ;-)
> 
> :( That's the most important part of this...
> 
>>> The branch currently only replaces QName productions which have a 
>>> prefix. Prefixless QNames are currently not replaced.
>>
>> does it show any regression?
> 
> Only replacing the NameTests which have prefixes is pretty pointless, 
> because the rest of the query will fail (except all NameTests are 
> prefixed). So, no, it does not make things worse, but not better as well.
> 
> I first have to know exactly which productions I have to replace by 
> "*[local-name()='nodename']"...
> 
> BTW: what about variables, i.e. '$' QName, and function names?

I finished the namespace-unawareness implementation by replacing all 
QNames in NodeTests by *[local-name()='nodename'], except if the QName's 
localPart is "*".

I don't know what I should do in such a case, especially if the QName 
has a prefix, e.g. foo:*. Would *[local-name()='*'] be valid? Currently, 
if we hit foo:*, we simply replace it by *.

Oh, and, it's all nicely integrated in the trunk now... :)

-- 
Kind regards,
Andi



More information about the Phoenix mailing list