C#to MusicXML?

时间:2011-07-04 04:52:13

标签: c# musicxml

任何人都知道可以用来从C#编写MusicXML数据的库吗?与此类似:http://proxymusic.kenai.com/(虽然这是针对java的)。

我会尝试不手动编写,但如果情况更糟,我将别无选择,只能从我的结果中手动输出和编写MusicXML。

3 个答案:

答案 0 :(得分:7)

自MusicXML has a XML schema available以来, 您可以使用xsd.exe创建表示XML结构的类:

xsd /c xlink.xsd musicxml.xsd container.xsd opus.xsd

然后,您可以使用XmlSerializer从/向文件加载和保存生成的类。

(由于某种原因,其中一个模式文件osfpvg.xsd无法正确编译。这里希望你不需要它。)

答案 1 :(得分:1)

要使用xsd.exe,您可以使用以下命令:

"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\xsd.exe" "c:\dev\musicxml30\musicxml.xsd" "c:\dev\musicxml30\xlink.xsd" "c:\dev\musicxml30\xml.xsd" /c /o:"c:\dev"

这将在c:\ dev文件夹中创建名为musicxml_xlink_xml.cs的文件。

Compiled Class

答案 2 :(得分:1)

对我来说,当我尝试转换MusicXml3.0.xsd时,xsd.exe每次都失败了。所以,我做的是

xsd.exe musicFile.xml 

生成了一个模式文件,

xsd.exe musicFile.xsd / classes

生成了所需的c#类。为了让Sibelius 7等程序读取生成的xml,我必须添加的唯一内容是添加

<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">

并且presto!