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 >