XML Sample Generator - 无法转换类型的对象

时间:2017-01-19 15:38:43

标签: xml vb.net visual-studio xsd

我正在尝试编写一个使用Microsoft的XMLGen库的函数,以便根据提供的Schema生成XML文档。 For reference, I was trying to follow the project on this MSDN page.

我最终将项目翻译成Visual Basic,而代码构建正常,它会在运行时抛出异常; “在XmlWriter.Create()

期间无法转换'System.Xml.XmlWellFormedWriter'类型的对象

我认为XmlWriter.Create()方法创建了一个新的XmlWriter实例,因此我不确定它为什么要尝试转换XmlWellFormedWriter。

 Public Function CreateXmlFromSchema(sender As Object, e As EventArgs) Handles ToolStripMenuItem.Click        

    Dim fDialog As SaveFileDialog = New SaveFileDialog
    fDialog.Filter = "XML Document (.xml)|*.xml"

    If (fDialog.ShowDialog() = DialogResult.OK) Then

        Dim xStringWriter As New StringWriter()
        Dim xTextWriter As XmlTextWriter = New XmlTextWriter(xStringWriter)

        Try

            xTextWriter = XmlWriter.Create("myTextXML.xml")

            xTextWriter.Formatting = Formatting.Indented

            Dim xQualifiedName As XmlQualifiedName = New XmlQualifiedName("envelope", "mySchema.xsd")

            Dim xSampleGen As XmlSampleGenerator = New XmlSampleGenerator("mySchema.xsd", xQualifiedName)

            xSampleGen.WriteXml(xTextWriter)

        Catch ex As Exception
            MessageBox.Show(ex.Message)
            MessageBox.Show("Stack Trace: " & vbCrLf & ex.StackTrace)

        Finally
            xTextWriter.Flush()
            xTextWriter.Close()

        End Try

    End If

    Return True

End Function

我不知道出了什么问题,但是我们将非常感谢任何帮助。

如果有一种基于模式创建XML文件的不同/更好的方法,我会全力以赴。我对使用XML库比较陌生,并且没有接受任何正式培训。

1 个答案:

答案 0 :(得分:0)

您没有提供XmlSampleGenerator类,但是这可以让您通过不使用StringWriter来超越当前错误:

Dim settings As New XmlWriterSettings
settings.Indent = True
Dim xTextWriter As XmlWriter = XmlWriter.Create("myTextXML.xml", settings)

Dim xQualifiedName As XmlQualifiedName = New XmlQualifiedName("envelope", "mySchema.xsd")

Dim xSampleGen As XmlSampleGenerator = New XmlSampleGenerator("mySchema.xsd", xQualifiedName)

xSampleGen.WriteXml(xTextWriter)