| Carlo Folini |
Merge di due dataset
Ciao,
non riesco a effettuare il merge di due dataset con una struttura predefinita da un XSD. Il codice che uso è: ---------------------------------------- DataSet DataTransfer = new DataSet("DataTransfer"); DataSet ClientList = new DataSet("ClientList"); ClientList.ReadXml(@"D:\MyPath\ClientData.xml"); DataTransfer.ReadXmlSchema(@"D:\MyPath\Simple2.xsd"); DataTransfer.Merge(ClientList); Result.Text = DataTransfer.GetXml(); ---------------------------------------- Quando faccio una getXml sul dataSet che voglio inserire (ClientList ) ottengo : <ClientList> <Client> .............. </Client> </ClientList> Per cui quando lo inserirsco nel dataset di destinazione in cui ho già caricato l'xsd di definizione. Questo lo ho ottenuto con una autogenerazione da VS.NEt e dovrebbe contenere la relazione gerarchica DataTransfer->ClientList->Client. Quello che invece ottengo è che il tag CLientList sparisce: <DataTransfer> <Client> .............. </Client> </DataTransfer> Come posso fare per ottenere la rappresentazione seguente: <?xml version="1.0"?> <DataTransfer xmlns="http://tempuri.org/Simple.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Simple.xsd"> <ClientList> <Client> <CDG>000123456</CDG> <BankCode>1</BankCode> <Branch>2</Branch> <CashAccountNumber>123</CashAccountNumber> <NameAndFirstName>Rossi Poalo</NameAndFirstName> <CashAccountOpenDate>1997-09- 19</CashAccountOpenDate> </Client> <Client> <CDG>234567890</CDG> <BankCode>2</BankCode> <Branch>10</Branch> <CashAccountNumber>987</CashAccountNumber> <NameAndFirstName>Tardelli Marco</NameAndFirstName> <CashAccountOpenDate>1998-11- 11</CashAccountOpenDate> </Client> </ClientList> </DataTransfer> ClientData.xml ----------------------------------------------------- <ClientList> <Client> <CDG>000123456</CDG> <BankCode>1</BankCode> <Branch>2</Branch> <CashAccountNumber>123</CashAccountNumber> <NameAndFirstName>Rossi Poalo</NameAndFirstName> <CashAccountOpenDate>1997-09-19</CashAccountOpenDate> </Client> <Client> <CDG>234567890</CDG> <BankCode>2</BankCode> <Branch>10</Branch> <CashAccountNumber>987</CashAccountNumber> <NameAndFirstName>Tardelli Marco</NameAndFirstName> <CashAccountOpenDate>1998-11-11</CashAccountOpenDate> </Client> </ClientList> ----------------------------------------------------- simple2.xsd ---------------------------------------------------- <?xml version="1.0" ?> <xs:schema id="DataTransfer" targetNamespace="http://tempuri.org/Simple.xsd" xmlns:mstns="http://tempuri.org/Simple.xsd" xmlns="http://tempuri.org/Simple.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified"> <xs:element name="DataTransfer" msdata:IsDataSet="true" msdata:Locale="it-IT" msdata:EnforceConstraints="False"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element name="ClientList"> <xs:complexType> <xs:sequence> <xs:element name="Client" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="CDG" type="xs:string" minOccurs="0" /> <xs:element name="BankCode" type="xs:string" minOccurs="0" /> <xs:element name="Branch" type="xs:string" minOccurs="0" /> <xs:element name="CashAccountNumber" type="xs:string" minOccurs="0" /> <xs:element name="NameAndFirstName" type="xs:string" minOccurs="0" /> <xs:element name="CashAccountOpenDate" type="xs:string" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:element> </xs:schema> ------------------------------------------- |
| Giuseppe Guerrasio |
Re: Merge di due dataset
Non riesco a capire il perchè del merge, ma per far caricare il ClientList come tabella sul DataSet ClientList devi aggiugere un tag qualsiasi all'inizio del file ClientData. In questo modo il DataSet lo Aggiunge come tabella . Il Tag root non viene mai considerato come tabella.
FileModificato ClientData.xml ----------------------------------------------------- <l> <ClientList> <Client> <CDG>000123456</CDG> <BankCode>1</BankCode> <Branch>2</Branch> <CashAccountNumber>123</CashAccountNumber> <NameAndFirstName>Rossi Poalo</NameAndFirstName> <CashAccountOpenDate>1997-09-19</CashAccountOpenDate> </Client> <Client> <CDG>234567890</CDG> <BankCode>2</BankCode> <Branch>10</Branch> <CashAccountNumber>987</CashAccountNumber> <NameAndFirstName>Tardelli Marco</NameAndFirstName> <CashAccountOpenDate>1998-11-11</CashAccountOpenDate> </Client> </ClientList> </l> ----------------------------------------------------- |