public void endDocument() throws SAXException { outputFirstElementIfNeeded(); // Output global properties if (properties.size() > 0) { final AttributesImpl newAttributes = new AttributesImpl(); for (final Map.Entry<String, String> currentEntry : properties.entrySet()) { final String propertyName = currentEntry.getKey(); newAttributes.addAttribute( XFormsConstants.XXFORMS_NAMESPACE_URI, propertyName, "xxforms:" + propertyName, ContentHandlerHelper.CDATA, currentEntry.getValue()); } super.startPrefixMapping("xxforms", XFormsConstants.XXFORMS_NAMESPACE_URI); super.startElement("", "properties", "properties", newAttributes); super.endElement("", "properties", "properties"); super.endPrefixMapping("xxforms"); } super.endElement("", "static-state", "static-state"); super.endDocument(); }
public void endElement(String uri, String localname, String qName) throws SAXException { level--; // Check for XForms or extension namespaces // final boolean isXForms = XFormsConstants.XFORMS_NAMESPACE_URI.equals(uri); // final boolean isXXForms = XFormsConstants.XXFORMS_NAMESPACE_URI.equals(uri); // final boolean isEXForms = XFormsConstants.EXFORMS_NAMESPACE_URI.equals(uri); // final boolean isXBL = XFormsConstants.XBL_NAMESPACE_URI.equals(uri); final boolean isXHTML = XMLConstants.XHTML_NAMESPACE_URI.equals(uri); // final boolean isXFormsOrExtension = isXForms || isXXForms || isEXForms || isXBL; final boolean isXFormsOrExtension = !isXHTML && !"".equals(uri); // TODO: how else can we handle components? if (level > 0 || !ignoreRootElement) { // We are within preserved content or we output regular XForms content if (inXFormsOrExtension && (inPreserve || isXFormsOrExtension)) { super.endElement(uri, localname, qName); } if (inPreserve && level == preserveLevel) { // Leaving preserved content inPreserve = false; } if (inXFormsOrExtension && level == xformsLevel) { // Leaving model or controls inXFormsOrExtension = false; sendEndPrefixMappings(); } } else { // Just close the root element super.endElement(uri, localname, qName); sendEndPrefixMappings(); } if (!inXFormsOrExtension) { xmlBaseStack.pop(); } namespaceSupport.endElement(); }