001 package nu.validator.xml;
002
003 import org.xml.sax.Attributes;
004 import org.xml.sax.SAXException;
005 import org.xml.sax.XMLReader;
006 import org.xml.sax.helpers.AttributesImpl;
007 import org.xml.sax.helpers.XMLFilterImpl;
008
009 public class XhtmlIdFilter extends XMLFilterImpl {
010
011 public XhtmlIdFilter() {
012 super();
013 }
014
015 public XhtmlIdFilter(XMLReader parent) {
016 super(parent);
017 }
018
019 /**
020 * @see org.xml.sax.helpers.XMLFilterImpl#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)
021 */
022 public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException {
023 if ("http://www.w3.org/1999/xhtml".equals(uri)) {
024 int index = atts.getIndex("", "id");
025 if (index != -1 && !"ID".equals(atts.getType(index))) {
026 AttributesImpl ai = new AttributesImpl(atts);
027 ai.setType(index, "ID");
028 super.startElement(uri, localName, qName, ai);
029 } else {
030 super.startElement(uri, localName, qName, atts);
031 }
032 } else {
033 super.startElement(uri, localName, qName, atts);
034 }
035 }
036 }