2011-07-04 4 views
6

C#에서 MusicXML 데이터를 쓰는 데 사용할 수있는 라이브러리를 아는 사람이 있습니까? 이와 유사합니다 : http://proxymusic.kenai.com/ (비록 이것은 자바 용입니다).C# to MusicXML?

필자는 수동으로 쓰지 않으려하지만 최악의 경우 최악의 경우 내 결과에서 수동으로 MusicXML을 출력하고 쓸 수밖에 없습니다.

답변

5

MusicXML has a XML schema available 때문에, 당신은 XML 구조를 나타내는 클래스를 만들 수 xsd.exe를 사용할 수 있습니다

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

그런 다음로드하고 파일에 /에서 생성 된 클래스를 저장 XmlSerializer를 사용할 수 있습니다.

은 (어떤 이유로, 스키마 파일 중 하나 osfpvg.xsd를 들어, 제대로 컴파일 할 수 없습니다. 여기에 당신이 그것을 필요로하지 않습니다 희망입니다.)

+0

내가 아는 한 osfpvg.xsd는 스키마 파일 중 하나가 아닙니다. – CRice

+0

Visual Studio 명령 프롬프트에서 나는 다음을 실행했고 작동했습니다 : xsd/c musicxml.xsd xlink.xsd xml.xsd – CRice

1

xsd.exe를 사용하려면 사용할 수 있습니다 이 명령 dev에 폴더 \을 c musicxml_xlink_xml.cs라는 파일을 생성합니다

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

.

내가 MusicXml3.0.xsd을 변환하려고 나를 위해

Compiled Class

1

xsd.exe는 매번 실패했습니다. 그럼, 내가 한 것은

xsd.exe musicFile.xml 
스키마 파일을 생성

이었다 xsd.exe musicFile.xsd/클래스 필요한 c# 클래스를 생성

. 내가 Sibelius 7 같은 프로그램에서 읽을 수있는 생성 된 XML의 순서를 추가했다 유일한 것은

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

그리고 프레스토를 추가하는 것이 었습니다!