从XSD(使用XSD.exe)VB.NET生成XML时出错
好的,看,我正在尝试通过XSD构建一个XML。为此,我使用了一个用XSD.exe工具(凭证构建版本2.vb)构建的类,它基本上有两个子节点MSGDATA,类中的字段类型被转换为两个属性 第一个节点没有问题,因为该节点的所有子节点都是使用以下代码构建的简单XML片段:从XSD(使用XSD.exe)VB.NET生成XML时出错,xml,vb.net,xsd,Xml,Vb.net,Xsd,好的,看,我正在尝试通过XSD构建一个XML。为此,我使用了一个用XSD.exe工具(凭证构建版本2.vb)构建的类,它基本上有两个子节点MSGDATA,类中的字段类型被转换为两个属性 第一个节点没有问题,因为该节点的所有子节点都是使用以下代码构建的简单XML片段: Dim Addenda As New VOUCHER_BUILD_TypeShape() Addenda.FieldTypes = New FieldTypes_TypeShape With Addenda.Fi
Dim Addenda As New VOUCHER_BUILD_TypeShape()
Addenda.FieldTypes = New FieldTypes_TypeShape
With Addenda.FieldTypes
.VCHR_BANK_STG = New FieldTypesVCHR_BANK_STG_TypeShape
With .VCHR_BANK_STG
.class = "R"
.BUSINESS_UNIT = New FieldTypesCharFieldType
...
End With
End With
Dim xs As New XmlSerializer(GetType(VOUCHER_BUILD_TypeShape))
Dim fs As New FileStream("C:/filesPS/demo.xml", FileMode.Create)
xs.Serialize(fs, Addenda)
fs.Close()
是什么生成了以下XML:
<VOUCHER_BUILD xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<FieldTypes>
<VCHR_VNDR_STG class="R">
<BUSINESS_UNIT type="CHAR"/>
...
</VCHR_VNDR_STG>
</FieldTypes>
</VOUCHER>
在FieldTypes节点至少让我
尝试放置内容后:
Dim oTransaction_TypeShape(0) As Transaction_TypeShape
'THIS LINE IS THAT I'M ADDING THAT THEORY IS NODE VCHR_HDR_STG
oTransaction_TypeShape(0).VCHR_HDR_STG = New VCHR_HDR_STGMsgDataRecord_TypeShape
Addenda.MsgData = oTransaction_TypeShape
编译时不标记任何错误。但它在运行时抛出此错误:对象引用未设置为对象的实例
这看起来很简单,但我已经解决不了了
非常感谢您的帮助。我终于解决了这个问题,错误是一个没有值(无值)的属性:
Dim oTransaction_TypeShape(0) As Transaction_TypeShape
Addenda.MsgData = oTransaction_TypeShape
Dim oTransaction_TypeShape(0) As Transaction_TypeShape
'THIS LINE IS THAT I'M ADDING THAT THEORY IS NODE VCHR_HDR_STG
oTransaction_TypeShape(0).VCHR_HDR_STG = New VCHR_HDR_STGMsgDataRecord_TypeShape
Addenda.MsgData = oTransaction_TypeShape
Dim oTransaction_TypeShape(0) As Transaction_TypeShape
oTransaction_TypeShape(0) = New Transaction_TypeShape
oTransaction_TypeShape(0).VCHR_HDR_STG = New VCHR_HDR_STGMsgDataRecord_TypeShape