[ http://issues.apache.org/jira/browse/AXISCPP-573?page=history ]
John Hawkins updated AXISCPP-573:
---------------------------------
Description:
If the prefix of the attribute is empty and if I use setURI() then the
Attribute class correctly serialize by adding the correct prefix and if
necessary will even add the namespace declaration to the serialized output.
IAttribute *attr1=phb->createAttribute("Name","","axis");
attr1->setURI("http://axis.apache.com");
will create the following soap message
<ns:TestHeader xmlns:ns="http://ws.apache.org/"
xmlns:ns2="http://axis.apache.com" ns2:Name="axis">
Here setURI() results in generating a namespace declaration for the uri
"http://axis.apache.com" and used the generated prefix 'ns2' as the prefix for
'Name' attribute.
But if the attribute prefix is not empty, then this setURI() does not change
its prefix.
INamespace *nsp=phb->createNamespaceDecl ("nsp","http://apache.com");
IAttribute *attr1=phb->createAttribute("Name","nsp","axis");
attr1->setURI("http://axis.apache.com");
results in
<ns:TestHeader xmlns:ns="http://ws.apache.org/" nsp:Name="axis"
xmlns:nsp="http://apache.com">
attr1->getPrefix() will return 'nsp'
attr1->getURI() will return 'http://axis.apache.com'
but there is no namespace declaration for this combination.
So either
1.setURI() should also change the prefix value accordingly.
2.setURI() should not change the URI if prefix is already set.
3.setURI() should be removed from the API list.
was:
If the prefix of the attribute is empty and if I use setURI() then the
Attribute class correctly serialize by adding the correct prefix and if
necessary will even add the namespace declaration to the serialized output.
IAttribute *attr1=phb->createAttribute("Name","","axis");
attr1->setURI("http://axis.apache.com");
will create the following soap message
<ns:TestHeader xmlns:ns="http://ws.apache.org/"
xmlns:ns2="http://axis.apache.com" ns2:Name="axis">
Here setURI() results in generating a namespace declaration for the uri
"http://axis.apache.com" and used the generated prefix 'ns2' as the prefix for
'Name' attribute.
But if the attribute prefix is not empty, then this setURI() does not change
its prefix.
INamespace *nsp=phb->createNamespaceDecl ("nsp","http://apache.com");
IAttribute *attr1=phb->createAttribute("Name","nsp","axis");
attr1->setURI("http://axis.apache.com");
results in
<ns:TestHeader xmlns:ns="http://ws.apache.org/" nsp:Name="axis"
xmlns:nsp="http://apache.com">
attr1->getPrefix() will return 'nsp'
attr1->getURI() will return 'http://axis.apache.com'
but there is no namespace declaration for this combination.
So either
1.setURI() should also change the prefix value accordingly.
2.setURI() should not change the URI if prefix is already set.
3.setURI() should be removed from the API list.
Component: Client - Engine
> problem in setURI() API in IAttribute class
> -------------------------------------------
>
> Key: AXISCPP-573
> URL: http://issues.apache.org/jira/browse/AXISCPP-573
> Project: Axis-C++
> Type: Bug
> Components: Client - Engine
> Reporter: James Jose
>
> If the prefix of the attribute is empty and if I use setURI() then the
> Attribute class correctly serialize by adding the correct prefix and if
> necessary will even add the namespace declaration to the serialized output.
> IAttribute *attr1=phb->createAttribute("Name","","axis");
> attr1->setURI("http://axis.apache.com");
> will create the following soap message
> <ns:TestHeader xmlns:ns="http://ws.apache.org/"
> xmlns:ns2="http://axis.apache.com" ns2:Name="axis">
> Here setURI() results in generating a namespace declaration for the uri
> "http://axis.apache.com" and used the generated prefix 'ns2' as the prefix
> for 'Name' attribute.
> But if the attribute prefix is not empty, then this setURI() does not change
> its prefix.
> INamespace *nsp=phb->createNamespaceDecl ("nsp","http://apache.com");
> IAttribute *attr1=phb->createAttribute("Name","nsp","axis");
> attr1->setURI("http://axis.apache.com");
> results in
> <ns:TestHeader xmlns:ns="http://ws.apache.org/" nsp:Name="axis"
> xmlns:nsp="http://apache.com">
> attr1->getPrefix() will return 'nsp'
> attr1->getURI() will return 'http://axis.apache.com'
> but there is no namespace declaration for this combination.
> So either
> 1.setURI() should also change the prefix value accordingly.
> 2.setURI() should not change the URI if prefix is already set.
> 3.setURI() should be removed from the API list.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira