使用 Visual Studio xsd.exe 生成代码时的 Pascal 大小写类名称

发布于 2024-11-06 06:49:49 字数 260 浏览 0 评论 0原文

标题几乎说明了一切。 VS xsd.exe 以驼峰式大小写创建类。有没有办法生成帕斯卡大小写的类?

如果没有,有人知道有一个好工具可以将大量类名从驼峰式大小写转换为帕斯卡式大小写。

谢谢

编辑:

xsd.exe 不会按照标准生成驼峰式大小写的类名 - 它只是遵循架构的约定 - 但是,我有兴趣覆盖此行为,因此 XmlElement name 属性仍然会遵循模式定义的约定,但类名采用 pascal 大小写。

Title pretty much says it all. VS xsd.exe creates classes in camel case. Is there a way of generating the classes in pascal case?

If not does anyone know of a good tool to convert a load of class names from camel case to pascal case.

Thanks

EDIT:

xsd.exe doesn't generate class names in camel case as standard - it just follows the convention of the schema - however, I am interested in overriding this behaviour so the XmlElement name attribute will still follow the conventions defined by the schema, but the class name is pascal case.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

执笏见 2024-11-13 06:49:49

我不知道 xsd.exe 这样做了,您确定架构中的类型也没有在驼峰命名法中定义吗?

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

I wasn't aware that xsd.exe did that, are you sure the types in the schema are not defined in camelCase also?

My suggestion would be to use xsd2code, which is far superior to xsd.exe in every way..

二智少女猫性小仙女 2024-11-13 06:49:49

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

  • 显式或通过(可配置)函数将 XML 命名空间映射到 C# 命名空间
  • 从架构注释生成 C# XML 注释
  • 生成数据注释
    架构限制的属性
  • 使用集合
    属性(在构造函数中初始化并使用私有设置器)
  • 对 xs:integer 和派生类型使用 int、long、decimal 或 string
  • 自动属性
  • 类和属性的 Pascal 大小写
  • 为没有默认值的可选元素和属性生成可为 null 的适配器属性(见下文)
  • 对 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

Check out XmlSchemaClassGenerator, an open source console application that includes PascalCasing among its features. (I found this after the 15-day trial of xsd2code expired.)

  • Map XML namespaces to C# namespaces, either explicitly or through a (configurable) function
  • Generate C# XML comments from schema annotations
  • Generate DataAnnotations
    attributes from schema restrictions
  • Use Collection<T>
    properties (initialized in constructor and with private setter)
  • Use either int, long, decimal, or string for xs:integer and derived types
  • Automatic properties
  • Pascal case for classes and properties
  • Generate nullable adapter properties for optional elements and attributes without default values (see below)
  • Optional support for PCL
  • Optional support for INotifyPropertyChanged

In my case, before I could get the console app to work, I had to modify the xsd document to include a targetNamespace field as follows:

Original:

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

Modified:

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

My final usage looked something like this:

XmlSchemaClassGenerator.Console -n "http://www.w3.org/2001/XMLSchema=gateway" -o "C:\{output-folder}" {xsd-file-name}.xsd
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文