【发布时间】:2010-09-09 20:33:52
【问题描述】:
我正在尝试以编程方式从任何 .net 类型生成 xs:schema。我知道我可以使用反射并通过迭代公共属性来生成它,但是有内置的方法吗?
例子:
[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]。 -
@John 不知道,谢谢!