【发布时间】:2012-01-04 14:15:21
【问题描述】:
当我使用 svcutil.exe 从 xsd 文件中包含的定义生成 Customer 类时:
<xs:schema ...>
<xs:element name="customer" type="Customer" nillable="true" />
<xs:complexType name="Customer">
<xs:sequence>
<xs:element name="id" type="xs:decimal" minOccurs="0" />
<xs:element name="first_name" type="xs:string" />
<xs:element name="last_name" type="xs:string" />
<xs:element name="phone" type="Phone" minOccurs="0" />
<xs:element name="email" type="Email" minOccurs="0" />
<xs:element name="personal_id" type="xs:string" minOccurs="0" />
<xs:element name="address" type="Address" minOccurs="0" />
<xs:element name="status" type="CustomerStatus" />
</xs:sequence>
</xs:complexType>
</xs:schema>
我得到以下类的定义:
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="Customer", Namespace="http://www.bluewhite.pl/api/1.0")]
public partial class Customer : object, System.Runtime.Serialization.IExtensibleDataObject
{
DataContractAttribute 的 Name 属性值无效:“Customer”(以大写字母开头),因为根据 xs:element 的 name 属性,它应该是:“customer”(以小写字母开头)。
我启动svcutil.exe如下:
svcutil.exe" *.xsd /t:code /dconly /n:*,Esap.AdtZapisoMessages /o:Messages.cs /tcv:Version35
生成的xml必须包含一个名为“customer”的根元素,我问你,为什么svcutil.exe会出现这个错误。
【问题讨论】:
标签: c# xsd datacontractserializer wcf-rest svcutil.exe