mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2025-09-09 10:19:41 +02:00
Improve how XmlStringBuilder handles enclosing XML environments
to avoid emitting unnecessary attributes like xmlns. Also add a test for MediaElement that checks that <uri/> does not carry a xmlns attribute.
This commit is contained in:
parent
935465a11b
commit
dd4df0a5ef
3 changed files with 55 additions and 5 deletions
|
@ -56,9 +56,17 @@ public class XmlStringBuilder implements Appendable, CharSequence, Element {
|
|||
halfOpenElement(e.getElementName());
|
||||
}
|
||||
|
||||
public XmlStringBuilder(FullyQualifiedElement ee, XmlEnvironment enclosingXmlEnvironment) {
|
||||
this(enclosingXmlEnvironment);
|
||||
prelude(ee);
|
||||
public XmlStringBuilder(FullyQualifiedElement element, XmlEnvironment enclosingXmlEnvironment) {
|
||||
sb = new LazyStringBuilder();
|
||||
halfOpenElement(element);
|
||||
if (enclosingXmlEnvironment != null
|
||||
&& !enclosingXmlEnvironment.effectiveNamespaceEquals(element.getNamespace())) {
|
||||
xmlnsAttribute(element.getNamespace());
|
||||
}
|
||||
effectiveXmlEnvironment = XmlEnvironment.builder()
|
||||
.withNamespace(element.getNamespace())
|
||||
.withNext(enclosingXmlEnvironment)
|
||||
.build();
|
||||
}
|
||||
|
||||
public XmlStringBuilder escapedElement(String name, String escapedContent) {
|
||||
|
@ -492,7 +500,7 @@ public class XmlStringBuilder implements Appendable, CharSequence, Element {
|
|||
}
|
||||
|
||||
public XmlStringBuilder append(Collection<? extends Element> elements) {
|
||||
return append(elements, null);
|
||||
return append(elements, effectiveXmlEnvironment);
|
||||
}
|
||||
|
||||
public XmlStringBuilder append(Collection<? extends Element> elements, XmlEnvironment enclosingXmlEnvironment) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue