@Override
        public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
            if ( "tag".equals(qName) ) {
                String name = attributes.getValue("name");
                String content = attributes.getValue("content");
                String section = attributes.getValue("section");
                String deprecated = attributes.getValue("deprecated");
                String unique = attributes.getValue("unique");
                String ignorePermitted = attributes.getValue("ignore-permitted");
                ContentType contentType = ContentType.toValue(content);
                BelongsTo belongsTo = BelongsTo.toValue(section);
                tagInfo = new TagInfo(name, contentType,
                                      belongsTo,
                                      deprecated != null && "true".equals(deprecated),
                                      unique != null && "true".equals(unique),
                                      ignorePermitted != null && "true".equals(ignorePermitted), CloseTag.required, Display.any );
                if (generateCode) {
                    String s = "tagInfo = new TagInfo(\"#1\", #2, #3, #4, #5, #6);";
                    s = s.replaceAll("#1", name);
                    s = s.replaceAll("#2", ContentType.class.getCanonicalName()+"."+contentType.name());
                    s = s.replaceAll("#3", BelongsTo.class.getCanonicalName()+"."+belongsTo.name());
                    s = s.replaceAll("#4", Boolean.toString(deprecated != null && "true".equals(deprecated)));
                    s = s.replaceAll("#5", Boolean.toString(unique != null && "true".equals(unique)));
                    s = s.replaceAll("#6", Boolean.toString(ignorePermitted != null && "true".equals(ignorePermitted)));
                    System.out.println(s);
                }
            } else if ( !"tags".equals(qName) ) {
                dependencyName = qName;
            }
        }