我正在尝试使用xsd.exe
从XSD生成C#代码以下是问题区域的片段
<xs:element name="EmailConfiguration" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="DefaultSendToAddressCollection" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="EmailAddress" type="xs:string" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
目前,DefaultSendToAddressCollection正在生成为字符串[]
如何更改xsd,以便将其生成为强类型,将电子邮件地址作为强类型的集合生成?
问题更新:
或者xsd.exe是否有错误?
答案 0 :(得分:2)
您已将EmailAddress指定为类型xs:string
而非复杂类型 - 因此,DefaultSendToAddressCollection是字符串数组,而不是对象集合。
如果您将EmailAddress更改为复杂类型,并为其提供xs:attribute
类型xs:string
来存储地址,则最终会得到一组EmailAddress对象。
<xs:element name="EmailConfiguration" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="DefaultSendToAddressCollection" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="EmailAddress" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="Address" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>