제공된 스키마를 기반으로 XML 문서를 생성하기 위해 Microsoft의 XMLGen 라이브러리를 사용하는 함수를 작성하려고합니다. For reference, I was trying to follow the project on this MSDN page.XML 샘플 생성기 - 유형의 객체를 캐스팅 할 수 없습니다
프로젝트를 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 라이브러리 사용에 비교적 익숙하지 않으며 정식 교육을받지 못했습니다.
스키마 정말 작가의 일부가 될 필요가 없습니다. 코드는 유효한 결과를 생성해야합니다. 따라서 생성 후 유효성 검사가 일반적으로 충분합니다. 그물에 쓰기를위한 많은 방법이 있습니다. 실제 xml이 어떻게 생겼는지 샘플을 가지고 있습니까? 게시하십시오. – jdweng
XSD에서 XML 파일의 유효성을 검사하지 않고 XSD 문서의 세부 정보를 기반으로 빈 XML을 만듭니다. – aberrantGeek
다른 메서드를 요청했기 때문에 Visual Studio는 노드를 마우스 오른쪽 단추로 클릭하여 XML 스키마 탐색기에서 예제를 생성 할 수 있습니다. – MrGadget