我正在使用gsoap来实现完全用C语言编写的tr069客户端的soap堆栈。
我使用的xsd文件是来自broadbanforum的cwmp-1-2.xsd。 在cwmp-1-2.xsd中,ParameterValueStruct定义为:
<xs:complexType name="ParameterValueStruct">
<xs:sequence>
<xs:element name="Name">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="256"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Value" type="xs:anySimpleType"/>
</xs:sequence>
</xs:complexType>
&#34;值&#34;元素是多态类型,因此,&#34;值&#34;必须显示参数的实际数据类型。
例如<Value xsi:type="xsd:integer">
或<Value xsi:type="xsd:boolean">
取决于它必须显示的参数类型。
但它仅针对所有情况显示<Value xsi:type="xsd:anySimpleType">0</Value>
。
我无法找到任何关于如何使用C实现元素的多态属性的解决方案。
我是否必须修改typemap.dat或dom.h ??