Token StartElement im Status Epilog würde in einem ungültigen XML-Dokument resultieren.

  • VB.NET
  • .NET (FX) 4.0

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Token StartElement im Status Epilog würde in einem ungültigen XML-Dokument resultieren.

    Hallo!

    Seit neuestem hab ich folgendes Problem: Beim generieren einer XML-Datei erscheint mir ein Fehler(im Titel). Könnte vielleicht jemand den Code durchgucken?
    Code: Der Fehler ist angeblich in Zeile 22.

    VB.NET-Quellcode

    1. Public Shared Sub Save_XML(Info As XMLInfo, Output As String)
    2. Dim Writer As New XmlTextWriter(Output, Text.Encoding.UTF8)
    3. Writer.WriteStartDocument(True)
    4. Writer.Formatting = Formatting.Indented
    5. Writer.Indentation = 2
    6. Writer.WriteStartElement("meta")
    7. Writer.WriteStartElement("title")
    8. Writer.WriteString(Info.Title)
    9. Writer.WriteEndElement()
    10. Writer.WriteStartElement("desc")
    11. Writer.WriteString(Info.Description)
    12. Writer.WriteEndElement()
    13. Writer.WriteStartElement("parts")
    14. Writer.WriteString(Convert.ToString(Info.Parts))
    15. Writer.WriteEndElement()
    16. Writer.WriteEndElement()
    17. Writer.WriteStartElement("quests")
    18. Dim QIndex As Integer = 0
    19. For Each Q As Question In Info.Questions
    20. QIndex += 1
    21. Writer.WriteStartElement("quest" & QIndex)
    22. Writer.WriteStartElement("quest")
    23. Writer.WriteString(Q.Question)
    24. Writer.WriteEndElement()
    25. Writer.WriteStartElement("answ")
    26. Writer.WriteString(Q.Answer)
    27. Writer.WriteEndElement()
    28. Writer.WriteStartElement("index")
    29. Writer.WriteString(Convert.ToString(Q.IndexInProgress))
    30. Writer.WriteEndElement()
    31. Writer.WriteEndElement()
    32. Next
    33. Writer.WriteEndElement()
    34. Writer.WriteStartElement("TFs")
    35. Dim TIndex As Integer = 0
    36. For Each TF As TrueFalse In Info.TrueFalses
    37. TIndex += 1
    38. Writer.WriteStartElement("tf" & TIndex)
    39. Writer.WriteStartElement("quest")
    40. Writer.WriteString(TF.Question)
    41. Writer.WriteEndElement()
    42. Writer.WriteStartElement("answ")
    43. Writer.WriteString(TF.Answer)
    44. Writer.WriteEndElement()
    45. Writer.WriteStartElement("index")
    46. Writer.WriteString(Convert.ToString(TF.IndexInProgress))
    47. Writer.WriteEndElement()
    48. Writer.WriteEndElement()
    49. Next
    50. Writer.WriteEndElement()
    51. Writer.WriteStartElement("MAs")
    52. Dim MIndex As Integer = 0
    53. For Each MA As MultiAnswer In Info.MultiAnswers
    54. MIndex += 1
    55. Writer.WriteStartElement("MA" & MIndex)
    56. Writer.WriteStartElement("quest")
    57. Writer.WriteString(MA.Question)
    58. Writer.WriteEndElement()
    59. Writer.WriteStartElement("answ")
    60. Writer.WriteString(MA.Answer)
    61. Writer.WriteEndElement()
    62. Writer.WriteStartElement("index")
    63. Writer.WriteString(Convert.ToString(MA.IndexInProgress))
    64. Writer.WriteEndElement()
    65. Writer.WriteEndElement()
    66. Next
    67. Writer.WriteEndElement()
    68. Writer.WriteEndDocument()
    69. Writer.Close()
    70. End Sub

    Mfg, C8002.
    “If debugging is the process of removing software bugs, then programming must be the process of putting them in.”
    -Unbekannt
    @ErfinderDesRades Keine Fehlermeldung, sondern eher ein "ästhetischer" Fehler im XML-Dokument. :/
    @C8002 Poste mal Deine Datenklassen, dass wir wenigstens das XML-Schreiben nachvollziehen können.
    Dein Code sollte in sich compilierbar sein.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    ErfinderDesRades schrieb:

    Fehlermeldung?

    Steht im Titel, kann ich aber gerne nochmal schreiben: "Token StartElement im Status Epilog würde in einem ungültigen XML-Dokument resultieren."

    RodFromGermany schrieb:

    Poste mal Deine Datenklassen, dass wir wenigstens das XML-Schreiben nachvollziehen können.
    Dein Code sollte in sich compilierbar sein.

    Ok, hier sind sie:

    VB.NET-Quellcode

    1. Public Class DataTypes
    2. Public Structure SurveyInfo
    3. Dim Title As String
    4. Dim Description As String
    5. Dim Parts As Integer
    6. Shared Questions As New List(Of Question)
    7. Shared TrueFalses As New List(Of TrueFalse)
    8. Shared MultiAnswers As New List(Of MultiAnswer)
    9. End Structure
    10. Public Structure Question
    11. Dim Question As String
    12. Dim Answer As String
    13. Dim IndexInProgress As Integer
    14. End Structure
    15. Public Structure TrueFalse
    16. Dim Question As String
    17. Dim Answer As Boolean
    18. Dim IndexInProgress As Integer
    19. End Structure
    20. Public Structure MultiAnswer
    21. Dim Question As String
    22. Dim Answer As String
    23. Dim IndexInProgress As Integer
    24. End Structure
    25. End Class
    “If debugging is the process of removing software bugs, then programming must be the process of putting them in.”
    -Unbekannt

    C8002 schrieb:

    "Token StartElement im Status Epilog würde in einem ungültigen XML-Dokument resultieren."
    hmm - vlt. ist mit Epilog das DocumentStart-Element gemeint, und dass du da keine weiteren Element einschachteln darfst.
    das würde bedeuten, zeile #87 auf Zeile#4 zu verschieben.

    Aber probiert habichs nicht, ich nehm immer XDocument.

    C8002 schrieb:

    RodFromGermany schrieb:

    Dein Code sollte in sich compilierbar sein.
    Probier dies bitte in einem neuen Projekt aus, indem Du Deinen Code da einfügst.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!