Hoe xml te genereren

Status
Niet open voor verdere reacties.

Djavid

Nieuwe gebruiker
Lid geworden
27 dec 2009
Berichten
1
Hoi allemaal,

Ik heb de volgende situatie,
Ik moet wat data van database converteren naar xml en naar verschillende externe partijen exporteren. Alleen elke partij vraagt de xml data in verschillende layouts.

Bv:

partij 1:

<user>
<id>001</id>
<name>username</name>
</user>

partij 2:

<user id="001">
<name>username</name>
</user>

zoals je ziet, zijn het dezelfde data alleen in andere structuur.
De vraag is hoe kan ik dit dynamisch laten maken? moet ik xslt, xsd of dtd gebruiken? ik ben heel nieuw in dit en hoop een goede advies te krijgen.
 
als ik jou was zou ik ver weg blijven van xslt en xls enzo :)
gebruik gewoon een DataContract Attribute op een Class die er net hetzelfde uit ziet als de strcutuur van de database.

[DataContract]
public class user
{
[DataMember]
public string userName { get;set; }

[DataMember]
public int Id { get; set;}
}

dan kan je de DataContractSerializer gebruiken om dit om te zetten naar Xml:

Code:
 MemoryStream memoryStream = new MemoryStream();
            DataContractSerializer dcSerializer = new DataContractSerializer(obj.GetType());
            XmlWriterSettings xmlWriterSettings = new XmlWriterSettings();
            xmlWriterSettings.Encoding = new UTF8Encoding(false);
            xmlWriterSettings.ConformanceLevel = ConformanceLevel.Document;
            xmlWriterSettings.Indent = true;
            //xmlWriterSettings.OmitXmlDeclaration = true;

            using (XmlWriter xWriter = XmlWriter.Create(memoryStream, xmlWriterSettings))
            {
                dcSerializer.WriteObject(xWriter, obj);
                xWriter.Flush();
                //return Encoding.UTF8.GetString(memoryStream.ToArray());
                memoryStream.Position = 0;
                return memoryStream;
            }
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan