Hallo Jungs. Ich versuche gerade zwangsweise etwas in die Xml Materie einzusteigen.
Ich muss diverse Xml Dateien eines Fremdprogramms verwalten.
Deshalb versuche ich gerade diese nachzubauen. (Das deserialisieren sollte dann schon klappen.)
Dabei habe ich 2 Probleme.
Am besten ich zeige ertsmal die beiden XML.
Orginal
<?xml version="1.0" encoding="UTF-8"?>
<Components xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://eiene_Seite.de">
<Components>
<Tester Name="T1">
<Component>w</Component>
<Component>z</Component>
</Tester>
<Tester Name="T2">
<Component>d</Component>
</Tester>
</Components>
</Components>
Mein File
<?xml version="1.0" encoding="UTF-8"?>
<Components xmlns="http://eiene_Seite.de" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Tester Name="T1">
<Component>w</Component>
<Component>z</Component>
</Tester>
<Tester Name="T2">
<Component>d</Component>
</Tester>
</Components>
Wie man sieht, stimmt zum ersten der Namespace nicht und es fehlt am Anfang und Ende einmal das "Components".
Wie komme ich dahin. Hier mal der Code, wie ich ihn zur Zeit habe.
Eine Form1
Imports System.IO
Imports System.Xml
Imports System.Xml.Serialization
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
Dim serializer As New XmlSerializer(GetType(Components))
Dim writer As New StreamWriter("c:\test.xml")
Dim p As New Components From {New Tester("T1", "w,z"), New Tester("T2", _
"d")}
serializer.Serialize(writer, p)
writer.Close()
End Sub
End Class Ein Modul
Imports System.Xml
Imports System.Xml.Serialization
<XmlRootAttribute("Components", _
Namespace:="http://eiene_Seite.de", IsNullable:=True)> _
Public Class Components
Inherits List(Of Tester)
End Class
Public Class Tester
<XmlAttribute()> _
Public Name As String
<XmlElementAttribute(IsNullable:=False)> _
Public Component() As String
Public Sub New()
Name = ""
Component = Nothing
End Sub
Public Sub New(ByVal Nam As String, Comp As String)
Name = Nam
Component = Split(Comp, ",")
End Sub
End Class Zusammengefasst, möchte ich gerne wissen, wie ich den Namespace anpassen kann und wie ich die zusätzliche "Components" Meldung hinbekomme.
Danke im schon mal an alle die helfen wollen. |