Konuyu görüntüle
IUCODERS FORUM > Programlama > .NET > DataSet.WriteXml metodunda aldığım ilginç hata
Yazar
mervenur


avatar
İstanbul
Kayıt: 06.01.2011
09.09.2011-17:02 #75964
merhaba arkadaşlar,

Epilog durumundaki StartElement belirteci geçersiz bir XML belgesi oluşmasına neden olur.

ds.ReadXml(yol);
sonra ds içindeki DataTable'ın birinin verilerinde değişiklik yapıyorum -row update, row insert gb-.
//en sonunda
ds.WriteXml(yol); //dediği zaman bu satırda hata veriyor.

ilginize şimdiden teşekkürler. kolay gelsin.






Sevgiyle

Yazar
ceceokacha


avatar

Kayıt: 12.02.2011
09.09.2011-17:37 #75966
hatayı yazbilirmisin?
eğer datatable daki veriyi xml ' e yazdırmak istiyorsan şöyle yapmalısın
dt.WriteXml("c:\datatable.xml", XmlWriteMode.WriteSchema);





Yazar
mervenur


avatar
İstanbul
Kayıt: 06.01.2011
12.09.2011-09:37 #75984
Hata mesajı: "Epilog durumundaki StartElement belirteci geçersiz bir XML belgesi oluşmasına neden olur. " Ayrıca dediğin gibi de denedim aynı hatayı verdi ceceokacha.

ReadXml yaptığım örnek xml bilgileri de şöyle:
<?xml version="1.0" standalone="yes"?>
<organization>
  <tableofcontents>
    <item title="Eğitimi Alırken" href="arayuz.html" identifier="001">
      <item title="hedehöde1 - Kopya (2).docx" href="C:Program FileseKampusScormworkspaceprojectsHafta6hedehöde1 - Kopya (2).docx" identifier="011" />
    </item>
    <item title="Döngü Yapıları" href="amac.htm" identifier="002" />
    <item title="6. Döngü Yapıları" href="Alg600.htm" identifier="003">
      <item title="6.1. Döngü Kavramı" href="Alg60a.htm" identifier="004" />
      <item title="6.2. Kontrol Değerli Döngüler " href="Alg60b.htm" identifier="005">
        <item title="6.2.1. Giriş Kontrollü Döngüler" href="Alg60b_1.htm" identifier="006" />
        <item title="6.2.2. Çıkış Kontrollü Döngüler" href="Alg60b_2.htm" identifier="007" />
      </item>
      <item title="6.3. Sayaç Kontrollü Döngüler " href="Alg60c.htm" identifier="008" />
      <item title="6.4. Sabit Tekrarlı Döngüler " href="Alg60d.htm" identifier="009" />
      <item title="6.5. Örnek Problemler " href="Alg60e.htm" identifier="010" />
    </item>
  </tableofcontents>
</organization>






Sevgiyle

Yazar
mervenur


avatar
İstanbul
Kayıt: 06.01.2011
12.09.2011-10:30 #75986
Hata mesajı (ingilizce): Token StartElement in state Epilog would result in an invalid XML document.
http://social.msdn.microsoft.com/Forums/ar/xmlandnetfx/thread/6cd305bb-7949-4414-bdea-a4712d2d56ce
şu adresten anladığıma göre yeni eklediğim bir satırda bir sütunu boş bıraktığım için hata veriyordu. sütunu doldurdum bu sefer xml'i istediğim gibi oluşturmadı. yapısal olarak bir değişiklik yapmadığım halde.
oluşan xml:
<?xml version="1.0" standalone="yes"?>
<organization>
   <tableofcontents />
  <item title="hedehöde1 - Kopya (2).docx" href="C:Program FilesworkspaceprojectsHafta0hedehöde1 - Kopya (2).docx" identifier="001">
    <item_Id>1</item_Id>
    <item_Id_0>0</item_Id_0>
  </item>
  <item title="hedehöde1 - Kopya (6).docx" href="C:Program FilesworkspaceprojectsHafta0hedehöde1 - Kopya (6).docx" identifier="002">
    <item_Id>2</item_Id>
    <item_Id_0>0</item_Id_0>
  </item>
</organization>

<tableofcontents> <item....> </item> </tableofcontents> olmalıydı. :(







Sevgiyle

Yazar
ceceokacha


avatar

Kayıt: 12.02.2011
12.09.2011-14:18 #75989
mervenur yazdi
 
Hata mesajı (ingilizce): Token StartElement in state Epilog would result in an invalid XML document.
http://social.msdn.microsoft.com/Forums/ar/xmlandnetfx/thread/6cd305bb-7949-4414-bdea-a4712d2d56ce
şu adresten anladığıma göre yeni eklediğim bir satırda bir sütunu boş bıraktığım için hata veriyordu. sütunu doldurdum bu sefer xml'i istediğim gibi oluşturmadı. yapısal olarak bir değişiklik yapmadığım halde.
oluşan xml:
<?xml version="1.0" standalone="yes"?>
<organization>
   <tableofcontents />
  <item title="hedehöde1 - Kopya (2).docx" href="C:Program FilesworkspaceprojectsHafta0hedehöde1 - Kopya (2).docx" identifier="001">
    <item_Id>1</item_Id>
    <item_Id_0>0</item_Id_0>
  </item>
  <item title="hedehöde1 - Kopya (6).docx" href="C:Program FilesworkspaceprojectsHafta0hedehöde1 - Kopya (6).docx" identifier="002">
    <item_Id>2</item_Id>
    <item_Id_0>0</item_Id_0>
  </item>
</organization>

<tableofcontents> <item....> </item> </tableofcontents> olmalıydı. :(



Araştırdığım kadarıyla senin XmlTextWriter nesnesi ile yazıp start element vermelisn.Zaten oluşan xml de zorunlu bir root element oluşturmuş.O yüzden senin şöyle yazma şekline gitmen lazım

http://www.tombecker.net/2009/08/token-startelement-in-state-epilog.html
bu linkte nasıl yapıldığı var sen XMLWriterSchema ile nasıl yazdıracağğını gösterip daha sonra dataset'e versen hata çözülecek gibi.







Yazar
mervenur


avatar
İstanbul
Kayıt: 06.01.2011
13.09.2011-14:36 #75998
Sorun içerikle ilgili imiş. DataTable'da bulunan Item_Id, Item_Id_0 ve tableofcontents_Id (sütun isimleri) verilerini düzeltince problem kalmadı. Ayrıca benim gibi sıkıntı yaşayabilecek olan arkadaşlar için ayrıntıları da vereyim. Item_Id_0 ve tableofcontents_Id verilerinde 0 olması gereken yere null, null olan yere 0 gönderilmesi de hataya sebebiyet veriyor.





Sevgiyle

Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb