我试图以编程方式从任何.net类型生成xs:schema。我知道我可以使用反射并通过遍历公共属性来生成它,但是是否有内置方式?如何以编程方式从类型生成xml模式?
实施例:
[Serializable]
public class Person
{
[XmlElement(IsNullable = false)] public string FirstName { get; set; }
[XmlElement(IsNullable = false)] public string LastName { get; set; }
[XmlElement(IsNullable = true)] public string PhoneNo { get; set; }
}
所需的输出:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Person" type="Person" />
<xs:complexType name="Person">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" form="unqualified" name="FirstName" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" form="unqualified" name="LastName" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" form="unqualified" name="PhoneNo" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:schema>
我:
代码摘自怀疑在一般情况下有办法做到这一点。此外,XML序列化程序不使用'[Serializable]'。 – 2010-09-09 20:38:56
@John不知道,谢谢! – 2010-09-09 21:04:57