private void checkId(String name, String value) throws SAXException {
        if ("".equals(value)) {
            super.error(new SAXParseException("Attribute \u201C" + name + "\u201D had the empty string as the value but the empty string cannot be used as an ID.", locator));            
            return;
        }
        Locator first = ids.get(value);
        if (first == null) {
            ids.put(value, new LocatorImpl(locator));
        } else {
            super.error(new SAXParseException("Attribute \u201C" + name + "\u201D declares a duplicate ID value \u201C" + value + "\u201D.", locator));
            super.warning(new SAXParseException("The first occurrence of the ID value \u201C" + value + "\u201D was here.", first));
        }
    }
@see org.xml.sax.helpers.XMLFilterImpl#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)
src/nu/validator/xml/IdFilter.java