Of course, architecturally I don't like 'generic database tools' servers
like 'data inserters', either. ;-)

Scott Nichol

----- Original Message -----
From: "Jean-Yves MENGANT" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, February 20, 2002 12:00 PM
Subject: RE: java client for .NET webservice and Co


> >Personally, I do not care for the technique of turning everything into a
> >string.  Of course, I don't like storing and passing data as DataSets,
> >either.  My preference is to pass "objects" that have some meaning to
your
> >application domain.  For example, you appear to be sending a DataSet
>
> I fully agree over there except that you may lack some genericity
specially
> when your application is sending data to 'generic database tools' servers
> like 'data inserters' which are hidding the data semantics in order to
> be able to income allmost everything.
>
> under those circumstances you then need to send flat xml oriented string
> because the only guy allowed to deal with data semantics will be the SQL
> side generic tool...
>
> Jean-Yves
> -----Message d'origine-----
> De : Scott Nichol [mailto:[EMAIL PROTECTED]]
> Envoyé : Wednesday, February 20, 2002 5:22 PM
> À : [EMAIL PROTECTED]
> Objet : Re: java client for .NET webservice and Co
>
>
> Apache SOAP does not use XSD or WSDL.  It is based on serializing and
> deserializing Java classes.  There is no tool to generate the Java classes
> or serialization code from XSD or WSDL.  There are other SOAP
> implementations for Java (e.g. GLUE and Idoox) that *may* do this, but I
am
> not sufficiently familiar with these to be certain.
>
> Personally, I do not care for the technique of turning everything into a
> string.  Of course, I don't like storing and passing data as DataSets,
> either.  My preference is to pass "objects" that have some meaning to your
> application domain.  For example, you appear to be sending a DataSet
> consisting of "company" data, including related "contract" information.
> Were I implementing this, I would be using Company and Contract classes,
> passing an array of Company instances as a method parameter rather than a
> DataSet.
>
> Roughly, this would look like
>
> public class Contract implements org.apache.xml.Serializer {
>     // even better: use accessor/mutator (getter/setter) methods
>     public String ContractNo;
>     public String CustomerCode;
>     public String CODA_CreditAccountCode;
>     public String CODA_DebitAccountCode;
>     public String CODA_CustomerCode;
>
>   public void marshall(String inScopeEncStyle, Class javaType, Object src,
>                        Object context, Writer sink, NSStack nsStack,
>                        XMLJavaMappingRegistry xjmr, SOAPContext ctx)
>     throws IllegalArgumentException, IOException {
>     // code to write this data as XML
>     }
>
>     ...
> }
>
> public class Company implements org.apache.xml.Serializer {
>     public String CompanyId;
>     public String Name;
>     public String AddressLine1;
>     ...
>     public Contract[] contracts;
>
>   public void marshall(String inScopeEncStyle, Class javaType, Object src,
>                        Object context, Writer sink, NSStack nsStack,
>                        XMLJavaMappingRegistry xjmr, SOAPContext ctx)
>     throws IllegalArgumentException, IOException {
>
>     // code to write this data as XML
>     }
>
>     ...
> }
>
> As you can see, I present a fairly mechanical translation of XSD to Java,
so
> it is clear that a tool could be written to do this programmatically, but
as
> I said, there is not one included in Apache SOAP.
>
> So, that is how I would do this.  That does not mean it is wrong or
> impossible to either use a DataSet or turn everything into a single
string.
> I just happen to think that using Company and Contract makes the semantics
> of the SOAP method more clear, and it provides a straight forward way to
> write a client in any programming language.
>
> Scott Nichol
>
> ----- Original Message -----
> From: <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Wednesday, February 20, 2002 10:43 AM
> Subject: RE: java client for .NET webservice and Co
>
>
> even if i do have an xsd file ? it's a shema of the dataset right ?
> so you think i should send X strings in stead of one xml object, and then
> it's up to the .NET webservice to get those strings and create it's own
> dataset with ? (or to insert them in the SQL server DB directly) ? (i ask
> you because english is not my native language so i'm affraid not to
> understand everything)
> thanks
>
>
> --------------------------------------------
> Elise Dupont
> Software developer
> Technology Development Group Europe
> Lionbridge Technologies - France
> Buropolis 1 - 1240 route des Dolines
> 06560 Sophia-Antipolis
> www.lionbridge.com
>
>
>
>
>
> "Jean-Yves MENGANT" <[EMAIL PROTECTED]>
> 02/20/2002 04:32 PM
> Please respond to soap-dev
>
>
>         To:     <[EMAIL PROTECTED]>
>         cc:
>         Subject:        RE: java client for .NET webservice and Co
>
>
>
> Hi ,
>
> Sending a dataset using the SOAP protocol is simply impossible for the
> following reasons :
>
>   1 There is no definition of what a dataset is inside the  XmlSchema
> basic types.
>    2 A dataset may contain undefined binary data that will not comply with
> http  protocol usually
> used  at the transport layer when using SOAP, and which would imply extra
> transport  semantics
> like  for instance UUEncoding the data before sending.
>
> =>  you need to read the dataset and transfert it's content. Event if the
> file  contains dynamic Xml defs which
> seems  to be the case here , you simply can send the full content using an
> xs:string  type.
>
> Jean-Yves
> -----Message d'origine-----
> De :  [EMAIL PROTECTED]  [mailto:[EMAIL PROTECTED]]
> Envoyé : Wednesday,  February 20, 2002 2:59 PM
> À :  [EMAIL PROTECTED]
> Objet : Re: java client for .NET  webservice and Co
>
>
>
>
>
> i also do have a WSD file :
>
> ============
> <?xml version="1.0" encoding="utf-8"?>
> <xs:schema id="dsCompany"
targetNamespace="http://tempuri.org/dsCompany.xsd";
> elementFormDefault="qualified"  attributeFormDefault="qualified"
> xmlns="http://tempuri.org/dsCompany.xsd";
> xmlns:mstns="http://tempuri.org/dsCompany.xsd";
> xmlns:xs="http://www.w3.org/2001/XMLSchema";
> xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
>          <xs:element  name="dsCompany" msdata:IsDataSet="true">
>                  <xs:complexType>
>                          <xs:choice maxOccurs="unbounded">
>                                   <xs:element name="T_Company">
>                                           <xs:complexType>
>                                                   <xs:sequence>
>                                                            <xs:element
> name="COMP_CompanyId" type="xs:string"/>
>                                                            <xs:element
> name="COMP_Name" type="xs:string" minOccurs="0"/>
>                                                            <xs:element
> name="COMP_AddressLine1" type="xs:string"  minOccurs="0"/>
>                                                           <xs:element
> name="COMP_AddressLine2" type="xs:string"  minOccurs="0"/>
>                                                           <xs:element
> name="COMP_City" type="xs:string"  minOccurs="0"/>
>                                                           <xs:element
> name="COMP_StateCode" type="xs:string"  minOccurs="0"/>
>                                                           <xs:element
> name="COMP_Zip" type="xs:string"  minOccurs="0"/>
>                                                           <xs:element
> name="COMP_CountryCode" type="xs:string"  minOccurs="0"/>
>                                                           <xs:element
> name="COMP_PhoneNumber" type="xs:string"  minOccurs="0"/>
>                                                           <xs:element
> name="COMP_FaxNumber" type="xs:string"  minOccurs="0"/>
>                                                           <xs:element
> name="COMP_website" type="xs:string"  minOccurs="0"/>
>                                                           <xs:element
> name="COMP_CurrencyCode" type="xs:string"/>
>                                                            <xs:element
> name="COMP_LocalVend" type="xs:boolean"/>
>                                                            <xs:element
> name="COMP_Customer" type="xs:boolean"/>
>                                                            <xs:element
> name="COMP_Agency" type="xs:boolean"/>
>                                                            <xs:element
> name="COMP_LBSite" type="xs:boolean"/>
>                                                            <xs:element
> name="T_Customer">
>
> <xs:complexType>
>
> <xs:sequence>
>
>          <xs:element  name="COMP_CompanyId" type="xs:string"/>
>
>         <xs:element name="ContractNo" type="xs:string" minOccurs="0"/>
>
>          <xs:element name="CustomerCode" type="xs:string" minOccurs="0"/>
>
>          <xs:element name="CODA_CreditAccountCode"  type="xs:string"
> minOccurs="0"/>
>
>          <xs:element name="CODA_DebitAccountCode"  type="xs:string"
> minOccurs="0"/>
>
>          <xs:element name="CODA_CustomerCode"  type="xs:string"
> minOccurs="0"/>
>
>  </xs:sequence>
>
> </xs:complexType>
>                                                            </xs:element>
>                                                   </xs:sequence>
>                                           </xs:complexType>
>                                   </xs:element>
>                          </xs:choice>
>                  </xs:complexType>
>                  <xs:unique name="dsCompanyKey2" msdata:PrimaryKey="true">
>                          <xs:selector xpath=".//mstns:T_Company"/>
>                          <xs:field xpath="mstns:COMP_CompanyId"/>
>                  </xs:unique>
>          </xs:element>
> </xs:schema>
>
>
> With all those  elements, should i be able to transform a java object in
> what is experting  .NET ? and how ?
>
>
>
>
>
>
> [EMAIL PROTECTED]
>
> 02/20/2002 01:17 PM
> Please respond to soap-dev
>
>
>         To:         [EMAIL PROTECTED]
>         cc:
>          Subject:        Re: java client for .NET  webservice and Co
>
>
>
>
> okay so after have looked at many documentation, i didn't find  the
> solution so i post my question here :
>
> what i must create is a  java client that sends a DataSet to a .NET
> webservice. This webservice takes  the DataSet and add it into a SQL
> server database.
> My  problem is : how to create a DataSet understandable by Microsoft ? I
> first  have a java object (myCompanyObject, with the name, the address
> etc...)
>
> So is the DataSet created by a class that  transforms objects into DataSet
> ? or is it performed by a xml, wsdl, something  file ? (my knowledge about
> wsdl is very small) ??? even better : how would  look like the code for a
> "object to DataSet" transformation in some sample  lines ?
>
>
> here is the doc about my .NET webservice
>
> SOAP
> The following is a sample SOAP request and response.  The placeholders
> shown need to be replaced with actual values.
>
>
> POST /PCS_Integration/SynchronizeProfiles.asmx HTTP/1.1
> Host:  biztalk
> Content-Type: text/xml; charset=utf-8
> Content-Length:  length
> SOAPAction:  "http://tempuri.org/WS_UpdateProfileAgency";
>
> <?xml version="1.0"  encoding="utf-8"?>
> <soap:Envelope  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> xmlns:xsd="http://www.w3.org/2001/XMLSchema";
> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
> <soap:Body>
>    <WS_UpdateProfileAgency xmlns="http://tempuri.org/";>
>      <dsComp>dataset</dsComp>
>    </WS_UpdateProfileAgency>
> </soap:Body>
> </soap:Envelope>
>
>
>
>
>
> HTTP/1.1 200 OK
> Content-Type: text/xml;  charset=utf-8
> Content-Length: length
>
> <?xml version="1.0"  encoding="utf-8"?>
> <soap:Envelope  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> xmlns:xsd="http://www.w3.org/2001/XMLSchema";
> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
> <soap:Body>
>    <WS_UpdateProfileAgencyResponse xmlns="http://tempuri.org/";>
>      <WS_UpdateProfileAgencyResult>boolean</WS_UpdateProfileAgencyResult>
>    </WS_UpdateProfileAgencyResponse>
> </soap:Body>
> </soap:Envelope>
>
>
> Regards,
> Elise
>
>
>
>
>
>
>
>
____________________________________________________________________________
__
> ifrance.com, l'email gratuit le plus complet de l'Internet !
> vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP...
> http://www.ifrance.com/_reloc/email.emailif
>

Reply via email to