2011-07-04 12 views
6

Alguien sabe de cualquier biblioteca que se pueden utilizar para escribir datos MusicXML desde C#? Similar a esto: http://proxymusic.kenai.com/ (aunque este es para Java).C# a MusicXML?

me gustaría tratar de no escribir de forma manual, pero si pasa lo peor, no me quedará más remedio que la producción y escribir manualmente MusicXML de mis resultados.

Respuesta

5

Desde MusicXML has a XML schema available, puede utilizar xsd.exe para crear las clases que representan la estructura XML:

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

continuación, puede utilizar XmlSerializer para cargar y guardar las clases generadas desde/a archivos.

(Por alguna razón, uno de los archivos de esquema, osfpvg.xsd, no era capaz de compilar correctamente. Aquí está la esperanza de que no lo necesita.)

+0

por lo que yo sé osfpvg.xsd no es uno de los archivos de esquema. – CRice

+0

desde un símbolo del sistema de Visual Studio me encontré con el siguiente y funcionó: xsd/c musicxml.xsd xlink.xsd xml.xsd – CRice

1

Para utilizar xsd.exe, puede utilizar este comando:

"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" 

que creará un archivo llamado musicxml_xlink_xml.cs en la carpeta c: \ dev.

Compiled Class

1

para mí cuando me trató de convertir el MusicXml3.0.xsd, xsd.exe fallaron cada vez. Por lo tanto, lo que hice fue

xsd.exe musicFile.xml 

que generó un archivo de esquema, y ​​

xsd.exe musicFile.xsd/clases

que produjo los requeridos c# clases. Lo único que tenía que añadir para que el XML generado para ser leídos por programas como Sibelius 7 fue añadir

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

Y listo!