2011-06-24 36 views
0

有沒有辦法將XSD ASP.NET文件轉換爲Windows Forms XSD?有這樣的工具嗎?我相信,如果你瀏覽了每個文件,它可以完成,但有一個簡單的轉換(可能在Visual Studio中)?將ASP.NET XSD(數據集)轉換爲Windows窗體

+0

是什麼讓你覺得有區別嗎?你有沒有嘗試過將數據集添加到你的表單項目? –

+0

是的,我已經嘗試過。它們是有區別的。它只是顯示並打開爲一個XML文件。連接字符串不存儲在web.config像asp.net(從我的理解)。我知道複製文件不起作用。 –

回答

0

我已經在Windows窗體項目和ASP.NET項目中創建了兩個數據集,並將它們與Visual Studio 2010進行了比較。他們幾乎是相同的,除了兩點:

  1. Windows窗體生成的SQL語句與樂觀併發,而ASP.NET沒有
  2. Connection元素不同

我(因爲設定源)認爲可以編寫一個簡單的XSLT來更改Connection元素並保持原樣。

此外,當你加入一個現有的.xsd集文件,你應該在Visual Studio設置Custom ToolMSDataSetGenerator在文件屬性,或Visual Studiowon't刷新.Designer.cs文件。

(UPDATE)下面是一個簡單的例子,這樣的XSLT的(未完成):

<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet version="1.0" 
       xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
       xmlns:msxsl="urn:schemas-microsoft-com:xslt" 
       exclude-result-prefixes="msxsl" 
       xmlns="http://tempuri.org/DataSet1.xsd" 
       xmlns:mstns="http://tempuri.org/DataSet1.xsd" 
       xmlns:xs="http://www.w3.org/2001/XMLSchema" 
       xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" 
       xmlns:msprop="urn:schemas-microsoft-com:xml-msprop" 
       xmlns:msds="urn:schemas-microsoft-com:xml-msdatasource"> 
    <xsl:output method="xml" indent="yes"/> 

    <xsl:template match="@* | node()"> 
     <xsl:copy> 
      <xsl:apply-templates select="@* | node()"/> 
     </xsl:copy> 
    </xsl:template> 

    <xsl:template match="msds:Connection"> 
     <xsl:copy> 
      <xsl:attribute name="AppSettingsObjectName">Settings</xsl:attribute> 
      <xsl:attribute name="AppSettingsPropertyName"> 
       <xsl:value-of select="@AppSettingsPropertyName" /> 
      </xsl:attribute> 
      <!-- TODO: add other attributes... --> 
     </xsl:copy> 
    </xsl:template> 
</xsl:stylesheet> 
+0

我認爲它比這更復雜。請注意,Windows窗體添加(不僅僅是ASP.NET的.xsd和.xss),還有whatever_the_filename_is.Designer.cs(或.vb)。 –

+0

@Jason Reed,不,它不是那麼複雜。 .xss&.xsc文件與設計器佈局相關,並在設計器視圖中保存了形狀位置,因此您可以刪除並且不會影響功能。 * .Designer.cs由MSDataSetGenerator的xsd生成。實際上,ASP.NET項目也包含它,但是Visual Web Developer Express - 不支持(仍然AFAIK它是在運行時生成的)。簡而言之,您需要添加__ONLY__ .xsd文件,在解決方案視圖中選擇它,打開屬性窗口並鍵入'MSDataSetGenerator'來定製工具屬性。你也需要改變連接attrs。這應該夠了。 – Dmitry

+0

@Jason Reed,你可以很容易地檢查.Designer.cs是由VS生成(重新生成):打開一個winforms解決方案,添加一個DataSet,然後刪除ddataset的.Designer.cs文件。然後在解決方案視圖中右鍵單擊xsd文件,然後選擇「運行自定義工具」。 .Designer.cs文件將重新出現。 – Dmitry