/** Creates and returns a list of <code>NameSpace</code> objects from the <code>NamespaceContext</code>. */ private List<Namespace> createNamespaces(SimpleNamespaceContext namespaceContext) { List<Namespace> namespaces = new ArrayList<Namespace>(); String defaultNamespaceUri = namespaceContext.getNamespaceURI(XMLConstants.DEFAULT_NS_PREFIX); if (StringUtils.hasLength(defaultNamespaceUri)) { namespaces.add(eventFactory.createNamespace(defaultNamespaceUri)); } for (Iterator<String> iterator = namespaceContext.getBoundPrefixes(); iterator.hasNext();) { String prefix = iterator.next(); String namespaceUri = namespaceContext.getNamespaceURI(prefix); namespaces.add(eventFactory.createNamespace(prefix, namespaceUri)); } return namespaces; }
private void startPrefixMapping(String prefix, String namespace) throws SAXException { if (!namespaceContext.getNamespaceURI(prefix).equals(namespace)) { getContentHandler().startPrefixMapping(prefix, namespace); namespaceContext.bindNamespaceUri(prefix, namespace); } }
@Override protected void startElementInternal(QName name, Attributes attributes, SimpleNamespaceContext namespaceContext) throws XMLStreamException { streamWriter.writeStartElement(QNameUtils.getPrefix(name), name.getLocalPart(), name.getNamespaceURI()); String defaultNamespaceUri = namespaceContext.getNamespaceURI(""); if (StringUtils.hasLength(defaultNamespaceUri)) { streamWriter.writeNamespace("", defaultNamespaceUri); streamWriter.setDefaultNamespace(defaultNamespaceUri); } for (Iterator<String> iterator = namespaceContext.getBoundPrefixes(); iterator.hasNext();) { String prefix = iterator.next(); streamWriter.writeNamespace(prefix, namespaceContext.getNamespaceURI(prefix)); streamWriter.setPrefix(prefix, namespaceContext.getNamespaceURI(prefix)); } for (int i = 0; i < attributes.getLength(); i++) { QName attrName = QNameUtils.toQName(attributes.getURI(i), attributes.getQName(i)); String attrPrefix = QNameUtils.getPrefix(attrName); if (!("xmlns".equals(attrName.getLocalPart()) || "xmlns".equals(attrPrefix))) { streamWriter.writeAttribute(attrPrefix, attrName.getNamespaceURI(), attrName.getLocalPart(), attributes.getValue(i)); } } } }