@Override
    public void endElement(final String uri, final String localName, final String qName) throws SAXException {

        LOG.trace("endElement uri={} localName={} qName={}", uri, localName, qName);
        if (this.isNotInkstandNamespace(uri)) {
            return;
        }
        switch (localName) {
            case "rootNode":
                LOG.debug("Closing rootNode");
                this.nodeStack.pop();
                break;
            case "node":
                LOG.debug("Closing node");
                this.nodeStack.pop();
                break;
            case "mixin":
                LOG.debug("Closing mixin");
                break;
            case "property":
                this.endElementProperty();
                break;
            default:
                break;
        }
    }
@ Override public void endElement ( final String uri , final String localName , final String qName ) throws SAXException { LOG . trace ( "endElement uri={} localName={} qName={}" , uri , localName , qName ) ; if ( this . isNotInkstandNamespace ( uri ) ) { return ; } switch ( localName ) { case "rootNode" : LOG . debug ( "Closing rootNode" ) ; this . nodeStack . pop ( ) ; break ; case "node" : LOG . debug ( "Closing node" ) ; this . nodeStack . pop ( ) ; break ; case "mixin" : LOG . debug ( "Closing mixin" ) ; break ; case "property" : this . endElementProperty ( ) ; break ; default : break ; } }
Depending on the element, which has to be in the correct namespace, the method adds a property to the node or
removes completed nodes from the node stack.