Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (c) 2008 Mozilla Foundation
   *
   * Permission is hereby granted, free of charge, to any person obtaining a 
   * copy of this software and associated documentation files (the "Software"), 
   * to deal in the Software without restriction, including without limitation 
   * the rights to use, copy, modify, merge, publish, distribute, sublicense, 
   * and/or sell copies of the Software, and to permit persons to whom the 
   * Software is furnished to do so, subject to the following conditions:
  *
  * The above copyright notice and this permission notice shall be included in 
  * all copies or substantial portions of the Software.
  *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
  * DEALINGS IN THE SOFTWARE.
  */
 
 package nu.validator.xml.langattributes;
 
 
 
 
     private final ContentHandler delegate;
     
     private final ErrorHandler errorHandler;
     
     private Locator locator = null;

    

Parameters:
delegate
 
     public XmlLangAttributeDroppingContentHandlerWrapper(ContentHandler delegateErrorHandler errorHandler) {
         this. = delegate;
         this. = errorHandler;
     }
    
    
 
     public void characters(char[] arg0int arg1int arg2throws SAXException {
         .characters(arg0arg1arg2);
     }

    
 
     public void endDocument() throws SAXException {
         .endDocument();
     }

    
 
     public void endElement(String arg0String arg1String arg2)
             throws SAXException {
         .endElement(arg0arg1arg2);
     }

    
 
     public void endPrefixMapping(String arg0throws SAXException {
         .endPrefixMapping(arg0);
     }

    
 
     public void ignorableWhitespace(char[] arg0int arg1int arg2)
             throws SAXException {
         .ignorableWhitespace(arg0arg1arg2);
    }

    
    public void processingInstruction(String arg0String arg1)
            throws SAXException {
        .processingInstruction(arg0arg1);
    }

    
    public void setDocumentLocator(Locator arg0) {
         = arg0;
        .setDocumentLocator(arg0);
    }

    
    public void skippedEntity(String arg0throws SAXException {
        .skippedEntity(arg0);
    }

    
    public void startDocument() throws SAXException {
        .startDocument();
    }

    
    public void startElement(String nsString arg1String arg2,
            Attributes attributesthrows SAXException {
        if ("http://www.w3.org/1999/xhtml" == ns) {
            .startElement(nsarg1arg2filterAttributes(attributes));            
        } else {
            .startElement(nsarg1arg2attributes);
        }
    }
    private static boolean equalsIgnoreAsciiCase(String one,
            String other) {
        if (other == null) {
            return one == null;
        }
        if (one.length() != other.length()) {
            return false;
        }
        for (int i = 0; i < one.length(); i++) {
            char c0 = one.charAt(i);
            char c1 = other.charAt(i);
            if (c0 >= 'A' && c0 <= 'Z') {
                c0 += 0x20;
            }
            if (c1 >= 'A' && c1 <= 'Z') {
                c1 += 0x20;
            }
            if (c0 != c1) {
                return false;
            }
        }
        return true;
    }
    
    private Attributes filterAttributes(Attributes attributesthrows SAXException {
        int len = attributes.getLength();
        String langValue = null;
        for (int i = 0; i < leni++) {
            String local = attributes.getLocalName(i);
            String uri = attributes.getURI(i);
            if (local == "lang" && uri == "http://www.w3.org/XML/1998/namespace") {
                langValue = attributes.getValue(i);
            } else if (local == "xml:lang" && uri == "") {
                String xmlLangValue = attributes.getValue(i);
                AttributesImpl attributesImpl = new AttributesImpl();
                for (int j = 0; j < ij++) {
                    attributesImpl.addAttribute(attributes.getURI(j), attributes.getLocalName(j), attributes.getQName(j), attributes.getType(j), attributes.getValue(j));
                }
                for (int k = i + 1; k < lenk++) {
                    uri = attributes.getURI(k);
                    local = attributes.getLocalName(k);
                    if (local == "lang" && uri == "http://www.w3.org/XML/1998/namespace") {
                        langValue = attributes.getValue(k);
                    }
                    attributesImpl.addAttribute(urilocalattributes.getQName(k), attributes.getType(k), attributes.getValue(k));                        
                }
                if ( != null && !equalsIgnoreAsciiCase(xmlLangValuelangValue)) {
                    .error(new SAXParseException("When the attribute \u201Cxml:lang\u201D in no namespace is specified, the element must also have the attribute \u201Clang\u201D present with the same value."));
                }
                return attributesImpl;
            }
        }
        return attributes;
    }

    
    public void startPrefixMapping(String arg0String arg1)
            throws SAXException {
        .startPrefixMapping(arg0arg1);
    }
    
    
New to GrepCode? Check out our FAQ X