Extensor attributes are lost during deserializtion
--------------------------------------------------
Key: WSCOMMONS-261
URL: https://issues.apache.org/jira/browse/WSCOMMONS-261
Project: WS-Commons
Issue Type: Bug
Components: XmlSchema
Reporter: Daniel Kulp
If an element has multiple extensor attributes, the LAST one that is processed
is the only one that is kept. What's worse, namespaces are now (with 1.3.2)
processed as extensors. Thus, something like:
<xs:element minOccurs="0" name="myPhoto" ns1:expectedContentTypes="image/png"
xmlns:ns1="http://www.w3.org/2005/05/xmlmime" type="xs:base64Binary"/>
would result in the namespace being outputted, but the expectedContentTypes
being lost. However, if you reverse them, it actually works.
Two fixes:
In SchemaBuilder.processExtensibilityComponents(...), since it was changed to
use the local name, the line:
!name.startsWith(Constants.XMLNS_ATTRIBUTE) && //ignore namespaces
should change to:
!namespace.equals(Constants.XMLNS_ATTRIBUTE_NS_URI) && //ignore namespaces
In DefaultExtensionDeserializer, use the existing MetaInfoMap:
Map metaInfoMap = schemaObject.getMetaInfoMap();
if (metaInfoMap == null) {
metaInfoMap = new HashMap();
}
Thus, the queries to metaInfoMap.containsKey(....) won't always be looking at
a brand new empty map.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]