从XSD生成C#类
我使用xsd.exe或Xsd2Code为此XSD模式生成C#类:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="student" type="personinfo"/>
<xs:element name="employee" type="personinfo"/>
<xs:complexType name="personinfo">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
在这两种情况下我都会得到类似的结
...
[System.Xml.Serialization.XmlRootAttribute("student", Namespace="", IsNullable=false)]
public partial class personinfo
{
...
public string firstname { ... }
public string lastname { ... }
}
对我来说,似乎很奇怪, employee
在任何地方都没有被引用,并且在代码生成之后某些信息会丢失。 例如,如果我查看生成的代码,则可以创建此XML并不明显:
<employee>
<firstname>John</firstname>
<lastname>Smith</lastname>
</employee>
为什么关于模式元素的信息未包含在生成的代码中? 有没有其他工具可以以某种方式将这些信息保存在生成的类中?
直到你真正使用它们时,它们仍然未被引用。 尝试这样的事情:
<xs:complexType name="PersonInfo">
<xs:sequence>
<xs:element name="student" type="personinfo"/>
<xs:element name="employee" type="personinfo"/>
</xs:sequence>
</xs:complexType>
链接地址: http://www.djcxy.com/p/34321.html