@Test public void clear() { context.bindNamespaceUri("prefix1", namespaceUri); context.bindNamespaceUri("prefix2", namespaceUri); context.bindNamespaceUri("prefix3", additionalNamespaceUri); context.clear(); assertThat("All bound prefixes were removed", context.getBoundPrefixes().hasNext(), is(false)); assertThat("All bound namespace URIs were removed", context.getPrefixes(namespaceUri).hasNext(), is(false)); }
@Test public void getBoundPrefixes() { context.bindNamespaceUri("prefix1", namespaceUri); context.bindNamespaceUri("prefix2", namespaceUri); context.bindNamespaceUri("prefix3", additionalNamespaceUri); assertThat("Returns all bound prefixes", getItemSet(context.getBoundPrefixes()), is(makeSet("prefix1", "prefix2", "prefix3"))); }
@Override protected void startElementInternal(QName name, Attributes attributes, SimpleNamespaceContext namespaceContext) throws XMLStreamException { streamWriter.writeStartElement(name.getPrefix(), name.getLocalPart(), name.getNamespaceURI()); if (namespaceContext != null) { 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 = toQName(attributes.getURI(i), attributes.getQName(i)); if (!("xmlns".equals(attrName.getLocalPart()) || "xmlns".equals(attrName.getPrefix()))) { streamWriter.writeAttribute(attrName.getPrefix(), attrName.getNamespaceURI(), attrName.getLocalPart(), attributes.getValue(i)); } } } }
/** Creates and returns a list of <code>NameSpace</code> objects from the <code>NamespaceContext</code>. */ private List<Namespace> createNamespaces(SimpleNamespaceContext namespaceContext) { if (namespaceContext == null) { return null; } 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 iterator = namespaceContext.getBoundPrefixes(); iterator.hasNext();) { String prefix = (String) iterator.next(); String namespaceUri = namespaceContext.getNamespaceURI(prefix); namespaces.add(eventFactory.createNamespace(prefix, namespaceUri)); } return namespaces; }