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]

Reply via email to