使用Visual Studio xsd.exe生成代码时的Pascal案例类名称

时间:2011-05-09 13:46:11

标签: c# .net xsd.exe

标题几乎说明了一切。 VS xsd.exe以驼峰大小写创建类。有没有办法在pascal情况下生成类?

如果没有,是否有人知道一个很好的工具,可以将一些类名称从驼峰大小写转换为pascal大小写。

由于

修改

xsd.exe在camel情况下不会生成类名作为标准 - 它只是遵循模式的约定 - 但是,我有兴趣重写此行为,因此XmlElement name属性仍将遵循模式定义的约定,但是类名是pascal case。

2 个答案:

答案 0 :(得分:1)

我不知道xsd.exe这样做了,你确定架构中的类型还没有在camelCase中定义吗?

我的建议是使用xsd2code,它在各方面都远远优于xsd.exe ..

答案 1 :(得分:0)

查看XmlSchemaClassGenerator,这是一个包含PascalCasing功能的开源控制台应用程序。 (我在xsd2code过期的15天试用期后发现了这一点。)

  
      
  • 明确地或通过(可配置的)函数将XML名称空间映射到C#名称空间
  •   
  • 从架构注释生成C#XML注释
  •   
  • 生成DataAnnotations   来自架构限制的属性
  •   
  • 使用Collection<T>   属性(在构造函数中初始化并使用私有setter)
  •   
  • 对xs:integer和派生类型使用int,long,decimal或string
  •   
  • 自动属性
  •   
  • 类和属性的Pascal案例
  •   
  • 为没有默认值的可选元素和属性生成可空的适配器属性(参见下文)
  •   
  • 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