2012-10-17 75 views
1

是否可以使用XSD.exe自動生成一個類,該類具有與XSD中指定的屬性不同的數據類型,方法是在元素之前提供註釋屬性XSD。XSD.exe限制基類型屬性

這個想法是爲了讓XSD保持原樣,但希望自動生成的類爲特定屬性使用不同的數據類型。

<xsd:simpleType name="idRestriction"> 
<Specify_Custom_Type="xsd:string" //This is what I'm looking for 
<xsd:restriction base="xsd:decimal"> 

<xsd:attribute name="idAttribute" type="idRestriction" use="required" /> 

生成的類

[System.Xml.Serialization.XmlAttributeAttribute()] 
public decimal id { // Would like the decimal to be string 
get { 
      return this.idField; 
     } 
     set { 
      this.idField = value; 
     } 
    } 

我想它產生

[System.Xml.Serialization.XmlAttributeAttribute()] 
public string id { // Notice decimal --> string 
get { 
      return this.idField; 
     } 
     set { 
      this.idField = value; 
     } 
    } 

回答

1

讓我們假設你有schema.xsd文件

如果複製相同的文件schema2.xsd和替換所有其他基本類型的字符串,你可以使用這個文件的屬丁.cs

如果你通過編寫一個批處理文件自動執行此過程,我認爲你的問題可以解決。

下面的鏈接包含有關如何替換文本文件內容的問題。請檢查一個

How can you find and replace text in a file using the Windows command-line environment?

我想提一提,但有一點,當你生成這些文件的類名是相同的cs文件。所以最好爲這兩個類使用不同的名稱空間,以便生成的類類型不會發生衝突。

您可以通過使用/n參數xsd.exe

提命名空間請檢查下面的鏈接,xsd.exe命令行參數

http://msdn.microsoft.com/en-us/library/x6c1kb0s(v=vs.110).aspx

+0

這是實現我想它一個偉大的想法。 +1。 我仍然有興趣知道是否有一個標籤可以添加到XSD中。謝謝! – edocetirwi