标题几乎说明了一切。 VS xsd.exe以驼峰大小写创建类。有没有办法在pascal情况下生成类?
如果没有,是否有人知道一个很好的工具,可以将一些类名称从驼峰大小写转换为pascal大小写。
由于
修改
xsd.exe在camel情况下不会生成类名作为标准 - 它只是遵循模式的约定 - 但是,我有兴趣重写此行为,因此XmlElement name属性仍将遵循模式定义的约定,但是类名是pascal case。
答案 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