2011-05-09 20 views
5

標題幾乎說明了一切。 VS xsd.exe在駱駝情況下創建類。有沒有在帕斯卡案例中生成類的方法?使用Visual Studio生成代碼時的Pascal案例類名稱xsd.exe

如果沒有人知道一個好的工具來將類名從駱駝案件的負載轉換爲帕斯卡案件。

感謝

編輯:

XSD.EXE不會產生駱駝情況下,標準類的名字 - 它只是遵循模式的約定 - 但是,我感興趣的重寫此行爲所以XmlElement name屬性仍然遵循架構定義的約定,但類名是pascal大小寫。

回答

1

我不知道,xsd.exe做到了這一點,你確定架構中的類型沒有在camelCase中定義嗎?

我的建議是使用xsd2code,這是遠遠優於以各種方式XSD.EXE ..

+0

以及模式中的類型是駱駝案例 - 但是標準的xml實踐?我看到的大多數xml往往都是駝峯式的 - 因此,如果它自動使用pascal case,那就好了,就像.NET語言中的標準做法一樣。是否有可能做我在xsd2code中提出的問題? – jcvandan 2011-05-09 15:04:54

+0

這不是一個標準的做法,但它是常見的(http://stackoverflow.com/questions/442529/is-there-a-standard-naming-convention-for-xml-elements)。我不認爲xsd2code會將其轉換爲PascalCase,這會讓您在選項上稍微短一些......第一種選擇是在模式中採用PascalCase。第二種選擇是針對您的架構運行XSLT樣式表,將其名稱更改爲PascalCase。第三種選擇是對生成的C#代碼進行自動重構。沒有任何選項特別有吸引力!對不起,我幫不了你.. – MattDavey 2011-05-09 15:37:07

+0

關於第二個選項(XSLT),有一個將標識符轉換爲PascalCase的函數 - http://xsltsl.sourceforge.net/string.html#template.str:to-camelcase (請注意,在XSLT中它被稱爲UpperCamelCase或TitleCase)。在****中仍然有一個痛苦,不得不通過樣式表運行模式: – MattDavey 2011-05-09 15:43:46

0

退房XmlSchemaClassGenerator,一個開源的控制檯應用程序,包括其功能中PascalCasing。 (我在xsd2code的15天試用過期後發現了這一點。)

  • 地圖XML命名空間C#的命名空間,顯式或通過(配置)功能
  • 生成模式註釋C#XML註釋
  • 生成模式的限制DataAnnotations 屬性
  • 使用Collection<T> 屬性(在構造函數和私有setter中初始化)
  • 使用int,long,decimal或string爲XS:整數和派生類型
  • 自動性質
  • 帕斯卡情況下的類和屬性
  • 生成用於可選的元素可爲空的適配器屬性和沒有默認值屬性(見下文)
  • 爲PCL
  • 可選支持
  • INotifyPropertyChanged

可選支持

在我的情況,我還沒有來得及控制檯應用程序來工作,我不得不修改XSD文件包括targetNamespace領域如下:

原文:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1"> 

修改:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="gateway" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1"> 

我的最終用途看起來是這樣的:

XmlSchemaClassGenerator.Console -n "http://www.w3.org/2001/XMLSchema=gateway" -o "C:\{output-folder}" {xsd-file-name}.xsd 
相關問題