Author: thomas.diesler(a)jboss.com
Date: 2006-10-17 09:14:35 -0400 (Tue, 17 Oct 2006)
New Revision: 1239
Modified:
trunk/src/main/java/org/jboss/ws/utils/DOMWriter.java
Log:
[JBWS-1303] Unmarshall issue with xsi:type specified bean property
Modified: trunk/src/main/java/org/jboss/ws/utils/DOMWriter.java
===================================================================
--- trunk/src/main/java/org/jboss/ws/utils/DOMWriter.java 2006-10-17 12:45:22 UTC (rev
1238)
+++ trunk/src/main/java/org/jboss/ws/utils/DOMWriter.java 2006-10-17 13:14:35 UTC (rev
1239)
@@ -264,10 +264,18 @@
String atName = attr.getNodeName();
String atValue = normalize(attr.getNodeValue());
- if (atPrefix != null && (atPrefix.equals("xmlns") ||
atPrefix.equals("xml")) == false)
+ if (atPrefix != null && !atPrefix.equals("xmlns")
&& !atPrefix.equals("xml"))
{
String nsURI = getNamespaceURI(atPrefix, element, rootNode);
nsMap.put(atPrefix, nsURI);
+
+ // xsi:type='ns1:SubType', xsi:type='xsd:string'
+ if (atName.equals(atPrefix + ":type") &&
nsURI.equals("http://www.w3.org/2001/XMLSchema-instance") &&
atValue.indexOf(":") > 0)
+ {
+ String typePrefix = atValue.substring(0,
atValue.indexOf(":"));
+ String typeURI = getNamespaceURI(typePrefix, element, rootNode);
+ nsMap.put(typePrefix, typeURI);
+ }
}
out.print(" " + atName + "='" + atValue +
"'");