Class IndentCheckSaxHandler

  • All Implemented Interfaces:
    org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler

    public class IndentCheckSaxHandler
    extends org.xml.sax.helpers.DefaultHandler
    A DefaultHandler implementation that detects formatting violations and reports them to the supplied XmlFormatViolationHandler.
    • Field Detail

      • charBuffer

        private final java.lang.StringBuilder charBuffer
      • charLineNumber

        private int charLineNumber
      • file

        private final java.io.File file
        The file being checked
      • indentSize

        private final int indentSize
        The number of spaces for indentation
      • locator

        private org.xml.sax.Locator locator
        The locator set by SAXParser
    • Constructor Detail

      • IndentCheckSaxHandler

        public IndentCheckSaxHandler​(java.io.File file,
                                     int indentSize,
                                     XmlFormatViolationHandler violationHandler)
    • Method Detail

      • characters

        public void characters​(char[] ch,
                               int start,
                               int length)
                        throws org.xml.sax.SAXException
        Stores the passed characters into a character buffer.
        Specified by:
        characters in interface org.xml.sax.ContentHandler
        Overrides:
        characters in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
        See Also:
        DefaultHandler.characters(char[], int, int)
      • endElement

        public void endElement​(java.lang.String uri,
                               java.lang.String localName,
                               java.lang.String qName)
                        throws org.xml.sax.SAXException
        Checks indentation for an end element.
        Specified by:
        endElement in interface org.xml.sax.ContentHandler
        Overrides:
        endElement in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
        See Also:
        DefaultHandler.startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)
      • ignorableWhitespace

        public void ignorableWhitespace​(char[] chars,
                                        int start,
                                        int length)
                                 throws org.xml.sax.SAXException
        Just delegates to characters(char[], int, int), since this method is not called in all situations where it could be naively expected.
        Specified by:
        ignorableWhitespace in interface org.xml.sax.ContentHandler
        Overrides:
        ignorableWhitespace in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
        See Also:
        DefaultHandler.ignorableWhitespace(char[], int, int)
      • resolveEntity

        public org.xml.sax.InputSource resolveEntity​(java.lang.String publicId,
                                                     java.lang.String systemId)
                                              throws org.xml.sax.SAXException,
                                                     java.io.IOException
        Always returns an empty InputSource to avoid loading of any DTDs.
        Specified by:
        resolveEntity in interface org.xml.sax.EntityResolver
        Overrides:
        resolveEntity in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
        java.io.IOException
        See Also:
        DefaultHandler.resolveEntity(java.lang.String, java.lang.String)
      • setDocumentLocator

        public void setDocumentLocator​(org.xml.sax.Locator locator)
        Specified by:
        setDocumentLocator in interface org.xml.sax.ContentHandler
        Overrides:
        setDocumentLocator in class org.xml.sax.helpers.DefaultHandler
        See Also:
        DefaultHandler.setDocumentLocator(org.xml.sax.Locator)
      • startElement

        public void startElement​(java.lang.String uri,
                                 java.lang.String localName,
                                 java.lang.String qName,
                                 org.xml.sax.Attributes attributes)
                          throws org.xml.sax.SAXException
        Checks indentation for a start element.
        Specified by:
        startElement in interface org.xml.sax.ContentHandler
        Overrides:
        startElement in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
        See Also:
        DefaultHandler.startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)