XmlSerializer和xsd:列表

时间:2011-11-22 10:02:11

标签: c# .net xsd xmlserializer xsd.exe

在XmlSerializer中是否有一种开箱即用的方式来处理<xsd:list>

就我而言,我得到了double的列表,如下所示:

<xs:complexType name="PositionType">
    <xs:simpleContent>
        <xs:extension base="doubleList">
        </xs:extension>
    </xs:simpleContent>
</xs:complexType>

<xs:simpleType name="doubleList">
    <xs:list itemType="xs:double"/>
</xs:simpleType>

<xs:element name="Test" type="PositionType"/>

实例可能如下所示:<pos>10.3 20.2 -2.4</pos>

我试图让xsd.exe显露出一些秘密,但它生成了这个...失败了:

private double[] textField;

[System.Xml.Serialization.XmlTextAttribute()]
public double[] Text {
    get {
        return this.textField;
    }
    set {
        this.textField = value;
    }
}

例外:

  System.InvalidOperationException: Member 'Text' cannot be encoded using the XmlText attribute. You may use the XmlText attribute to encode primitives, enumerations, arrays of strings, or arrays of XmlNode.

请注意,我使用的是现有架构,无法影响设计。

0 个答案:

没有答案