Получить схему XSD для типа C # - PullRequest
4 голосов
/ 02 мая 2010

как я могу сгенерировать схему xsd для типа c # (в коде). Конечно, должен быть способ, потому что схема xsd создается для контрактов данных в wcf.

Ответы [ 3 ]

2 голосов
/ 10 ноября 2011

Пройдя немного дальше, чем ответ s7orm, я написал эту простую функцию, которую я извлек из отражения в xsd.exe:

private void ExtractXsdFromType(Type type, FileInfo xsd)
    {
        XmlReflectionImporter importer = new XmlReflectionImporter();
        XmlTypeMapping mapping = importer.ImportTypeMapping(type);
        XmlSchemas xmlSchemas = new XmlSchemas();
        XmlSchemaExporter xmlSchemaExporter = new XmlSchemaExporter(xmlSchemas);            

        using (FileStream fs = xsd.Create())
        {
            xmlSchemaExporter.ExportTypeMapping(mapping);
            xmlSchemas[0].Write(fs);
        }           
    }
1 голос
/ 05 мая 2010

Итак, я нашел решение своей проблемы, посмотрев отражатель в xsd.exe. Вот это для дальнейшего использования:

XmlReflectionImporter importer = new XmlReflectionImporter();
XmlTypeMapping stringMapping = importer.ImportTypeMapping(typeof(String));
1 голос
/ 02 мая 2010

Вы можете использовать Инструмент определения схемы XML (xsd.exe)

xsd.exe YourAssembly.dll /type:YourNamespace.YourType
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...