Thanks David for your quick response. 
Even if I introduce one more header, I guess I am still going to have my
basic problem of resolving name space collisions when I try to compile
schemas into java files since <soap-env:header>, <soap-env:body>,
<getEquityAcountDetails> etc tags will be present in all my request and
response messages. 

Thanks,
Gopi



Webber, David (NIH/OD) [C] wrote:
> 
> Gopi,
> 
> Yes - you need to modify your schema - make two choices for the elements
> - and add a parent element above if necessary - so you can have two
> forms of the child elements - depending on the type of message you are
> sending.
> 
> This is what I was trying to tell you - add a type Hdr to YOUR MSG
> perhaps is one choice - not the SOAP HDR!!!
> 
> Then inside your own header you can have two or more forms of the
> elements you need.
> 
> DW
> 
> -----Original Message-----
> From: gopi.rcr [mailto:[EMAIL PROTECTED] 
> Sent: Monday, November 27, 2006 1:51 PM
> To: [email protected]
> Subject: RE: blank namespace
> 
> 
> Hi David,
> I already have header info in my message. I didnt post the complete
> message.
> My complete msg looks like this:
> 
> <soap-env:header>
>      <action>getEquityAccountDetail</action>
> </soap-env:header>
> <soap-env-body>
>        <getEquityAccountDetails>
>                 -----
>                     request information.
>                 ----
>        </getEquityAccountDetails>
> </soap-env-body>
> 
> This is what our server expects for a request message. Header as such
> doesnt
> contain any useful information related to query.  The response msg also
> has
> a similar structure only difference being the contents of
> <getEquityAccountDetails> are different.
> 
> Response msg would look like this:
> 
> <soap-env:header>
>      <action>getEquityAccountDetail</action>
> </soap-env:header>
> <soap-env-body>
>        <getEquityAccountDetails>
>                 -----
>                     response msg (XML format)
>                 ----
>        </getEquityAccountDetails>
> </soap-env-body>
> 
> 
> 
> I am open to modify my schema if it is going to solve the issue.
> 
> Thanks,
> Gopi
> 
> 
> 
> 
> 
> Webber, David (NIH/OD) [C] wrote:
>> 
>> Why don't you re-design your schema so its not so badly overloaded?
>> 
>> Seems simple to add a few parent elements to resolve all this - such
> as:
>> 
>> <Msg>
>>   <Query>
>>    <!- - Msg goes here -->
>>   </Query>
>>   <Response>
>>    <!- - Msg goes here -->
>>   </Response>
>> </Msg>
>> 
>> Or if you don't like that - what about
>> 
>> <Msg>
>>   <Hdr> my header stuff goes here for each Msg type </Hdr>
>>   <Body>
>>     <!- - Msg goes here -->
>>   </Body>
>> </Msg>
>> 
>> Seems like your original design for the xsd is what is giving you all
>> the problems...
>> 
>> DW
>> 
>> -----Original Message-----
>> From: gopi.rcr [mailto:[EMAIL PROTECTED] 
>> Sent: Wednesday, November 22, 2006 5:51 PM
>> To: [email protected]
>> Subject: RE: blank namespace
>> 
>> 
>> Radu,
>> Thanks for the detailed explanation.
>> 
>> Now I understand why it is behaving the way it is behaving. 
>> 
>> Let me explain the problem that I am facing. The request and response
>> XML
>> message formats for our server dont have any namespaces for the XML
>> elements. ie. they belong to a default namespace. 
>>  
>> eg: <GetEquityAccountDetail> is used for both request as well as
>> response
>> however the contents of this element are different for both request
> and
>> response. 
>> 
>> If I run these two schemas through scomp tool, there will be namespace
>> collisions. So, to get around this problem, I associated  "req" and
>> "resp"
>> prefixes for request and response messages respectively. Now, I have
> two
>> issues.
>> 
>> 1) When I generate a request message, it puts a "req" prefix which is
>> perfect. BUt our server doesnt like the request message if there is a
>> namespace prefix. So, I use saveImplicitNameSpaces to get rid of "req"
>> prefix but it puts blank namespace references to other elements.
> Though
>> the
>> message is semantically correct, our server fails to validate. Looks
>> like
>> our server uses some kind of string matching program( not sure ) to
>> validate
>> the request message. Please let me know if there is a better way of
>> solving
>> this.
>> 
>> <req:GetEquityAccountDetail xmlns:req="http://.....";>
>>      <acccountNumber> </acccountNumber>
>>      <productCode> </productCode>
>>      <elementList> </elementList>
>> </req:GetEquityAccoungDetail>
>> 
>> 
>> 2) I hardcode the request message and get the following response from
>> the
>> server. 
>> 
>> <getEquityAccountDetail>
>>        <serviceName>ElpsService</serviceName>
>>        <action>getEquityAccountDetail</action>
>>        <processingTime>117</processingTime>
>>        <info>
>>                <accountNumber>65165104446500001</accountNumber>
>>                <productCode>LCA</productCode>
>>                <lineOfCredit> </lineofCredit>
>>         </info>
>> </getEquityAccountDetail>
>> 
>> 
>> Now, my schema has "resp" name prefix for the response message. So,
>> parsing
>> would obviously fail since the response I got from the server doesnt
>> have
>> any namespace. So, I use the following options.
>> 
>>                      HashMap m=new HashMap();
>>                      m.put("","http://service.wellsfargo.com/resp/";);
>>                      opts.setLoadSubstituteNamespaces(m);
>> 
>> When I try to print the values for ServiceName, ProcessingTime and
> Info,
>> it
>> is printing null for all these values.
>> 
>>      
>> xml.response.GetEquityAccountDetailDocument.GetEquityAccountDetail
>> 
>>                  gead=geadRespDoc.getGetEquityAccountDetail();
>>                  System.out.println(" Service name in body
>> "+gead.getServiceName());
>>                  System.out.println(" processing time in body
>> "+gead.getProcessingTime())
>> 
>> Could you please tell me what I am missing? 
>> Please let me know if there is a bettwer way of handling this.
>> 
>> 
>> 
>> Thanks in advance,
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> Radu Preotiuc-Pietro wrote:
>>> 
>>> Gopi and David,
>>> 
>>> This is not about namespace declarations, this is about the names of
>>> elements in an XML document. In namespace-aware Schema processors
>> (like
>>> XMLBeans and mostly everyhing out there, except for some legacy
> apps),
>>> each element or attribute has a name (or QName, qualified name) that
>> is
>>> composed of a namespace uri (which can be empty) and a local name.
>>> 
>>> Now, in XMLSchema too, each time elements or attributes are declared,
>> a
>>> name is also part of the declaration. The names declared in the
>>> XMLSchema and the names present in the instance XML file have to
> match
>>> in order for the document to be valid, and this is what XMLBeans
> tries
>>> to ensure.
>>> 
>>> Now in gopi's example, that Schema declared an element with the name
>>> (local [EMAIL PROTECTED] uri)
>>> 
>>> [EMAIL PROTECTED]://service..com/req/ (local
>>> name=getEquityAccountDetail, namespace-uri=http://service..com/req/)
>>> 
>>> This element in turn is supposed to contain the elements
>>> 
>>> accountNumber@
>>> productCode@
>>> elementList@
>>> 
>>> This is why the original document looks the way it does. It is
>> correct.
>>> By setting setSaveImplicitNamespaces(m), you tell XMLBeans that the
>>> prefix "" (the default prefix) is already associated to the
>>> "http://service..com/req/";, so then XMLBeans, correctly again,
> doesn't
>>> redeclare it, but then when it comes to the "accountNumber", this
>>> element has to have an empty namespace-uri and the only way to
> achieve
>>> this is to use an xmlns="" declaration. This is correct and fully
>>> expected.
>>> 
>>> All I am trying to say is that we have to look at this is terms of
>>> changing names for elements, not in terms of manipulating prefix
>>> declarations. On the loading side, we have
>>> .setLoadSubstituteNamespaces() which replaces a namespace uri with
>>> another for each name in the document. But this, again, does not have
>>> the ability to replace any namespace in the incoming document with
>>> something, you have to tell it in advance what namespaces to expect.
>> On
>>> the saving side, there is no option like that, I guess users have
>> found
>>> it useful only for loading.
>>> 
>>> I really want to do my best to help here, what part of what I wrote
>>> din't make sense?
>>> 
>>> Radu
>>> 
>>> -----Original Message-----
>>> From: Webber, David (NIH/OD) [C] [mailto:[EMAIL PROTECTED] 
>>> Sent: Wednesday, November 22, 2006 7:03 AM
>>> To: [email protected]
>>> Subject: RE: blank namespace
>>> 
>>> Yeah - this is related to what I've been complaining about for a
> week!
>>> 
>>> Handling of default namespace is the reverse of what you would
> expect.
>>> 
>>> What you try is putting a default namespace declaration on your root
>>> element - <req:getEquityAccountDetail
>> xmlns="http://banktrans/default/";>
>>> 
>>> Which will at least prevent it having to generate ones for you inside
>>> your XML.
>>> 
>>> There should however be some way to tell XMLBeans to not require a
>>> default namespace declaration - but so far I've not been able to
> track
>>> down how...
>>> 
>>> DW
>>> 
>>> -----Original Message-----
>>> From: gopi.rcr [mailto:[EMAIL PROTECTED]
>>> Sent: Tuesday, November 21, 2006 7:03 PM
>>> To: [email protected]
>>> Subject: Re: blank namespace
>>> 
>>> 
>>> Forgot to include,
>>> 
>>> My schema file looks somthing like this.
>>> 
>>> <xs:schema targetNamespace="http://service..com/req/"; 
>>>        xmlns:xs="http://www.w3.org/2001/XMLSchema";>
>>> 
>>> <xs:import schemaLocation="Elps_GetEquityData_Request1.xsd"/>
>>>     <xs:element name="getEquityAccountDetail">
>>>             <xs:complexType>
>>>                     <xs:sequence>
>>>                             <xs:element ref="accountNumber"/>
>>>                             <xs:element ref="productCode"/>
>>>                             <xs:element ref="elementList"/>
>>>                     </xs:sequence>
>>>             </xs:complexType>
>>>     </xs:element>
>>> </xs:schema>
>>> 
>>> The elements accountNumber, productCode and elementList dont have a
>>> namespace.
>>> 
>>> Thanks,
>>> 
>>> 
>>> 
>>> gopi.rcr wrote:
>>>> 
>>>> Hi,
>>>> 
>>>> I have an XMLBeans based program for generating XML output. XML
>> output
>>> 
>>>> looks as below:
>>>> 
>>>> <req:getEquityAccountDetail>
>>>>       <accountNumber>
>>>>         <bank>651</bank>
>>>>         <branch>651</branch>
>>>>         <customer>0444650</customer>
>>>>         <loan>0001</loan>
>>>>       </accountNumber>
>>>>       <productCode>LCA</productCode>
>>>> -----------
>>>> 
>>>> When I modify my code to filter out req namespace prefix by doing
> the
>>>> following.
>>>> 
>>>> XmlOptions op = new XmlOptions();
>>>> HashMap m=new HashMap();
>>>> m.put("","http://service.wellsfargo.com/req/";);  //namespace uri for
>>> req
>>>> opts.setSaveImplicitNamespaces(m);
>>>> 
>>>> -----------------------------------------------------------
>>>> 
>>>> I am getting output as follows, which has unwanted blank namespace
>>>> references for accountNumber and ProductCode. What should I do to
> get
>>> rid
>>>> of these namespace references ? Why is it putting the blank
> namespace
>>>> references ?
>>>> 
>>>> <getEquityAccountDetail>
>>>>       <accountNumber xmlns="">
>>>>         <bank>651</bank>
>>>>         <branch>651</branch>
>>>>         <customer>0444650</customer>
>>>>         <loan>0001</loan>
>>>>       </accountNumber>
>>>>       <productCode xmlns="">LCA</productCode>
>>>> 
>>>> 
>>>> You help is highly appreicated.
>>>> 
>>>> Thanks
>>>> 
>>>> 
>>> 
>>> -- 
>>> View this message in context:
>>> http://www.nabble.com/blank-namespace-tf2681769.html#a7482861
>>> Sent from the Xml Beans - User mailing list archive at Nabble.com.
>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>> 
>>>
>>
> _______________________________________________________________________
>>> Notice:  This email message, together with any attachments, may
>> contain
>>> information  of  BEA Systems,  Inc.,  its subsidiaries  and
>> affiliated
>>> entities,  that may be confidential,  proprietary,  copyrighted
>> and/or
>>> legally privileged, and is intended solely for the use of the
>> individual
>>> or entity named in this message. If you are not the intended
>> recipient,
>>> and have received this message in error, please immediately return
>> this
>>> by email and then delete it.
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>> 
>>> 
>>> 
>> 
>> -- 
>> View this message in context:
>> http://www.nabble.com/blank-namespace-tf2681769.html#a7497571
>> Sent from the Xml Beans - User mailing list archive at Nabble.com.
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>> 
>> 
>> 
> 
> -- 
> View this message in context:
> http://www.nabble.com/blank-namespace-tf2681769.html#a7565484
> Sent from the Xml Beans - User mailing list archive at Nabble.com.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/blank-namespace-tf2681769.html#a7569291
Sent from the Xml Beans - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to