我使用Xsd2Code从XML生成类。它适用于一些复杂的类型,如:
<xs:complexType name="AsiguratB1Type">
<xs:sequence>
<xs:element name="asiguratB11" type="AsiguratB11Type" minOccurs="0" maxOccurs="10"/>
</xs:sequence>
<xs:attribute name="B1_1" type="typ:TipAsiguratSType" use="required"/>
<xs:attribute name="B1_2" type="typ:FlagSType" use="required"/>
<xs:attribute name="B1_3" type="typ:TipContractSType" use="required"/>
<xs:attribute name="B1_4" type="typ:OreNormaZiSType" use="required"/>
<xs:attribute name="B1_5" type="typ:Pozitiv15SType"/>
<xs:attribute name="B1_6" type="typ:Pozitiv3SType"/>
<xs:attribute name="B1_7" type="typ:Pozitiv3SType"/>
<xs:attribute name="B1_8" type="typ:Pozitiv3SType"/>
<xs:attribute name="B1_9" type="typ:Pozitiv2SType"/>
<xs:attribute name="B1_10" type="typ:Pozitiv15SType"/>
<xs:attribute name="B1_15" type="typ:Pozitiv2SType"/>
</xs:complexType>..。而对于其他人(例如下面的例子),它只生成空白类(只有序列化例程,没有字段)。
<xs:complexType name="AngajatorAType">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:attribute name="A_codOblig" type="typ:CodObligSType" use="required"/>
<xs:attribute name="A_codBugetar" type="typ:CodBugetarSType" use="required"/>
<xs:attribute name="A_datorat" type="typ:Pozitiv15SType" use="required"/>
<xs:attribute name="A_deductibil" type="typ:Pozitiv15SType"/>
<xs:attribute name="A_plata" type="typ:Pozitiv15SType" use="required"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>同样的情况发生在来自xsd.exe的VS2010工具集上。你觉得有什么问题吗?
发布于 2011-02-19 14:31:30
我得说这是故意的。限制不能向基类型添加新属性或元素或任何内容。
发布于 2011-03-30 14:51:17
我认为,当您针对4.0框架时,xsd2code如何处理minOccus=0可能存在一个问题。您能暂时删除它并查看什么是序列化的吗?
看起来同样有效的是针对3.5框架并包含xml属性。
https://stackoverflow.com/questions/5050782
复制相似问题