XML 示例生成器 - 无法强制转换类型的对象



我正在尝试编写一个函数,该函数利用Microsoft的XMLGen库,以便基于提供的模式生成XML文档。作为参考,我试图关注此 MSDN 页面上的项目。

我最终将项目转换为 Visual Basic,虽然代码构建良好,但它在运行时抛出异常;"无法强制转换类型为'System.Xml.XmlWellFormedWriter'的对象"期间 XmlWriter.Create()

我认为 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 库相对较新,并且没有接受过任何正式培训。

您没有提供 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)

最新更新