vb.NET与复杂XML结构

vb.NET与复杂XML结构,xml,vb.net,visual-studio-2012,Xml,Vb.net,Visual Studio 2012,我试图将一个xml文件转换成一个复杂的对象类,我不确定为什么VisualStudio/Edit/Past Special as xml类不能正常工作。当我运行这段代码时,我得到了“附加信息:XML文档中有一个错误(24,4)错误” Dim序列化程序作为新的XmlSerializer(GetType(rates)) Dim reader作为新的StreamReader(“d:\1Q2017.xml”) 将rts作为新费率 rts=序列化程序。反序列化(读取器) reader.Close() 我的

我试图将一个xml文件转换成一个复杂的对象类,我不确定为什么VisualStudio/Edit/Past Special as xml类不能正常工作。当我运行这段代码时,我得到了“附加信息:XML文档中有一个错误(24,4)错误”

Dim序列化程序作为新的XmlSerializer(GetType(rates))
Dim reader作为新的StreamReader(“d:\1Q2017.xml”)
将rts作为新费率
rts=序列化程序。反序列化(读取器)
reader.Close()
我的班级:

公共类费率
'''
部分公共类文件
私有标题字段作为字符串
私有字段作为字符串
私有链接字段作为字符串
私有交换率字段为字符串
Private rECORDField()作为FILERECORD
私有脚注字段()作为文件脚注
'''
公共属性TITLE()作为字符串
得到
还给我,蒂特菲尔德
结束
设置
Me.tITLEField=值
端集
端属性
'''
公共属性QUARTER()作为字符串
得到
还给我,奎特菲尔德
结束
设置
Me.qUARTERField=值
端集
端属性
'''
作为字符串的公共属性链接()
得到
给我回林克菲尔德
结束
设置
Me.lINKField=值
端集
端属性
'''
公共属性交换率()为字符串
得到
Return Me.eXCHANGE\u RATEField
结束
设置
Me.eXCHANGE\u RATEField=值
端集
端属性
'''
公共属性记录()为FILERECORD())
得到
返回我的记录域
结束
设置
Me.rECORDField=值
端集
端属性
'''
公共属性脚注()作为文件脚注()
得到
还给我,斯菲尔德
结束
设置
Me.fOOTNOTESField=值
端集
端属性
末级
'''
部分公共类文件记录
Private itemsField()作为对象
私有itemsElementNameField()作为ItemsChoiceType
'''
作为对象()的公共属性项()
得到
返回我.itemsField
结束
设置
Me.itemsField=值
端集
端属性
'''
公共属性ItemsElementName()作为ItemsChoiceType()
得到
Return Me.itemsElementNameField
结束
设置
Me.itemsElementNameField=值
端集
端属性
末级
'''
部分公共类文件记录权限
私有idField作为字符串
作为字符串的专用附加费字段
私有值字段作为字符串
'''
作为字符串的公共属性ID()
得到
还我,艾德菲尔德
结束
设置
Me.idField=值
端集
端属性
'''
公共财产附加费()作为字符串
得到
还给我。附加费
结束
设置
Me.sURCHARGEField=值
端集
端属性
'''
作为字符串的公共属性值()
得到
返回我。valueField
结束
设置
Me.valueField=值
端集
端属性
末级
'''
部分公共类FILERECORDRATE
私有cOUNTRYField作为字符串
作为字节的专用rATECHANGEField
私有值字段为十进制
'''
公共属性国家/地区()作为字符串
得到
把我还给cOUNTRYField
结束
设置
Me.cOUNTRYField=值
端集
端属性
'''
公共属性RATECHANGE()作为字节
得到
返回我.rATECHANGEField
结束
设置
Me.rATECHANGEField=值
端集
端属性
'''
公共属性值()为十进制
得到
返回我。valueField
结束
设置
Me.valueField=值
端集
端属性
末级
'''
公共枚举项SchoiceType
'''
国家
'''
燃料型
'''
管辖权
'''
比率
结束枚举
'''
部分公共类文件脚注
私有idField作为字符串
私有辖区字段为字符串
私有值字段作为字符串
'''
作为字符串的公共属性ID()
得到
还我,艾德菲尔德
结束
设置
Me.idField=值
端集
端属性
'''
公共财产管辖权()作为字符串
得到
返回我。辖区字段
结束
设置
Me.justictionField=值
端集
端属性
'''
作为字符串的公共属性值()
得到
返回我。valueField
结束
设置
Me.valueField=值
端集
端属性
末级
末级
下面是XML文件:


]>
最终燃油税率
2017年第1季度
http://www.iftach.org/TaxMatrix/charts/1Q2017.xml
美国/加拿大汇率1.3395-0.7465
AB
可以
汽油
0.4942
0.1749
特种柴油
0.5185
0.1835
乙醇汽油
0.3674
0.1300
丙烷
0.3527
0.1248
液化天然气
0.1068
0.0378
压缩天然气
1.0681
0.3780
乙醇
0.3674
0.1300
甲醇
0.4290
0.1518
E-85
0.3863
0.1367
M-85
0.4388
0.1553
A55
0.4244
0.1502
生物柴油
0.3674
0.1300

如果已经讨论过这一点,我深表歉意,但我到处搜索,在尝试联机格式化程序时,找不到如何正确处理这些XML格式的示例。

您收到的XML无效

FILE元素声明如下:

<!ELEMENT FILE (TITLE, QUARTER, LINK, EXCHANGE_RATE, RECORD+, FOOTNOTES+)>

但是实际XML中的FILE标记没有FOOTNOTES子元素。

您的类似乎