molostoff / ubiquity-xforms

Automatically exported from code.google.com/p/ubiquity-xforms
0 stars 0 forks source link

FF converts node names on inline instance data to lower case, making XPath expressions ineffectual #38

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. Load http://ubiquity-xforms.googlecode.com/svn/branches/xforms-tests-
and-examples/_samples/Loan/loan.html
2. On Firefox 2 and IE 6, the initial data from the model instance are not 
being displayed in the appropriate xforms controls.
3.

What is the expected output? What do you see instead?
The initial instance data is not being presented in the xforms controls 
which reference the data.
Possibility:
The initial recalculations for the monthly payment may not be working
The setvalue on xforms-ready event may not be working
Reference Issue 30, Keith's work with submission eventing populated the 
data on IE6, but the bind calculations still do not work.

Please use labels to indicate the version, operating system and browser 
that you are using. Also, add some text below to provide additional 
information.

Original issue reported on code.google.com by wellsk0...@gmail.com on 7 Aug 2008 at 5:59

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
I did some investigation for this bug and I can't reproduce the problem on IE 6.
its seems that the instance data does poplulate on both IE 6 and IE 7. 

I am using the folllowing version of IE on Windows XP:
IE 6: Version 6.0.2900.2180.xpsp_sp2_gdr.070227-2554 
IE 7: Version 7.05.5730.11

Since IE 6 and IE 7 can't be install on the same machine, I am actually using a 
Internet Explorer Application Compatibility VPC Image for IE 6 distributed by 
Microsoft. You can get it from the following link:
http://www.microsoft.com/downloads/details.aspx?FamilyId=21EABB90-958F-4B64-B5F1
-
73D0A413C8EF&displaylang=en

It is a different story for Firefox, I am able to reproduce this problem on 
both FF2 
and FF3.
I am using the folllowing version of FF on Windows XP:
FF3: version 3.0.1
FF2: version 2.0.14

I did some testing and poke around with the code and figure out that both 
Firefox 2 
& 3 change the data instance when it is being extracted from the DOM tree via 
innerHTML. 
In IE the innerHTML returned exactly what is in the original HTML page; but in 
Firefox innerHTML actually returned all the tagName in lowercase. Since the 
data 
instance for the loan form contains mix cases XML tag, all the tag is changed 
to 
lowercase and all the xpath ref become incorrect since the are all mix cases.

To see how Firefox alters the tagName to lowercase; In file Instance.js simply 
add 
an alert to display the contnet of variable sXML in the 
"Instance.prototype.parseInstance" method.

I have tried to see whether the Firefox's XMLSerializer can be used to 
serilaize the 
instance to it's original form but unfortunately XMLSerializer actually changes 
everything in to UPPERCASE!

I can't seem to find any function or methods call which could produce the data 
instance in it's original form after it is parsed by the Firefox HTML praser.
Anyone has suggestion to method/function call that might do that? 
Or maybe we need to implement a DOM tree walker to serialier the data instcnase 
back 
to it's original form?

Original comment by nkling on 8 Aug 2008 at 11:40

GoogleCodeExporter commented 8 years ago
Yes...unfortunately this is what Paul was referring to on the call last week.

One workaround would be to use external instance data. Another, that Paul has 
just mentioned to me, would 
be to have a 'case-insensitive XPath' switch, that allows XPath expressions to 
run in a 'case-insensitive' mode.

This is probably the best solution in the short-term, although to get the loan 
form working really quickly, we 
should change everything to lower case (both instances and XPath expressions).

By the way, please don't change the iteration numbers on issues. Thanks. :)

Original comment by mark.bir...@gmail.com on 11 Aug 2008 at 4:13