XMLC or Tidy DOM Bug

"Aaron M. Folmsbee" <[email protected]> Fri, 17 Feb 2006 18:53:35 -0800
Newsgroups gmane.comp.java.enhydra.barracuda.general
Message-ID <[email protected]>
This is a cryptographically signed message in MIME format.

--------------ms090306010305040206020506
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

  (The previous message may have been 'eaten' by the list, possibly as a 
result of text/html. This email should be text only.)

I've come across an insidious bug with either XMLC or tidy. It is 
unclear which.

Given the following HTML:

<html>
<body>
<table>
  <tr>
    <td>
      <input type="hidden" name="xxxx" value="xxx">
    </td>
  </tr>
</table>

<div id="sibling">
Sibling to table.
</div>

</body>
<html>

Compiling with XMLC properly results in the following DOM tree:

[xmlc] DOM hierarchy:
[xmlc]     LazyHTMLDocument%[T]:
[xmlc]         HTMLHtmlElementImpl: HTML
[xmlc]             HTMLHeadElementImpl: HEAD
[xmlc]                 HTMLTitleElementImpl: TITLE
[xmlc]             HTMLBodyElementImpl: BODY
[xmlc]                 HTMLTableElementImpl: TABLE
[xmlc]                     HTMLTableRowElementImpl: TR
[xmlc]                         HTMLTableCellElementImpl: TD
[xmlc]                             HTMLInputElementImpl: INPUT: 
name="xxxx" type="hidden" value="xxx"
[xmlc]                             LazyText:
[xmlc]                 HTMLDivElementImpl: DIV: id="sibling"
[xmlc]                     LazyText: Sibling to table.


If you add a '/' to the input element <input type="hidden" ... />, the 
DOM will be incorrect, with what should be sibling elements ending up as 
child elements of the table:

[xmlc] DOM hierarchy:
[xmlc]     LazyHTMLDocument%[T]:
[xmlc]         HTMLHtmlElementImpl: HTML
[xmlc]             HTMLHeadElementImpl: HEAD
[xmlc]                 HTMLTitleElementImpl: TITLE
[xmlc]             HTMLBodyElementImpl: BODY
[xmlc]                 HTMLTableElementImpl: TABLE
[xmlc]                     HTMLTableRowElementImpl: TR
[xmlc]                         HTMLTableCellElementImpl: TD
[xmlc]                             HTMLInputElementImpl: INPUT: 
name="xxxx" type="hidden" value="xxx"
[xmlc]                                 LazyText:
[xmlc]                     HTMLDivElementImpl: DIV: id="sibling"
[xmlc]                         LazyText: Sibling to table.

Note that the sibling DIV element is now a child of the table element.

Using either <input> or <input></input> works, but <input/> will cause 
the problem.

The result is that when rendering, elements that should have been 
sibling (same level) as the table will be added to the table as new rows.

I don't believe the <input/> syntax is in any way invalid, so this seems 
to be a bug.

The command line version of tidy doesn't seem to care which way the 
input element is terminated...







--------------ms090306010305040206020506
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEH
AQAAoIIQHDCCBSowggSToAMCAQICBAIAApowDQYJKoZIhvcNAQEFBQAwdTEL
MAkGA1UEBhMCVVMxGDAWBgNVBAoTD0dURSBDb3Jwb3JhdGlvbjEnMCUGA1UE
CxMeR1RFIEN5YmVyVHJ1c3QgU29sdXRpb25zLCBJbmMuMSMwIQYDVQQDExpH
VEUgQ3liZXJUcnVzdCBHbG9iYWwgUm9vdDAeFw0wMjA4MjcxOTAyMDBaFw0x
MjA4MjcyMzU5MDBaMIHcMQswCQYDVQQGEwJHQjEXMBUGA1UEChMOQ29tb2Rv
IExpbWl0ZWQxHTAbBgNVBAsTFENvbW9kbyBUcnVzdCBOZXR3b3JrMUYwRAYD
VQQLEz1UZXJtcyBhbmQgQ29uZGl0aW9ucyBvZiB1c2U6IGh0dHA6Ly93d3cu
Y29tb2RvLm5ldC9yZXBvc2l0b3J5MR8wHQYDVQQLExYoYykyMDAyIENvbW9k
byBMaW1pdGVkMSwwKgYDVQQDEyNDb21vZG8gQ2xhc3MgMyBTZWN1cml0eSBT
ZXJ2aWNlcyBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPIM
ts+HhOoKcRRSLehXXElSOs/D8EJtYvL+puk+PHhkAw4gfmtraYeJVDgF9NrH
BUAFGHd+/GuLDhyigsyshZs56ctLSBhIayjkwtFbrgOpfpgvTBNx37ApDE6q
pjcmOLnQRFKCkD5wSNZ6mwkHvJTk9FUs8rcqvhyRHGqLg001bBDhc9oh2WLY
8Rmw8ecgjbWXRyNLaoE1G69I4DaokExNTOz1iM7GsdAv/3mQAdhRZOcvsQiN
Xc+t+rKAlqusi7VMtHTCRxPt6CMx9Cq5YRu9zqRbNzG95Zyc+7IP18U7v8xa
qw/IhkCJIqaQINOzbL4S8+MgLLvBrkNa2hZ26B8CAwEAAaOCAdkwggHVMEUG
A1UdHwQ+MDwwOqA4oDaGNGh0dHA6Ly93d3cucHVibGljLXRydXN0LmNvbS9j
Z2ktYmluL0NSTC8yMDE4L2NkcC5jcmwwHQYDVR0OBBYEFDbg6HxtnUWR7pnl
QnZNcLNQMKxeMIGSBgNVHSAEgYowgYcwSQYKKoZIhvhjAQIBBTA7MDkGCCsG
AQUFBwIBFi1odHRwOi8vd3d3LnB1YmxpYy10cnVzdC5jb20vQ1BTL09tbmlS
b290Lmh0bWwwOgYMKwYBBAGyMQECAQMBMCowKAYIKwYBBQUHAgEWHGh0dHBz
Oi8vc2VjdXJlLmNvbW9kby5uZXQvQ1AwgYkGA1UdIwSBgTB/oXmkdzB1MQsw
CQYDVQQGEwJVUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQL
Ex5HVEUgQ3liZXJUcnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdU
RSBDeWJlclRydXN0IEdsb2JhbCBSb290ggIBpTArBgNVHRAEJDAigA8yMDAy
MDgyNzE5MDIyNFqBDzIwMDkwODI3MjM1OTAwWjAOBgNVHQ8BAf8EBAMCAeYw
DwYDVR0TBAgwBgEB/wIBADANBgkqhkiG9w0BAQUFAAOBgQA6HiRv2ts2bP46
czndzWocaaEAH2/UrtUf1IgppSHCV/ZVezDn0mTWDsSqcDx2dOIqrsdGZzKS
yUvxp9fgVrz2chCdf7B11p1XtXGFqsQ6p0u47A/m0vj/tc3URSWs6ganirXN
MiLkIZIb7840rjBEGu6bf/CUEYaKhxkBKDrPszCCBXMwggRboAMCAQICEHg7
s7MUzEd/ZrfsHdab4JYwDQYJKoZIhvcNAQEFBQAwgdwxCzAJBgNVBAYTAkdC
MRcwFQYDVQQKEw5Db21vZG8gTGltaXRlZDEdMBsGA1UECxMUQ29tb2RvIFRy
dXN0IE5ldHdvcmsxRjBEBgNVBAsTPVRlcm1zIGFuZCBDb25kaXRpb25zIG9m
IHVzZTogaHR0cDovL3d3dy5jb21vZG8ubmV0L3JlcG9zaXRvcnkxHzAdBgNV
BAsTFihjKTIwMDIgQ29tb2RvIExpbWl0ZWQxLDAqBgNVBAMTI0NvbW9kbyBD
bGFzcyAzIFNlY3VyaXR5IFNlcnZpY2VzIENBMB4XDTA1MDkwMTAwMDAwMFoX
DTA2MDkwMTIzNTk1OVowgdwxNTAzBgNVBAsTLENvbW9kbyBUcnVzdCBOZXR3
b3JrIC0gUEVSU09OQSBOT1QgVkFMSURBVEVEMUYwRAYDVQQLEz1UZXJtcyBh
bmQgQ29uZGl0aW9ucyBvZiB1c2U6IGh0dHA6Ly93d3cuY29tb2RvLm5ldC9y
ZXBvc2l0b3J5MR8wHQYDVQQLExYoYykyMDAzIENvbW9kbyBMaW1pdGVkMRcw
FQYDVQQDEw5BYXJvbiBGb2xtc2JlZTEhMB8GCSqGSIb3DQEJARYSYWFyb25A
Zm9sbXNiZWUuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDVVpV/
4FGA8Vn/gwqa34/8BVlguLbnfwv3gbWvlOUDxz8a5vkDMM+tZM8L+7CNP9rk
2zOcwHMSM8x9twnexLzqnqmd4wug9A7EoaWLJ7b+1XZYrqhlVw6c5Te4fcGP
AKZ5qzJnpouTrflkywbFjH96SuYy4YTBkKYHZVMZSt5AeQIDAQABo4IBsTCC
Aa0wHwYDVR0jBBgwFoAUNuDofG2dRZHumeVCdk1ws1AwrF4wHQYDVR0OBBYE
FNmjYZDisnf96BBdDH7pJEsAFXBcMA4GA1UdDwEB/wQEAwIFoDAMBgNVHRMB
Af8EAjAAMCAGA1UdJQQZMBcGCCsGAQUFBwMEBgsrBgEEAbIxAQMFAjARBglg
hkgBhvhCAQEEBAMCBSAwRgYDVR0gBD8wPTA7BgwrBgEEAbIxAQIBAQEwKzAp
BggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLm5ldC9DUFMwgbAG
A1UdHwSBqDCBpTA4oDagNIYyaHR0cDovL2NybC5jb21vZG8ubmV0L0NsYXNz
M1NlY3VyaXR5U2VydmljZXNfMy5jcmwwOqA4oDaGNGh0dHA6Ly9jcmwuY29t
b2RvY2EuY29tL0NsYXNzM1NlY3VyaXR5U2VydmljZXNfMy5jcmwwLaAroCmB
J0NsYXNzM1NlY3VyaXR5U2VydmljZXNfM0BjcmwuY29tb2RvLm5ldDAdBgNV
HREEFjAUgRJhYXJvbkBmb2xtc2JlZS5jb20wDQYJKoZIhvcNAQEFBQADggEB
AOOQ+iNPhdcrlTg5XCIb4aG80NdXkikf2iW3Ha0eT/1EGGlbWOi+C255sZ++
wSHQ2ZsVBFKIzi/tIppqW5pewYN41sVoOB56ZwykVbA79W43RvVo1tnz8RG7
iOXAMHmKNJvZlGQM7iitwLi+f09OUVlYP4pOPJx20p7BjPRQkRmPOF6tIlWp
N384nXcl6eWnxY7MaBGS92tVUw0qHOzaOyvgkF3n8ReGqLOFU1I0HO3+1q/0
+ZfUxyA0LcOEIOxPr66BfRjv+6LpgHy4AdMypZtBJdlS3s1XLlhfLyQ7VGSH
Lcq8HAXJ3AGx3OD2ZW/TGykp3HZUWYYJaPi4Pd8gn8YwggVzMIIEW6ADAgEC
AhB4O7OzFMxHf2a37B3Wm+CWMA0GCSqGSIb3DQEBBQUAMIHcMQswCQYDVQQG
EwJHQjEXMBUGA1UEChMOQ29tb2RvIExpbWl0ZWQxHTAbBgNVBAsTFENvbW9k
byBUcnVzdCBOZXR3b3JrMUYwRAYDVQQLEz1UZXJtcyBhbmQgQ29uZGl0aW9u
cyBvZiB1c2U6IGh0dHA6Ly93d3cuY29tb2RvLm5ldC9yZXBvc2l0b3J5MR8w
HQYDVQQLExYoYykyMDAyIENvbW9kbyBMaW1pdGVkMSwwKgYDVQQDEyNDb21v
ZG8gQ2xhc3MgMyBTZWN1cml0eSBTZXJ2aWNlcyBDQTAeFw0wNTA5MDEwMDAw
MDBaFw0wNjA5MDEyMzU5NTlaMIHcMTUwMwYDVQQLEyxDb21vZG8gVHJ1c3Qg
TmV0d29yayAtIFBFUlNPTkEgTk9UIFZBTElEQVRFRDFGMEQGA1UECxM9VGVy
bXMgYW5kIENvbmRpdGlvbnMgb2YgdXNlOiBodHRwOi8vd3d3LmNvbW9kby5u
ZXQvcmVwb3NpdG9yeTEfMB0GA1UECxMWKGMpMjAwMyBDb21vZG8gTGltaXRl
ZDEXMBUGA1UEAxMOQWFyb24gRm9sbXNiZWUxITAfBgkqhkiG9w0BCQEWEmFh
cm9uQGZvbG1zYmVlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
1VaVf+BRgPFZ/4MKmt+P/AVZYLi2538L94G1r5TlA8c/Gub5AzDPrWTPC/uw
jT/a5NsznMBzEjPMfbcJ3sS86p6pneMLoPQOxKGliye2/tV2WK6oZVcOnOU3
uH3BjwCmeasyZ6aLk635ZMsGxYx/ekrmMuGEwZCmB2VTGUreQHkCAwEAAaOC
AbEwggGtMB8GA1UdIwQYMBaAFDbg6HxtnUWR7pnlQnZNcLNQMKxeMB0GA1Ud
DgQWBBTZo2GQ4rJ3/egQXQx+6SRLABVwXDAOBgNVHQ8BAf8EBAMCBaAwDAYD
VR0TAQH/BAIwADAgBgNVHSUEGTAXBggrBgEFBQcDBAYLKwYBBAGyMQEDBQIw
EQYJYIZIAYb4QgEBBAQDAgUgMEYGA1UdIAQ/MD0wOwYMKwYBBAGyMQECAQEB
MCswKQYIKwYBBQUHAgEWHWh0dHBzOi8vc2VjdXJlLmNvbW9kby5uZXQvQ1BT
MIGwBgNVHR8EgagwgaUwOKA2oDSGMmh0dHA6Ly9jcmwuY29tb2RvLm5ldC9D
bGFzczNTZWN1cml0eVNlcnZpY2VzXzMuY3JsMDqgOKA2hjRodHRwOi8vY3Js
LmNvbW9kb2NhLmNvbS9DbGFzczNTZWN1cml0eVNlcnZpY2VzXzMuY3JsMC2g
K6ApgSdDbGFzczNTZWN1cml0eVNlcnZpY2VzXzNAY3JsLmNvbW9kby5uZXQw
HQYDVR0RBBYwFIESYWFyb25AZm9sbXNiZWUuY29tMA0GCSqGSIb3DQEBBQUA
A4IBAQDjkPojT4XXK5U4OVwiG+GhvNDXV5IpH9oltx2tHk/9RBhpW1jovgtu
ebGfvsEh0NmbFQRSiM4v7SKaaluaXsGDeNbFaDgeemcMpFWwO/VuN0b1aNbZ
8/ERu4jlwDB5ijSb2ZRkDO4orcC4vn9PTlFZWD+KTjycdtKewYz0UJEZjzhe
rSJVqTd/OJ13Jenlp8WOzGgRkvdrVVMNKhzs2jsr4JBd5/EXhqizhVNSNBzt
/tav9PmX1McgNC3DhCDsT6+ugX0Y7/ui6YB8uAHTMqWbQSXZUt7NVy5YXy8k
O1Rkhy3KvBwFydwBsdzg9mVv0xspKdx2VFmGCWj4uD3fIJ/GMYIEWzCCBFcC
AQEwgfEwgdwxCzAJBgNVBAYTAkdCMRcwFQYDVQQKEw5Db21vZG8gTGltaXRl
ZDEdMBsGA1UECxMUQ29tb2RvIFRydXN0IE5ldHdvcmsxRjBEBgNVBAsTPVRl
cm1zIGFuZCBDb25kaXRpb25zIG9mIHVzZTogaHR0cDovL3d3dy5jb21vZG8u
bmV0L3JlcG9zaXRvcnkxHzAdBgNVBAsTFihjKTIwMDIgQ29tb2RvIExpbWl0
ZWQxLDAqBgNVBAMTI0NvbW9kbyBDbGFzcyAzIFNlY3VyaXR5IFNlcnZpY2Vz
IENBAhB4O7OzFMxHf2a37B3Wm+CWMAkGBSsOAwIaBQCgggK/MBgGCSqGSIb3
DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTA2MDIxODAyNTMz
NVowIwYJKoZIhvcNAQkEMRYEFK96Y5P3UM0vFr8A06gIqtoqjtBCMFIGCSqG
SIb3DQEJDzFFMEMwCgYIKoZIhvcNAwcwDgYIKoZIhvcNAwICAgCAMA0GCCqG
SIb3DQMCAgFAMAcGBSsOAwIHMA0GCCqGSIb3DQMCAgEoMIIBAgYJKwYBBAGC
NxAEMYH0MIHxMIHcMQswCQYDVQQGEwJHQjEXMBUGA1UEChMOQ29tb2RvIExp
bWl0ZWQxHTAbBgNVBAsTFENvbW9kbyBUcnVzdCBOZXR3b3JrMUYwRAYDVQQL
Ez1UZXJtcyBhbmQgQ29uZGl0aW9ucyBvZiB1c2U6IGh0dHA6Ly93d3cuY29t
b2RvLm5ldC9yZXBvc2l0b3J5MR8wHQYDVQQLExYoYykyMDAyIENvbW9kbyBM
aW1pdGVkMSwwKgYDVQQDEyNDb21vZG8gQ2xhc3MgMyBTZWN1cml0eSBTZXJ2
aWNlcyBDQQIQeDuzsxTMR39mt+wd1pvgljCCAQQGCyqGSIb3DQEJEAILMYH0
oIHxMIHcMQswCQYDVQQGEwJHQjEXMBUGA1UEChMOQ29tb2RvIExpbWl0ZWQx
HTAbBgNVBAsTFENvbW9kbyBUcnVzdCBOZXR3b3JrMUYwRAYDVQQLEz1UZXJt
cyBhbmQgQ29uZGl0aW9ucyBvZiB1c2U6IGh0dHA6Ly93d3cuY29tb2RvLm5l
dC9yZXBvc2l0b3J5MR8wHQYDVQQLExYoYykyMDAyIENvbW9kbyBMaW1pdGVk
MSwwKgYDVQQDEyNDb21vZG8gQ2xhc3MgMyBTZWN1cml0eSBTZXJ2aWNlcyBD
QQIQeDuzsxTMR39mt+wd1pvgljANBgkqhkiG9w0BAQEFAASBgHo4Tj+rhxiY
Jl8Vr9A4yuod2YxM/+Ci9MAEwu0zzNLc75pxx6b3VsF60IeEy/j1Zx3EdzQc
yJBhlBWuTVs7GFIR2fARhH8bSMpBWEXpmqLOf9htLSGJGsUK0suzDXnFXQ2q
IvQnLPDz94Zq2OkusrNibzyf8TUuIZSRlpt7HGwmAAAAAAAA

--------------ms090306010305040206020506
Content-Type: text/plain; name="message-footer.txt"
Content-Disposition: inline; filename="message-footer.txt"
Content-Transfer-Encoding: 8bit



--

Barracuda mailing list

[email protected]

http://www.objectweb.org/wws/lists/projects/barracuda


--------------ms090306010305040206020506--