0

所以,我正在尝试获取一个 .xsd 文件(musicxml 固定标准),创建一个对象类,使用它的一部分 - 特别是 note 对象 - 将其包含在图形对象中,然后保存图形对象和 musicxml验证文件。

总而言之,我使用的解决方案有一两个严重的缺陷。

Xsd2Code - 创建文件;但由于某种原因,它创建了一个 Items 集合(我需要的类型 ObservableCollection),然后是一个可枚举的 ItemsChoiceType[0-9] ObservableCollection。可枚举的问题是在它生成之后,我必须要么将后者切换为数组,要么为 XmlSerialisation 属性做 mumbo-jumbo。生成一个 2mb 的 .cs 文件,因此有很多代码会自动生成,并且必须有一堆 .extend.cs 文件才能使其适合。也许我必须更改一些开关才能使其工作?什么开关可以解决这个问题?

LinqToXsd / OpenLinqToXsd - 生成文件,对其进行硬编码以引用 DLL 文件,然后强制您使用 List(没有转到 ObservableCollection 的选项),它没有 EditItem 并且不能用于绑定到 WPF/XAML . 否则,还有一堆 .extend.cs 文件。

Altova C# 生成器 - 昂贵,需要将一堆 DLL 包含在项目中,很乱。


长话短说,有没有人成功使用过这些系统,你需要做些什么来硬塞它们?除了我遇到的问题,我还要面对什么样的痛苦


我现在记得对于 XSD.exe:XSD 表示法不会导出,单个类(例如“note”)不会序列化为 xml。我将不得不写出从 scorepartwise 到中间的每一部分的整个事情。这意味着我无法序列化以“note”为顶点的图形对象。

4

0 回答 0