xlawrence 2005/08/18 15:31:48 CEST
Modified files:
core/src/java/org/jahia/services/htmlparser WAIValidator.java
Log:
fix for bug (JAHIA-364)
Revision Changes Path
1.8 +25 -10
jahia/core/src/java/org/jahia/services/htmlparser/WAIValidator.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/htmlparser/WAIValidator.java.diff?r1=1.7&r2=1.8&f=h
Index: WAIValidator.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/htmlparser/WAIValidator.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- WAIValidator.java 11 Aug 2005 14:29:39 -0000 1.7
+++ WAIValidator.java 18 Aug 2005 13:31:48 -0000 1.8
@@ -68,6 +68,7 @@
import org.apache.html.dom.HTMLTableRowElementImpl;
import org.apache.html.dom.HTMLLabelElementImpl;
import org.apache.html.dom.HTMLInputElementImpl;
+import org.apache.html.dom.HTMLTableSectionElementImpl;
import java.util.List;
import java.util.ArrayList;
@@ -506,24 +507,38 @@
// Criteria 5.3
Node header = node.getFirstChild();
- while (header != null &&
- header.getClass() != HTMLTableRowElementImpl.class) {
- header = header.getNextSibling();
+
+ if ( header.getClass() != HTMLTableRowElementImpl.class) {
+ while (header != null &&
+ header.getClass() != HTMLTableRowElementImpl.class) {
+
+ if (header.getClass() == HTMLTableSectionElementImpl.class) {
+ if ("tbody".equals(header.getNodeName().toLowerCase())) {
+ header = header.getFirstChild();
+ break;
+ }
+ }
+
+ header = header.getNextSibling();
+ }
}
-
- header = node.getFirstChild();
-
- // get the first row
- while (! "tr".equals(header.getNodeName().toLowerCase())) {
- header = header.getNextSibling();
+
+ if (header == null) {
+ logger.debug("No table data, returning...");
+ return errors;
}
-
+
+ // get the first cell
+ logger.debug("Header: " + header.getNodeName());
header = header.getFirstChild();
final ArrayList ids = new ArrayList();
int scopes = 0;
while (header != null) {
+
+ logger.debug("Header in loop: " + header.getNodeName());
+
if (! "th".equals(header.getNodeName().toLowerCase())) {
final ValidationError ve = new ValidationError(this,
"The first row of a 'table' element should contain
'th' elements only",