[ASP.NET/XML] xml version="1.0" wordt niet geschreven

Pagina: 1
Acties:

  • BDT
  • Registratie: December 2001
  • Laatst online: 23-10-2023
Ik gebruik een typed dataset die XML wegschrijft met behulp van ds.WriteXml.

De XML output is goed, maar de regel:

code:
1
<?xml version="1.0"?>


ontbreekt.

Deze moet ik hebben omdat ik de XML moet validaten.

Dit is mijn code:

code:
1
2
3
4
ProductDataSet ds = new ProductDataSet();

MemoryStream ms = new MemoryStream();
ds.WriteXml(ms);


Ik krijg dan XML met deze output:

code:
1
2
3
4
5
6
<ProductDataSet xmlns="http://localhost/Product.xsd">
  <Products>
    <ProdId>274</ProdId>
    <ProdName>blaat</ProdName>
  </Products>
</ProductDataSet>


Daar moet die regel met xmlversion=1 nog boven.

Hoe zorg ik dat die in mijn XML komt? In mijn Product.xsd staat de regel wel, die heb ik erin gezet.

Sega till I die!


  • whoami
  • Registratie: December 2000
  • Laatst online: 29-08 15:58

Om Xml data naar een file weg te schrijven gebruik je imho het best een object van de class XmlDocument en XmlTextWriter.

De XmlTextWriter class heeft een member WriteStartDocument waarmee je die
code:
1
<? xml version="1.0" ?>

schrijft.

De XmlDocument class heeft een member Save die overloaded is en waarmee je oa een XmlTextWriter als parameter kunt meegeven.

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 29-08 15:58
Je kunt ook een XmlTextWriter gebruiken als parameter voor de WriteXml method van de DataSet, dus:
code:
1
2
3
XmlTextWriter wr = new XmlTextWriter (xmlfilename, encoding);
wr.WriteStartDocument();
ds.WriteXml(wr);

(Disclaimer : niet getest). :P

https://fgheysels.github.io/


  • BDT
  • Registratie: December 2001
  • Laatst online: 23-10-2023
Ja dat werkt inderdaad zo. Alleen heb ik het nu naar een MemoryStream geschreven ipv een xmlfilename.

Maar de XML is nu well formatted.

thx

Sega till I die!