我遵循此问题How to generate .NET 4.0 classes from xsd?的解决方案来生成C#类。但不知何故,它只生成第一个元素。有什么方法可以同时生成所有元素吗?
Xsd doc如下所示:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="advice_file">
</xs:element>
<xs:element name="vendorMerchID" type="xs:string">
</xs:element>
</xs:schema>
答案 0 :(得分:0)
您只获得1个元素的原因是因为有效xml必须始终具有单个外部根节点。让我感到惊讶的是,第二个节点完全被忽略了,没有抛出任何异常。
您的xsd代表以下xml
<advice_file/>
要拥有这两个元素,您需要按如下方式编写xsd:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="myRoot">
<xs:complexType>
<xs:sequence>
<xs:element name="advice_file" type="xs:string"/>
<xs:element name="vendorMerchID" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
对于xml结构:
<myRoot>
<advice_file/>
<vendorMerchID/>
</myRoot>
或者,如果您的xml是这样的:
<advice_file>
<vendorMerchID/>
</advice_file>
使用xsd:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="advice_file">
<xs:complexType>
<xs:sequence>
<xs:element name="vendorMerchID" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>