001    /*
002     * To change this template, choose Tools | Templates
003     * and open the template in the editor.
004     */
005    
006    package org.util.xml.parse.policy;
007    
008    import org.util.xml.element.Element;
009    
010    /**
011     *
012     * @author masaru
013     */
014    public interface ParserPolicy {
015    
016            /**
017             * Throw exception if document has error.
018             * In case this method returns false, if there are errors, skip some texts and continue parsing.
019             */
020            public boolean throwExceptionIfDocumentHasError();
021            
022            /**
023             * if true, check open tag key and close tag key. 
024             */
025            public boolean checkEndTag();
026    
027            /**
028             * if encoding cannot be detected by first line of document, this method will be called.
029             * while returned null, this method will be called every time that tag detected.
030             */
031            public String selectEncoding(String last_tag_key);
032    
033            /**
034             * Basicly, all the tag must open and close.
035             * But if this method return true, opentag will be considerd to empty tag. So end tag will disregarded. 
036             */
037            public boolean forceEmptyTag(String key);
038    
039            //public boolean allowTagSize();
040    
041            /**
042             * return handler that handle this element
043             */
044            public ParserPolicy getInnerPolicy(Element element);
045    
046            /**
047             * called when element is detected.
048             */
049            public Element allowElement(Element element);
050    }