Since DataSets and I are indelibly tied together let me note that Don is
EXACTLY correct with his assertion here.  I totally concur.


Thanks,

Shawn Wildermuth
Wildermuth Consulting Services, LLC
http://adoguy.com
C# MVP, MCSD.NET, Author and Speaker


> -----Original Message-----
> From: Discussion of advanced .NET topics.
> [mailto:[EMAIL PROTECTED] On Behalf Of Don Demsak
> Sent: Tuesday, October 10, 2006 11:15 AM
> To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM
> Subject: Re: [ADVANCED-DOTNET] Web services, DataSets and
> making use of XSDs...
>
> Thanks Paul.  I didn't want to rehash this, again.  DATASETS
> over Web Service = Very Bad.  Only thing worse than that is
> trying to send your business object over web services.  The
> idea is that a web service is sending a message of a specific
> contract.  A message my look and feel a lot like the business
> object, but it usually has different behaviors, which means
> you usually need a different set of classes to represent the message.
>
> Don Demsak
> www.donxml.com
>
>
> On 10/10/06, Paul van Brenk <[EMAIL PROTECTED]> wrote:
> >
> > That's the part you write.
> >
> > Paul
> >
> > -----Original Message-----
> > From: Discussion of advanced .NET topics.
> > [mailto:[EMAIL PROTECTED] On Behalf Of Ben Joyce
> > Sent: Tuesday, October 10, 2006 14:57
> > To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM
> > Subject: Re: [ADVANCED-DOTNET] Web services, DataSets and
> making use
> > of XSDs...
> >
> > Hi Paul.
> >
> > Thanks for your reply.  I've looked at the XSD tool, looks handy...
> > but I don't see any obvious way of populating my CustomerList with
> > Customers - is this the part which I write or am I missing
> something?
> >
> > I shall continue tinkering :)
> >
> > Cheers,
> >
> > Ben
> >
> > On 10/10/06, Paul van Brenk <[EMAIL PROTECTED]> wrote:
> > > You don't want to return datasets/datatables from
> webservices ever.
> > (Lot
> > > of good resources available why not.)
> > >
> > > You can use the xsd.exe command line tool to generate a
> .cs (or .vb)
> > > file containing the custom class as specified by the xsd
> and return
> > that
> > > from your webmethod. The .Net framework will handle the
> conversion
> > > to and from xml for that class.
> > >
> > > Paul
> > >
> > > -----Original Message-----
> > > From: Discussion of advanced .NET topics.
> > > [mailto:[EMAIL PROTECTED] On Behalf Of
> Ben Joyce
> > > Sent: Tuesday, October 10, 2006 13:15
> > > To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM
> > > Subject: [ADVANCED-DOTNET] Web services, DataSets and
> making use of
> > > XSDs...
> > >
> > > Hi all.
> > >
> > > I'm just getting in to some XSD programming and could do
> with some
> > > advice.  This is quite a lengthy email for which I apologise in
> > > advance.
> > >
> > > I've been asked to create a webservice with some methods, one of
> > > which is to resturn some customer data.
> > >
> > > I am at the point where I would usually return my data like this:
> > >
> > > dstDataset.Tables(0).WriteXml(Response.OutputStream)
> > >
> > > Then the calling code would pick apart the response.
> > >
> > > However, I am now required to send a response something
> like this...
> > > which i believe is based on an XSD:
> > >
> > > <?xml version="1.0" encoding="ISO-8859-1"?> <CustomerFindResponse
> > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> > > xsi:noNamespaceSchemaLocation="FindCustomer_response_OK.xsd">
> > >        <Return>true</Return>
> > >        <CustomerList>
> > >                <Customer>
> > >                        <Dealer></Dealer>
> > >                        <TitleCode>5</TitleCode>
> > >                        <Initials>A</Initials>
> > >                        <CustomerNo>0</CustomerNo>
> > >                        <Customertype>P</Customertype>
> > >                        <Foren>ANDREW JAMES</Foren>
> > >                        <Surn>PALMER</Surn>
> > >                        <Company></Company>
> > >                        <AddLine1></AddLine1>
> > >                        <AddLine2>HASLINGTON</AddLine2>
> > >                        <AddLine3></AddLine3>
> > >                        <AddPosttown>Crewe</AddPosttown>
> > >                        <PostCode></PostCode>
> > >                        <HouseNumber>35</HouseNumber>
> > >                </Customer>
> > >                <Customer>
> > >                        <Dealer></Dealer>
> > >                        <TitleCode>3</TitleCode>
> > >                        <Initials>A</Initials>
> > >                        <CustomerNo>0</CustomerNo>
> > >                        <Customertype>P</Customertype>
> > >                        <Foren>ANDREW JAMES</Foren>
> > >                        <Surn>PALMER</Surn>
> > >                        <Company></Company>
> > >                        <AddLine1></AddLine1>
> > >                        <AddLine2>HASLINGTON</AddLine2>
> > >                        <AddLine3></AddLine3>
> > >                        <AddPosttown>Crewe</AddPosttown>
> > >                        <PostCode></PostCode>
> > >                        <HouseNumber>35</HouseNumber>
> > >                </Customer>
> > >        </CustomerList>
> > > </CustomerFindResponse>
> > >
> > > And the accompanying XSD:
> > >
> > > <?xml version="1.0" encoding="UTF-8"?> <xs:schema
> > > xmlns:xs="http://www.w3.org/2001/XMLSchema";
> > > elementFormDefault="qualified">
> > >  <xs:element name="CustomerFindResponse">
> > >    <xs:complexType>
> > >      <xs:sequence>
> > >        <xs:element ref="Return"/>
> > >        <xs:element ref="CustomerList"/>
> > >      </xs:sequence>
> > >    </xs:complexType>
> > >  </xs:element>
> > >  <xs:element name="Return" type="xs:boolean"/>  <xs:element
> > > name="CustomerList">
> > >    <xs:complexType>
> > >      <xs:sequence>
> > >        <xs:element maxOccurs="unbounded" ref="Customer"/>
> > >      </xs:sequence>
> > >    </xs:complexType>
> > >  </xs:element>
> > >  <xs:element name="Customer">
> > >    <xs:complexType>
> > >      <xs:sequence>
> > >        <xs:element ref="Dealer"/>
> > >        <xs:element ref="TitleCode"/>
> > >        <xs:element ref="Initials"/>
> > >        <xs:element ref="CustomerNo"/>
> > >        <xs:element ref="Customertype"/>
> > >        <xs:element ref="Foren"/>
> > >        <xs:element ref="Surn"/>
> > >        <xs:element ref="Company"/>
> > >        <xs:element ref="AddLine1"/>
> > >        <xs:element ref="AddLine2"/>
> > >        <xs:element ref="AddLine3"/>
> > >        <xs:element ref="AddPosttown"/>
> > >        <xs:element ref="PostCode"/>
> > >        <xs:element ref="HouseNumber"/>
> > >      </xs:sequence>
> > >    </xs:complexType>
> > >  </xs:element>
> > >  <xs:element name="Dealer" type="xs:integer"/>  <xs:element
> > > name="TitleCode" type="xs:integer"/>  <xs:element name="Initials"
> > > type="xs:string"/>  <xs:element name="CustomerNo"
> > > type="xs:integer"/>  <xs:element name="Customertype"
> > > type="xs:string"/>  <xs:element name="Foren" type="xs:string"/>
> > > <xs:element name="Surn" type="xs:string"/>  <xs:element
> > > name="Company" type="xs:string"/>  <xs:element name="AddLine1"
> > > type="xs:string"/>  <xs:element name="AddLine2"
> type="xs:string"/>
> > > <xs:element name="AddLine3" type="xs:string"/>  <xs:element
> > > name="AddPosttown" type="xs:string"/>  <xs:element
> name="PostCode"
> > > type="xs:string"/>  <xs:element name="HouseNumber"
> > > type="xs:string"/> </xs:schema>
> > >
> > > My question is this: how do I use the XSD file in my code
> to create
> > > an XML document based on the schema?  I believe once i
> have created
> > > such an entity i could manually walk the dataset and
> create new XML nodes.
> > > Is this the right way to do it?  Am I even on the right track?
> > >
> > > My cheap and nasty alternative is to return the data like this:
> > >
> > > strXML = "<CustomerFindResponse
> > > xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"";
> > > xsi:noNamespaceSchemaLocation=""FindCustomer_response_OK.xsd"">"
> > > strXML += "<Return>true</Return>"
> > > dstDataset.Tables(0).TableName = "Customer"
> > > Dim strData As String = dstDataset.GetXml() strXML +=
> strData strXML
> > > += "</CustomerFindResponse>"
> > >
> > > Return strXML
> > >
> > > But this involves a degree of hard-coding and whatsmore
> the returned
> > > XML is escaped (the < and > appear as &lt; and &gt; respectively)
> > >
> > > sigh - it's a bit of a nightmare!
> > >
> > > Any ideas or advice would really be appreciated.
> > >
> > > Cheers,
> > >
> > > Ben
> > >
> > > ===================================
> > > This list is hosted by DevelopMentor(r)  http://www.develop.com
> > >
> > > View archives and manage your subscription(s) at
> > > http://discuss.develop.com
> > >
> > > ===================================
> > > This list is hosted by DevelopMentor(r)  http://www.develop.com
> > >
> > > View archives and manage your subscription(s) at
> > http://discuss.develop.com
> > >
> >
> > ===================================
> > This list is hosted by DevelopMentor(r)  http://www.develop.com
> >
> > View archives and manage your subscription(s) at
> > http://discuss.develop.com
> >
> > ===================================
> > This list is hosted by DevelopMentor(r)  http://www.develop.com
> >
> > View archives and manage your subscription(s) at
> > http://discuss.develop.com
> >
>
> ===================================
> This list is hosted by DevelopMentorR  http://www.develop.com
>
> View archives and manage your subscription(s) at
> http://discuss.develop.com
>

===================================
This list is hosted by DevelopMentorĀ®  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to