2013-11-20 72 views
0

我正在製作一個將配置保存到XML文件的程序。從C#中的類生成XSD

我目前使用XMLserializer來從類和vica生成XML。

我希望能夠從類中生成一個XSD文件,以便能夠驗證未來的XML文件,包括未自動生成的文件。

此功能應該包括爲諸如minValue,maxLength和默認值(可能通過使用註釋)指定屬性的選項。

我目前閱讀的唯一工具是XSD.exe,我不知道如何以編程方式使用(來自C#代碼),以及它是否是一種很好的方法。

+0

我也對此感興趣。你有沒有找到解決辦法? –

+0

不是。我看到的唯一選擇是自己編寫代碼 – CaptainNemo

回答

1

還有其他工具可用於從XSD生成C#(例如XSD2Code),但我不知道它們是否具有編程API。

您總是可以使用Process.Start()從C#應用程序中啓動XSD.exe(或任何其他工具)進程。快速和骯髒的例子:

var proc = Process.Start(new ProcessStartInfo 
    { 
     FileName = "xsd.exe", 
     Arguments = "/c /namespace:Your.NameSpace yourXsdFile.xsd /o:\"C:\\yourOutputDir\\\"", 
     WindowStyle = ProcessWindowStyle.Hidden, 
     UseShellExecute = false 
    }); 
proc.WaitForExit(); 
var exitCode = proc.ExitCode; 
if (exitCode == 0) 
{ 
    // post-processing 
} 
else 
{ 
    // handle errors 
} 

顯然,有一些細節填寫,和你需要XSD.EXE在你的PATH(或者,指定它的完整路徑代碼)等等,但基本的想法應該起作用。

0
Go to your command prompt. After that go to the following path 
1.C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\x64> 
2. After that write 
xsd.exe 
3. After that paste you .dll file path. 
4. run command 
5.Output: Go to the following location:(** Command prompt indicate you about such link) and you will see your desire xsd file schema 
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 
Tools\x64\ 

Example: in CMD.exe 
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\x64>xsd. 
exe "E:\TFS Projects\Project\Admin\BO\bin\Debug\BO.dll" 
Microsoft (R) Xml Schemas/DataTypes support utility 
[Microsoft (R) .NET Framework, Version 4.0.30319.1] 
Copyright (C) Microsoft Corporation. All rights reserved. 
Writing file 'C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 
Tools\x64\schema0.xsd'.