Próbuję programowo wygenerować xs: schema z dowolnego typu .net. Wiem, że mógłbym użyć refleksji i wygenerować ją przez iterację nad nieruchomościami publicznymi, ale czy jest to wbudowane?Jak programowo wygenerować schemat XML z typu?
Przykład:
[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; }
}
Pożądany wyjściowa:
<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>
I wątpliwość istnieje sposób, aby to zrobić w ogólnym przypadku. Ponadto serial "Serializable" nie jest używany przez Serializer XML. –
@John tego nie wiedział, dzięki! –