Skip to content

Commit 06f9e82

Browse files
committed
JAXB root name not honored in Marshaller
1 parent b986159 commit 06f9e82

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

sources/net.sf.j2s.java.core/src/swingjs/xml/JSJAXBClass.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ class JSJAXBClass implements Cloneable {
7979
private boolean isInnerClass;
8080

8181
QName declaredTypeName;
82+
QName qualifiedRootName;
8283

8384
private static String packageNamespace;
8485
private static int packageAccessorType = TYPE_PUBLIC_MEMBER;
@@ -352,7 +353,7 @@ QName finalizeFieldQName(QName qName, String defaultName, int type) {
352353
QName qname = new QName(namespace, name, JSJAXBClass.getPrefixFor(namespace));
353354
switch (type) {
354355
case JSJAXBField.TYPE_ROOT_ELEMENT:
355-
return this.qname = qname;
356+
return this.qname = qualifiedRootName = qname;
356357
case JSJAXBField.TYPE_XML_TYPE:
357358
return this.qname = qualifiedTypeName = qname;
358359
default:

sources/net.sf.j2s.java.core/src/swingjs/xml/JSJAXBMarshaller.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,8 @@ private static String escapeString(String str, boolean isAttribute) {
192192
/////////// output methods //////////////
193193

194194
private void writeXML(JSJAXBClass jaxbClass, boolean isRoot, boolean addXsiType) throws JAXBException {
195-
QName qname = (jaxbClass.tagField == null ? jaxbClass.getQName() : jaxbClass.tagField.qualifiedName);
195+
QName qname = (isRoot && jaxbClass.qualifiedRootName != null ? jaxbClass.qualifiedRootName
196+
: jaxbClass.tagField == null ? jaxbClass.getQName() : jaxbClass.tagField.qualifiedName);
196197
if (isRoot) {
197198
outputHeader();
198199
}
@@ -631,7 +632,8 @@ private void output(String s) throws JAXBException {
631632
// /** @j2sNative console.log(s) */
632633
if (writer != null) {
633634

634-
// System.out.println((s.startsWith("<") ? "\n" : "") + s);
635+
636+
System.out.println((s.startsWith("<") ? "\n" : "") + s);
635637

636638
writer.write(s);
637639
} else if (outputStream != null) {

0 commit comments

Comments
 (0)